59 knob_ugwp_stoch, knob_ugwp_effac,knob_ugwp_doaxyz, knob_ugwp_doheat, knob_ugwp_dokdis, &
108 subroutine cires_ugwpv0_mod_init (me, master, nlunit, input_nml_file, logunit, &
109 fn_nml, lonr, latr, levs, ak, bk, pref, dtp, cdmvgwd, cgwf, &
118 integer,
intent (in) :: me
119 integer,
intent (in) :: master
120 integer,
intent (in) :: nlunit
121 character (len = *),
intent (in) :: input_nml_file(:)
122 integer,
intent (in) :: logunit
123 character(len=64),
intent (in) :: fn_nml
124 integer,
intent (in) :: lonr
125 integer,
intent (in) :: levs
126 integer,
intent (in) :: latr
127 real,
intent (in) :: ak(levs+1), bk(levs+1), pref
128 real,
intent (in) :: dtp
129 real,
intent (in) :: cdmvgwd(2), cgwf(2)
130 real,
intent (in) :: pa_rf_in, tau_rf_in
137#ifdef INTERNAL_FILE_NML
138 read (input_nml_file, nml = cires_ugwp_nml)
140 if (me == master) print *, trim(fn_nml),
' GW-namelist file '
142 inquire (file =trim(fn_nml) , exist = exists)
144 if (.not. exists)
then
146 write (6, *)
'separate ugwp :: namelist file: ', trim(fn_nml),
' does not exist'
148 open (unit = nlunit, file = trim(fn_nml), action =
'read', status =
'old', iostat = ios)
151 read (nlunit, nml = cires_ugwp_nml)
156 ilaunch = launch_level
161 if (me == master)
then
162 write (logunit, *)
" ================================================================== "
163 write (logunit, *)
"cires_ugwp_cires"
164 write (logunit, nml = cires_ugwp_nml)
169 dxsg = pi2*arad/float(lonr) * knob_ugwp_ndx4lh
171 allocate( kvg(levs+1), ktg(levs+1) )
172 allocate( krad(levs+1), kion(levs+1) )
173 allocate( zkm(levs), pmb(levs) )
174 allocate( rfdis(levs), rfdist(levs) )
179 pmb(k) = 1.e0*(ak(k) + pref*bk(k))
180 zkm(k) = -hpskm*alog(pmb(k)/pref)
185 call init_global_gwdis_v0(levs, zkm, pmb, kvg, ktg, krad, kion)
194 call init_oro_gws_v0( knob_ugwp_wvspec(1), knob_ugwp_azdir(1), &
195 knob_ugwp_stoch(1), knob_ugwp_effac(1), lonr, kxw, cdmvgwd )
199 do_physb_gwsrcs=.true.
207 if (knob_ugwp_solver==1)
then
209 call initsolv_lsatdis_v0(me, master, knob_ugwp_wvspec(2), knob_ugwp_azdir(2), &
210 knob_ugwp_stoch(2), knob_ugwp_effac(2), do_physb_gwsrcs, kxw )
212 if (knob_ugwp_solver==2)
then
214 call initsolv_wmsdis_v0(me, master, knob_ugwp_wvspec(2), knob_ugwp_azdir(2), &
215 knob_ugwp_stoch(2), knob_ugwp_effac(2), do_physb_gwsrcs, kxw)
220 module_is_initialized = .true.