diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index f9d4483a4..15c615f80 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit f9d4483a45fa9b538184b1bd607faf203511be92 +Subproject commit 15c615f80e745848d0af50a47174e7c6dc851236 diff --git a/atmos_model.F90 b/atmos_model.F90 index a002efdad..c024ea295 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -312,13 +312,13 @@ subroutine update_atmos_radiation_physics (Atmos) end if if(IPD_Control%do_ca)then - if(IPD_Control%ca_sgs == .true.)then + if(IPD_Control%ca_sgs)then call cellular_automata_sgs(IPD_Control%kdt,IPD_Data(:)%Statein,IPD_Data(:)%Coupling,IPD_Data(:)%Intdiag,Atm_block%nblks,IPD_Control%levs, & IPD_Control%nca,IPD_Control%ncells,IPD_Control%nlives,IPD_Control%nfracseed,& IPD_Control%nseed,IPD_Control%nthresh,IPD_Control%ca_global,IPD_Control%ca_sgs,IPD_Control%iseed_ca,& IPD_Control%ca_smooth,IPD_Control%nspinup,Atm_block%blksz(1)) endif - if(IPD_Control%ca_global == .true.)then + if(IPD_Control%ca_global)then call cellular_automata_global(IPD_Control%kdt,IPD_Data(:)%Statein,IPD_Data(:)%Coupling,IPD_Data(:)%Intdiag,Atm_block%nblks,IPD_Control%levs, & IPD_Control%nca_g,IPD_Control%ncells_g,IPD_Control%nlives_g,IPD_Control%nfracseed,& IPD_Control%nseed_g,IPD_Control%nthresh,IPD_Control%ca_global,IPD_Control%ca_sgs,IPD_Control%iseed_ca,& @@ -661,13 +661,13 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) end if ! *DH if(IPD_Control%do_ca)then - if(IPD_Control%ca_sgs == .true.)then + if(IPD_Control%ca_sgs)then call cellular_automata_sgs(IPD_Control%kdt,IPD_Data(:)%Statein,IPD_Data(:)%Coupling,IPD_Data(:)%Intdiag,Atm_block%nblks,IPD_Control%levs, & IPD_Control%nca,IPD_Control%ncells,IPD_Control%nlives,IPD_Control%nfracseed,& IPD_Control%nseed,IPD_Control%nthresh,IPD_Control%ca_global,IPD_Control%ca_sgs,IPD_Control%iseed_ca,& IPD_Control%ca_smooth,IPD_Control%nspinup,Atm_block%blksz(1)) endif - if(IPD_Control%ca_global == .true.)then + if(IPD_Control%ca_global)then call cellular_automata_global(IPD_Control%kdt,IPD_Data(:)%Statein,IPD_Data(:)%Coupling,IPD_Data(:)%Intdiag,Atm_block%nblks,IPD_Control%levs, & IPD_Control%nca_g,IPD_Control%ncells_g,IPD_Control%nlives_g,IPD_Control%nfracseed,& IPD_Control%nseed_g,IPD_Control%nthresh,IPD_Control%ca_global,IPD_Control%ca_sgs,IPD_Control%iseed_ca,& diff --git a/ccpp/framework b/ccpp/framework index 6890b2f07..7c3673d3a 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 6890b2f0765abe0ce4b0dcecf469437d2183d36e +Subproject commit 7c3673d3ab5858e17bf2253867f548b24c47eb49 diff --git a/ccpp/physics b/ccpp/physics index 7b1e66cfa..66376d555 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 7b1e66cfac3add277ab6e210590b76313d76048a +Subproject commit 66376d5556d14d704dee67740125f25606fe7c6c diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index 60cd1850f..a71c5cc9d 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -2,6 +2,11 @@ + + + fv_sat_adj + + GFS_time_vary_pre @@ -61,7 +66,8 @@ GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update - ozphys + ozphys_2015 + h2ophys GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml index 9b47f8bbb..1089022ea 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml @@ -2,6 +2,11 @@ + + + fv_sat_adj + + GFS_time_vary_pre @@ -61,7 +66,8 @@ GFS_GWD_generic_post rayleigh_damp GFS_suite_stateout_update - ozphys + ozphys_2015 + h2ophys GFS_DCNV_generic_pre get_phi_fv3 GFS_suite_interstitial_3 diff --git a/gfsphysics/CCPP_layer/CCPP_typedefs.F90 b/gfsphysics/CCPP_layer/CCPP_typedefs.F90 index b7927dea5..4685d856d 100644 --- a/gfsphysics/CCPP_layer/CCPP_typedefs.F90 +++ b/gfsphysics/CCPP_layer/CCPP_typedefs.F90 @@ -85,7 +85,8 @@ module CCPP_typedefs ! CCPP_interstitial_type !----------------------------- subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed, npz, ng, & - dt_atmos, p_split, k_split, zvir, p_ref, ak, bk, do_qa, & + dt_atmos, p_split, k_split, zvir, p_ref, ak, bk, & + do_ql, do_qi, do_qr, do_qs, do_qg, do_qa, & kappa, hydrostatic, do_sat_adj, & delp, delz, area, peln, phis, pkz, pt, & qvi, qv, ql, qi, qr, qs, qg, qc, q_con, & @@ -111,6 +112,11 @@ subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed real(kind_dyn), intent(in) :: p_ref real(kind_dyn), intent(in) :: ak(:) real(kind_dyn), intent(in) :: bk(:) + logical, intent(in) :: do_ql + logical, intent(in) :: do_qi + logical, intent(in) :: do_qr + logical, intent(in) :: do_qs + logical, intent(in) :: do_qg logical, intent(in) :: do_qa real(kind_dyn), intent(in) :: kappa logical, intent(in) :: hydrostatic @@ -194,14 +200,12 @@ subroutine interstitial_create (Interstitial, is, ie, isd, ied, js, je, jsd, jed Interstitial%pt => pt Interstitial%qvi => qvi Interstitial%qv => qv - Interstitial%ql => ql - Interstitial%qi => qi - Interstitial%qr => qr - Interstitial%qs => qs - Interstitial%qg => qg - if (do_qa) then - Interstitial%qc => qc - end if + if (do_ql) Interstitial%ql => ql + if (do_qi) Interstitial%qi => qi + if (do_qr) Interstitial%qr => qr + if (do_qs) Interstitial%qs => qs + if (do_qg) Interstitial%qg => qg + if (do_qa) Interstitial%qc => qc #ifdef USE_COND Interstitial%npzq_con = npz #else @@ -338,14 +342,12 @@ subroutine interstitial_print(Interstitial) write (0,*) 'sum(Interstitial%pt) = ', Interstitial%pt write (0,*) 'sum(Interstitial%qvi) = ', Interstitial%qvi write (0,*) 'sum(Interstitial%qv) = ', Interstitial%qv - write (0,*) 'sum(Interstitial%ql) = ', Interstitial%ql - write (0,*) 'sum(Interstitial%qi) = ', Interstitial%qi - write (0,*) 'sum(Interstitial%qr) = ', Interstitial%qr - write (0,*) 'sum(Interstitial%qs) = ', Interstitial%qs - write (0,*) 'sum(Interstitial%qg) = ', Interstitial%qg - if (associated(Interstitial%qc)) then - write (0,*) 'sum(Interstitial%qc) = ', Interstitial%qc - end if + if (associated(Interstitial%ql)) write (0,*) 'sum(Interstitial%ql) = ', Interstitial%ql + if (associated(Interstitial%qi)) write (0,*) 'sum(Interstitial%qi) = ', Interstitial%qi + if (associated(Interstitial%qr)) write (0,*) 'sum(Interstitial%qr) = ', Interstitial%qr + if (associated(Interstitial%qs)) write (0,*) 'sum(Interstitial%qs) = ', Interstitial%qs + if (associated(Interstitial%qg)) write (0,*) 'sum(Interstitial%qg) = ', Interstitial%qg + if (associated(Interstitial%qc)) write (0,*) 'sum(Interstitial%qc) = ', Interstitial%qc write (0,*) 'sum(Interstitial%q_con) = ', Interstitial%q_con write (0,*) 'Interstitial%hydrostatic = ', Interstitial%hydrostatic write (0,*) 'Interstitial%nwat = ', Interstitial%nwat diff --git a/io/makefile b/io/makefile index 244842a01..eda6adb39 100644 --- a/io/makefile +++ b/io/makefile @@ -18,7 +18,7 @@ $(info $$ESMF_INC is [${ESMF_INC}]) LIBRARY = libfv3io.a -FFLAGS += -I$(FMS_DIR) -I../gfsphysics -I../ipd -I../namphysics +FFLAGS += -I$(FMS_DIR) -I../gfsphysics -I../ipd ifneq (,$(findstring NO_INLINE_POST,$(CPPDEFS))) POST_SRC = \ diff --git a/ipd/makefile b/ipd/makefile index f7a358ce5..88cc6cbd1 100644 --- a/ipd/makefile +++ b/ipd/makefile @@ -17,7 +17,7 @@ endif LIBRARY = libipd.a -FFLAGS += -I$(FMS_DIR) -I../gfsphysics -I../namphysics +FFLAGS += -I$(FMS_DIR) -I../gfsphysics CPPDEFS += -DNEW_TAUCTMAX -DSMALL_PE -DNEMS_GSM -DINTERNAL_FILE_NML