[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