Skip to content

Commit ef0b686

Browse files
committed
Fix bugs thay cuae model crash when CAM radiation is activated
1 parent 447de92 commit ef0b686

1 file changed

Lines changed: 36 additions & 20 deletions

File tree

src/core_atmosphere/physics/mpas_atmphys_driver_radiation_sw.F

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)