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