#!/bin/csh

# c-shell script to calculate daily anomaly

# !!!!!! What should be modified !!!!!!
# HHH  : home directory
# var  : name of data
# TTT  : number of total time (in day)
# MMM  : missing value
# PPP  : period of data

# region for averaging
# BLO  : starting longitude (e.g. 120, 240)
# BLA  : starting latitude (e.g. -5, 5)
# ELO  : ending longitude
# ELA  : ending latitude
# !!!!!! What should be modified !!!!!!

#enver setenv HHH /jdata4/cdl/kim/msd
 setenv HHH ~/work/programs/MJOWG/msd




foreach var (olr_av u850_n1 u200_n1)

 setenv TTT 9862
 setenv MMM -999.
 setenv PPP 19790101_20051231

 if ( $var == 'olr_av' ) then
 setenv MJO OLR
 else if ( $var == 'u850_n1' ) then
 setenv MJO U850
 else if ( $var == 'u200_n1' ) then
 setenv MJO U200
 endif

 cd $HHH/level_1/$var

 mkdir -p src/aave
 cd src/aave

 cp -f $HHH/level_1/sample/aave/aave.gs.sample .
 cp -f $HHH/level_1/sample/aave/aave.ctl.sample .

 foreach sea ( win sum )

 if ( $MJO == 'OLR' ) then

  if ( $sea == 'win' ) then

   foreach reg ( IO WP MC )

    if ( $reg == 'IO' ) then
    setenv BLO 75 
    setenv ELO 100
    setenv BLA -10
    setenv ELA 5
    else if ( $reg == 'WP' ) then
    setenv BLO 160
    setenv ELO 185
    setenv BLA -20
    setenv ELA -5
    else if ( $reg == 'MC' ) then
    setenv BLO 115
    setenv ELO 145
    setenv BLA -17.5
    setenv ELA -2.5
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  else if ( $sea == 'sum' ) then

   foreach reg ( IO WP BB )
    if ( $reg == 'IO' ) then
    setenv BLO 75 
    setenv ELO 100
    setenv BLA -10
    setenv ELA 5
    else if ( $reg == 'WP' ) then
    setenv BLO 115
    setenv ELO 140
    setenv BLA 10
    setenv ELA 25
    else if ( $reg == 'BB' ) then
    setenv BLO 80
    setenv ELO 100
    setenv BLA 10
    setenv ELA 20
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  endif

 else if ( $MJO == 'U850' ) then

  if ( $sea == 'win' ) then

   foreach reg ( IO WP )
    if ( $reg == 'IO' ) then
    setenv BLO 68.75
    setenv ELO 96.25
    setenv BLA -16.25
    setenv ELA -1.25
    else if ( $reg == 'WP' ) then
    setenv BLO 163.75
    setenv ELO 191.25
    setenv BLA -13.75
    setenv ELA 1.25
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  else if ( $sea == 'sum' ) then

   foreach reg ( IO WP EP )
    if ( $reg == 'IO' ) then
    setenv BLO 68.75
    setenv ELO 96.25
    setenv BLA 3.75
    setenv ELA 21.25
    else if ( $reg == 'WP' ) then
    setenv BLO 118.75
    setenv ELO 146.25
    setenv BLA 3.75
    setenv ELA 21.25
    else if ( $reg == 'EP' ) then
    setenv BLO 241.25
    setenv ELO 266.25
    setenv BLA 6.25
    setenv ELA 16.25
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  endif

 else if ( $MJO == 'U200' ) then

  if ( $sea == 'win' ) then

   foreach reg ( IO WP EP )
    if ( $reg == 'IO' ) then
    setenv BLO 56.25
    setenv ELO 78.75
    setenv BLA 3.75
    setenv ELA 21.25
    else if ( $reg == 'WP' ) then
    setenv BLO 123.75
    setenv ELO 151.25
    setenv BLA 3.75
    setenv ELA 21.25
    else if ( $reg == 'EP' ) then
    setenv BLO 256.25
    setenv ELO 278.75
    setenv BLA -16.25
    setenv ELA 1.25
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  else if ( $sea == 'sum' ) then

   foreach reg ( IO WP EP )
    if ( $reg == 'IO' ) then
    setenv BLO 43.75
    setenv ELO 71.25
    setenv BLA -16.25
    setenv ELA 1.25
    else if ( $reg == 'WP' ) then
    setenv BLO 123.75
    setenv ELO 151.25
    setenv BLA 3.75
    setenv ELA 21.25
    else if ( $reg == 'EP' ) then
    setenv BLO 238.75
    setenv ELO 266.25
    setenv BLA -16.25
    setenv ELA 1.25
    endif
# Area averaging!
 sed "s#homedir#$HHH#g"  aave.gs.sample > tmp1
 sed "s/variable/$var/g"           tmp1 > tmp2
 sed "s/num_t/$TTT/g"              tmp2 > tmp1
 sed "s/beg_lon/$BLO/g"            tmp1 > tmp2
 sed "s/end_lon/$ELO/g"            tmp2 > tmp1
 sed "s/beg_lat/$BLA/g"            tmp1 > tmp2
 sed "s/end_lat/$ELA/g"            tmp2 > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/period/$PPP/g"             tmp1 > aave.gs
grads -lbc << EOF
aave 
EOF

 sed "s/num_t/$TTT/g"   aave.ctl.sample > tmp1
 sed "s/region/$reg/g"             tmp1 > tmp2
 sed "s/season/$sea/g"             tmp2 > tmp1
 sed "s/missing/$MMM/g"            tmp1 > $reg.$sea.series.ctl
 cp -f *ctl $HHH/level_1/$var/data/.

# Area averaging!
   end 

  endif

# MJO
 endif

# season
 end

# var
 end

