[gradsusr] (no subject)

Jennifer M Adams jadams21 at gmu.edu
Wed Apr 19 10:42:57 EDT 2017


Your descriptor file and the error message do not match. Where is the variable declaration for “res” in the descriptor you show? If you have more than 4 variables, edit the "VARS” entry.
—Jennifer


On Apr 19, 2017, at 4:34 AM, praveen rai <praveenrai583 at gmail.com<mailto:praveenrai583 at gmail.com>> wrote:

Hello all,

I have made a .ctl file from .nc file using CDO command which shows following description-

* Generated by CDO operator gradsdes
*
DSET  ^merge_rf79_05_act_0lag.nc<http://merge_rf79_05_act_0lag.nc/>
DTYPE  netCDF
XDEF 720 LINEAR 0.000000 0.500000
YDEF 361 LINEAR -90.000000 0.500000
ZDEF 7 LEVELS 2 3 5 7 8.5 9.25 10
TDEF 164 LINEAR 12:00Z03aug1979 1dy
TITLE  merge_rf79_05_act_0lag.nc<http://merge_rf79_05_act_0lag.nc/>  720x361 grid
OPTIONS yrev zrev
UNDEF  -32767
VARS  4
v                  7  t,z,y,x  V component of wind  [m s**-1]
u                  7  t,z,y,x  U component of wind  [m s**-1]
t                  7  t,z,y,x  Temperature  [K]
w                  7  t,z,y,x  Vertical velocity  [Pa s**-1]
ENDVARS

Using this .ctl file, i am trying to write a .ctl file containing variables for my diabatic heating calculation but the new .ctl file is not opening and it gives following error-

Scanning description file:  thermo.ctl
Open Error:  Looking for "endvars", found "res   7  99  residuo of diabatic heating  (q)  [k/dia] " instead.
  --> The invalid description file record is:
  --> res   7  99  residuo of diabatic heating  (Q)  [K/dia]
  The data file was not opened.
I am using the following script to calculate the diabatic heating variable in .ctl file-
'reinit'
'open merge_rf79_05_act_0lag.ctl'

***********************************************************
'q file'
rc=sublin(result,5)
nt=subwrd(rc,12)
nl=subwrd(rc,9)
nx=subwrd(rc,3)
ny=subwrd(rc,6)
rc=sublin(result,6)
'q time'
td=subwrd(result,3)
ano=substr (td, 9, 4)

***********************************************************

'set fwrite thermo.bin'
'set gxout fwrite'
'set x 1 720 '
'set y 1 361 '

* Note: Repeat 1000 and 100 to permit program diferentiate z levels.

string=' 10 10 9.25 8.5 7 5 3 2 2 '

*aa      --> m
*Rgas    --> 287.05 J/Kg K
*Cp      --> 1004   J/Kg K
*dt      --> s
*T       --> K
*u       --> m/s
*v       --> m/s
*P       --> Pa
*W       --> Pa/s

'define aa=6.37e6'
'define pi=2*asin(1)'
'define rd=pi/180'
'define clat=cos(lat*rd)'
'define dx=cdiff(lon,x)*rd'
'define dy=cdiff(lat,y)*rd'
'define kp=287.05/1004'
'define dt=3600*6*2'

'k = 1'
'l = 2'

while (k <= 164)

while (l <= 7+1)

'set t 'k

l1=l-1
l2=l+1

nivel  = subwrd(string,l)
nivel1 = subwrd(string,11)
nivel2 = subwrd(string,l2)

* As vertical velocity is in units of Pa/sec and the levels (in CTL and nc data)
* are in hPa, we must multiply the levels (hPa) by 100 to convert it in Pa units
* (the same unit of vertical velocity)

'define p1='nivel1'*100'
'define p2='nivel2'*100'

say nivel' 'nivel1' 'nivel2' 'k' 'l

'set lev 'nivel

* Computing Temperature tendency term
*_____________ dT/dt _______________*
* Units must be in K/s

k1=k-1
k2=k+1


if(k!=1 | k!=nt)
'define ttend = (T(t='k2')-T(t='k1'))/dt'
endif

if(k=1)
'define ttend = (T(t='k2')-T(t='k'))/(dt/2)'
say 'k=1'
endif


if(k=nt)
'define ttend = (T(t='k')-T(t='k1'))/(dt/2)'
say 'k=nt'
endif

* Computing Temperature horizontal advection
* in hespherical coordinates
*_____________ V Grad(T) _______________*
* Units must be in K/s

'define advh = ((u*cdiff(T,x))/(clat*dx) + (v*cdiff(T,y))/dy)/aa'

* Computing Temperature vertical advection
* in hespherical coordinates
*_________ w Grad(T) or wdT/dp __________*
* Units must be in K/s

'define advv = w*(t(lev='nivel2')-t(lev='nivel1'))/(p2-p1)'

* Computing alfa term
* in hespherical coordinates
* _____RTW/CpP _____________*
* Units must be in K/s

'define qd   = -kp *  (w*(t))/(lev*100)'

* Computing ther esidual term or the diabatic term
* in hespherical coordinates
* _____ Q _____________*
* Units must be in K/s

'define res   = ttend + advh + advv + qd'

* Recording the diabatic term in units of K/day

'd ttend*86400'
'd advh*86400'
'd advv*86400'
'd qd*86400'
'd res*86400'



k = k
l = l + 1

endwhile

l = 2
k = k + 1

endwhile

'disable fwrite'

**********************************************************
write (thermo.ctl,'dset thermo.bin')
write (thermo.ctl,'undef  -32767')
write (thermo.ctl,'title merge_rf79_05_act_0lag.nc<http://merge_rf79_05_act_0lag.nc/>  720x361 grid')
write (thermo.ctl,"xdef "720" linear    0.0 "0.5"")
write (thermo.ctl,"ydef "361" linear  -90.0 "0.5"")
write (thermo.ctl,"zdef "7" levels  "2" "3" "5" "7" "8.5" "9.25" "10" ")
write (thermo.ctl,"tdef "164" linear "00Z03aug1979" "12hr" "   )
write (thermo.ctl,'vars  4')
write (thermo.ctl,'ttend 7  99  temperature tendency  [K/dia] ')
write (thermo.ctl,'advh  7  99  horiz. temperature advection  [K/dia] ')
write (thermo.ctl,'advv  7  99  vertical temperature advection  [K/dia] ')
write (thermo.ctl,'qd    7  99                                  [K/dia] ')
write (thermo.ctl,"res   "7"  99  residuo of diabatic heating  (Q)  [K/dia] ")
write (thermo.ctl,'endvars')
**********************************************************

Sorry for the long note. Any help will be much appreciated.

Thanks
Praveen

_______________________________________________
gradsusr mailing list
gradsusr at gradsusr.org<mailto:gradsusr at gradsusr.org>
http://gradsusr.org/mailman/listinfo/gradsusr

--
Jennifer Miletta Adams
Center for Ocean-Land-Atmosphere Studies (COLA)
George Mason University



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20170419/8152fbdc/attachment.html 


More information about the gradsusr mailing list