17 #include "dimensions.h"
37 REAL zsig(llm),sig(llm+1)
39 integer :: ierr1,ierr2,ierr3,ierr4
45 REAL dz0,dz1,nhaut,sig1,esig,csig,zz
51 character(len=*),
parameter :: modname=
"disvert_noterre"
60 CALL
getin(
'hybrid',hybrid)
61 write(
lunout,*) trim(modname),
': hybrid=',hybrid
65 open(99,file=
"esasig.def",status=
'old',form=
'formatted',
69 open(99,file=
"z2sig.def",status=
'old',form=
'formatted',
84 write(
lunout,*)
'*****************************'
85 write(
lunout,*)
'WARNING reading esasig.def'
86 write(
lunout,*)
'*****************************'
96 sig1=(1.-dz1)/tanh(.5*(llm-1)/nhaut)
101 esig=-log((1./sig1-1.)*exp(-dz0)/esig)/(llm-1.)
103 csig=(1./sig1-1.)/(exp(esig)-1.)
106 zz=csig*(exp(esig*(
l-1.))-1.)
108 & * tanh(.5*(llm+1-
l)/nhaut)
112 quoi = 1. + 2.*
kappa
118 quand = sig(
l+1)/ sig(
l)
119 s(
l-1) = quoi * (1.-quand) * s(
l) + quand * s(
l+1)
123 snorm=(1.-.5*sig(2)+
kappa*(1.-sig(2)))*s(1)+.5*sig(2)*s(2)
132 ELSE IF(ierr4.eq.0)
then
133 write(
lunout,*)
'****************************'
134 write(
lunout,*)
'Reading z2sig.def'
135 write(
lunout,*)
'****************************'
152 write(
lunout,*)
'didn t you forget something ??? '
153 write(
lunout,*)
'We need file z2sig.def ! (OR esasig.def)'
176 write(
lunout,*)
"*********************************"
177 write(
lunout,*)
"Using hybrid vertical coordinates"
183 bp(
l) = exp( 1. - 1./(newsig**2) )
189 write(
lunout,*)
"********************************"
190 write(
lunout,*)
"Using sigma vertical coordinates"
202 write(
lunout,*) trim(modname),
': BP '
204 write(
lunout,*) trim(modname),
': AP '
222 bps(llm) = 0.5*(
bp(llm) +
bp(llm+1))
228 write(
lunout,*) trim(modname),
': BPs '
230 write(
lunout,*) trim(modname),
': APs'
238 write(
lunout,*)trim(modname),
' : PRESNIVS'
240 write(
lunout,*)
'Pseudo altitude of Presnivs : (for a scale ',
302 real x1, x2, sig,
pa,
preff, newsig,
f
310 else if (sig*
preff/
pa.ge.0.25)
then
316 newsig=(x1+newsig)*0.5
319 newsig=(x2+newsig)*0.5
323 IF(abs(10.*log(
f)).LT.1.e-5) goto 999