@@ -19,7 +19,9 @@ module mpas_atmphys_driver_microphysics
1919!wrf physics:
2020 use module_mp_kessler
2121 use module_mp_thompson
22- use module_mp_wsm6
22+ use module_mp_wsm6,only: wsm6
23+ use mp_wsm6,only: mp_wsm6_init,refl10cm_wsm6
24+
2325
2426 implicit none
2527 private
@@ -256,8 +258,16 @@ subroutine microphysics_init(dminfo,configs,mesh,sfc_input,diag_physics)
256258!local pointer:
257259 character (len= StrKIND),pointer:: microp_scheme
258260
261+ !CCPP- compliant flags:
262+ character (len= StrKIND):: errmsg
263+ integer :: errflg
264+
259265!-----------------------------------------------------------------------------------------------------------------
260266
267+ !initialization of CCPP- compliant flags:
268+ errmsg = ' '
269+ errflg = 0
270+
261271 call mpas_pool_get_config(configs,' config_microp_scheme' ,microp_scheme)
262272
263273 microp_select: select case(microp_scheme)
@@ -267,7 +277,8 @@ subroutine microphysics_init(dminfo,configs,mesh,sfc_input,diag_physics)
267277 call init_thompson_clouddroplets_forMPAS(mesh,sfc_input,diag_physics)
268278
269279 case(" mp_wsm6" )
270- call wsm6init(rho_a,rho_r,rho_s,cliq,cpv,hail_opt,.false. )
280+ call mp_wsm6_init(den0= rho_a,denr= rho_r,dens= rho_s,cl= cliq,cpv= cpv, &
281+ hail_opt= hail_opt,errmsg= errmsg,errflg= errflg)
271282
272283 case default
273284
@@ -301,10 +312,18 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
301312!local variables and arrays:
302313 integer :: istep
303314
315+ !CCPP- compliant flags:
316+ character (len= StrKIND):: errmsg
317+ integer :: errflg
318+
304319!-----------------------------------------------------------------------------------------------------------------
305320!call mpas_log_write(' ' )
306321!call mpas_log_write(' ---enter subroutine driver_microphysics:' )
307322
323+ !initialization of CCPP- compliant flags:
324+ errmsg = ' '
325+ errflg = 0
326+
308327 call mpas_pool_get_config(configs,' config_microp_scheme' ,microp_scheme)
309328
310329!... allocation of microphysics arrays:
@@ -363,27 +382,30 @@ subroutine driver_microphysics(configs,mesh,state,time_lev,diag,diag_physics,ten
363382 call mpas_timer_stop(' Thompson' )
364383
365384 case (" mp_wsm6" )
366- call mpas_timer_start(' WSM6 ' )
385+ call mpas_timer_start(' mp_wsm6 ' )
367386 call wsm6( &
368- th = th_p , q = qv_p , qc = qc_p , &
369- qr = qr_p , qi = qi_p , qs = qs_p , &
370- qg = qg_p , den = rho_p , pii = pi_p , &
371- p = pres_p , delz = dz_p , delt = dt_microp , &
372- g = gravity , cpd = cp , cpv = cpv , &
373- rd = R_d , rv = R_v , t0c = svpt0 , &
374- ep1 = ep_1 , ep2 = ep_2 , qmin = epsilon , &
375- xls = xls , xlv0 = xlv , xlf0 = xlf , &
376- den0 = rho_a , denr = rho_w , cliq = cliq , &
377- cice = cice , psat = psat , rain = rainnc_p , &
378- rainncv = rainncv_p , snow = snownc_p , snowncv = snowncv_p , &
379- graupel = graupelnc_p , graupelncv = graupelncv_p , sr = sr_p , &
380- re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
381- has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
382- ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
383- ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
384- its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
387+ th = th_p , q = qv_p , qc = qc_p , &
388+ qr = qr_p , qi = qi_p , qs = qs_p , &
389+ qg = qg_p , den = rho_p , pii = pi_p , &
390+ p = pres_p , delz = dz_p , delt = dt_microp , &
391+ g = gravity , cpd = cp , cpv = cpv , &
392+ rd = R_d , rv = R_v , t0c = svpt0 , &
393+ ep1 = ep_1 , ep2 = ep_2 , qmin = epsilon , &
394+ xls = xls , xlv0 = xlv , xlf0 = xlf , &
395+ den0 = rho_a , denr = rho_w , cliq = cliq , &
396+ cice = cice , psat = psat , rain = rainnc_p , &
397+ rainncv = rainncv_p , snow = snownc_p , snowncv = snowncv_p , &
398+ graupel = graupelnc_p , graupelncv = graupelncv_p , sr = sr_p , &
399+ re_cloud = recloud_p , re_ice = reice_p , re_snow = resnow_p , &
400+ has_reqc = has_reqc , has_reqi = has_reqi , has_reqs = has_reqs , &
401+ re_qc_bg = re_qc_bg , re_qi_bg = re_qi_bg , re_qs_bg = re_qs_bg , &
402+ re_qc_max = re_qc_max , re_qi_max = re_qi_max , re_qs_max = re_qs_max , &
403+ errmsg = errmsg , errflg = errflg , &
404+ ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
405+ ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
406+ its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
385407 )
386- call mpas_timer_stop(' WSM6 ' )
408+ call mpas_timer_stop(' mp_wsm6 ' )
387409
388410 case default
389411
@@ -640,7 +662,7 @@ subroutine compute_radar_reflectivity(configs,diag_physics,its,ite)
640662 zp(k) = z_p(i,k,j) - z_p(i,1 ,j)+ 0.5 * dz_p(i,1 ,j) ! height AGL
641663 enddo
642664
643- call refl10cm_wsm6(qv1d,qr1d,qs1d,qg1d,t1d,p1d,dBZ1d,kts,kte,i,j )
665+ call refl10cm_wsm6(qv1d,qr1d,qs1d,qg1d,t1d,p1d,dBZ1d,kts,kte)
644666
645667 kp = 1
646668 do k = kts,kte
0 commit comments