[gradsusr] (no subject)

Davide Sacchetti davide.sacchetti at arpal.gov.it
Wed Apr 19 06:43:19 EDT 2017


no idea ...
but when creating thermo.ctl you forget "append" in:
write (filename, record <, append>)
so I expect thermo.ctl to be overwritten at every write

When finished, use also close (name)
(see http://cola.gmu.edu/grads/gadoc/script.html)

Bye
Davide

Il giorno mer, 19/04/2017 alle 15.38 +0530, praveen rai ha scritto:
> This script runs successfully but the .bin file is getting made
> because of which .ctl file is not opening. Please anyone tell me how
> to made this .bin file and where i am doing wrong.
> 
> Thanks
> 
> On Wed, Apr 19, 2017 at 2:04 PM, praveen rai <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
> > 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  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  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
> http://gradsusr.org/mailman/listinfo/gradsusr



More information about the gradsusr mailing list