CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
mynnsfc_wrapper.F90
1
3
6
8
9 !Global variables:
10 INTEGER, PARAMETER :: psi_opt = 0 !0: MYNN
11 !1: GFS
12
13 contains
14
21 subroutine mynnsfc_wrapper_init(do_mynnsfclay, &
22 & errmsg, errflg)
23
24 logical, intent(in) :: do_mynnsfclay
25 character(len=*), intent(out) :: errmsg
26 integer, intent(out) :: errflg
27
28 ! Initialize CCPP error handling variables
29 errmsg = ''
30 errflg = 0
31
32 ! Consistency checks
33 if (.not. do_mynnsfclay) then
34 write(errmsg,fmt='(*(a))') 'Logic error: do_mynnsfclay = .false.'
35 errflg = 1
36 return
37 end if
38
39 ! initialize tables for psih and psim (stable and unstable)
40 CALL psi_init(psi_opt,errmsg,errflg)
41
42 IF (debug_code >= 1) THEN
43 print*,"CHECK INITIALIZATION OF PSI:"
44 print*,"psim_stab(0-1):",psim_stab(0),psim_stab(1)
45 print*,"psih_stab(0-1):",psih_stab(0),psih_stab(1)
46 print*,"psim_unstab(0-1):",psim_unstab(0),psim_unstab(1)
47 print*,"psih_unstab(0-1):",psih_unstab(0),psih_unstab(1)
48 ENDIF
49
50 end subroutine mynnsfc_wrapper_init
51
56 & im,levs, &
57 & itimestep,iter,flag_iter, &
58 & flag_init,flag_restart,lsm,lsm_ruc,&
59 & sigmaf,vegtype,shdmax,ivegsrc, & !intent(in)
60 & z0pert,ztpert, & !intent(in)
61 & redrag,sfc_z0_type, & !intent(in)
62 & isftcflx,iz0tlnd, & !intent(in)
63 & sfclay_compute_flux, & !intent(in)
64 & sfclay_compute_diag, & !intent(in)
65 & delt,dx, &
66 & u, v, t3d, qvsh, qc, prsl, phii, &
67 & exner, ps, pblh, slmsk, &
68 & wet, dry, icy, & !intent(in)
69 & tskin_wat, tskin_lnd, tskin_ice, & !intent(in)
70 & tsurf_wat, tsurf_lnd, tsurf_ice, & !intent(in)
71 & qsfc_wat, qsfc_lnd, qsfc_ice, & !intent(in)
72 & snowh_lnd, snowh_ice, & !intent(in)
73 & znt_wat, znt_lnd, znt_ice, & !intent(inout)
74 & ust_wat, ust_lnd, ust_ice, & !intent(inout)
75 & cm_wat, cm_lnd, cm_ice, & !intent(inout)
76 & ch_wat, ch_lnd, ch_ice, & !intent(inout)
77 & rb_wat, rb_lnd, rb_ice, & !intent(inout)
78 & stress_wat,stress_lnd,stress_ice, & !intent(inout)
79 & fm_wat, fm_lnd, fm_ice, & !intent(inout)
80 & fh_wat, fh_lnd, fh_ice, & !intent(inout)
81 & fm10_wat, fm10_lnd, fm10_ice, & !intent(inout)
82 & fh2_wat, fh2_lnd, fh2_ice, & !intent(inout)
83 & hflx_wat, hflx_lnd, hflx_ice, &
84 & qflx_wat, qflx_lnd, qflx_ice, &
85 & qsfc, qsfc_lnd_ruc, qsfc_ice_ruc, &
86 & ustm, zol, mol, &
87 & rmol, wspd, ch, hflx, qflx, lh, &
88 & flhc, flqc, &
89 & u10, v10, th2, t2, q2, &
90 & wstar, chs2, cqs2, &
91 & spp_wts_sfc, spp_sfc, &
92 & lprnt, errmsg, errflg )
93
94
95! should be moved to inside the mynn:
96 use machine , only : kind_phys
97 use physcons, only : cp => con_cp, &
98 & grav => con_g
99
100! USE module_sf_mynn, only : SFCLAY_mynn
101!tgs - info on iterations:
102! flag_iter- logical, execution or not (im)
103! when iter = 1, flag_iter = .true. for all grids im !
104! when iter = 2, flag_iter = .true. when wind < 2 im !
105! for both land and ocean (when nstf_name1 > 0) im !
106! flag_guess-logical, .true.= guess step to get CD et al im !
107! when iter = 1, flag_guess = .true. when wind < 2 im !
108! when iter = 2, flag_guess = .false. for all grids im !
109
110
111!-------------------------------------------------------------------
112 implicit none
113!-------------------------------------------------------------------
114! --- derive more constant parameters:
115 real(kind_phys), parameter :: g_inv=1./grav
116
117 character(len=*), intent(out) :: errmsg
118 integer, intent(out) :: errflg
119
120!MISC CONFIGURATION OPTIONS
121 INTEGER, PARAMETER :: isfflx = 1
122 logical, intent(in) :: sfclay_compute_flux,sfclay_compute_diag
123 integer, intent(in) :: isftcflx,iz0tlnd
124 integer, intent(in) :: im, levs
125 integer, intent(in) :: iter, itimestep, lsm, lsm_ruc
126 logical, dimension(:), intent(in) :: flag_iter
127 logical, intent(in) :: flag_init,flag_restart,lprnt
128 integer, intent(in) :: ivegsrc
129 integer, intent(in) :: sfc_z0_type ! option for calculating surface roughness length over ocean
130 logical, intent(in) :: redrag ! reduced drag coeff. flag for high wind over sea (j.han)
131 integer, intent(in) :: spp_sfc ! flag for using SPP perturbations
132
133 real(kind_phys), intent(in) :: delt
134
135!Input data
136 integer, dimension(:), intent(in) :: vegtype
137 real(kind_phys), dimension(:), intent(in) :: &
138 & sigmaf,shdmax,z0pert,ztpert
139 real(kind_phys), dimension(:,:), intent(in), optional :: &
140 & spp_wts_sfc
141
142 real(kind_phys), dimension(:,:), &
143 & intent(in) :: phii
144 real(kind_phys), dimension(:,:), &
145 & intent(in) :: exner, PRSL, &
146 & u, v, t3d, qvsh, qc
147
148 logical, dimension(:), intent(in) :: wet, dry, icy
149
150 real(kind_phys), dimension(:), intent(in) :: &
151 & tskin_wat, tskin_lnd, tskin_ice, &
152 & tsurf_wat, tsurf_lnd, tsurf_ice, &
153 & snowh_lnd, snowh_ice
154
155 real(kind_phys), dimension(:), intent(inout) :: &
156 & znt_wat, znt_lnd, znt_ice, &
157 & ust_wat, ust_lnd, ust_ice, &
158 & cm_wat, cm_lnd, cm_ice, &
159 & ch_wat, ch_lnd, ch_ice, &
160 & rb_wat, rb_lnd, rb_ice, &
161 & stress_wat,stress_lnd,stress_ice, &
162 & fm_wat, fm_lnd, fm_ice, &
163 & fh_wat, fh_lnd, fh_ice, &
164 & fm10_wat, fm10_lnd, fm10_ice, &
165 & fh2_wat, fh2_lnd, fh2_ice, &
166 & hflx_wat, hflx_lnd, hflx_ice, &
167 & qflx_wat, qflx_lnd, qflx_ice, &
168 & qsfc_wat, qsfc_lnd, qsfc_ice
169
170!MYNN-2D
171 real(kind_phys), dimension(:), intent(in) :: &
172 & dx, pblh, slmsk, ps
173 real(kind_phys), dimension(:), intent(in),optional :: &
174 & qsfc_lnd_ruc, qsfc_ice_ruc
175
176 real(kind_phys), dimension(:), intent(inout) :: &
177 & hflx, qflx, wspd, qsfc, &
178 & FLHC, FLQC, U10, V10, TH2, T2, Q2, &
179 & rmol, ch
180 real(kind_phys), dimension(:), intent(inout), optional :: &
181 & ustm, zol, mol, lh, wstar, CHS2, CQS2
182 !LOCAL
183 real(kind_phys), dimension(im) :: &
184 & hfx, znt, psim, psih, &
185 & chs, ck, cd, mavail, xland, GZ1OZ0, &
186 & cpm, qgh, qfx, snowh_wat
187
188 real(kind_phys), dimension(im,levs) :: &
189 & dz, th, qv
190
191!MYNN-1D
192 INTEGER :: k, i
193 INTEGER :: IDS,IDE,JDS,JDE,KDS,KDE, &
194 & IMS,IME,JMS,JME,KMS,KME, &
195 & ITS,ITE,JTS,JTE,KTS,KTE
196
197!$acc enter data create(hfx, znt, psim, psih, chs, &
198!$acc mavail, xland, GZ1OZ0, cpm, qgh, &
199!$acc qfx, snowh_wat)
200
201!$acc enter data create(dz, th, qv)
202
203!$acc enter data copyin(rmol, phii, t3d, exner, qvsh, slmsk, xland)
204
205!$acc enter data copyin(dry, wet, icy, znt_lnd, znt_wat, znt_ice, qsfc_lnd, qsfc_ice, qsfc_lnd_ruc, qsfc_ice_ruc)
206
207 ! Initialize CCPP error handling variables
208 errmsg = ''
209 errflg = 0
210
211! if (lprnt) then
212! write(0,*)"=============================================="
213! write(0,*)"in mynn surface layer wrapper..."
214! write(0,*)"flag_init=",flag_init
215! write(0,*)"flag_restart=",flag_restart
216! write(0,*)"iter=",iter
217! endif
218
219!$acc kernels
220 ! prep MYNN-only variables
221 dz(:,:) = 0
222 th(:,:) = 0
223 qv(:,:) = 0
224 hfx(:) = 0
225 qfx(:) = 0
226 rmol(:) = 0
227!$acc end kernels
228
229!$acc parallel loop collapse(2) present(dz, phii, th, t3d, exner, qv, qvsh)
230 do k=1,2 !levs
231 do i=1,im
232 dz(i,k)=(phii(i,k+1) - phii(i,k))*g_inv
233 th(i,k)=t3d(i,k)/exner(i,k)
234 !qc(i,k)=MAX(qgrs(i,k,ntcw),0.0)
235 qv(i,k)=qvsh(i,k)/(1.0 - qvsh(i,k))
236 enddo
237 enddo
238
239!$acc parallel loop present(slmsk, xland, qgh, mavail, cpm, snowh_wat)
240 do i=1,im
241 if (slmsk(i)==1. .or. slmsk(i)==2.)then !sea/land/ice mask (=0/1/2) in FV3
242 xland(i)=1.0 !but land/water = (1/2) in SFCLAY_mynn
243 else
244 xland(i)=2.0
245 endif
246 qgh(i) = 0.0
247 mavail(i) = 1.0
248 !snowh(i) = snowd(i)*800. !mm -> m
249 !znt_lnd(i) = znt_lnd(i)*0.01 !cm -> m
250 !znt_wat(i) = znt_wat(i)*0.01 !cm -> m
251 !znt_ice(i) = znt_ice(i)*0.01 !cm -> m
252 cpm(i) = cp
253 snowh_wat(i) = 0.0
254 enddo
255
256!$acc kernels
257 ! cm -> m
258 where (dry) znt_lnd=znt_lnd*0.01
259 where (wet) znt_wat=znt_wat*0.01
260 where (icy) znt_ice=znt_ice*0.01
261
262 ! qsfc ruc
263 if (lsm==lsm_ruc) then
264 where (dry) qsfc_lnd = qsfc_lnd_ruc/(1.+qsfc_lnd_ruc) ! spec. hum
265 where (icy) qsfc_ice = qsfc_ice_ruc/(1.+qsfc_ice_ruc) ! spec. hum.
266 end if
267!$acc end kernels
268
269! if (lprnt) then
270! write(0,*)"CALLING SFCLAY_mynn; input:"
271! write(0,*)"T:",t3d(1,1),t3d(1,2),t3d(1,3)
272! write(0,*)"TH:",th(1,1),th(1,2),th(1,3)
273! write(0,*)"u:",u(1,1:3)
274! write(0,*)"v:",v(1,1:3)
275! !write(0,*)"qv:",qv(1,1:3,1)
276! write(0,*)"p:",prsl(1,1)
277! write(0,*)"dz:",dz(1,1)," qsfc=",qsfc(1)," rmol:",rmol(1)
278! write(0,*)" land water ice"
279! write(0,*)dry(1),wet(1),icy(1)
280! write(0,*)"ust:",ust_lnd(1),ust_wat(1),ust_ice(1)
281! write(0,*)"Tsk:",tskin_lnd(1),tskin_wat(1),tskin_ice(1)
282! write(0,*)"Tsurf:",tsurf_lnd(1),tsurf_wat(1),tsurf_ice(1)
283! write(0,*)"Qsfc:",qsfc_lnd(1),qsfc_wat(1),qsfc_ice(1)
284! write(0,*)"sno:",snowh_lnd(1),snowh_wat(1),snowh_ice(1)
285! write(0,*)"znt:",znt_lnd(1),znt_wat(1),znt_ice(1)
286! !write(0,*)"HFX:",hfx(1)," qfx",qfx(1)
287! write(0,*)"qsfc:",qsfc(1)," ps:",ps(1)
288! write(0,*)"wspd:",wspd(1),"rb=",rb_wat(1)
289! write(0,*)"delt=",delt," im=",im," levs=",levs
290! write(0,*)"flag_init=",flag_init
291! write(0,*)"flag_restart=",flag_restart
292! write(0,*)"iter=",iter
293! write(0,*)"zlvl(1)=",dz(1,1)*0.5
294! write(0,*)"PBLH=",pblh(1)," xland=",xland(1)
295! endif
296
297!$acc exit data delete(qsfc_lnd_ruc, qsfc_ice_ruc)
298!$acc exit data delete(phii, qvsh, slmsk)
299
300 CALL sfclay_mynn( &
301 u3d=u,v3d=v,t3d=t3d,qv3d=qv,p3d=prsl,dz8w=dz, &
302 th3d=th,pi3d=exner,qc3d=qc, &
303 psfcpa=ps,pblh=pblh,mavail=mavail,xland=xland,dx=dx, &
304 isfflx=isfflx,isftcflx=isftcflx,lsm=lsm,lsm_ruc=lsm_ruc, &
305 iz0tlnd=iz0tlnd,psi_opt=psi_opt, &
306 compute_flux=sfclay_compute_flux,compute_diag=sfclay_compute_diag,&
307 sigmaf=sigmaf,vegtype=vegtype,shdmax=shdmax,ivegsrc=ivegsrc, & !intent(in)
308 z0pert=z0pert,ztpert=ztpert, & !intent(in)
309 redrag=redrag,sfc_z0_type=sfc_z0_type, & !intent(in)
310 itimestep=itimestep,iter=iter,flag_iter=flag_iter, &
311 flag_restart=flag_restart, &
312 wet=wet, dry=dry, icy=icy, & !intent(in)
313 tskin_wat=tskin_wat, tskin_lnd=tskin_lnd, tskin_ice=tskin_ice, & !intent(in)
314 tsurf_wat=tsurf_wat, tsurf_lnd=tsurf_lnd, tsurf_ice=tsurf_ice, & !intent(in)
315 qsfc_wat=qsfc_wat, qsfc_lnd=qsfc_lnd, qsfc_ice=qsfc_ice, & !intent(in)
316 snowh_wat=snowh_wat, snowh_lnd=snowh_lnd, snowh_ice=snowh_ice, & !intent(in)
317 znt_wat=znt_wat, znt_lnd=znt_lnd, znt_ice=znt_ice, & !intent(inout)
318 ust_wat=ust_wat, ust_lnd=ust_lnd, ust_ice=ust_ice, & !intent(inout)
319 cm_wat=cm_wat, cm_lnd=cm_lnd, cm_ice=cm_ice, & !intent(inout)
320 ch_wat=ch_wat, ch_lnd=ch_lnd, ch_ice=ch_ice, & !intent(inout)
321 rb_wat=rb_wat, rb_lnd=rb_lnd, rb_ice=rb_ice, & !intent(inout)
322 stress_wat=stress_wat,stress_lnd=stress_lnd,stress_ice=stress_ice, & !intent(inout)
323 fm_wat=fm_wat, fm_lnd=fm_lnd, fm_ice=fm_ice, & !intent(inout)
324 fh_wat=fh_wat, fh_lnd=fh_lnd, fh_ice=fh_ice, & !intent(inout)
325 fm10_wat=fm10_wat, fm10_lnd=fm10_lnd, fm10_ice=fm10_ice, & !intent(inout)
326 fh2_wat=fh2_wat, fh2_lnd=fh2_lnd, fh2_ice=fh2_ice, & !intent(inout)
327 hflx_wat=hflx_wat, hflx_lnd=hflx_lnd, hflx_ice=hflx_ice, &
328 qflx_wat=qflx_wat, qflx_lnd=qflx_lnd, qflx_ice=qflx_ice, &
329 ch=ch,chs=chs,chs2=chs2,cqs2=cqs2,cpm=cpm, &
330 znt=znt,ustm=ustm,zol=zol,mol=mol,rmol=rmol, &
331 psim=psim,psih=psih, &
332 hflx=hflx,hfx=hfx,qflx=qflx,qfx=qfx,lh=lh,flhc=flhc,flqc=flqc, &
333 qgh=qgh,qsfc=qsfc, &
334 u10=u10,v10=v10,th2=th2,t2=t2,q2=q2, &
335 gz1oz0=gz1oz0,wspd=wspd,wstar=wstar, &
336 spp_sfc=spp_sfc,pattern_spp_sfc=spp_wts_sfc, &
337 ids=1,ide=im, jds=1,jde=1, kds=1,kde=levs, &
338 ims=1,ime=im, jms=1,jme=1, kms=1,kme=levs, &
339 its=1,ite=im, jts=1,jte=1, kts=1,kte=levs, &
340 errmsg=errmsg, errflg=errflg )
341 if (errflg/=0) return
342
343!$acc exit data delete(hfx, znt, psim, psih, chs, &
344!$acc mavail, xland, GZ1OZ0, cpm, qgh, &
345!$acc qfx, snowh_wat, t3d, exner)
346!$acc exit data delete(dz, th, qv)
347!$acc exit data copyout(rmol)
348!$acc exit data copyout(qsfc_lnd, qsfc_ice)
349
350 !! POST MYNN SURFACE LAYER (INTERSTITIAL) WORK:
351 !do i = 1, im
352 ! !* Taken from sfc_nst.f
353 ! !* ch = surface exchange coeff heat & moisture(m/s) im
354 ! !* rch(i) = rho_a(i) * cp * ch(i) * wind(i)
355 ! !* hflx(i) = rch(i) * (tsurf(i) - theta1(i)) !K m s-1
356 ! !* hflx(i)=hfx(i)/(rho(i,1)*cp) - now calculated inside module_sf_mynn.F90
357 ! !* Taken from sfc_nst.f
358 ! !* evap(i) = elocp * rch(i) * (qss(i) - q0(i)) !kg kg-1 m s-1
359 ! !NOTE: evap & qflx will be solved for later
360 ! !qflx(i)=QFX(i)/
361 ! !evap(i)=QFX(i) !or /rho ??
362 ! ! DH* note - this could be automated (CCPP knows how to convert m to cm)
363 ! znt_lnd(i)=znt_lnd(i)*100. !m -> cm
364 ! znt_wat(i)=znt_wat(i)*100.
365 ! znt_ice(i)=znt_ice(i)*100.
366 !enddo
367
368!$acc kernels
369 ! m -> cm
370 where (dry) znt_lnd=znt_lnd*100.
371 where (wet) znt_wat=znt_wat*100.
372 where (icy) znt_ice=znt_ice*100.
373!$acc end kernels
374
375!$acc exit data delete(dry, wet, icy)
376!$acc exit data copyout(znt_lnd, znt_wat, znt_ice)
377
378! if (lprnt) then
379! write(0,*)
380! write(0,*)"finished with mynn_surface layer; output:"
381! write(0,*)" land water ice"
382! write(0,*)dry(1),wet(1),icy(1)
383! write(0,*)"ust:",ust_lnd(1),ust_wat(1),ust_ice(1)
384! write(0,*)"Tsk:",tskin_lnd(1),tskin_wat(1),tskin_ice(1)
385! write(0,*)"Tsurf:",tsurf_lnd(1),tsurf_wat(1),tsurf_ice(1)
386! write(0,*)"Qsfc:",qsfc_lnd(1),qsfc_wat(1),qsfc_ice(1)
387! write(0,*)"sno:",snowh_lnd(1),snowh_wat(1),snowh_ice(1)
388! write(0,*)"znt (cm):",znt_lnd(1),znt_wat(1),znt_ice(1)
389! write(0,*)"cm:",cm_lnd(1),cm_wat(1),cm_ice(1)
390! write(0,*)"ch:",ch_lnd(1),ch_wat(1),ch_ice(1)
391! write(0,*)"fm:",fm_lnd(1),fm_wat(1),fm_ice(1)
392! write(0,*)"fh:",fh_lnd(1),fh_wat(1),fh_ice(1)
393! write(0,*)"rb:",rb_lnd(1),rb_wat(1),rb_ice(1)
394! write(0,*)"xland=",xland(1)," wstar:",wstar(1)
395! write(0,*)"HFX:",hfx(1)," qfx:",qfx(1)
396! write(0,*)"HFLX:",hflx(1)," evap:",evap(1)
397! write(0,*)"qsfc:",qsfc(1)," ps:",ps(1)," wspd:",wspd(1)
398! write(0,*)"ZOL:",ZOL(1)," rmol=",rmol(1)
399! write(0,*)"psim:",psim(1)," psih=",psih(1)," pblh:",pblh(1)
400! write(0,*)"FLHC=",FLHC(1)," CHS=",CHS(1)
401! write(0,*)
402! endif
403
404
405 END SUBROUTINE mynnsfc_wrapper_run
406
408
409END MODULE mynnsfc_wrapper
subroutine mynnsfc_wrapper_init(do_mynnsfclay, errmsg, errflg)
subroutine psi_init(psi_opt, errmsg, errflg)
subroutine sfclay_mynn(u3d, v3d, t3d, qv3d, p3d, dz8w, th3d, pi3d, qc3d, psfcpa, pblh, mavail, xland, dx, isfflx, isftcflx, lsm, lsm_ruc, compute_flux, compute_diag, iz0tlnd, psi_opt, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, redrag, sfc_z0_type, itimestep, iter, flag_iter, flag_restart, wet, dry, icy, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, qsfc_wat, qsfc_lnd, qsfc_ice, snowh_wat, snowh_lnd, snowh_ice, znt_wat, znt_lnd, znt_ice, ust_wat, ust_lnd, ust_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, fm_wat, fm_lnd, fm_ice, fh_wat, fh_lnd, fh_ice, fm10_wat, fm10_lnd, fm10_ice, fh2_wat, fh2_lnd, fh2_ice, hflx_wat, hflx_lnd, hflx_ice, qflx_wat, qflx_lnd, qflx_ice, ch, chs, chs2, cqs2, cpm, znt, ustm, zol, mol, rmol, psim, psih, hflx, hfx, qflx, qfx, lh, flhc, flqc, qgh, qsfc, u10, v10, th2, t2, q2, gz1oz0, wspd, wstar, spp_sfc, pattern_spp_sfc, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte, errmsg, errflg)
This subroutine.
subroutine mynnsfc_wrapper_run(im, levs, itimestep, iter, flag_iter, flag_init, flag_restart, lsm, lsm_ruc, sigmaf, vegtype, shdmax, ivegsrc, z0pert, ztpert, redrag, sfc_z0_type, isftcflx, iz0tlnd, sfclay_compute_flux, sfclay_compute_diag, delt, dx, u, v, t3d, qvsh, qc, prsl, phii, exner, ps, pblh, slmsk, wet, dry, icy, tskin_wat, tskin_lnd, tskin_ice, tsurf_wat, tsurf_lnd, tsurf_ice, qsfc_wat, qsfc_lnd, qsfc_ice, snowh_lnd, snowh_ice, znt_wat, znt_lnd, znt_ice, ust_wat, ust_lnd, ust_ice, cm_wat, cm_lnd, cm_ice, ch_wat, ch_lnd, ch_ice, rb_wat, rb_lnd, rb_ice, stress_wat, stress_lnd, stress_ice, fm_wat, fm_lnd, fm_ice, fh_wat, fh_lnd, fh_ice, fm10_wat, fm10_lnd, fm10_ice, fh2_wat, fh2_lnd, fh2_ice, hflx_wat, hflx_lnd, hflx_ice, qflx_wat, qflx_lnd, qflx_ice, qsfc, qsfc_lnd_ruc, qsfc_ice_ruc, ustm, zol, mol, rmol, wspd, ch, hflx, qflx, lh, flhc, flqc, u10, v10, th2, t2, q2, wstar, chs2, cqs2, spp_wts_sfc, spp_sfc, lprnt, errmsg, errflg)
This module contain the RUC land surface model driver.
Definition lsm_ruc.F90:5
This module contain routines to calculate stability parameters, kinematic siscosity in MYNN surface l...
This Model ontains all of the code related to running the MYNN surface layer scheme.