From f9303aa939cbe0f70a148bc86c435424234c5745 Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Tue, 7 Sep 2021 15:25:12 -0600 Subject: [PATCH 01/70] submodule pointer for ccpp-physics --- .gitmodules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index afe6f27dd..f05918189 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,5 @@ branch = main [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = main + url = https://github.com/llpcarson/ccpp-physics + branch = feature/stoch_spp From aedc3d42c536b4ce49df2036bca4419cba0e9c65 Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Mon, 27 Sep 2021 10:34:59 -0600 Subject: [PATCH 02/70] update submodules --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 922fe4494..bc1826932 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 922fe44948acddaec6bc08d2392beaa047fe2587 +Subproject commit bc18269320395826896072308f3d50cf056880ff diff --git a/ccpp/physics b/ccpp/physics index 1f8cf92bb..c3ff637b6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 1f8cf92bb4d562ba1aa53966fc361fcd1331c2b3 +Subproject commit c3ff637b6b8c3c68e34aa835d161a852ed962d64 From 68368e2665c2023bd2ec1f4d8022cbcd7b62c12e Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Mon, 27 Sep 2021 10:47:52 -0600 Subject: [PATCH 03/70] update submodule atmos_cubed_sphere --- atmos_cubed_sphere | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/atmos_cubed_sphere b/atmos_cubed_sphere index 86177e14c..ab026b794 160000 --- a/atmos_cubed_sphere +++ b/atmos_cubed_sphere @@ -1 +1 @@ -Subproject commit 86177e14cdf60ce53fc6ec15829a8876db0c7445 +Subproject commit ab026b79497ee00530ff3eb6b59dd9b9346e8e7d From 6fb3045954e6ed6888d747c3ef11ff99f900bba7 Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Thu, 11 Nov 2021 09:35:37 -0700 Subject: [PATCH 04/70] Add SPP option to several physics parameterizations --- ccpp/data/GFS_typedefs.F90 | 47 ++++++++ ccpp/data/GFS_typedefs.meta | 106 ++++++++++++++++++ ccpp/driver/GFS_diagnostics.F90 | 55 +++++++++ ccpp/physics | 2 +- .../stochastic_physics_wrapper.F90 | 52 ++++++++- 5 files changed, 255 insertions(+), 7 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index fb456245b..6d57c0698 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -533,6 +533,11 @@ module GFS_typedefs real (kind=kind_phys), pointer :: skebu_wts (:,:) => null() ! real (kind=kind_phys), pointer :: skebv_wts (:,:) => null() ! real (kind=kind_phys), pointer :: sfc_wts (:,:) => null() ! mg, sfc-perts + real (kind=kind_phys), pointer :: spp_wts_pbl (:,:) => null() ! spp-pbl-perts + real (kind=kind_phys), pointer :: spp_wts_sfc (:,:) => null() ! spp-sfc-perts + real (kind=kind_phys), pointer :: spp_wts_mp (:,:) => null() ! spp-mp-perts + real (kind=kind_phys), pointer :: spp_wts_gwd (:,:) => null() ! spp-gwd-perts + real (kind=kind_phys), pointer :: spp_wts_rad (:,:) => null() ! spp-rad-perts !--- aerosol surface emissions for Thompson microphysics real (kind=kind_phys), pointer :: nwfa2d (:) => null() !< instantaneous water-friendly sfc aerosol source @@ -1152,6 +1157,11 @@ module GFS_typedefs ! multiple patterns. It wasn't fully coded (and wouldn't have worked ! with nlndp>1, so I just dropped it). If we want to code it properly, ! we'd need to make this dim(6,5). + logical :: do_spp + integer :: n_var_spp + character(len=3) :: spp_var_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def + real(kind=kind_phys) :: spp_prt_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def + !--- tracer handling character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core integer :: ntrac !< number of tracers @@ -1647,6 +1657,11 @@ module GFS_typedefs real (kind=kind_phys), pointer :: sppt_wts(:,:) => null() !< real (kind=kind_phys), pointer :: shum_wts(:,:) => null() !< real (kind=kind_phys), pointer :: sfc_wts(:,:) => null() !< + real (kind=kind_phys), pointer :: spp_wts_pbl(:,:) => null() !< + real (kind=kind_phys), pointer :: spp_wts_sfc(:,:) => null() !< + real (kind=kind_phys), pointer :: spp_wts_mp(:,:) => null() !< + real (kind=kind_phys), pointer :: spp_wts_gwd(:,:) => null() !< + real (kind=kind_phys), pointer :: spp_wts_rad(:,:) => null() !< real (kind=kind_phys), pointer :: zmtnblck(:) => null() ! IntDiag(nb)%shum_wts(:,:) enddo + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_pbl' + ExtDiag(idx)%desc = 'spp pbl perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_pbl(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_sfc' + ExtDiag(idx)%desc = 'spp sfc perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_sfc(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_mp' + ExtDiag(idx)%desc = 'spp mp perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_mp(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_gwd' + ExtDiag(idx)%desc = 'spp gwd perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_gwd(:,:) + enddo + + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_rad' + ExtDiag(idx)%desc = 'spp rad perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_rad(:,:) + enddo + idx = idx + 1 ExtDiag(idx)%axes = 2 ExtDiag(idx)%name = 'sfc_wts1' diff --git a/ccpp/physics b/ccpp/physics index c3ff637b6..b99666221 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c3ff637b6b8c3c68e34aa835d161a852ed962d64 +Subproject commit b99666221163823d433e9b05677e0c77cb5f9140 diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index f0e476d5b..574fcedd2 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -12,6 +12,7 @@ module stochastic_physics_wrapper_mod real(kind=kind_phys), dimension(:,:,:), allocatable, save :: skebu_wts real(kind=kind_phys), dimension(:,:,:), allocatable, save :: skebv_wts real(kind=kind_phys), dimension(:,:,:), allocatable, save :: sfc_wts + real(kind=kind_phys), dimension(:,:,:,:), allocatable, save :: spp_wts logical, save :: is_initialized = .false. integer, save :: lsoil = -999 @@ -80,7 +81,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) type(block_control_type), intent(inout) :: Atm_block integer, intent(out) :: ierr - integer :: nthreads, nb, levs, maxblk, nblks + integer :: nthreads, nb, levs, maxblk, nblks, v logical :: param_update_flag #ifdef _OPENMP @@ -98,7 +99,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) initalize_stochastic_physics: if (.not. is_initialized) then - if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type > 0) ) then + if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type > 0) .OR. GFS_Control%do_spp) then allocate(xlat(1:nblks,maxblk)) allocate(xlon(1:nblks,maxblk)) do nb=1,nblks @@ -110,6 +111,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) GFS_Control%input_nml_file, GFS_Control%fn_nml, GFS_Control%nlunit, xlon, xlat, GFS_Control%do_sppt, GFS_Control%do_shum, & GFS_Control%do_skeb, GFS_Control%lndp_type, GFS_Control%n_var_lndp, GFS_Control%use_zmtnblck, GFS_Control%skeb_npass, & GFS_Control%lndp_var_list, GFS_Control%lndp_prt_list, & + GFS_Control%n_var_spp, GFS_Control%spp_var_list, GFS_Control%spp_prt_list, GFS_Control%do_spp, & GFS_Control%ak, GFS_Control%bk, nthreads, GFS_Control%master, GFS_Control%communicator, ierr) if (ierr/=0) then write(6,*) 'call to init_stochastic_physics failed' @@ -126,6 +128,9 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) allocate(skebu_wts(1:nblks,maxblk,1:levs)) allocate(skebv_wts(1:nblks,maxblk,1:levs)) end if + if ( GFS_Control%do_spp ) then + allocate(spp_wts(1:nblks,maxblk,1:levs,1:GFS_Control%n_var_spp)) + end if if ( GFS_Control%lndp_type == 2 ) then ! this scheme updates through forecast allocate(sfc_wts(1:nblks,maxblk,1:GFS_Control%n_var_lndp)) end if @@ -156,7 +161,8 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) allocate(sfc_wts(1:nblks, maxblk, GFS_Control%n_var_lndp)) call run_stochastic_physics(levs, GFS_Control%kdt, GFS_Control%fhour, GFS_Control%blksz, & sppt_wts=sppt_wts, shum_wts=shum_wts, skebu_wts=skebu_wts, & - skebv_wts=skebv_wts, sfc_wts=sfc_wts, nthreads=nthreads) + skebv_wts=skebv_wts, sfc_wts=sfc_wts, & + spp_wts=spp_wts, nthreads=nthreads) ! Copy contiguous data back do nb=1,nblks GFS_Data(nb)%Coupling%sfc_wts(:,:) = sfc_wts(nb,1:GFS_Control%blksz(nb),:) @@ -190,10 +196,10 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) is_initialized = .true. else initalize_stochastic_physics - if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type == 2) ) then + if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type == 2) .OR. GFS_Control%do_spp) then call run_stochastic_physics(levs, GFS_Control%kdt, GFS_Control%fhour, GFS_Control%blksz, & sppt_wts=sppt_wts, shum_wts=shum_wts, skebu_wts=skebu_wts, skebv_wts=skebv_wts, sfc_wts=sfc_wts, & - nthreads=nthreads) + spp_wts=spp_wts, nthreads=nthreads) ! Copy contiguous data back if (GFS_Control%do_sppt) then do nb=1,nblks @@ -211,6 +217,37 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) GFS_Data(nb)%Coupling%skebv_wts(:,:) = skebv_wts(nb,1:GFS_Control%blksz(nb),:) end do end if + if (GFS_Control%do_spp) then + DO v=1,GFS_Control%n_var_spp + select case (trim(GFS_Control%spp_var_list(v))) + case('pbl') + do nb=1,Atm_block%nblks + GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + end do + case('sfc') + do nb=1,Atm_block%nblks + GFS_Data(nb)%Coupling%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Intdiag%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + end do + case('mp') + do nb=1,Atm_block%nblks + GFS_Data(nb)%Coupling%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Intdiag%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + end do + case('gwd') + do nb=1,Atm_block%nblks + GFS_Data(nb)%Coupling%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Intdiag%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + end do + case('rad') + do nb=1,Atm_block%nblks + GFS_Data(nb)%Coupling%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Intdiag%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + end do + end select + ENDDO + end if if (GFS_Control%lndp_type == 2) then ! save wts, and apply lndp scheme do nb=1,nblks GFS_Data(nb)%Coupling%sfc_wts(:,:) = sfc_wts(nb,1:GFS_Control%blksz(nb),:) @@ -390,7 +427,7 @@ subroutine stochastic_physics_wrapper_end (GFS_Control) type(GFS_control_type), intent(inout) :: GFS_Control - if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type > 0) ) then + if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type > 0) .OR. GFS_Control%do_spp) then if (allocated(xlat)) deallocate(xlat) if (allocated(xlon)) deallocate(xlon) if (GFS_Control%do_sppt) then @@ -403,6 +440,9 @@ subroutine stochastic_physics_wrapper_end (GFS_Control) if (allocated(skebu_wts)) deallocate(skebu_wts) if (allocated(skebv_wts)) deallocate(skebv_wts) end if + if (GFS_Control%do_spp) then + if (allocated(spp_wts)) deallocate(spp_wts) + end if if ( GFS_Control%lndp_type == 2 ) then ! this scheme updates through forecast lsoil = -999 if (allocated(sfc_wts)) deallocate(sfc_wts) From 1b9a07f8f67896d4a0a61f287ed28bbcd9a4122f Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Mon, 22 Nov 2021 09:36:49 -0700 Subject: [PATCH 05/70] bug fixes --- atmos_model.F90 | 6 +++--- ccpp/physics | 2 +- fv3_cap.F90 | 1 + stochastic_physics/stochastic_physics_wrapper.F90 | 4 ++++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/atmos_model.F90 b/atmos_model.F90 index 1bec14f0b..fa367d984 100644 --- a/atmos_model.F90 +++ b/atmos_model.F90 @@ -262,7 +262,7 @@ subroutine update_atmos_radiation_physics (Atmos) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP timestep_init step failed') if (GFS_Control%do_sppt .or. GFS_Control%do_shum .or. GFS_Control%do_skeb .or. & - GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca ) then + GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca .or. GFS_Control%do_spp) then !--- call stochastic physics pattern generation / cellular automata call stochastic_physics_wrapper(GFS_control, GFS_data, Atm_block, ierr) if (ierr/=0) call mpp_error(FATAL, 'Call to stochastic_physics_wrapper failed') @@ -711,7 +711,7 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) if (ierr/=0) call mpp_error(FATAL, 'Call to CCPP physics_init step failed') if (GFS_Control%do_sppt .or. GFS_Control%do_shum .or. GFS_Control%do_skeb .or. & - GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca) then + GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca .or. GFS_Control%do_spp) then !--- Initialize stochastic physics pattern generation / cellular automata for first time step call stochastic_physics_wrapper(GFS_control, GFS_data, Atm_block, ierr) @@ -976,7 +976,7 @@ subroutine atmos_model_end (Atmos) ! call write_stoch_restart_atm('RESTART/atm_stoch.res.nc') endif if (GFS_Control%do_sppt .or. GFS_Control%do_shum .or. GFS_Control%do_skeb .or. & - GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca ) then + GFS_Control%lndp_type > 0 .or. GFS_Control%do_ca .or. GFS_Control%do_spp) then if(restart_endfcst) then call write_stoch_restart_atm('RESTART/atm_stoch.res.nc') if (GFS_control%ca_sgs)then diff --git a/ccpp/physics b/ccpp/physics index b99666221..094737206 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b99666221163823d433e9b05677e0c77cb5f9140 +Subproject commit 094737206c34ed5462c155e482eed13a46ca1eac diff --git a/fv3_cap.F90 b/fv3_cap.F90 index eca8cf686..b781c6734 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -777,6 +777,7 @@ subroutine InitializeAdvertise(gcomp, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return end do + if(mype==0) print *,'in fv3_cap, aft import, bf export fields in atmos' ! exportable fields: do i = 1, size(exportFieldsInfo) call NUOPC_Advertise(exportState, & diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 574fcedd2..b135238e1 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -94,6 +94,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) levs = GFS_Control%levs maxblk = maxval(GFS_Control%blksz) nblks = Atm_block%nblks + print *,"SPP: levs,nblks",levs,nblks ! Initialize @@ -106,6 +107,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) xlat(nb,1:GFS_Control%blksz(nb)) = GFS_Data(nb)%Grid%xlat(:) xlon(nb,1:GFS_Control%blksz(nb)) = GFS_Data(nb)%Grid%xlon(:) end do + print *,"SPP: call init_stoch",GFS_Control%do_spp ! Initialize stochastic physics call init_stochastic_physics(levs, GFS_Control%blksz, GFS_Control%dtp, GFS_Control%sppt_amp, & GFS_Control%input_nml_file, GFS_Control%fn_nml, GFS_Control%nlunit, xlon, xlat, GFS_Control%do_sppt, GFS_Control%do_shum, & @@ -197,6 +199,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) else initalize_stochastic_physics if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type == 2) .OR. GFS_Control%do_spp) then + print *,"SPP: before run_stoch call" call run_stochastic_physics(levs, GFS_Control%kdt, GFS_Control%fhour, GFS_Control%blksz, & sppt_wts=sppt_wts, shum_wts=shum_wts, skebu_wts=skebu_wts, skebv_wts=skebv_wts, sfc_wts=sfc_wts, & spp_wts=spp_wts, nthreads=nthreads) @@ -221,6 +224,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) DO v=1,GFS_Control%n_var_spp select case (trim(GFS_Control%spp_var_list(v))) case('pbl') + print *,"SPP: spp_wts_pbl is ", v, maxval(spp_wts(:,:,:,v)) do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) From 75e1199047d674102ac5c922dd9bf67fa9379449 Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Tue, 23 Nov 2021 12:42:02 -0700 Subject: [PATCH 06/70] update rte/rrtmgp --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a6453ae27..a851742e6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a6453ae275c27131e3065845249fb3bcb687ab0a +Subproject commit a851742e606313644316e1d57fa23b6cfad4d71b From 9a7d80fe949d09559d2b1806b9fde5696485bb90 Mon Sep 17 00:00:00 2001 From: Laurie Carson Date: Tue, 23 Nov 2021 14:02:43 -0700 Subject: [PATCH 07/70] update submodule pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a851742e6..d5414d2a3 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a851742e606313644316e1d57fa23b6cfad4d71b +Subproject commit d5414d2a3ac26ec49c639c29c18ab9d8db12dc46 From 987cbc9d6d7343dace3829ab1d506c02968dfbbb Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 23 Dec 2021 23:42:09 +0000 Subject: [PATCH 08/70] Update pointer for ccpp-physics to JeffBeck-NOAA fork --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index b6eae1c7c..b11e60d3d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,7 @@ branch = main [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/llpcarson/ccpp-physics + url = https://github.com/JeffBeck-NOAA/ccpp-physics branch = feature/stoch_spp [submodule "upp"] path = upp From 8436d565e3bd7a7b3d95f83ce33b64ad5941f96d Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 00:11:01 +0000 Subject: [PATCH 09/70] Update submodule pointers --- ccpp/framework | 2 +- ccpp/physics | 2 +- upp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 4cdbddf76..64b5afd13 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 4cdbddf760a9383c461dec3af4ae9423b43e4ba7 +Subproject commit 64b5afd1352d709f3b72734bf960e36024a838d3 diff --git a/ccpp/physics b/ccpp/physics index e74b9b6e7..f2a2e7d8b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e74b9b6e7a0042baaaa271af8da28105ef0355f3 +Subproject commit f2a2e7d8b56dd5f5d55456dbba519ea6d8bf3a4a diff --git a/upp b/upp index 0dc3c0c1d..9e1a10f46 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit 0dc3c0c1dbdcdc5025dff0c6b06b16aa2a7ddda9 +Subproject commit 9e1a10f46ec402854b5f921c9ffd092bbb3570c1 From cf741332dbabe6c31793bbcccaa60dc68eb7aae3 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 00:36:47 +0000 Subject: [PATCH 10/70] Requested modifications from code review. --- ccpp/driver/GFS_diagnostics.F90 | 118 ++++++++++-------- fv3_cap.F90 | 1 - .../stochastic_physics_wrapper.F90 | 1 - 3 files changed, 64 insertions(+), 56 deletions(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 312f2f313..6da2af869 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2296,60 +2296,70 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop enddo endif - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'spp_wts_pbl' - ExtDiag(idx)%desc = 'spp pbl perturbation wts' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_pbl(:,:) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'spp_wts_sfc' - ExtDiag(idx)%desc = 'spp sfc perturbation wts' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_sfc(:,:) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'spp_wts_mp' - ExtDiag(idx)%desc = 'spp mp perturbation wts' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_mp(:,:) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'spp_wts_gwd' - ExtDiag(idx)%desc = 'spp gwd perturbation wts' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_gwd(:,:) - enddo - - idx = idx + 1 - ExtDiag(idx)%axes = 3 - ExtDiag(idx)%name = 'spp_wts_rad' - ExtDiag(idx)%desc = 'spp rad perturbation wts' - ExtDiag(idx)%unit = 'm/s' - ExtDiag(idx)%mod_name = 'gfs_phys' - allocate (ExtDiag(idx)%data(nblks)) - do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_rad(:,:) - enddo + if (Model%do_spp) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_pbl' + ExtDiag(idx)%desc = 'spp pbl perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_pbl(:,:) + enddo + endif + + if (Model%do_spp) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_sfc' + ExtDiag(idx)%desc = 'spp sfc perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_sfc(:,:) + enddo + endif + + if (Model%do_spp) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_mp' + ExtDiag(idx)%desc = 'spp mp perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_mp(:,:) + enddo + endif + + if (Model%do_spp) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_gwd' + ExtDiag(idx)%desc = 'spp gwd perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_gwd(:,:) + enddo + endif + + if (Model%do_spp) then + idx = idx + 1 + ExtDiag(idx)%axes = 3 + ExtDiag(idx)%name = 'spp_wts_rad' + ExtDiag(idx)%desc = 'spp rad perturbation wts' + ExtDiag(idx)%unit = 'm/s' + ExtDiag(idx)%mod_name = 'gfs_phys' + allocate (ExtDiag(idx)%data(nblks)) + do nb = 1,nblks + ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_rad(:,:) + enddo + endif if (Model%lndp_type /= 0) then idx = idx + 1 diff --git a/fv3_cap.F90 b/fv3_cap.F90 index 197d19ba2..7b7eb44e7 100644 --- a/fv3_cap.F90 +++ b/fv3_cap.F90 @@ -729,7 +729,6 @@ subroutine InitializeAdvertise(gcomp, rc) if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, line=__LINE__, file=__FILE__)) return end do - if(mype==0) print *,'in fv3_cap, aft import, bf export fields in atmos' ! exportable fields: do i = 1, size(exportFieldsInfo) call NUOPC_Advertise(exportState, & diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 10951975f..390b8ff1f 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -92,7 +92,6 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) levs = GFS_Control%levs maxblk = maxval(GFS_Control%blksz) nblks = Atm_block%nblks - print *,"SPP: levs,nblks",levs,nblks ! Initialize From 0263a28d36cd25b9b33494712239b6663438f455 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 00:45:55 +0000 Subject: [PATCH 11/70] Remove "flipped" entries for stochastic physics. --- ccpp/data/GFS_typedefs.meta | 75 ------------------------------------- 1 file changed, 75 deletions(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 2ea02d6b5..cc64361fe 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -7060,81 +7060,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[skebu_wts] - standard_name = weights_for_stochastic_skeb_perturbation_of_x_wind_flipped - long_name = weights for stochastic skeb perturbation of x wind, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys -[skebv_wts] - standard_name = weights_for_stochastic_skeb_perturbation_of_y_wind_flipped - long_name = weights for stochastic skeb perturbation of y wind, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys -[sppt_wts] - standard_name = weights_for_stochastic_sppt_perturbation_flipped - long_name = weights for stochastic sppt perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys -[shum_wts] - standard_name = weights_for_stochastic_shum_perturbation_flipped - long_name = weights for stochastic shum perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys -[spp_wts_pbl] - standard_name = weights_for_stochastic_spp_pbl_perturbation_flipped - long_name = weights for stochastic spp pbl perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_stochastic_spp_option) -[spp_wts_sfc] - standard_name = weights_for_stochastic_spp_sfc_perturbation_flipped - long_name = weights for stochastic spp sfc perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_stochastic_spp_option) -[spp_wts_mp] - standard_name = weights_for_stochastic_spp_mp_perturbation_flipped - long_name = weights for stochastic spp mp perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_stochastic_spp_option) -[spp_wts_gwd] - standard_name = weights_for_stochastic_spp_gwd_perturbation_flipped - long_name = weights for stochastic spp gwd perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_stochastic_spp_option) -[spp_wts_rad] - standard_name = weights_for_stochastic_spp_rad_perturbation_flipped - long_name = weights for stochastic spp rad perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_stochastic_spp_option) -[sfc_wts] - standard_name = weights_for_stochastic_surface_physics_perturbation_flipped - long_name = weights for stochastic surface physics perturbation, flipped - units = none - dimensions = (horizontal_loop_extent,number_of_perturbed_land_surface_variables) - type = real - kind = kind_phys [zmtnblck] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline From eee2d377a890f1545ceb5278a3fbc18a205e4980 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 00:48:48 +0000 Subject: [PATCH 12/70] Remove print statements. --- stochastic_physics/stochastic_physics_wrapper.F90 | 3 --- 1 file changed, 3 deletions(-) diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 390b8ff1f..9d196e7fe 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -104,7 +104,6 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) xlat(nb,1:GFS_Control%blksz(nb)) = GFS_Data(nb)%Grid%xlat(:) xlon(nb,1:GFS_Control%blksz(nb)) = GFS_Data(nb)%Grid%xlon(:) end do - print *,"SPP: call init_stoch",GFS_Control%do_spp ! Initialize stochastic physics call init_stochastic_physics(levs, GFS_Control%blksz, GFS_Control%dtp, GFS_Control%sppt_amp, & GFS_Control%input_nml_file, GFS_Control%fn_nml, GFS_Control%nlunit, xlon, xlat, GFS_Control%do_sppt, GFS_Control%do_shum, & @@ -196,7 +195,6 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) else initalize_stochastic_physics if (GFS_Control%do_sppt .OR. GFS_Control%do_shum .OR. GFS_Control%do_skeb .OR. (GFS_Control%lndp_type == 2) .OR. GFS_Control%do_spp) then - print *,"SPP: before run_stoch call" call run_stochastic_physics(levs, GFS_Control%kdt, GFS_Control%fhour, GFS_Control%blksz, & sppt_wts=sppt_wts, shum_wts=shum_wts, skebu_wts=skebu_wts, skebv_wts=skebv_wts, sfc_wts=sfc_wts, & spp_wts=spp_wts, nthreads=nthreads) @@ -221,7 +219,6 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) DO v=1,GFS_Control%n_var_spp select case (trim(GFS_Control%spp_var_list(v))) case('pbl') - print *,"SPP: spp_wts_pbl is ", v, maxval(spp_wts(:,:,:,v)) do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) From 63250e3786ca964bd3e2275180e807f8777c7250 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 01:00:15 +0000 Subject: [PATCH 13/70] Change "v" to "n" to conform with integer variables. --- .../stochastic_physics_wrapper.F90 | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 9d196e7fe..e6530c48b 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -79,7 +79,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) type(block_control_type), intent(inout) :: Atm_block integer, intent(out) :: ierr - integer :: nthreads, nb, levs, maxblk, nblks, v + integer :: nthreads, nb, levs, maxblk, nblks, n logical :: param_update_flag #ifdef _OPENMP @@ -217,31 +217,31 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) end if if (GFS_Control%do_spp) then DO v=1,GFS_Control%n_var_spp - select case (trim(GFS_Control%spp_var_list(v))) + select case (trim(GFS_Control%spp_var_list(n))) case('pbl') do nb=1,Atm_block%nblks - GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) - GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) + GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('sfc') do nb=1,Atm_block%nblks - GFS_Data(nb)%Coupling%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) - GFS_Data(nb)%Intdiag%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Coupling%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) + GFS_Data(nb)%Intdiag%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('mp') do nb=1,Atm_block%nblks - GFS_Data(nb)%Coupling%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) - GFS_Data(nb)%Intdiag%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Coupling%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) + GFS_Data(nb)%Intdiag%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('gwd') do nb=1,Atm_block%nblks - GFS_Data(nb)%Coupling%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) - GFS_Data(nb)%Intdiag%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Coupling%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) + GFS_Data(nb)%Intdiag%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('rad') do nb=1,Atm_block%nblks - GFS_Data(nb)%Coupling%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) - GFS_Data(nb)%Intdiag%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,v) + GFS_Data(nb)%Coupling%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) + GFS_Data(nb)%Intdiag%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do end select ENDDO From 1fc75435cff41cb5e47975f990594becf4dfe988 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 02:57:41 +0000 Subject: [PATCH 14/70] Remove variable duplications in the Intdiag type. --- ccpp/data/GFS_typedefs.F90 | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 8e051dd36..a3c82fb97 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -3001,7 +3001,6 @@ subroutine coupling_create (Coupling, IM, Model) !--- stochastic spp perturbation option if (Model%do_spp) then -! --- allocate all of the wts arrays? yes, it's a run-time switch... allocate (Coupling%spp_wts_pbl (IM,Model%levs)) Coupling%spp_wts_pbl = clear_val allocate (Coupling%spp_wts_sfc (IM,Model%levs)) @@ -6546,16 +6545,6 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%tdomzr (IM)) allocate (Diag%tdomip (IM)) allocate (Diag%tdoms (IM)) - allocate (Diag%skebu_wts(IM,Model%levs)) - allocate (Diag%skebv_wts(IM,Model%levs)) - allocate (Diag%sppt_wts (IM,Model%levs)) - allocate (Diag%shum_wts (IM,Model%levs)) - allocate (Diag%sfc_wts (IM,Model%n_var_lndp)) - allocate (Diag%spp_wts_pbl(IM,Model%levs)) - allocate (Diag%spp_wts_sfc(IM,Model%levs)) - allocate (Diag%spp_wts_mp(IM,Model%levs)) - allocate (Diag%spp_wts_gwd(IM,Model%levs)) - allocate (Diag%spp_wts_rad(IM,Model%levs)) allocate (Diag%zmtnblck (IM)) if(Model%lsm == Model%lsm_noahmp) then @@ -6829,17 +6818,6 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%tdomzr = zero Diag%tdomip = zero Diag%tdoms = zero - Diag%skebu_wts = zero - Diag%skebv_wts = zero - Diag%sppt_wts = zero - Diag%shum_wts = zero - Diag%sfc_wts = zero - Diag%spp_wts_pbl = zero - Diag%spp_wts_sfc = zero - Diag%spp_wts_mp = zero - Diag%spp_wts_gwd = zero - Diag%spp_wts_rad = zero - Diag%zmtnblck = zero if(Model%lsm == Model%lsm_noahmp)then Diag%paha = zero From 045d7c851d502169bc6184c8df1712dba6a0f385 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 03:03:15 +0000 Subject: [PATCH 15/70] Remove references to Intdiag variables. --- stochastic_physics/stochastic_physics_wrapper.F90 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index e6530c48b..96798a960 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -221,27 +221,22 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) case('pbl') do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) - GFS_Data(nb)%Intdiag%spp_wts_pbl(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('sfc') do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) - GFS_Data(nb)%Intdiag%spp_wts_sfc(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('mp') do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) - GFS_Data(nb)%Intdiag%spp_wts_mp(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('gwd') do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) - GFS_Data(nb)%Intdiag%spp_wts_gwd(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do case('rad') do nb=1,Atm_block%nblks GFS_Data(nb)%Coupling%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) - GFS_Data(nb)%Intdiag%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do end select ENDDO From 655055580faa10739d51e7564b4f15fa3ecf51fb Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 04:47:30 +0000 Subject: [PATCH 16/70] Add the FV3_RRFS_v1alpha SDF back into fv3atm. --- ccpp/suites/suite_FV3_RRFS_v1alpha.xml | 84 ++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 ccpp/suites/suite_FV3_RRFS_v1alpha.xml diff --git a/ccpp/suites/suite_FV3_RRFS_v1alpha.xml b/ccpp/suites/suite_FV3_RRFS_v1alpha.xml new file mode 100644 index 000000000..b3622828e --- /dev/null +++ b/ccpp/suites/suite_FV3_RRFS_v1alpha.xml @@ -0,0 +1,84 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + sgscloud_radpre + GFS_rrtmg_pre + GFS_radiation_surface + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + sgscloud_radpost + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + noahmpdrv + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + mynnedmf_wrapper + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + GFS_suite_stateout_update + ozphys_2015 + h2ophys + get_phi_fv3 + GFS_suite_interstitial_3 + GFS_suite_interstitial_4 + GFS_MP_generic_pre + mp_thompson_pre + mp_thompson + mp_thompson_post + GFS_MP_generic_post + maximum_hourly_diagnostics + phys_tend + + + + + GFS_stochastics + + + + From 679714e17f97394fd41ba2758e72c9ca7bdfe7b8 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:57:20 -0700 Subject: [PATCH 17/70] Update stochastic_physics/stochastic_physics_wrapper.F90 Co-authored-by: Dom Heinzeller --- stochastic_physics/stochastic_physics_wrapper.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 96798a960..38cbc0509 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -239,7 +239,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) GFS_Data(nb)%Coupling%spp_wts_rad(:,:) = spp_wts(nb,1:GFS_Control%blksz(nb),:,n) end do end select - ENDDO + end do end if if (GFS_Control%lndp_type == 2) then ! save wts, and apply lndp scheme do nb=1,nblks From f3d9e6f13f558f8f2f115caa8108ab8d4e0c0187 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:57:38 -0700 Subject: [PATCH 18/70] Update stochastic_physics/stochastic_physics_wrapper.F90 Co-authored-by: Dom Heinzeller --- stochastic_physics/stochastic_physics_wrapper.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 38cbc0509..e52f2e2a3 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -216,7 +216,7 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) end do end if if (GFS_Control%do_spp) then - DO v=1,GFS_Control%n_var_spp + do n=1,GFS_Control%n_var_spp select case (trim(GFS_Control%spp_var_list(n))) case('pbl') do nb=1,Atm_block%nblks From 9ec20cbd1d0bd473c8fd4e7966a63acc24bf3d94 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:57:47 -0700 Subject: [PATCH 19/70] Update ccpp/driver/GFS_diagnostics.F90 Co-authored-by: Dom Heinzeller --- ccpp/driver/GFS_diagnostics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 6da2af869..2159e9c11 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2357,7 +2357,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_rad(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_rad(:,:) enddo endif From 5fe5c351b54f8ea28990d5200809aae76ea241c2 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:57:54 -0700 Subject: [PATCH 20/70] Update ccpp/driver/GFS_diagnostics.F90 Co-authored-by: Dom Heinzeller --- ccpp/driver/GFS_diagnostics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 2159e9c11..aa8cf4f2b 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2344,7 +2344,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_gwd(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_gwd(:,:) enddo endif From 543efe115c7f0e875a157153b75d18ba2fe9fe99 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:58:01 -0700 Subject: [PATCH 21/70] Update ccpp/driver/GFS_diagnostics.F90 Co-authored-by: Dom Heinzeller --- ccpp/driver/GFS_diagnostics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index aa8cf4f2b..26d9b655f 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2331,7 +2331,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_mp(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_mp(:,:) enddo endif From d1c3640cd6c51df712f78362b372c879f641b66f Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:58:07 -0700 Subject: [PATCH 22/70] Update ccpp/driver/GFS_diagnostics.F90 Co-authored-by: Dom Heinzeller --- ccpp/driver/GFS_diagnostics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index 26d9b655f..eb23b145b 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2318,7 +2318,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_sfc(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_sfc(:,:) enddo endif From 5029e1ffbe06daef25ddf4c1fac06f6b0d72b0f8 Mon Sep 17 00:00:00 2001 From: JeffBeck-NOAA <55201531+JeffBeck-NOAA@users.noreply.github.com> Date: Mon, 27 Dec 2021 21:58:13 -0700 Subject: [PATCH 23/70] Update ccpp/driver/GFS_diagnostics.F90 Co-authored-by: Dom Heinzeller --- ccpp/driver/GFS_diagnostics.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/driver/GFS_diagnostics.F90 b/ccpp/driver/GFS_diagnostics.F90 index eb23b145b..a26c7e2f9 100644 --- a/ccpp/driver/GFS_diagnostics.F90 +++ b/ccpp/driver/GFS_diagnostics.F90 @@ -2305,7 +2305,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_pbl(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_pbl(:,:) enddo endif From 1d2f6f28282e46f1f89edff6225a1013a9e58ad4 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 04:59:05 +0000 Subject: [PATCH 24/70] Requested changes during code review. --- ccpp/data/GFS_typedefs.F90 | 10 ---------- ccpp/driver/GFS_diagnostics.F90 | 10 +++++----- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index a3c82fb97..689bee9b2 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1661,16 +1661,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: tdomip (:) => null() !< dominant accumulated sleet type real (kind=kind_phys), pointer :: tdoms (:) => null() !< dominant accumulated snow type - real (kind=kind_phys), pointer :: skebu_wts(:,:) => null() !< 10 meter u wind speed - real (kind=kind_phys), pointer :: skebv_wts(:,:) => null() !< 10 meter v wind speed - real (kind=kind_phys), pointer :: sppt_wts(:,:) => null() !< - real (kind=kind_phys), pointer :: shum_wts(:,:) => null() !< - real (kind=kind_phys), pointer :: sfc_wts(:,:) => null() !< - real (kind=kind_phys), pointer :: spp_wts_pbl(:,:) => null() !< - real (kind=kind_phys), pointer :: spp_wts_sfc(:,:) => null() !< - real (kind=kind_phys), pointer :: spp_wts_mp(:,:) => null() !< - real (kind=kind_phys), pointer :: spp_wts_gwd(:,:) => null() !< - real (kind=kind_phys), pointer :: spp_wts_rad(:,:) => null() !< real (kind=kind_phys), pointer :: zmtnblck(:) => null() ! IntDiag(nb)%spp_wts_pbl(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_pbl(:,:) enddo endif @@ -2318,7 +2318,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_sfc(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_sfc(:,:) enddo endif @@ -2331,7 +2331,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_mp(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_mp(:,:) enddo endif @@ -2344,7 +2344,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_gwd(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_gwd(:,:) enddo endif @@ -2357,7 +2357,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%mod_name = 'gfs_phys' allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks - ExtDiag(idx)%data(nb)%var3 => IntDiag(nb)%spp_wts_rad(:,:) + ExtDiag(idx)%data(nb)%var3 => Coupling(nb)%spp_wts_rad(:,:) enddo endif From 40a5a42e823413da36cd783370060b2113403e04 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 05:04:15 +0000 Subject: [PATCH 25/70] Update submodule pointers --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index f2a2e7d8b..c2e8bbf25 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f2a2e7d8b56dd5f5d55456dbba519ea6d8bf3a4a +Subproject commit c2e8bbf25b4b0dc1c0cb4208a1c35c8d6d8ae3e4 From 2ce7a385e5126dd85d3043433a7af64ffa058e3b Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 16:31:54 +0000 Subject: [PATCH 26/70] Update UPP submodule pointer --- upp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upp b/upp index 9e1a10f46..f46b60906 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit 9e1a10f46ec402854b5f921c9ffd092bbb3570c1 +Subproject commit f46b60906678f41223cb39b16aced79e863368cc From eedae987ad0978cbf8edb179b3c5e2cc6855d8fb Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 16:39:52 +0000 Subject: [PATCH 27/70] Update ccpp-physics submodule pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index c2e8bbf25..fbdad7e9b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c2e8bbf25b4b0dc1c0cb4208a1c35c8d6d8ae3e4 +Subproject commit fbdad7e9b1d345aa46836f203d825cfd58f588eb From 36bfa9d95d6245ef418ca6475a4015e9a1fcd8ef Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 16:47:42 +0000 Subject: [PATCH 28/70] Set upp submodule pointer to specific hash in fv3atm. --- upp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upp b/upp index f46b60906..c939eae6b 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit f46b60906678f41223cb39b16aced79e863368cc +Subproject commit c939eae6bacb3c2a93753bba54b8646f32a0a7ab From 518d6a34b2a3ccda747cc6c1e4e7d6e53d9b6259 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 16:47:42 +0000 Subject: [PATCH 29/70] Set UPP submodule pointer to specific hash in fv3atm. --- upp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upp b/upp index f46b60906..c939eae6b 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit f46b60906678f41223cb39b16aced79e863368cc +Subproject commit c939eae6bacb3c2a93753bba54b8646f32a0a7ab From 3e04637d5d667478c3eb0838784f5e17b9e0ab77 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 28 Dec 2021 18:41:57 +0000 Subject: [PATCH 30/70] Update submodule pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index fbdad7e9b..307a507f2 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit fbdad7e9b1d345aa46836f203d825cfd58f588eb +Subproject commit 307a507f24829210b88e7abf7e6872cdacc50462 From 654c192e55ad567838f7fd28e132b5301e68967d Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:22:42 +0000 Subject: [PATCH 31/70] Changes for PR modifcation requests --- ccpp/data/GFS_typedefs.F90 | 26 ++++------ ccpp/data/GFS_typedefs.meta | 50 +++++++++++++++---- .../stochastic_physics_wrapper.F90 | 34 +++++++++++++ 3 files changed, 85 insertions(+), 25 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 689bee9b2..e9c505d6a 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1166,7 +1166,12 @@ module GFS_typedefs ! multiple patterns. It wasn't fully coded (and wouldn't have worked ! with nlndp>1, so I just dropped it). If we want to code it properly, ! we'd need to make this dim(6,5). - logical :: do_spp + logical :: do_spp ! Overall flag to turn on SPP or not + integer :: spp_pbl + integer :: spp_sfc + integer :: spp_mp + integer :: spp_rad + integer :: spp_gwd integer :: n_var_spp character(len=3) :: spp_var_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def real(kind=kind_phys) :: spp_prt_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def @@ -2989,20 +2994,6 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%sfc_wts = clear_val endif - !--- stochastic spp perturbation option - if (Model%do_spp) then - allocate (Coupling%spp_wts_pbl (IM,Model%levs)) - Coupling%spp_wts_pbl = clear_val - allocate (Coupling%spp_wts_sfc (IM,Model%levs)) - Coupling%spp_wts_sfc = clear_val - allocate (Coupling%spp_wts_mp (IM,Model%levs)) - Coupling%spp_wts_mp = clear_val - allocate (Coupling%spp_wts_gwd (IM,Model%levs)) - Coupling%spp_wts_gwd = clear_val - allocate (Coupling%spp_wts_rad (IM,Model%levs)) - Coupling%spp_wts_rad = clear_val - endif - !--- needed for Thompson's aerosol option if(Model%imp_physics == Model%imp_physics_thompson .and. Model%ltaerosol) then allocate (Coupling%nwfa2d (IM)) @@ -3564,6 +3555,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: n_var_lndp = 0 logical :: lndp_each_step = .false. integer :: n_var_spp = 0 + integer :: spp_pbl = 0 + integer :: spp_sfc = 0 + integer :: spp_mp = 0 + integer :: spp_rad = 0 + integer :: spp_gwd = 0 logical :: do_spp = .false. !--- aerosol scavenging factors diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index cc64361fe..98a96a661 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -2245,40 +2245,40 @@ kind = kind_phys active = (flag_for_stochastic_skeb_option) [spp_wts_pbl] - standard_name = weights_for_stochastic_spp_pbl_perturbation - long_name = weights for stochastic spp pbl perturbation + standard_name = weights_for_stochastic_spp_pbl_perturbations + long_name = weights for stochastic spp pbl perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_sfc] - standard_name = weights_for_stochastic_spp_sfc_perturbation - long_name = weights for stochastic spp sfc perturbation + standard_name = weights_for_stochastic_spp_sfc_perturbations + long_name = weights for stochastic spp sfc perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_mp] - standard_name = weights_for_stochastic_spp_mp_perturbation - long_name = weights for stochastic spp mp perturbation + standard_name = weights_for_stochastic_spp_mp_perturbations + long_name = weights for stochastic spp mp perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_gwd] - standard_name = weights_for_stochastic_spp_gwd_perturbation - long_name = weights for stochastic spp gwd perturbation + standard_name = weights_for_stochastic_spp_gwd_perturbations + long_name = weights for stochastic spp gwd perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_rad] - standard_name = weights_for_stochastic_spp_rad_perturbation - long_name = weights for stochastic spp rad perturbation + standard_name = weights_for_stochastic_spp_rad_perturbations + long_name = weights for stochastic spp rad perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real @@ -4660,6 +4660,36 @@ dimensions = (number_of_spp_schemes_perturbed) type = character kind = len=3 +[spp_pbl] + standard_name = control_for_planetary_boundary_layer_spp_perturbations + long_name = control for planetary boundary layer spp perturbations + units = count + dimensions = () + type = integer +[spp_sfc] + standard_name = control_for_surface_layer_spp_perturbations + long_name = control for surface layer spp perturbations + units = count + dimensions = () + type = integer +[spp_mp] + standard_name = control_for_microphysics_spp_perturbations + long_name = control for microphysics spp perturbations + units = count + dimensions = () + type = integer +[spp_rad] + standard_name = control_for_radiation_spp_perturbations + long_name = control for radiation spp perturbations + units = count + dimensions = () + type = integer +[spp_gwd] + standard_name = control_for_gravity_wave_drag_spp_perturbations + long_name = control for gravity wave drag spp perturbations + units = count + dimensions = () + type = integer [ntrac] standard_name = number_of_tracers long_name = number of tracers diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index e52f2e2a3..6ecb93edd 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -128,6 +128,40 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) end if if ( GFS_Control%do_spp ) then allocate(spp_wts(1:nblks,maxblk,1:levs,1:GFS_Control%n_var_spp)) + do n=1,GFS_Control%n_var_spp + select case (trim(GFS_Control%spp_var_list(n))) + case('pbl') + GFS_Control%spp_pbl = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_pbl(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_pbl = 0.0_kind_phys + end do + case('sfc') + GFS_Control%spp_sfc = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_sfc(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_sfc = 0.0_kind_phys + end do + case('mp') + GFS_Control%spp_mp = 7 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_mp(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_mp = 0.0_kind_phys + end do + case('rad') + GFS_Control%spp_rad = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_rad(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_rad = 0.0_kind_phys + end do + case('gwd') + GFS_Control%spp_gwd = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_gwd(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_gwd = 0.0_kind_phys + end do + end select + end do end if if ( GFS_Control%lndp_type == 2 ) then ! this scheme updates through forecast allocate(sfc_wts(1:nblks,maxblk,1:GFS_Control%n_var_lndp)) From 4d6597caaad5bad290cf55c7565151cfe9626b86 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:30:36 +0000 Subject: [PATCH 32/70] Test changes after PR review modifications --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index b11e60d3d..27e651a9d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/JeffBeck-NOAA/ccpp-physics - branch = feature/stoch_spp + branch = feature/stoch_spp_part2 [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP From 0358570caa46963c7b33b24109fa2ef7daa3bbff Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:46:19 +0000 Subject: [PATCH 33/70] Allocate spp_wts_* arrays in GFS_typedefs.F90 and not in the stochastic physics wrapper. --- ccpp/data/GFS_typedefs.F90 | 16 ++++++++++++++- .../stochastic_physics_wrapper.F90 | 20 ------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index e9c505d6a..033b7761d 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -2987,12 +2987,26 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%skebu_wts = clear_val Coupling%skebv_wts = clear_val endif - + !--- stochastic land perturbation option if (Model%lndp_type /= 0) then allocate (Coupling%sfc_wts (IM,Model%n_var_lndp)) Coupling%sfc_wts = clear_val endif + + !--- stochastic spp perturbation option + if (Model%do_spp) then + allocate (Coupling%spp_wts_pbl (IM,Model%levs)) + Coupling%spp_wts_pbl = clear_val + allocate (Coupling%spp_wts_sfc (IM,Model%levs)) + Coupling%spp_wts_sfc = clear_val + allocate (Coupling%spp_wts_mp (IM,Model%levs)) + Coupling%spp_wts_mp = clear_val + allocate (Coupling%spp_wts_gwd (IM,Model%levs)) + Coupling%spp_wts_gwd = clear_val + allocate (Coupling%spp_wts_rad (IM,Model%levs)) + Coupling%spp_wts_rad = clear_val + endif !--- needed for Thompson's aerosol option if(Model%imp_physics == Model%imp_physics_thompson .and. Model%ltaerosol) then diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 6ecb93edd..ae67c0daf 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -132,34 +132,14 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) select case (trim(GFS_Control%spp_var_list(n))) case('pbl') GFS_Control%spp_pbl = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_pbl(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_pbl = 0.0_kind_phys - end do case('sfc') GFS_Control%spp_sfc = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_sfc(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_sfc = 0.0_kind_phys - end do case('mp') GFS_Control%spp_mp = 7 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_mp(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_mp = 0.0_kind_phys - end do case('rad') GFS_Control%spp_rad = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_rad(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_rad = 0.0_kind_phys - end do case('gwd') GFS_Control%spp_gwd = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_gwd(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_gwd = 0.0_kind_phys - end do end select end do end if From 33f999766f0eb640b51acb106ef112a2370df78d Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:22:42 +0000 Subject: [PATCH 34/70] Changes for PR modification requests --- ccpp/data/GFS_typedefs.F90 | 26 ++++------ ccpp/data/GFS_typedefs.meta | 50 +++++++++++++++---- .../stochastic_physics_wrapper.F90 | 34 +++++++++++++ 3 files changed, 85 insertions(+), 25 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 689bee9b2..e9c505d6a 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1166,7 +1166,12 @@ module GFS_typedefs ! multiple patterns. It wasn't fully coded (and wouldn't have worked ! with nlndp>1, so I just dropped it). If we want to code it properly, ! we'd need to make this dim(6,5). - logical :: do_spp + logical :: do_spp ! Overall flag to turn on SPP or not + integer :: spp_pbl + integer :: spp_sfc + integer :: spp_mp + integer :: spp_rad + integer :: spp_gwd integer :: n_var_spp character(len=3) :: spp_var_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def real(kind=kind_phys) :: spp_prt_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def @@ -2989,20 +2994,6 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%sfc_wts = clear_val endif - !--- stochastic spp perturbation option - if (Model%do_spp) then - allocate (Coupling%spp_wts_pbl (IM,Model%levs)) - Coupling%spp_wts_pbl = clear_val - allocate (Coupling%spp_wts_sfc (IM,Model%levs)) - Coupling%spp_wts_sfc = clear_val - allocate (Coupling%spp_wts_mp (IM,Model%levs)) - Coupling%spp_wts_mp = clear_val - allocate (Coupling%spp_wts_gwd (IM,Model%levs)) - Coupling%spp_wts_gwd = clear_val - allocate (Coupling%spp_wts_rad (IM,Model%levs)) - Coupling%spp_wts_rad = clear_val - endif - !--- needed for Thompson's aerosol option if(Model%imp_physics == Model%imp_physics_thompson .and. Model%ltaerosol) then allocate (Coupling%nwfa2d (IM)) @@ -3564,6 +3555,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & integer :: n_var_lndp = 0 logical :: lndp_each_step = .false. integer :: n_var_spp = 0 + integer :: spp_pbl = 0 + integer :: spp_sfc = 0 + integer :: spp_mp = 0 + integer :: spp_rad = 0 + integer :: spp_gwd = 0 logical :: do_spp = .false. !--- aerosol scavenging factors diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index cc64361fe..98a96a661 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -2245,40 +2245,40 @@ kind = kind_phys active = (flag_for_stochastic_skeb_option) [spp_wts_pbl] - standard_name = weights_for_stochastic_spp_pbl_perturbation - long_name = weights for stochastic spp pbl perturbation + standard_name = weights_for_stochastic_spp_pbl_perturbations + long_name = weights for stochastic spp pbl perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_sfc] - standard_name = weights_for_stochastic_spp_sfc_perturbation - long_name = weights for stochastic spp sfc perturbation + standard_name = weights_for_stochastic_spp_sfc_perturbations + long_name = weights for stochastic spp sfc perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_mp] - standard_name = weights_for_stochastic_spp_mp_perturbation - long_name = weights for stochastic spp mp perturbation + standard_name = weights_for_stochastic_spp_mp_perturbations + long_name = weights for stochastic spp mp perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_gwd] - standard_name = weights_for_stochastic_spp_gwd_perturbation - long_name = weights for stochastic spp gwd perturbation + standard_name = weights_for_stochastic_spp_gwd_perturbations + long_name = weights for stochastic spp gwd perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_rad] - standard_name = weights_for_stochastic_spp_rad_perturbation - long_name = weights for stochastic spp rad perturbation + standard_name = weights_for_stochastic_spp_rad_perturbations + long_name = weights for stochastic spp rad perturbations units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real @@ -4660,6 +4660,36 @@ dimensions = (number_of_spp_schemes_perturbed) type = character kind = len=3 +[spp_pbl] + standard_name = control_for_planetary_boundary_layer_spp_perturbations + long_name = control for planetary boundary layer spp perturbations + units = count + dimensions = () + type = integer +[spp_sfc] + standard_name = control_for_surface_layer_spp_perturbations + long_name = control for surface layer spp perturbations + units = count + dimensions = () + type = integer +[spp_mp] + standard_name = control_for_microphysics_spp_perturbations + long_name = control for microphysics spp perturbations + units = count + dimensions = () + type = integer +[spp_rad] + standard_name = control_for_radiation_spp_perturbations + long_name = control for radiation spp perturbations + units = count + dimensions = () + type = integer +[spp_gwd] + standard_name = control_for_gravity_wave_drag_spp_perturbations + long_name = control for gravity wave drag spp perturbations + units = count + dimensions = () + type = integer [ntrac] standard_name = number_of_tracers long_name = number of tracers diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index e52f2e2a3..6ecb93edd 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -128,6 +128,40 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) end if if ( GFS_Control%do_spp ) then allocate(spp_wts(1:nblks,maxblk,1:levs,1:GFS_Control%n_var_spp)) + do n=1,GFS_Control%n_var_spp + select case (trim(GFS_Control%spp_var_list(n))) + case('pbl') + GFS_Control%spp_pbl = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_pbl(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_pbl = 0.0_kind_phys + end do + case('sfc') + GFS_Control%spp_sfc = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_sfc(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_sfc = 0.0_kind_phys + end do + case('mp') + GFS_Control%spp_mp = 7 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_mp(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_mp = 0.0_kind_phys + end do + case('rad') + GFS_Control%spp_rad = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_rad(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_rad = 0.0_kind_phys + end do + case('gwd') + GFS_Control%spp_gwd = 1 + do nb=1,Atm_block%nblks + allocate(GFS_Data(nb)%Coupling%spp_wts_gwd(maxblk,1:levs)) + GFS_Data(nb)%Coupling%spp_wts_gwd = 0.0_kind_phys + end do + end select + end do end if if ( GFS_Control%lndp_type == 2 ) then ! this scheme updates through forecast allocate(sfc_wts(1:nblks,maxblk,1:GFS_Control%n_var_lndp)) From 3f85580d12ea81eec9ce468300728abe25e31ec0 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:30:36 +0000 Subject: [PATCH 35/70] Test changes after PR review modifications --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index b11e60d3d..27e651a9d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/JeffBeck-NOAA/ccpp-physics - branch = feature/stoch_spp + branch = feature/stoch_spp_part2 [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP From a619064f9c9cf21ac704060d1bcb9f04b48267aa Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 20:46:19 +0000 Subject: [PATCH 36/70] Allocate spp_wts_* arrays in GFS_typedefs.F90 and not in the stochastic physics wrapper. --- ccpp/data/GFS_typedefs.F90 | 16 ++++++++++++++- .../stochastic_physics_wrapper.F90 | 20 ------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index e9c505d6a..033b7761d 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -2987,12 +2987,26 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%skebu_wts = clear_val Coupling%skebv_wts = clear_val endif - + !--- stochastic land perturbation option if (Model%lndp_type /= 0) then allocate (Coupling%sfc_wts (IM,Model%n_var_lndp)) Coupling%sfc_wts = clear_val endif + + !--- stochastic spp perturbation option + if (Model%do_spp) then + allocate (Coupling%spp_wts_pbl (IM,Model%levs)) + Coupling%spp_wts_pbl = clear_val + allocate (Coupling%spp_wts_sfc (IM,Model%levs)) + Coupling%spp_wts_sfc = clear_val + allocate (Coupling%spp_wts_mp (IM,Model%levs)) + Coupling%spp_wts_mp = clear_val + allocate (Coupling%spp_wts_gwd (IM,Model%levs)) + Coupling%spp_wts_gwd = clear_val + allocate (Coupling%spp_wts_rad (IM,Model%levs)) + Coupling%spp_wts_rad = clear_val + endif !--- needed for Thompson's aerosol option if(Model%imp_physics == Model%imp_physics_thompson .and. Model%ltaerosol) then diff --git a/stochastic_physics/stochastic_physics_wrapper.F90 b/stochastic_physics/stochastic_physics_wrapper.F90 index 6ecb93edd..ae67c0daf 100644 --- a/stochastic_physics/stochastic_physics_wrapper.F90 +++ b/stochastic_physics/stochastic_physics_wrapper.F90 @@ -132,34 +132,14 @@ subroutine stochastic_physics_wrapper (GFS_Control, GFS_Data, Atm_block, ierr) select case (trim(GFS_Control%spp_var_list(n))) case('pbl') GFS_Control%spp_pbl = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_pbl(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_pbl = 0.0_kind_phys - end do case('sfc') GFS_Control%spp_sfc = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_sfc(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_sfc = 0.0_kind_phys - end do case('mp') GFS_Control%spp_mp = 7 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_mp(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_mp = 0.0_kind_phys - end do case('rad') GFS_Control%spp_rad = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_rad(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_rad = 0.0_kind_phys - end do case('gwd') GFS_Control%spp_gwd = 1 - do nb=1,Atm_block%nblks - allocate(GFS_Data(nb)%Coupling%spp_wts_gwd(maxblk,1:levs)) - GFS_Data(nb)%Coupling%spp_wts_gwd = 0.0_kind_phys - end do end select end do end if From 906c341b08e2819a7eccfe68febfa2cb145ee5ff Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 12 Jan 2022 21:35:12 +0000 Subject: [PATCH 37/70] Update pointers for ccpp/physics and ccpp/framework --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 64b5afd13..e7ecb34c9 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 64b5afd1352d709f3b72734bf960e36024a838d3 +Subproject commit e7ecb34c93b1e1c313c371bb708576a905d4b14c diff --git a/ccpp/physics b/ccpp/physics index 307a507f2..e44b9aa4b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 307a507f24829210b88e7abf7e6872cdacc50462 +Subproject commit e44b9aa4bc7985fe1d9d9e7602a266e5544d3ce1 From 22bd1e70a1701a1f0b42c620d4158c616caf52ae Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 13 Jan 2022 02:52:19 +0000 Subject: [PATCH 38/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index e44b9aa4b..8d599bc06 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e44b9aa4bc7985fe1d9d9e7602a266e5544d3ce1 +Subproject commit 8d599bc0608c30675568cc81424d16905646944c From e4f8b63e77a8d030cc50ce0c3ac95e6e558a1459 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 01:59:13 +0000 Subject: [PATCH 39/70] Change pointers and .gitmodule feature branch for ccpp-physics --- .gitmodules | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 27e651a9d..b11e60d3d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/JeffBeck-NOAA/ccpp-physics - branch = feature/stoch_spp_part2 + branch = feature/stoch_spp [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP diff --git a/ccpp/physics b/ccpp/physics index 8d599bc06..6f8982442 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 8d599bc0608c30675568cc81424d16905646944c +Subproject commit 6f898244276bf1f3e52f6fc084d4eb7b1963c1c9 From bf11e2ceb8459041c2c5b6daa069bac7bb5d8a33 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 02:17:23 +0000 Subject: [PATCH 40/70] Update pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 6f8982442..81d556c7a 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 6f898244276bf1f3e52f6fc084d4eb7b1963c1c9 +Subproject commit 81d556c7ab621319b04455bf2eee597ec67feafa From 6bbe0378d4dbdf667ba781be0fba2ab51fb7ff86 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 04:36:16 +0000 Subject: [PATCH 41/70] Update UPP pointer --- upp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upp b/upp index 0dc3c0c1d..89357d0f1 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit 0dc3c0c1dbdcdc5025dff0c6b06b16aa2a7ddda9 +Subproject commit 89357d0f1f3af0d8dd87ff292e290cd30d47d884 From ffbb736b9c1ad9029dda870743624ede2b49ec06 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 04:37:09 +0000 Subject: [PATCH 42/70] Update UPP pointer --- upp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upp b/upp index 89357d0f1..0dc3c0c1d 160000 --- a/upp +++ b/upp @@ -1 +1 @@ -Subproject commit 89357d0f1f3af0d8dd87ff292e290cd30d47d884 +Subproject commit 0dc3c0c1dbdcdc5025dff0c6b06b16aa2a7ddda9 From 2b0d37327b4ddf8c312896a280f454aeff8b1f51 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 04:57:11 +0000 Subject: [PATCH 43/70] Don't limit the size of spp_var_list --- ccpp/data/GFS_typedefs.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 8cbde3a5f..8502bff07 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1186,8 +1186,8 @@ module GFS_typedefs integer :: spp_rad integer :: spp_gwd integer :: n_var_spp - character(len=3) :: spp_var_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def - real(kind=kind_phys) :: spp_prt_list(6) ! dimension here must match n_var_max_spp in stochy_nml_def + character(len=3) :: spp_var_list(:) ! dimension here must match n_var_spp in stochy_nml_def + real(kind=kind_phys) :: spp_prt_list(:) ! dimension here must match n_var_spp in stochy_nml_def !--- tracer handling character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core From d977250b034b34f13c8936143a34d41ddac2c212 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 16:25:56 +0000 Subject: [PATCH 44/70] Update pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 81d556c7a..9c90b4702 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 81d556c7ab621319b04455bf2eee597ec67feafa +Subproject commit 9c90b4702eff5bc1c0ff924620e3b8a0b06448dd From 0e300e27e9a70187352d672502044f4cd90cfb39 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 19:42:19 +0000 Subject: [PATCH 45/70] Update pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 9c90b4702..a7b987594 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9c90b4702eff5bc1c0ff924620e3b8a0b06448dd +Subproject commit a7b987594372c4446103c3afa0310b5b98c45723 From 3575581fb29bb4fdae5aa2be24b0e635346cfedf Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 19:56:00 +0000 Subject: [PATCH 46/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index a7b987594..dd419a3db 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a7b987594372c4446103c3afa0310b5b98c45723 +Subproject commit dd419a3db2a9a1b825287c39da42610b1546dcb9 From b50c0ceb8718386dad76d564f3759992a00b6b15 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 20:06:47 +0000 Subject: [PATCH 47/70] Fix spp_var/prt_list in GFS_typedefs.F90 --- ccpp/data/GFS_typedefs.F90 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 8502bff07..fdd9f989a 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -4483,6 +4483,14 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lndp_var_list(:) = '' Model%lndp_prt_list(:) = clear_val end if + + if (Model%do_spp) then + allocate(Model%spp_var_list(Model%n_var_spp)) + allocate(Model%spp_prt_list(Model%n_var_spp)) + Model%spp_var_list(:) = '' + Model%spp_prt_list(:) = clear_val + end if + !--- cellular automata options ! force namelist constsitency allocate(Model%vfact_ca(levs)) From 2fda3786046be7d2ef32384509c6cf5fddbd2b2c Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 14 Jan 2022 20:12:19 +0000 Subject: [PATCH 48/70] Make SPP variables pointers in GFS_typedefs.F90 --- ccpp/data/GFS_typedefs.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index fdd9f989a..48df6144e 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -1186,8 +1186,8 @@ module GFS_typedefs integer :: spp_rad integer :: spp_gwd integer :: n_var_spp - character(len=3) :: spp_var_list(:) ! dimension here must match n_var_spp in stochy_nml_def - real(kind=kind_phys) :: spp_prt_list(:) ! dimension here must match n_var_spp in stochy_nml_def + character(len=3) , pointer :: spp_var_list(:) ! dimension here must match n_var_spp in stochy_nml_def + real(kind=kind_phys), pointer :: spp_prt_list(:) ! dimension here must match n_var_spp in stochy_nml_def !--- tracer handling character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core From a030e4390eaeef9711e5c8f375bdee2d2b13a53b Mon Sep 17 00:00:00 2001 From: jeff beck Date: Sun, 16 Jan 2022 03:54:35 +0000 Subject: [PATCH 49/70] Updates to standard names and units --- ccpp/data/GFS_typedefs.meta | 54 ++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index cebf73036..7453c532e 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -2245,41 +2245,41 @@ kind = kind_phys active = (flag_for_stochastic_skeb_option) [spp_wts_pbl] - standard_name = weights_for_stochastic_spp_pbl_perturbations - long_name = weights for stochastic spp pbl perturbations - units = none + standard_name = spp_weights_for_pbl_scheme + long_name = spp weights for pbl scheme + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_sfc] - standard_name = weights_for_stochastic_spp_sfc_perturbations - long_name = weights for stochastic spp sfc perturbations - units = none + standard_name = spp_weights_for_surface_layer_scheme + long_name = spp weights for surface layer scheme + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_mp] - standard_name = weights_for_stochastic_spp_mp_perturbations - long_name = weights for stochastic spp mp perturbations - units = none + standard_name = spp_weights_for_microphysics_scheme + long_name = spp weights for microphysics scheme + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_gwd] - standard_name = weights_for_stochastic_spp_gwd_perturbations - long_name = weights for stochastic spp gwd perturbations - units = none + standard_name = spp_weights_for_gravity_wave_drag_scheme + long_name = spp weights for gravity wave drag scheme + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_stochastic_spp_option) [spp_wts_rad] - standard_name = weights_for_stochastic_spp_rad_perturbations - long_name = weights for stochastic spp rad perturbations - units = none + standard_name = spp_weights_for_radiation_scheme + long_name = spp weights for radiation scheme + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -2287,7 +2287,7 @@ [sfc_wts] standard_name = surface_stochastic_weights_from_coupled_process long_name = weights for stochastic surface physics perturbation - units = none + units = 1 dimensions = (horizontal_loop_extent,number_of_perturbed_land_surface_variables) type = real kind = kind_phys @@ -4651,8 +4651,8 @@ dimensions = () type = logical [do_spp] - standard_name = flag_for_stochastic_spp_option - long_name = flag for stochastic spp option + standard_name = do_stochastically_perturbed_parameterizations + long_name = do stochastically perturbed parameterizations units = flag dimensions = () type = logical @@ -4685,28 +4685,28 @@ kind = len=3 active = (control_for_stochastic_land_surface_perturbation /= 0) [n_var_spp] - standard_name = number_of_spp_schemes_perturbed - long_name = number of spp schemes perturbed + standard_name = number_of_perturbed_spp_schemes + long_name = number of perturbed spp schemes units = count dimensions = () type = integer [spp_prt_list] - standard_name =magnitude_of_perturbations_for_spp - long_name = magnitude of perturbations for spp - units = variable + standard_name =magnitude_of_spp_perturbations + long_name = magnitude of spp perturbations + units = 1 dimensions = (number_of_spp_schemes_perturbed) type = real kind = kind_phys [spp_var_list] - standard_name = variables_to_be_perturbed_for_spp - long_name = variables to be perturbed for spp + standard_name = perturbed_spp_schemes + long_name = perturbed spp schemes units = none dimensions = (number_of_spp_schemes_perturbed) type = character kind = len=3 [spp_pbl] - standard_name = control_for_planetary_boundary_layer_spp_perturbations - long_name = control for planetary boundary layer spp perturbations + standard_name = control_for_pbl_spp_perturbations + long_name = control for pbl spp perturbations units = count dimensions = () type = integer From 75c0c20b2e0b724f65ab59ba7af03da184f57f27 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Sun, 16 Jan 2022 03:55:19 +0000 Subject: [PATCH 50/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index dd419a3db..d466eb1fe 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit dd419a3db2a9a1b825287c39da42610b1546dcb9 +Subproject commit d466eb1fee4ffef9821247973d7aed16d5c8801a From bd136506655e3f2bf2c569bc6d30f35a59f1a3ad Mon Sep 17 00:00:00 2001 From: jeff beck Date: Sun, 16 Jan 2022 19:58:21 +0000 Subject: [PATCH 51/70] Change spp_prt_list to a variable unit --- ccpp/data/GFS_typedefs.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 7453c532e..62893b39f 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4693,7 +4693,7 @@ [spp_prt_list] standard_name =magnitude_of_spp_perturbations long_name = magnitude of spp perturbations - units = 1 + units = variable dimensions = (number_of_spp_schemes_perturbed) type = real kind = kind_phys From 1ddbf09879babd49b96ac07645eb4d615cc5a619 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Sun, 16 Jan 2022 20:04:05 +0000 Subject: [PATCH 52/70] Update do_spp metadata --- ccpp/data/GFS_typedefs.meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 62893b39f..f24704310 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4651,8 +4651,8 @@ dimensions = () type = logical [do_spp] - standard_name = do_stochastically_perturbed_parameterizations - long_name = do stochastically perturbed parameterizations + standard_name = flag_for_stochastic_spp_option + long_name = flag for stochastic spp option units = flag dimensions = () type = logical From 15ede90c2089c6ce5cd113fe6b8f56b6cc87ad3b Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 18 Jan 2022 20:48:32 +0000 Subject: [PATCH 53/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index d466eb1fe..f685e2011 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit d466eb1fee4ffef9821247973d7aed16d5c8801a +Subproject commit f685e2011fa14017571bc51540789e0c7932d21c From 4efb22f589941e98ff4fa8d42f5661258c2f37e0 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 20 Jan 2022 04:05:34 +0000 Subject: [PATCH 54/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index f685e2011..34f79e7c5 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f685e2011fa14017571bc51540789e0c7932d21c +Subproject commit 34f79e7c5c640d549e4c4a2f5b7195a572a8ebef From cd453a3c68ecb2a3ca028391d9c7909db18d19ce Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 20 Jan 2022 04:26:33 +0000 Subject: [PATCH 55/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 34f79e7c5..73eb0f35b 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 34f79e7c5c640d549e4c4a2f5b7195a572a8ebef +Subproject commit 73eb0f35b3ee2a47f821fe808c50c052207ca9fc From 47f8481b44409c8b89ffb5300683b78c21089d96 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 20 Jan 2022 04:36:19 +0000 Subject: [PATCH 56/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 73eb0f35b..63c5f9626 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 73eb0f35b3ee2a47f821fe808c50c052207ca9fc +Subproject commit 63c5f96260aca15fc3757f358437a317b48243e0 From 169eeb64c41bbb1b4ab330a927bbb1926d7b5968 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 11 Feb 2022 03:11:13 +0000 Subject: [PATCH 57/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 63c5f9626..9560a79b6 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 63c5f96260aca15fc3757f358437a317b48243e0 +Subproject commit 9560a79b6074f4285615e5e69df0ec4bffc23fdb From 3128a48298475549767c46583467525f02e2e7c2 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Fri, 11 Feb 2022 21:45:22 +0000 Subject: [PATCH 58/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 9560a79b6..959c7e157 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 9560a79b6074f4285615e5e69df0ec4bffc23fdb +Subproject commit 959c7e157ef67c27782c49e4298c9373e560d314 From bc896a330665d0c2fc3d3afc4c879a92743988f3 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 16 Feb 2022 16:51:01 +0000 Subject: [PATCH 59/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 959c7e157..308b0b383 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 959c7e157ef67c27782c49e4298c9373e560d314 +Subproject commit 308b0b38347d5460351f91b8648646e15a90f220 From c3c4ca94ff4fdfabd9c7af2dd6af15723b588b86 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 16 Feb 2022 21:00:12 +0000 Subject: [PATCH 60/70] Update units for spp_prt_list. --- ccpp/data/GFS_typedefs.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index b6d2648b8..16abfed41 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4693,7 +4693,7 @@ [spp_prt_list] standard_name =magnitude_of_spp_perturbations long_name = magnitude of spp perturbations - units = variable + units = 1 dimensions = (number_of_spp_schemes_perturbed) type = real kind = kind_phys From 139049ff8bfe87b2f6e5d0fe1eafc174662bfd3b Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 16 Feb 2022 21:03:17 +0000 Subject: [PATCH 61/70] Update do_spp standard name. --- ccpp/data/GFS_typedefs.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 16abfed41..3cc4e0f5c 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4602,7 +4602,7 @@ type = real kind = kind_phys [do_sppt] - standard_name = flag_for_stochastic_physics_perturbations + standard_name = do_stochastically_perturbed_parameterizations long_name = flag for stochastic physics perturbations units = flag dimensions = () From 587adba1759795a41e060591b4f4698759a45ee6 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 17 Feb 2022 18:06:07 +0000 Subject: [PATCH 62/70] Update do_spp standard name --- ccpp/data/GFS_typedefs.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 3cc4e0f5c..a58ad68ea 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4651,7 +4651,7 @@ dimensions = () type = logical [do_spp] - standard_name = flag_for_stochastic_spp_option + standard_name = do_stochastically_perturbed_parameterizations long_name = flag for stochastic spp option units = flag dimensions = () From 51fad10e7563e27dab13114a7de4739b53b48b56 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 17 Feb 2022 18:35:21 +0000 Subject: [PATCH 63/70] Revert erroneous do_sppt standard name change. --- ccpp/data/GFS_typedefs.meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index a58ad68ea..03793d8f4 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -4602,7 +4602,7 @@ type = real kind = kind_phys [do_sppt] - standard_name = do_stochastically_perturbed_parameterizations + standard_name = flag_for_stochastic_physics_perturbations long_name = flag for stochastic physics perturbations units = flag dimensions = () From f12ceea5dc4d12189924f46ed5dd50cf462f3493 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 17 Feb 2022 18:59:08 +0000 Subject: [PATCH 64/70] Change all references of flag_for_stochastic_spp_option to do_stochastically_perturbed_parameterizations --- ccpp/data/GFS_typedefs.meta | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 03793d8f4..5abf70dfc 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -2251,7 +2251,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_stochastic_spp_option) + active = (do_stochastically_perturbed_parameterizations) [spp_wts_sfc] standard_name = spp_weights_for_surface_layer_scheme long_name = spp weights for surface layer scheme @@ -2259,7 +2259,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_stochastic_spp_option) + active = (do_stochastically_perturbed_parameterizations) [spp_wts_mp] standard_name = spp_weights_for_microphysics_scheme long_name = spp weights for microphysics scheme @@ -2267,7 +2267,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_stochastic_spp_option) + active = (do_stochastically_perturbed_parameterizations) [spp_wts_gwd] standard_name = spp_weights_for_gravity_wave_drag_scheme long_name = spp weights for gravity wave drag scheme @@ -2275,7 +2275,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_stochastic_spp_option) + active = (do_stochastically_perturbed_parameterizations) [spp_wts_rad] standard_name = spp_weights_for_radiation_scheme long_name = spp weights for radiation scheme @@ -2283,7 +2283,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_stochastic_spp_option) + active = (do_stochastically_perturbed_parameterizations) [sfc_wts] standard_name = surface_stochastic_weights_from_coupled_process long_name = weights for stochastic surface physics perturbation From b9392777db203b8f68edf09522b4d6a6681a735f Mon Sep 17 00:00:00 2001 From: jeff beck Date: Thu, 17 Feb 2022 20:11:42 +0000 Subject: [PATCH 65/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index 308b0b383..def0e78c4 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 308b0b38347d5460351f91b8648646e15a90f220 +Subproject commit def0e78c4c6e94ea32e9f526e1408ae31e2467db From 1fff6afd983f5fecdf6a84f111b4ce054ee99531 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Mon, 21 Feb 2022 20:36:00 +0000 Subject: [PATCH 66/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index def0e78c4..ac7cde77c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit def0e78c4c6e94ea32e9f526e1408ae31e2467db +Subproject commit ac7cde77cc1a983b500570864e4b12db8364e325 From a624feec1ea8c31b1db204af39089abdacb6b0ab Mon Sep 17 00:00:00 2001 From: jeff beck Date: Mon, 21 Feb 2022 20:37:46 +0000 Subject: [PATCH 67/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index ac7cde77c..f07475c2c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit ac7cde77cc1a983b500570864e4b12db8364e325 +Subproject commit f07475c2c6b5c397fda1c3a7396b6530e855fd17 From 208e2c407b5601ff9f8bfbd4f43030a92a622151 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Tue, 22 Feb 2022 16:52:08 +0000 Subject: [PATCH 68/70] Update ccpp/physics pointer --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index f07475c2c..f77322b3c 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f07475c2c6b5c397fda1c3a7396b6530e855fd17 +Subproject commit f77322b3cc1b69797fd6e375bd64b9df54a5e600 From 8dd5e2a8981b21408d56c42505cf1512ab7f34c6 Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 23 Feb 2022 19:08:13 +0000 Subject: [PATCH 69/70] Update ccpp-physics pointer and .gitmodules file --- .gitmodules | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index b11e60d3d..75047fc1a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,7 +8,7 @@ branch = main [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/JeffBeck-NOAA/ccpp-physics + url = https://github.com/NCAR/ccpp-physics branch = feature/stoch_spp [submodule "upp"] path = upp diff --git a/ccpp/physics b/ccpp/physics index f77322b3c..ff6395ca4 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit f77322b3cc1b69797fd6e375bd64b9df54a5e600 +Subproject commit ff6395ca4d18e41118dba721d43202937dfa951e From ff03dc620c4bc37d61f56282358110632dd9325c Mon Sep 17 00:00:00 2001 From: jeff beck Date: Wed, 23 Feb 2022 20:33:02 +0000 Subject: [PATCH 70/70] Change branch back to main --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 75047fc1a..6bb663df1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,7 +9,7 @@ [submodule "ccpp/physics"] path = ccpp/physics url = https://github.com/NCAR/ccpp-physics - branch = feature/stoch_spp + branch = main [submodule "upp"] path = upp url = https://github.com/NOAA-EMC/UPP