@@ -459,9 +459,6 @@ subroutine radiation_sw_from_MPAS(configs,mesh,state,time_lev,diag_physics,atm_i
459459 swupbc_p(i,j) = 0.0_RKIND
460460 swupt_p(i,j) = 0.0_RKIND
461461 swuptc_p(i,j) = 0.0_RKIND
462- swddir_p(i,j) = 0.0_RKIND
463- swddni_p(i,j) = 0.0_RKIND
464- swddif_p(i,j) = 0.0_RKIND
465462 enddo
466463
467464 do k = kts,kte
@@ -472,21 +469,28 @@ subroutine radiation_sw_from_MPAS(configs,mesh,state,time_lev,diag_physics,atm_i
472469 enddo
473470
474471 aer_opt = 0
475- do n = 1 ,nbndsw
476- do j = jts,jte
477- do k = kts,kte
478- do i = its,ite
479- tauaer_p(i,k,j,n) = 0._RKIND
480- ssaaer_p(i,k,j,n) = 1._RKIND
481- asyaer_p(i,k,j,n) = 0._RKIND
482- enddo
483- enddo
484- enddo
485- enddo
486472
487473 radiation_sw_select: select case (trim (radt_sw_scheme))
488474
489475 case(" rrtmg_sw" )
476+ do j = jts,jte
477+ do i = its,ite
478+ swddir_p(i,j) = 0.0_RKIND
479+ swddni_p(i,j) = 0.0_RKIND
480+ swddif_p(i,j) = 0.0_RKIND
481+ enddo
482+ enddo
483+ do n = 1 ,nbndsw
484+ do j = jts,jte
485+ do k = kts,kte
486+ do i = its,ite
487+ tauaer_p(i,k,j,n) = 0._RKIND
488+ ssaaer_p(i,k,j,n) = 1._RKIND
489+ asyaer_p(i,k,j,n) = 0._RKIND
490+ enddo
491+ enddo
492+ enddo
493+ enddo
490494 microp_select: select case(microp_scheme)
491495 case(" mp_thompson" ," mp_thompson_aerosols" ," mp_wsm6" )
492496 if (config_microp_re) then
@@ -705,12 +709,15 @@ subroutine radiation_sw_from_MPAS(configs,mesh,state,time_lev,diag_physics,atm_i
705709 end subroutine radiation_sw_from_MPAS
706710
707711!=================================================================================================================
708- subroutine radiation_sw_to_MPAS (diag_physics ,tend_physics ,its ,ite )
712+ subroutine radiation_sw_to_MPAS (configs , diag_physics ,tend_physics ,its ,ite )
709713!=================================================================================================================
710714
711715!input arguments:
712716 type(mpas_pool_type),intent (inout ):: diag_physics
713717 type(mpas_pool_type),intent (inout ):: tend_physics
718+ type(mpas_pool_type),intent (in ):: configs
719+ !local pointers:
720+ character (len= StrKIND),pointer:: radt_sw_scheme
714721
715722 integer ,intent (in ):: its,ite
716723
@@ -743,8 +750,9 @@ subroutine radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
743750 call mpas_pool_get_array(diag_physics,' swddif' ,swddif )
744751 call mpas_pool_get_array(tend_physics,' rthratensw' ,rthratensw)
745752
746- do j = jts,jte
753+ call mpas_pool_get_config(configs, ' config_radt_sw_scheme ' ,radt_sw_scheme)
747754
755+ do j = jts,jte
748756 do i = its,ite
749757 coszr(i) = coszr_p(i,j)
750758 gsw(i) = gsw_p(i,j)
@@ -757,11 +765,18 @@ subroutine radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
757765 swupbc(i) = swupbc_p(i,j)
758766 swupt(i) = swupt_p(i,j)
759767 swuptc(i) = swuptc_p(i,j)
760- swddir(i) = swddir_p(i,j)
761- swddni(i) = swddni_p(i,j)
762- swddif(i) = swddif_p(i,j)
763768 enddo
764769
770+ radiation_sw_select: select case (trim (radt_sw_scheme))
771+ case(" rrtmg_sw" )
772+ do i = its,ite
773+ swddir(i) = swddir_p(i,j)
774+ swddni(i) = swddni_p(i,j)
775+ swddif(i) = swddif_p(i,j)
776+ enddo
777+ case default
778+ end select radiation_sw_select
779+
765780 do k = kts,kte
766781 do i = its,ite
767782 rthratensw(k,i) = rthratensw_p(i,k,j)
@@ -981,7 +996,8 @@ subroutine driver_radiation_sw(itimestep,configs,mesh,state,time_lev,diag_physic
981996 end select radiation_sw_select
982997
983998!copy local arrays to MPAS grid:
984- call radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
999+ !mchen call radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
1000+ call radiation_sw_to_MPAS(configs,diag_physics,tend_physics,its,ite)
9851001
9861002!call mpas_log_write(' --- end subroutine driver_radiation_sw.' )
9871003
0 commit comments