4 SUBROUTINE inidissip ( lstardis,nitergdiv,nitergrot,niterh , &
16 include
"dimensions.h"
18 include
"comdissipn.h"
24 LOGICAL,
INTENT(in) :: lstardis
28 integer,
INTENT(in):: vert_prof_dissip
35 REAL fact,zvert(llm),zz
38 REAL ullm,vllm,umin,vmin,zhmin,zhmax
44 character (len=80) :: abort_message
78 IF ( zhmin .GE. zhmax )
THEN
79 write(
lunout,*)
' Inidissip zh min max ',zhmin,zhmax
80 abort_message=
'probleme generateur alleatoire dans inidissip'
81 call
abort_gcm(
'inidissip',abort_message,1)
92 zllm = abs(maxval(divgra))
99 cdivh = zllm ** ( -1./
niterh )
104 write(
lunout,*)
'inidissip: calcul des valeurs propres'
118 CALL
minmax(iip1*jjm,
zv,vmin,vllm )
139 zllm = max(abs(maxval(gx)), abs(maxval(gy)))
164 fact =
rad*24./
REAL(jjm)
168 write(
lunout,*)
'inidissip: coef h ', fact/cdivh, 1./cdivh
175 if (vert_prof_dissip == 1)
then
189 zvert(
l)= fact -( fact-1.)/( 1.+zz*zz )
194 write(
lunout,*)
'inidissip: Constantes de temps de la diffusion horizontale'
209 IF (dissip_period == 0)
THEN
210 dissip_period = int( tetamin/( 2.*
dtvr*iperiod) ) * iperiod
211 write(
lunout,*)
'inidissip: tetamin dtvr iperiod dissip_period(intermed) ',tetamin,
dtvr,iperiod,dissip_period
212 dissip_period = max(iperiod,dissip_period)
216 write(
lunout,*)
'inidissip: dissip_period=',dissip_period,
' dtdiss=',
dtdiss,
' dtvr=',
dtvr