@@ -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,30 @@ 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+
484+ do n = 1 ,nbndsw
485+ do j = jts,jte
486+ do k = kts,kte
487+ do i = its,ite
488+ tauaer_p(i,k,j,n) = 0._RKIND
489+ ssaaer_p(i,k,j,n) = 1._RKIND
490+ asyaer_p(i,k,j,n) = 0._RKIND
491+ enddo
492+ enddo
493+ enddo
494+ enddo
495+
490496 microp_select: select case(microp_scheme)
491497 case(" mp_thompson" ," mp_thompson_aerosols" ," mp_wsm6" )
492498 if (config_microp_re) then
@@ -705,12 +711,15 @@ subroutine radiation_sw_from_MPAS(configs,mesh,state,time_lev,diag_physics,atm_i
705711 end subroutine radiation_sw_from_MPAS
706712
707713!=================================================================================================================
708- subroutine radiation_sw_to_MPAS (diag_physics ,tend_physics ,its ,ite )
714+ subroutine radiation_sw_to_MPAS (configs , diag_physics ,tend_physics ,its ,ite )
709715!=================================================================================================================
710716
711717!input arguments:
712718 type(mpas_pool_type),intent (inout ):: diag_physics
713719 type(mpas_pool_type),intent (inout ):: tend_physics
720+ type(mpas_pool_type),intent (in ):: configs
721+ !local pointers:
722+ character (len= StrKIND),pointer:: radt_sw_scheme
714723
715724 integer ,intent (in ):: its,ite
716725
@@ -743,6 +752,8 @@ subroutine radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
743752 call mpas_pool_get_array(diag_physics,' swddif' ,swddif )
744753 call mpas_pool_get_array(tend_physics,' rthratensw' ,rthratensw)
745754
755+ call mpas_pool_get_config(configs,' config_radt_sw_scheme' ,radt_sw_scheme)
756+
746757 do j = jts,jte
747758
748759 do i = its,ite
@@ -757,11 +768,18 @@ subroutine radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
757768 swupbc(i) = swupbc_p(i,j)
758769 swupt(i) = swupt_p(i,j)
759770 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)
763771 enddo
764772
773+ radiation_sw_select: select case (trim (radt_sw_scheme))
774+ case(" rrtmg_sw" )
775+ do i = its,ite
776+ swddir(i) = swddir_p(i,j)
777+ swddni(i) = swddni_p(i,j)
778+ swddif(i) = swddif_p(i,j)
779+ enddo
780+ case default
781+ end select radiation_sw_select
782+
765783 do k = kts,kte
766784 do i = its,ite
767785 rthratensw(k,i) = rthratensw_p(i,k,j)
@@ -981,7 +999,7 @@ subroutine driver_radiation_sw(itimestep,configs,mesh,state,time_lev,diag_physic
981999 end select radiation_sw_select
9821000
9831001!copy local arrays to MPAS grid:
984- call radiation_sw_to_MPAS(diag_physics,tend_physics,its,ite)
1002+ call radiation_sw_to_MPAS(configs, diag_physics,tend_physics,its,ite)
9851003
9861004!call mpas_log_write(' --- end subroutine driver_radiation_sw.' )
9871005
0 commit comments