diff --git a/ccpp/CCPP_driver.F90 b/ccpp/CCPP_driver.F90 index 12183747d..c71097b07 100644 --- a/ccpp/CCPP_driver.F90 +++ b/ccpp/CCPP_driver.F90 @@ -58,7 +58,7 @@ subroutine CCPP_step (step, nblks, ierr, dycore) integer, intent(out) :: ierr character(len=*), intent(in) :: dycore ! Local variables - integer :: nb, nt, ntX + integer :: nb, nt integer :: ierr2 integer :: kdt_iau logical :: iauwindow_center @@ -216,11 +216,10 @@ subroutine CCPP_step (step, nblks, ierr, dycore) !$OMP parallel num_threads (nthrds) & !$OMP default (none) & -!$OMP shared (nblks, nthrdsX, non_uniform_blocks, & -!$OMP cdata_block, ccpp_suite, step, & -!$OMP GFS_Control, GFS_Interstitial, & -!$OMP dycore) & -!$OMP private (nb, nt, ntX, ierr2) & +!$OMP shared (nblks, cdata_block, ccpp_suite, & +!$OMP step, GFS_Control, GFS_Interstitial,& +!$OMP dycore) & +!$OMP private (nb, nt, ierr2) & !$OMP reduction (+:ierr) #ifdef _OPENMP nt = omp_get_thread_num()+1 @@ -229,66 +228,61 @@ subroutine CCPP_step (step, nblks, ierr, dycore) #endif !$OMP do schedule (dynamic,1) do nb = 1,nblks - ! For non-uniform blocks/chunks, the last block/chunk has a different (shorter) - ! length than the other blocks/chunks; use special CCPP_Interstitial(nthrdsX) - if (non_uniform_blocks .and. nb==nblks) then - ntX = nthrdsX - else - ntX = nt - end if + ! Allocate physics interstitals for current thread + call GFS_Interstitial(nt)%create(ixs=GFS_control%chunk_begin(nb), ixe=GFS_control%chunk_end(nb), model=GFS_control) !--- Call CCPP radiation/physics/stochastics group if (trim(step)=="physics") then if (trim(dycore)=="fv3") then ! Reset GFS_Interstitial DDT fields for this thread - call GFS_Interstitial(ntX)%reset(GFS_control) + call GFS_Interstitial(nt)%reset(GFS_control) ! Process-split physics - call ccpp_physics_run(cdata_block(nb,ntX), suite_name=trim(ccpp_suite), group_name="phys_ps", ierr=ierr2) + call ccpp_physics_run(cdata_block(nb,nt), suite_name=trim(ccpp_suite), group_name="phys_ps", ierr=ierr2) if (ierr2/=0) then write(0,'(2a,3(a,i4),a)') "An error occurred in ccpp_physics_run for group ", "phys_ps", & - ", block/chunk ", nb, " and thread ", nt, " (ntX=", ntX, "):" - write(0,'(a)') trim(cdata_block(nb,ntX)%errmsg) + ", block/chunk ", nb, " and thread ", nt, " (nt=", nt, "):" + write(0,'(a)') trim(cdata_block(nb,nt)%errmsg) ierr = ierr + ierr2 endif ! Time-split physics - call ccpp_physics_run(cdata_block(nb,ntX), suite_name=trim(ccpp_suite), group_name="phys_ts", ierr=ierr2) + call ccpp_physics_run(cdata_block(nb,nt), suite_name=trim(ccpp_suite), group_name="phys_ts", ierr=ierr2) if (ierr2/=0) then write(0,'(2a,3(a,i4),a)') "An error occurred in ccpp_physics_run for group ", "phys_ts", & - ", block/chunk ", nb, " and thread ", nt, " (ntX=", ntX, "):" - write(0,'(a)') trim(cdata_block(nb,ntX)%errmsg) + ", block/chunk ", nb, " and thread ", nt, " (nt=", nt, "):" + write(0,'(a)') trim(cdata_block(nb,nt)%errmsg) ierr = ierr + ierr2 endif endif if (trim(dycore)=="mpas") then ! Physics - call ccpp_physics_run(cdata_block(nb,ntX), suite_name=trim(ccpp_suite), group_name="physics", ierr=ierr2) + call ccpp_physics_run(cdata_block(nb,nt), suite_name=trim(ccpp_suite), group_name="physics", ierr=ierr2) if (ierr2/=0) then write(0,'(2a,3(a,i4),a)') "An error occurred in ccpp_physics_run for group ", "physics", & - ", block/chunk ", nb, " and thread ", nt, " (ntX=", ntX, "):" - write(0,'(a)') trim(cdata_block(nb,ntX)%errmsg) + ", block/chunk ", nb, " and thread ", nt, " (nt=", nt, "):" + write(0,'(a)') trim(cdata_block(nb,nt)%errmsg) ierr = ierr + ierr2 endif endif else if (trim(step)=="radiation") then ! Reset GFS_Interstitial DDT fields for this thread - call GFS_Interstitial(ntX)%reset(GFS_control) + call GFS_Interstitial(nt)%reset(GFS_control) endif ! Radiation - call ccpp_physics_run(cdata_block(nb,ntX), suite_name=trim(ccpp_suite), group_name=trim(step), ierr=ierr2) + call ccpp_physics_run(cdata_block(nb,nt), suite_name=trim(ccpp_suite), group_name=trim(step), ierr=ierr2) if (ierr2/=0) then write(0,'(2a,3(a,i4),a)') "An error occurred in ccpp_physics_run for group ", trim(step), & - ", block/chunk ", nb, " and thread ", nt, " (ntX=", ntX, "):" - write(0,'(a)') trim(cdata_block(nb,ntX)%errmsg) + ", block/chunk ", nb, " and thread ", nt, " (nt=", nt, "):" + write(0,'(a)') trim(cdata_block(nb,nt)%errmsg) ierr = ierr + ierr2 endif ! Microphysics (MPAS only) if (trim(step)=="microphysics") then if (trim(dycore)=="mpas") then - call ccpp_physics_run(cdata_block(nb,ntX), suite_name=trim(ccpp_suite), group_name="microphysics", ierr=ierr2) + call ccpp_physics_run(cdata_block(nb,nt), suite_name=trim(ccpp_suite), group_name="microphysics", ierr=ierr2) if (ierr2/=0) then write(0,'(2a,3(a,i4),a)') "An error occurred in ccpp_physics_run for group ", "microphysics", & - ", block/chunk ", nb, " and thread ", nt, " (ntX=", ntX, "):" - write(0,'(a)') trim(cdata_block(nb,ntX)%errmsg) + ", block/chunk ", nb, " and thread ", nt, " (nt=", nt, "):" + write(0,'(a)') trim(cdata_block(nb,nt)%errmsg) ierr = ierr + ierr2 endif else @@ -297,6 +291,7 @@ subroutine CCPP_step (step, nblks, ierr, dycore) endif endif endif + call GFS_Interstitial(nt)%destroy(GFS_control) end do !$OMP end do diff --git a/ccpp/CMakeLists.txt b/ccpp/CMakeLists.txt index fd27eb299..5eba68b73 100644 --- a/ccpp/CMakeLists.txt +++ b/ccpp/CMakeLists.txt @@ -145,6 +145,7 @@ endif() #------------------------------------------------------------------------------ # Build CCPP framework and physics +set(BUILD_SHARED_LIBS OFF) add_subdirectory(framework) add_subdirectory(physics) diff --git a/ccpp/data/CCPP_typedefs.F90 b/ccpp/data/CCPP_typedefs.F90 index 09dda7df6..8c18aa481 100644 --- a/ccpp/data/CCPP_typedefs.F90 +++ b/ccpp/data/CCPP_typedefs.F90 @@ -89,7 +89,6 @@ module CCPP_typedefs real (kind=kind_phys), pointer :: cnv_ndrop(:,:) => null() !< real (kind=kind_phys), pointer :: cnv_nice(:,:) => null() !< real (kind=kind_phys), pointer :: cnvc(:,:) => null() !< - real (kind=kind_phys), pointer :: cnvw(:,:) => null() !< real (kind=kind_phys), pointer :: ctei_r(:) => null() !< real (kind=kind_phys), pointer :: ctei_rml(:) => null() !< real (kind=kind_phys), pointer :: cumabs(:) => null() !< @@ -413,6 +412,7 @@ module CCPP_typedefs contains procedure :: create => gfs_interstitial_create !< allocate array data + procedure :: destroy => gfs_interstitial_destroy !< deallocate array data procedure :: reset => gfs_interstitial_reset !< reset array data end type GFS_interstitial_type @@ -498,12 +498,12 @@ module CCPP_typedefs ! GFS_interstitial_type !---------------------- - subroutine gfs_interstitial_create (Interstitial, IM, Model) + subroutine gfs_interstitial_create (Interstitial, ixs, ixe, Model) ! implicit none ! class(GFS_interstitial_type) :: Interstitial - integer, intent(in) :: IM + integer, intent(in) :: ixs, ixe type(GFS_control_type), intent(in) :: Model integer :: iGas ! @@ -513,344 +513,343 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) ! Interstitial%{nvdiff,mg3_as_mg2,nn,tracers_total,ntcwx,ntiwx,ntk,ntkev,otspt,nsamftrac,ncstrac,nscav} call gfs_interstitial_setup_tracers(Interstitial, Model) ! Allocate arrays - allocate (Interstitial%adjsfculw_land (IM)) - allocate (Interstitial%adjsfculw_ice (IM)) - allocate (Interstitial%adjsfculw_water (IM)) - allocate (Interstitial%adjnirbmd (IM)) - allocate (Interstitial%adjnirbmu (IM)) - allocate (Interstitial%adjnirdfd (IM)) - allocate (Interstitial%adjnirdfu (IM)) - allocate (Interstitial%adjvisbmd (IM)) - allocate (Interstitial%adjvisbmu (IM)) - allocate (Interstitial%adjvisdfu (IM)) - allocate (Interstitial%adjvisdfd (IM)) - allocate (Interstitial%aerodp (IM,NSPC1)) - allocate (Interstitial%alb1d (IM)) + allocate (Interstitial%adjsfculw_land (ixs:ixe)) + allocate (Interstitial%adjsfculw_ice (ixs:ixe)) + allocate (Interstitial%adjsfculw_water (ixs:ixe)) + allocate (Interstitial%adjnirbmd (ixs:ixe)) + allocate (Interstitial%adjnirbmu (ixs:ixe)) + allocate (Interstitial%adjnirdfd (ixs:ixe)) + allocate (Interstitial%adjnirdfu (ixs:ixe)) + allocate (Interstitial%adjvisbmd (ixs:ixe)) + allocate (Interstitial%adjvisbmu (ixs:ixe)) + allocate (Interstitial%adjvisdfu (ixs:ixe)) + allocate (Interstitial%adjvisdfd (ixs:ixe)) + allocate (Interstitial%aerodp (ixs:ixe,NSPC1)) + allocate (Interstitial%alb1d (ixs:ixe)) if (.not. Model%do_RRTMGP) then ! RRTMGP uses its own cloud_overlap_param - allocate (Interstitial%alpha (IM,Model%levr+LTP)) + allocate (Interstitial%alpha (ixs:ixe,Model%levr+LTP)) end if - allocate (Interstitial%bexp1d (IM)) - allocate (Interstitial%cd (IM)) - allocate (Interstitial%cd_ice (IM)) - allocate (Interstitial%cd_land (IM)) - allocate (Interstitial%cd_water (IM)) - allocate (Interstitial%cdq (IM)) - allocate (Interstitial%cdq_ice (IM)) - allocate (Interstitial%cdq_land (IM)) - allocate (Interstitial%cdq_water (IM)) - allocate (Interstitial%chh_ice (IM)) - allocate (Interstitial%chh_land (IM)) - allocate (Interstitial%chh_water (IM)) - allocate (Interstitial%cldf (IM)) - allocate (Interstitial%cldsa (IM,5)) - allocate (Interstitial%cldtaulw (IM,Model%levr+LTP)) - allocate (Interstitial%cldtausw (IM,Model%levr+LTP)) - allocate (Interstitial%cld1d (IM)) - allocate (Interstitial%clouds (IM,Model%levr+LTP,NF_CLDS)) - allocate (Interstitial%clw (IM,Model%levs,Interstitial%nn)) - allocate (Interstitial%clx (IM,4)) - allocate (Interstitial%cmm_ice (IM)) - allocate (Interstitial%cmm_land (IM)) - allocate (Interstitial%cmm_water (IM)) - allocate (Interstitial%cnvc (IM,Model%levs)) - allocate (Interstitial%cnvw (IM,Model%levs)) - allocate (Interstitial%ctei_r (IM)) - allocate (Interstitial%ctei_rml (IM)) - allocate (Interstitial%cumabs (IM)) - allocate (Interstitial%dd_mf (IM,Model%levs)) - allocate (Interstitial%de_lgth (IM)) - allocate (Interstitial%del (IM,Model%levs)) - allocate (Interstitial%del_gz (IM,Model%levs+1)) - allocate (Interstitial%delr (IM,Model%levr+LTP)) - allocate (Interstitial%dlength (IM)) - allocate (Interstitial%dqdt (IM,Model%levs,Model%ntrac)) - allocate (Interstitial%dqsfc1 (IM)) - allocate (Interstitial%drain (IM)) - allocate (Interstitial%dtdt (IM,Model%levs)) - allocate (Interstitial%dtsfc1 (IM)) - allocate (Interstitial%dt_mf (IM,Model%levs)) - allocate (Interstitial%dtzm (IM)) - allocate (Interstitial%dudt (IM,Model%levs)) - allocate (Interstitial%dusfcg (IM)) - allocate (Interstitial%dusfc1 (IM)) - allocate (Interstitial%dvdt (IM,Model%levs)) - allocate (Interstitial%dvsfcg (IM)) - allocate (Interstitial%dvsfc1 (IM)) - allocate (Interstitial%dvdftra (IM,Model%levs,Interstitial%nvdiff)) - allocate (Interstitial%dzlyr (IM,Model%levr+LTP)) - allocate (Interstitial%elvmax (IM)) - allocate (Interstitial%ep1d (IM)) - allocate (Interstitial%ep1d_ice (IM)) - allocate (Interstitial%ep1d_land (IM)) - allocate (Interstitial%ep1d_water (IM)) - allocate (Interstitial%evap_ice (IM)) - allocate (Interstitial%evap_land (IM)) - allocate (Interstitial%evap_water (IM)) - allocate (Interstitial%evbs (IM)) - allocate (Interstitial%evcw (IM)) - allocate (Interstitial%pah (IM)) - allocate (Interstitial%ecan (IM)) - allocate (Interstitial%etran (IM)) - allocate (Interstitial%edir (IM)) - allocate (Interstitial%faerlw (IM,Model%levr+LTP,NBDLW,NF_AELW)) - allocate (Interstitial%faersw (IM,Model%levr+LTP,NBDSW,NF_AESW)) - allocate (Interstitial%ffhh_ice (IM)) - allocate (Interstitial%ffhh_land (IM)) - allocate (Interstitial%ffhh_water (IM)) - allocate (Interstitial%fh2 (IM)) - allocate (Interstitial%fh2_ice (IM)) - allocate (Interstitial%fh2_land (IM)) - allocate (Interstitial%fh2_water (IM)) - allocate (Interstitial%flag_cice (IM)) - allocate (Interstitial%flag_guess (IM)) - allocate (Interstitial%flag_iter (IM)) - allocate (Interstitial%flag_lakefreeze (IM)) - allocate (Interstitial%ffmm_ice (IM)) - allocate (Interstitial%ffmm_land (IM)) - allocate (Interstitial%ffmm_water (IM)) - allocate (Interstitial%fm10 (IM)) - allocate (Interstitial%fm10_ice (IM)) - allocate (Interstitial%fm10_land (IM)) - allocate (Interstitial%fm10_water (IM)) - allocate (Interstitial%frland (IM)) + allocate (Interstitial%bexp1d (ixs:ixe)) + allocate (Interstitial%cd (ixs:ixe)) + allocate (Interstitial%cd_ice (ixs:ixe)) + allocate (Interstitial%cd_land (ixs:ixe)) + allocate (Interstitial%cd_water (ixs:ixe)) + allocate (Interstitial%cdq (ixs:ixe)) + allocate (Interstitial%cdq_ice (ixs:ixe)) + allocate (Interstitial%cdq_land (ixs:ixe)) + allocate (Interstitial%cdq_water (ixs:ixe)) + allocate (Interstitial%chh_ice (ixs:ixe)) + allocate (Interstitial%chh_land (ixs:ixe)) + allocate (Interstitial%chh_water (ixs:ixe)) + allocate (Interstitial%cldf (ixs:ixe)) + allocate (Interstitial%cldsa (ixs:ixe,5)) + allocate (Interstitial%cldtaulw (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%cldtausw (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%cld1d (ixs:ixe)) + allocate (Interstitial%clouds (ixs:ixe,Model%levr+LTP,NF_CLDS)) + allocate (Interstitial%clw (ixs:ixe,Model%levs,Interstitial%nn)) + allocate (Interstitial%clx (ixs:ixe,4)) + allocate (Interstitial%cmm_ice (ixs:ixe)) + allocate (Interstitial%cmm_land (ixs:ixe)) + allocate (Interstitial%cmm_water (ixs:ixe)) + allocate (Interstitial%cnvc (ixs:ixe,Model%levs)) + allocate (Interstitial%ctei_r (ixs:ixe)) + allocate (Interstitial%ctei_rml (ixs:ixe)) + allocate (Interstitial%cumabs (ixs:ixe)) + allocate (Interstitial%dd_mf (ixs:ixe,Model%levs)) + allocate (Interstitial%de_lgth (ixs:ixe)) + allocate (Interstitial%del (ixs:ixe,Model%levs)) + allocate (Interstitial%del_gz (ixs:ixe,Model%levs+1)) + allocate (Interstitial%delr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%dlength (ixs:ixe)) + allocate (Interstitial%dqdt (ixs:ixe,Model%levs,Model%ntrac)) + allocate (Interstitial%dqsfc1 (ixs:ixe)) + allocate (Interstitial%drain (ixs:ixe)) + allocate (Interstitial%dtdt (ixs:ixe,Model%levs)) + allocate (Interstitial%dtsfc1 (ixs:ixe)) + allocate (Interstitial%dt_mf (ixs:ixe,Model%levs)) + allocate (Interstitial%dtzm (ixs:ixe)) + allocate (Interstitial%dudt (ixs:ixe,Model%levs)) + allocate (Interstitial%dusfcg (ixs:ixe)) + allocate (Interstitial%dusfc1 (ixs:ixe)) + allocate (Interstitial%dvdt (ixs:ixe,Model%levs)) + allocate (Interstitial%dvsfcg (ixs:ixe)) + allocate (Interstitial%dvsfc1 (ixs:ixe)) + allocate (Interstitial%dvdftra (ixs:ixe,Model%levs,Interstitial%nvdiff)) + allocate (Interstitial%dzlyr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%elvmax (ixs:ixe)) + allocate (Interstitial%ep1d (ixs:ixe)) + allocate (Interstitial%ep1d_ice (ixs:ixe)) + allocate (Interstitial%ep1d_land (ixs:ixe)) + allocate (Interstitial%ep1d_water (ixs:ixe)) + allocate (Interstitial%evap_ice (ixs:ixe)) + allocate (Interstitial%evap_land (ixs:ixe)) + allocate (Interstitial%evap_water (ixs:ixe)) + allocate (Interstitial%evbs (ixs:ixe)) + allocate (Interstitial%evcw (ixs:ixe)) + allocate (Interstitial%pah (ixs:ixe)) + allocate (Interstitial%ecan (ixs:ixe)) + allocate (Interstitial%etran (ixs:ixe)) + allocate (Interstitial%edir (ixs:ixe)) + allocate (Interstitial%faerlw (ixs:ixe,Model%levr+LTP,NBDLW,NF_AELW)) + allocate (Interstitial%faersw (ixs:ixe,Model%levr+LTP,NBDSW,NF_AESW)) + allocate (Interstitial%ffhh_ice (ixs:ixe)) + allocate (Interstitial%ffhh_land (ixs:ixe)) + allocate (Interstitial%ffhh_water (ixs:ixe)) + allocate (Interstitial%fh2 (ixs:ixe)) + allocate (Interstitial%fh2_ice (ixs:ixe)) + allocate (Interstitial%fh2_land (ixs:ixe)) + allocate (Interstitial%fh2_water (ixs:ixe)) + allocate (Interstitial%flag_cice (ixs:ixe)) + allocate (Interstitial%flag_guess (ixs:ixe)) + allocate (Interstitial%flag_iter (ixs:ixe)) + allocate (Interstitial%flag_lakefreeze (ixs:ixe)) + allocate (Interstitial%ffmm_ice (ixs:ixe)) + allocate (Interstitial%ffmm_land (ixs:ixe)) + allocate (Interstitial%ffmm_water (ixs:ixe)) + allocate (Interstitial%fm10 (ixs:ixe)) + allocate (Interstitial%fm10_ice (ixs:ixe)) + allocate (Interstitial%fm10_land (ixs:ixe)) + allocate (Interstitial%fm10_water (ixs:ixe)) + allocate (Interstitial%frland (ixs:ixe)) allocate (Interstitial%fscav (Interstitial%nscav)) allocate (Interstitial%fswtr (Interstitial%nscav)) - allocate (Interstitial%gabsbdlw (IM)) - allocate (Interstitial%gabsbdlw_ice (IM)) - allocate (Interstitial%gabsbdlw_land (IM)) - allocate (Interstitial%gabsbdlw_water (IM)) - allocate (Interstitial%gamma (IM)) - allocate (Interstitial%gamq (IM)) - allocate (Interstitial%gamt (IM)) - allocate (Interstitial%gasvmr (IM,Model%levr+LTP,NF_VGAS)) - allocate (Interstitial%gflx (IM)) - allocate (Interstitial%gflx_ice (IM)) - allocate (Interstitial%gflx_land (IM)) - allocate (Interstitial%gflx_water (IM)) - allocate (Interstitial%gwdcu (IM,Model%levs)) - allocate (Interstitial%gwdcv (IM,Model%levs)) - allocate (Interstitial%zvfun (IM)) - allocate (Interstitial%hffac (IM)) - allocate (Interstitial%hflxq (IM)) - allocate (Interstitial%hflx_ice (IM)) - allocate (Interstitial%hflx_land (IM)) - allocate (Interstitial%hflx_water (IM)) - allocate (Interstitial%htlwc (IM,Model%levr+LTP)) - allocate (Interstitial%htlw0 (IM,Model%levr+LTP)) - allocate (Interstitial%htswc (IM,Model%levr+LTP)) - allocate (Interstitial%htsw0 (IM,Model%levr+LTP)) - allocate (Interstitial%dry (IM)) - allocate (Interstitial%idxday (IM)) - allocate (Interstitial%icy (IM)) - allocate (Interstitial%lake (IM)) - allocate (Interstitial%ocean (IM)) - allocate (Interstitial%islmsk (IM)) - allocate (Interstitial%islmsk_cice (IM)) - allocate (Interstitial%wet (IM)) - allocate (Interstitial%kbot (IM)) - allocate (Interstitial%kcnv (IM)) - allocate (Interstitial%kinver (IM)) - allocate (Interstitial%kpbl (IM)) - allocate (Interstitial%ktop (IM)) - allocate (Interstitial%mbota (IM,3)) - allocate (Interstitial%mtopa (IM,3)) - allocate (Interstitial%oa4 (IM,4)) - allocate (Interstitial%oc (IM)) - allocate (Interstitial%olyr (IM,Model%levr+LTP)) - allocate (Interstitial%plvl (IM,Model%levr+1+LTP)) - allocate (Interstitial%plyr (IM,Model%levr+LTP)) - allocate (Interstitial%prnum (IM,Model%levs)) - allocate (Interstitial%qlyr (IM,Model%levr+LTP)) - allocate (Interstitial%prcpmp (IM)) - allocate (Interstitial%qss_ice (IM)) - allocate (Interstitial%qss_land (IM)) - allocate (Interstitial%qss_water (IM)) - allocate (Interstitial%raincd (IM)) - allocate (Interstitial%raincs (IM)) - allocate (Interstitial%rainmcadj (IM)) - allocate (Interstitial%rainp (IM,Model%levs)) - allocate (Interstitial%rb (IM)) - allocate (Interstitial%rb_ice (IM)) - allocate (Interstitial%rb_land (IM)) - allocate (Interstitial%rb_water (IM)) - allocate (Interstitial%rhc (IM,Model%levs)) - allocate (Interstitial%runoff (IM)) - allocate (Interstitial%save_q (IM,Model%levs,Model%ntrac)) - allocate (Interstitial%save_t (IM,Model%levs)) - allocate (Interstitial%save_tcp (IM,Model%levs)) - allocate (Interstitial%save_u (IM,Model%levs)) - allocate (Interstitial%save_v (IM,Model%levs)) - allocate (Interstitial%sbsno (IM)) - allocate (Interstitial%scmpsw (IM)) - allocate (Interstitial%sfcalb (IM,NF_ALBD)) - allocate (Interstitial%sigma (IM)) - allocate (Interstitial%sigmaf (IM)) - allocate (Interstitial%sigmafrac (IM,Model%levs)) - allocate (Interstitial%sigmatot (IM,Model%levs+1)) - allocate (Interstitial%snowc (IM)) - allocate (Interstitial%snohf (IM)) - allocate (Interstitial%snowmt (IM)) - allocate (Interstitial%stress (IM)) - allocate (Interstitial%stress_ice (IM)) - allocate (Interstitial%stress_land (IM)) - allocate (Interstitial%stress_water (IM)) - allocate (Interstitial%theta (IM)) - allocate (Interstitial%tkeh (IM,Model%levs+1)) !Vertical turbulent kinetic energy at model layer interfaces - allocate (Interstitial%tlvl (IM,Model%levr+1+LTP)) - allocate (Interstitial%tlyr (IM,Model%levr+LTP)) - allocate (Interstitial%tprcp_ice (IM)) - allocate (Interstitial%tprcp_land (IM)) - allocate (Interstitial%tprcp_water (IM)) - allocate (Interstitial%trans (IM)) - allocate (Interstitial%tseal (IM)) - allocate (Interstitial%tsfa (IM)) - allocate (Interstitial%tsfc_water (IM)) - allocate (Interstitial%tsfg (IM)) - allocate (Interstitial%tsurf_ice (IM)) - allocate (Interstitial%tsurf_land (IM)) - allocate (Interstitial%tsurf_water (IM)) - allocate (Interstitial%ud_mf (IM,Model%levs)) - allocate (Interstitial%uustar_ice (IM)) - allocate (Interstitial%uustar_land (IM)) - allocate (Interstitial%uustar_water (IM)) - allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver - allocate (Interstitial%vegf1d (IM)) - allocate (Interstitial%wcbmax (IM)) - allocate (Interstitial%wind (IM)) - allocate (Interstitial%work1 (IM)) - allocate (Interstitial%work2 (IM)) - allocate (Interstitial%work3 (IM)) - allocate (Interstitial%xcosz (IM)) - allocate (Interstitial%xlai1d (IM)) - allocate (Interstitial%xmu (IM)) - allocate (Interstitial%z01d (IM)) - allocate (Interstitial%zt1d (IM)) - allocate (Interstitial%ztmax_ice (IM)) - allocate (Interstitial%ztmax_land (IM)) - allocate (Interstitial%ztmax_water (IM)) + allocate (Interstitial%gabsbdlw (ixs:ixe)) + allocate (Interstitial%gabsbdlw_ice (ixs:ixe)) + allocate (Interstitial%gabsbdlw_land (ixs:ixe)) + allocate (Interstitial%gabsbdlw_water (ixs:ixe)) + allocate (Interstitial%gamma (ixs:ixe)) + allocate (Interstitial%gamq (ixs:ixe)) + allocate (Interstitial%gamt (ixs:ixe)) + allocate (Interstitial%gasvmr (ixs:ixe,Model%levr+LTP,NF_VGAS)) + allocate (Interstitial%gflx (ixs:ixe)) + allocate (Interstitial%gflx_ice (ixs:ixe)) + allocate (Interstitial%gflx_land (ixs:ixe)) + allocate (Interstitial%gflx_water (ixs:ixe)) + allocate (Interstitial%gwdcu (ixs:ixe,Model%levs)) + allocate (Interstitial%gwdcv (ixs:ixe,Model%levs)) + allocate (Interstitial%zvfun (ixs:ixe)) + allocate (Interstitial%hffac (ixs:ixe)) + allocate (Interstitial%hflxq (ixs:ixe)) + allocate (Interstitial%hflx_ice (ixs:ixe)) + allocate (Interstitial%hflx_land (ixs:ixe)) + allocate (Interstitial%hflx_water (ixs:ixe)) + allocate (Interstitial%htlwc (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%htlw0 (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%htswc (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%htsw0 (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%dry (ixs:ixe)) + allocate (Interstitial%idxday (ixs:ixe)) + allocate (Interstitial%icy (ixs:ixe)) + allocate (Interstitial%lake (ixs:ixe)) + allocate (Interstitial%ocean (ixs:ixe)) + allocate (Interstitial%islmsk (ixs:ixe)) + allocate (Interstitial%islmsk_cice (ixs:ixe)) + allocate (Interstitial%wet (ixs:ixe)) + allocate (Interstitial%kbot (ixs:ixe)) + allocate (Interstitial%kcnv (ixs:ixe)) + allocate (Interstitial%kinver (ixs:ixe)) + allocate (Interstitial%kpbl (ixs:ixe)) + allocate (Interstitial%ktop (ixs:ixe)) + allocate (Interstitial%mbota (ixs:ixe,3)) + allocate (Interstitial%mtopa (ixs:ixe,3)) + allocate (Interstitial%oa4 (ixs:ixe,4)) + allocate (Interstitial%oc (ixs:ixe)) + allocate (Interstitial%olyr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%plvl (ixs:ixe,Model%levr+1+LTP)) + allocate (Interstitial%plyr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%prnum (ixs:ixe,Model%levs)) + allocate (Interstitial%qlyr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%prcpmp (ixs:ixe)) + allocate (Interstitial%qss_ice (ixs:ixe)) + allocate (Interstitial%qss_land (ixs:ixe)) + allocate (Interstitial%qss_water (ixs:ixe)) + allocate (Interstitial%raincd (ixs:ixe)) + allocate (Interstitial%raincs (ixs:ixe)) + allocate (Interstitial%rainmcadj (ixs:ixe)) + allocate (Interstitial%rainp (ixs:ixe,Model%levs)) + allocate (Interstitial%rb (ixs:ixe)) + allocate (Interstitial%rb_ice (ixs:ixe)) + allocate (Interstitial%rb_land (ixs:ixe)) + allocate (Interstitial%rb_water (ixs:ixe)) + allocate (Interstitial%rhc (ixs:ixe,Model%levs)) + allocate (Interstitial%runoff (ixs:ixe)) + allocate (Interstitial%save_q (ixs:ixe,Model%levs,Model%ntrac)) + allocate (Interstitial%save_t (ixs:ixe,Model%levs)) + allocate (Interstitial%save_tcp (ixs:ixe,Model%levs)) + allocate (Interstitial%save_u (ixs:ixe,Model%levs)) + allocate (Interstitial%save_v (ixs:ixe,Model%levs)) + allocate (Interstitial%sbsno (ixs:ixe)) + allocate (Interstitial%scmpsw (ixs:ixe)) + allocate (Interstitial%sfcalb (ixs:ixe,NF_ALBD)) + allocate (Interstitial%sigma (ixs:ixe)) + allocate (Interstitial%sigmaf (ixs:ixe)) + allocate (Interstitial%sigmafrac (ixs:ixe,Model%levs)) + allocate (Interstitial%sigmatot (ixs:ixe,Model%levs+1)) + allocate (Interstitial%snowc (ixs:ixe)) + allocate (Interstitial%snohf (ixs:ixe)) + allocate (Interstitial%snowmt (ixs:ixe)) + allocate (Interstitial%stress (ixs:ixe)) + allocate (Interstitial%stress_ice (ixs:ixe)) + allocate (Interstitial%stress_land (ixs:ixe)) + allocate (Interstitial%stress_water (ixs:ixe)) + allocate (Interstitial%theta (ixs:ixe)) + allocate (Interstitial%tkeh (ixs:ixe,Model%levs+1)) !Vertical turbulent kinetic energy at model layer interfaces + allocate (Interstitial%tlvl (ixs:ixe,Model%levr+1+LTP)) + allocate (Interstitial%tlyr (ixs:ixe,Model%levr+LTP)) + allocate (Interstitial%tprcp_ice (ixs:ixe)) + allocate (Interstitial%tprcp_land (ixs:ixe)) + allocate (Interstitial%tprcp_water (ixs:ixe)) + allocate (Interstitial%trans (ixs:ixe)) + allocate (Interstitial%tseal (ixs:ixe)) + allocate (Interstitial%tsfa (ixs:ixe)) + allocate (Interstitial%tsfc_water (ixs:ixe)) + allocate (Interstitial%tsfg (ixs:ixe)) + allocate (Interstitial%tsurf_ice (ixs:ixe)) + allocate (Interstitial%tsurf_land (ixs:ixe)) + allocate (Interstitial%tsurf_water (ixs:ixe)) + allocate (Interstitial%ud_mf (ixs:ixe,Model%levs)) + allocate (Interstitial%uustar_ice (ixs:ixe)) + allocate (Interstitial%uustar_land (ixs:ixe)) + allocate (Interstitial%uustar_water (ixs:ixe)) + allocate (Interstitial%vdftra (ixs:ixe,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver + allocate (Interstitial%vegf1d (ixs:ixe)) + allocate (Interstitial%wcbmax (ixs:ixe)) + allocate (Interstitial%wind (ixs:ixe)) + allocate (Interstitial%work1 (ixs:ixe)) + allocate (Interstitial%work2 (ixs:ixe)) + allocate (Interstitial%work3 (ixs:ixe)) + allocate (Interstitial%xcosz (ixs:ixe)) + allocate (Interstitial%xlai1d (ixs:ixe)) + allocate (Interstitial%xmu (ixs:ixe)) + allocate (Interstitial%z01d (ixs:ixe)) + allocate (Interstitial%zt1d (ixs:ixe)) + allocate (Interstitial%ztmax_ice (ixs:ixe)) + allocate (Interstitial%ztmax_land (ixs:ixe)) + allocate (Interstitial%ztmax_water (ixs:ixe)) ! RRTMGP if (Model%do_RRTMGP) then - allocate (Interstitial%tracer (IM, Model%levs,Model%ntrac)) - allocate (Interstitial%tv_lay (IM, Model%levs)) - allocate (Interstitial%relhum (IM, Model%levs)) - allocate (Interstitial%qs_lay (IM, Model%levs)) - allocate (Interstitial%q_lay (IM, Model%levs)) - allocate (Interstitial%deltaZ (IM, Model%levs)) - allocate (Interstitial%deltaZc (IM, Model%levs)) - allocate (Interstitial%deltaP (IM, Model%levs)) - allocate (Interstitial%p_lev (IM, Model%levs+1)) - allocate (Interstitial%p_lay (IM, Model%levs)) - allocate (Interstitial%t_lev (IM, Model%levs+1)) - allocate (Interstitial%t_lay (IM, Model%levs)) - allocate (Interstitial%cloud_overlap_param (IM, Model%levs)) - allocate (Interstitial%precip_overlap_param (IM, Model%levs)) - allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1)) - allocate (Interstitial%fluxlwDOWN_allsky (IM, Model%levs+1)) - allocate (Interstitial%fluxlwUP_clrsky (IM, Model%levs+1)) - allocate (Interstitial%fluxlwDOWN_clrsky (IM, Model%levs+1)) - allocate (Interstitial%fluxswUP_allsky (IM, Model%levs+1)) - allocate (Interstitial%fluxswDOWN_allsky (IM, Model%levs+1)) - allocate (Interstitial%fluxswUP_clrsky (IM, Model%levs+1)) - allocate (Interstitial%fluxswDOWN_clrsky (IM, Model%levs+1)) - allocate (Interstitial%aerosolslw (IM, Model%levs, Model%rrtmgp_nBandsLW, NF_AELW)) - allocate (Interstitial%aerosolssw (IM, Model%levs, Model%rrtmgp_nBandsSW, NF_AESW)) - allocate (Interstitial%precip_frac (IM, Model%levs)) - allocate (Interstitial%cld_cnv_frac (IM, Model%levs)) - allocate (Interstitial%cnv_cloud_overlap_param(IM, Model%levs)) - allocate (Interstitial%cld_cnv_lwp (IM, Model%levs)) - allocate (Interstitial%cld_cnv_reliq (IM, Model%levs)) - allocate (Interstitial%cld_cnv_iwp (IM, Model%levs)) - allocate (Interstitial%cld_cnv_reice (IM, Model%levs)) - allocate (Interstitial%cld_pbl_lwp (IM, Model%levs)) - allocate (Interstitial%cld_pbl_reliq (IM, Model%levs)) - allocate (Interstitial%cld_pbl_iwp (IM, Model%levs)) - allocate (Interstitial%cld_pbl_reice (IM, Model%levs)) - allocate (Interstitial%flxprf_lw (IM, Model%levs+1)) - allocate (Interstitial%flxprf_sw (IM, Model%levs+1)) - allocate (Interstitial%sfc_emiss_byband (Model%rrtmgp_nBandsLW,IM)) - allocate (Interstitial%sec_diff_byband (Model%rrtmgp_nBandsLW,IM)) - allocate (Interstitial%sfc_alb_nir_dir (Model%rrtmgp_nBandsSW,IM)) - allocate (Interstitial%sfc_alb_nir_dif (Model%rrtmgp_nBandsSW,IM)) - allocate (Interstitial%sfc_alb_uvvis_dir (Model%rrtmgp_nBandsSW,IM)) - allocate (Interstitial%sfc_alb_uvvis_dif (Model%rrtmgp_nBandsSW,IM)) - allocate (Interstitial%toa_src_sw (IM,Model%rrtmgp_nGptsSW)) - allocate (Interstitial%toa_src_lw (IM,Model%rrtmgp_nGptsLW)) - allocate (Interstitial%vmr_o2 (IM, Model%levs)) - allocate (Interstitial%vmr_h2o (IM, Model%levs)) - allocate (Interstitial%vmr_o3 (IM, Model%levs)) - allocate (Interstitial%vmr_ch4 (IM, Model%levs)) - allocate (Interstitial%vmr_n2o (IM, Model%levs)) - allocate (Interstitial%vmr_co2 (IM, Model%levs)) + allocate (Interstitial%tracer (ixs:ixe, Model%levs,Model%ntrac)) + allocate (Interstitial%tv_lay (ixs:ixe, Model%levs)) + allocate (Interstitial%relhum (ixs:ixe, Model%levs)) + allocate (Interstitial%qs_lay (ixs:ixe, Model%levs)) + allocate (Interstitial%q_lay (ixs:ixe, Model%levs)) + allocate (Interstitial%deltaZ (ixs:ixe, Model%levs)) + allocate (Interstitial%deltaZc (ixs:ixe, Model%levs)) + allocate (Interstitial%deltaP (ixs:ixe, Model%levs)) + allocate (Interstitial%p_lev (ixs:ixe, Model%levs+1)) + allocate (Interstitial%p_lay (ixs:ixe, Model%levs)) + allocate (Interstitial%t_lev (ixs:ixe, Model%levs+1)) + allocate (Interstitial%t_lay (ixs:ixe, Model%levs)) + allocate (Interstitial%cloud_overlap_param (ixs:ixe, Model%levs)) + allocate (Interstitial%precip_overlap_param (ixs:ixe, Model%levs)) + allocate (Interstitial%fluxlwUP_allsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxlwDOWN_allsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxlwUP_clrsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxlwDOWN_clrsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxswUP_allsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxswDOWN_allsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxswUP_clrsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%fluxswDOWN_clrsky (ixs:ixe, Model%levs+1)) + allocate (Interstitial%aerosolslw (ixs:ixe, Model%levs, Model%rrtmgp_nBandsLW, NF_AELW)) + allocate (Interstitial%aerosolssw (ixs:ixe, Model%levs, Model%rrtmgp_nBandsSW, NF_AESW)) + allocate (Interstitial%precip_frac (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_cnv_frac (ixs:ixe, Model%levs)) + allocate (Interstitial%cnv_cloud_overlap_param(ixs:ixe, Model%levs)) + allocate (Interstitial%cld_cnv_lwp (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_cnv_reliq (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_cnv_iwp (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_cnv_reice (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_pbl_lwp (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_pbl_reliq (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_pbl_iwp (ixs:ixe, Model%levs)) + allocate (Interstitial%cld_pbl_reice (ixs:ixe, Model%levs)) + allocate (Interstitial%flxprf_lw (ixs:ixe, Model%levs+1)) + allocate (Interstitial%flxprf_sw (ixs:ixe, Model%levs+1)) + allocate (Interstitial%sfc_emiss_byband (Model%rrtmgp_nBandsLW,ixs:ixe)) + allocate (Interstitial%sec_diff_byband (Model%rrtmgp_nBandsLW,ixs:ixe)) + allocate (Interstitial%sfc_alb_nir_dir (Model%rrtmgp_nBandsSW,ixs:ixe)) + allocate (Interstitial%sfc_alb_nir_dif (Model%rrtmgp_nBandsSW,ixs:ixe)) + allocate (Interstitial%sfc_alb_uvvis_dir (Model%rrtmgp_nBandsSW,ixs:ixe)) + allocate (Interstitial%sfc_alb_uvvis_dif (Model%rrtmgp_nBandsSW,ixs:ixe)) + allocate (Interstitial%toa_src_sw (ixs:ixe,Model%rrtmgp_nGptsSW)) + allocate (Interstitial%toa_src_lw (ixs:ixe,Model%rrtmgp_nGptsLW)) + allocate (Interstitial%vmr_o2 (ixs:ixe, Model%levs)) + allocate (Interstitial%vmr_h2o (ixs:ixe, Model%levs)) + allocate (Interstitial%vmr_o3 (ixs:ixe, Model%levs)) + allocate (Interstitial%vmr_ch4 (ixs:ixe, Model%levs)) + allocate (Interstitial%vmr_n2o (ixs:ixe, Model%levs)) + allocate (Interstitial%vmr_co2 (ixs:ixe, Model%levs)) end if ! UGWP common - allocate (Interstitial%tau_mtb (IM)) - allocate (Interstitial%tau_ogw (IM)) - allocate (Interstitial%tau_tofd (IM)) - allocate (Interstitial%tau_ngw (IM)) - allocate (Interstitial%tau_oss (IM)) - allocate (Interstitial%dudt_mtb (IM,Model%levs)) - allocate (Interstitial%dudt_tms (IM,Model%levs)) - allocate (Interstitial%zmtb (IM) ) - allocate (Interstitial%zlwb (IM) ) - allocate (Interstitial%zogw (IM) ) - allocate (Interstitial%zngw (IM) ) + allocate (Interstitial%tau_mtb (ixs:ixe)) + allocate (Interstitial%tau_ogw (ixs:ixe)) + allocate (Interstitial%tau_tofd (ixs:ixe)) + allocate (Interstitial%tau_ngw (ixs:ixe)) + allocate (Interstitial%tau_oss (ixs:ixe)) + allocate (Interstitial%dudt_mtb (ixs:ixe,Model%levs)) + allocate (Interstitial%dudt_tms (ixs:ixe,Model%levs)) + allocate (Interstitial%zmtb (ixs:ixe) ) + allocate (Interstitial%zlwb (ixs:ixe) ) + allocate (Interstitial%zogw (ixs:ixe) ) + allocate (Interstitial%zngw (ixs:ixe) ) ! CIRES UGWP v1 if (Model%ldiag_ugwp .or. Model%do_ugwp_v0 .or. Model%do_ugwp_v0_nst_only & .or. Model%do_ugwp_v1) then - allocate (Interstitial%dudt_ngw (IM,Model%levs)) - allocate (Interstitial%dvdt_ngw (IM,Model%levs)) - allocate (Interstitial%dtdt_ngw (IM,Model%levs)) - allocate (Interstitial%kdis_ngw (IM,Model%levs)) + allocate (Interstitial%dudt_ngw (ixs:ixe,Model%levs)) + allocate (Interstitial%dvdt_ngw (ixs:ixe,Model%levs)) + allocate (Interstitial%dtdt_ngw (ixs:ixe,Model%levs)) + allocate (Interstitial%kdis_ngw (ixs:ixe,Model%levs)) end if !-- GSL drag suite if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then - allocate (Interstitial%varss (IM)) - allocate (Interstitial%ocss (IM)) - allocate (Interstitial%oa4ss (IM,4)) - allocate (Interstitial%clxss (IM,4)) + allocate (Interstitial%varss (ixs:ixe)) + allocate (Interstitial%ocss (ixs:ixe)) + allocate (Interstitial%oa4ss (ixs:ixe,4)) + allocate (Interstitial%clxss (ixs:ixe,4)) end if ! ! Allocate arrays that are conditional on physics choices if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson & .or. Model%imp_physics == Model%imp_physics_tempo .or. Model%imp_physics == Model%imp_physics_nssl & ) then - allocate (Interstitial%graupelmp (IM)) - allocate (Interstitial%icemp (IM)) - allocate (Interstitial%rainmp (IM)) - allocate (Interstitial%snowmp (IM)) + allocate (Interstitial%graupelmp (ixs:ixe)) + allocate (Interstitial%icemp (ixs:ixe)) + allocate (Interstitial%rainmp (ixs:ixe)) + allocate (Interstitial%snowmp (ixs:ixe)) else if (Model%imp_physics == Model%imp_physics_mg) then - allocate (Interstitial%ncgl (IM,Model%levs)) - allocate (Interstitial%ncpr (IM,Model%levs)) - allocate (Interstitial%ncps (IM,Model%levs)) - allocate (Interstitial%qgl (IM,Model%levs)) - allocate (Interstitial%qrn (IM,Model%levs)) - allocate (Interstitial%qsnw (IM,Model%levs)) - allocate (Interstitial%qlcn (IM,Model%levs)) - allocate (Interstitial%qicn (IM,Model%levs)) - allocate (Interstitial%w_upi (IM,Model%levs)) - allocate (Interstitial%cf_upi (IM,Model%levs)) - allocate (Interstitial%cnv_mfd (IM,Model%levs)) - allocate (Interstitial%cnv_dqldt (IM,Model%levs)) - allocate (Interstitial%clcn (IM,Model%levs)) - allocate (Interstitial%cnv_fice (IM,Model%levs)) - allocate (Interstitial%cnv_ndrop (IM,Model%levs)) - allocate (Interstitial%cnv_nice (IM,Model%levs)) + allocate (Interstitial%ncgl (ixs:ixe,Model%levs)) + allocate (Interstitial%ncpr (ixs:ixe,Model%levs)) + allocate (Interstitial%ncps (ixs:ixe,Model%levs)) + allocate (Interstitial%qgl (ixs:ixe,Model%levs)) + allocate (Interstitial%qrn (ixs:ixe,Model%levs)) + allocate (Interstitial%qsnw (ixs:ixe,Model%levs)) + allocate (Interstitial%qlcn (ixs:ixe,Model%levs)) + allocate (Interstitial%qicn (ixs:ixe,Model%levs)) + allocate (Interstitial%w_upi (ixs:ixe,Model%levs)) + allocate (Interstitial%cf_upi (ixs:ixe,Model%levs)) + allocate (Interstitial%cnv_mfd (ixs:ixe,Model%levs)) + allocate (Interstitial%cnv_dqldt (ixs:ixe,Model%levs)) + allocate (Interstitial%clcn (ixs:ixe,Model%levs)) + allocate (Interstitial%cnv_fice (ixs:ixe,Model%levs)) + allocate (Interstitial%cnv_ndrop (ixs:ixe,Model%levs)) + allocate (Interstitial%cnv_nice (ixs:ixe,Model%levs)) end if if (Model%lsm == Model%lsm_noahmp) then - allocate (Interstitial%t2mmp (IM)) - allocate (Interstitial%q2mp (IM)) + allocate (Interstitial%t2mmp (ixs:ixe)) + allocate (Interstitial%q2mp (ixs:ixe)) end if ! ! Set components that do not change Interstitial%frain = Model%dtf/Model%dtp - Interstitial%ipr = min(IM,10) + Interstitial%ipr = min(ixe-ixs+1,10) Interstitial%latidxprnt = 1 Interstitial%levi = Model%levs+1 Interstitial%lmk = Model%levr+LTP @@ -878,6 +877,350 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) ! end subroutine gfs_interstitial_create + subroutine gfs_interstitial_destroy (Interstitial, Model) + ! + implicit none + ! + class(GFS_interstitial_type) :: Interstitial + type(GFS_control_type), intent(in) :: Model + + deallocate (Interstitial%otspt) + deallocate (Interstitial%otsptflag) + ! Allocate arrays + deallocate (Interstitial%adjsfculw_land) + deallocate (Interstitial%adjsfculw_ice) + deallocate (Interstitial%adjsfculw_water) + deallocate (Interstitial%adjnirbmd) + deallocate (Interstitial%adjnirbmu) + deallocate (Interstitial%adjnirdfd) + deallocate (Interstitial%adjnirdfu) + deallocate (Interstitial%adjvisbmd) + deallocate (Interstitial%adjvisbmu) + deallocate (Interstitial%adjvisdfu) + deallocate (Interstitial%adjvisdfd) + deallocate (Interstitial%aerodp) + deallocate (Interstitial%alb1d) + if (.not. Model%do_RRTMGP) then + deallocate (Interstitial%alpha) + end if + deallocate (Interstitial%bexp1d) + deallocate (Interstitial%cd) + deallocate (Interstitial%cd_ice) + deallocate (Interstitial%cd_land) + deallocate (Interstitial%cd_water) + deallocate (Interstitial%cdq) + deallocate (Interstitial%cdq_ice) + deallocate (Interstitial%cdq_land) + deallocate (Interstitial%cdq_water) + deallocate (Interstitial%chh_ice) + deallocate (Interstitial%chh_land) + deallocate (Interstitial%chh_water) + deallocate (Interstitial%cldf) + deallocate (Interstitial%cldsa) + deallocate (Interstitial%cldtaulw) + deallocate (Interstitial%cldtausw) + deallocate (Interstitial%cld1d) + deallocate (Interstitial%clouds) + deallocate (Interstitial%clw) + deallocate (Interstitial%clx) + deallocate (Interstitial%cmm_ice) + deallocate (Interstitial%cmm_land) + deallocate (Interstitial%cmm_water) + deallocate (Interstitial%cnvc) + deallocate (Interstitial%ctei_r) + deallocate (Interstitial%ctei_rml) + deallocate (Interstitial%cumabs) + deallocate (Interstitial%dd_mf) + deallocate (Interstitial%de_lgth) + deallocate (Interstitial%del) + deallocate (Interstitial%del_gz) + deallocate (Interstitial%delr) + deallocate (Interstitial%dlength) + deallocate (Interstitial%dqdt) + deallocate (Interstitial%dqsfc1) + deallocate (Interstitial%drain) + deallocate (Interstitial%dtdt) + deallocate (Interstitial%dtsfc1) + deallocate (Interstitial%dt_mf) + deallocate (Interstitial%dtzm) + deallocate (Interstitial%dudt) + deallocate (Interstitial%dusfcg) + deallocate (Interstitial%dusfc1) + deallocate (Interstitial%dvdt) + deallocate (Interstitial%dvsfcg) + deallocate (Interstitial%dvsfc1) + deallocate (Interstitial%dvdftra) + deallocate (Interstitial%dzlyr) + deallocate (Interstitial%elvmax) + deallocate (Interstitial%ep1d) + deallocate (Interstitial%ep1d_ice) + deallocate (Interstitial%ep1d_land) + deallocate (Interstitial%ep1d_water) + deallocate (Interstitial%evap_ice) + deallocate (Interstitial%evap_land) + deallocate (Interstitial%evap_water) + deallocate (Interstitial%evbs) + deallocate (Interstitial%evcw) + deallocate (Interstitial%pah) + deallocate (Interstitial%ecan) + deallocate (Interstitial%etran) + deallocate (Interstitial%edir) + deallocate (Interstitial%faerlw) + deallocate (Interstitial%faersw) + deallocate (Interstitial%ffhh_ice) + deallocate (Interstitial%ffhh_land) + deallocate (Interstitial%ffhh_water) + deallocate (Interstitial%fh2) + deallocate (Interstitial%fh2_ice) + deallocate (Interstitial%fh2_land) + deallocate (Interstitial%fh2_water) + deallocate (Interstitial%flag_cice) + deallocate (Interstitial%flag_guess) + deallocate (Interstitial%flag_iter) + deallocate (Interstitial%flag_lakefreeze) + deallocate (Interstitial%ffmm_ice) + deallocate (Interstitial%ffmm_land) + deallocate (Interstitial%ffmm_water) + deallocate (Interstitial%fm10) + deallocate (Interstitial%fm10_ice) + deallocate (Interstitial%fm10_land) + deallocate (Interstitial%fm10_water) + deallocate (Interstitial%frland) + deallocate (Interstitial%fscav) + deallocate (Interstitial%fswtr) + deallocate (Interstitial%gabsbdlw) + deallocate (Interstitial%gabsbdlw_ice) + deallocate (Interstitial%gabsbdlw_land) + deallocate (Interstitial%gabsbdlw_water) + deallocate (Interstitial%gamma) + deallocate (Interstitial%gamq) + deallocate (Interstitial%gamt) + deallocate (Interstitial%gasvmr) + deallocate (Interstitial%gflx) + deallocate (Interstitial%gflx_ice) + deallocate (Interstitial%gflx_land) + deallocate (Interstitial%gflx_water) + deallocate (Interstitial%gwdcu) + deallocate (Interstitial%gwdcv) + deallocate (Interstitial%zvfun) + deallocate (Interstitial%hffac) + deallocate (Interstitial%hflxq) + deallocate (Interstitial%hflx_ice) + deallocate (Interstitial%hflx_land) + deallocate (Interstitial%hflx_water) + deallocate (Interstitial%htlwc) + deallocate (Interstitial%htlw0) + deallocate (Interstitial%htswc) + deallocate (Interstitial%htsw0) + deallocate (Interstitial%dry) + deallocate (Interstitial%idxday) + deallocate (Interstitial%icy) + deallocate (Interstitial%lake) + deallocate (Interstitial%ocean) + deallocate (Interstitial%islmsk) + deallocate (Interstitial%islmsk_cice) + deallocate (Interstitial%wet) + deallocate (Interstitial%kbot) + deallocate (Interstitial%kcnv) + deallocate (Interstitial%kinver) + deallocate (Interstitial%kpbl) + deallocate (Interstitial%ktop) + deallocate (Interstitial%mbota) + deallocate (Interstitial%mtopa) + deallocate (Interstitial%oa4) + deallocate (Interstitial%oc) + deallocate (Interstitial%olyr) + deallocate (Interstitial%plvl) + deallocate (Interstitial%plyr) + deallocate (Interstitial%prnum) + deallocate (Interstitial%qlyr) + deallocate (Interstitial%prcpmp) + deallocate (Interstitial%qss_ice) + deallocate (Interstitial%qss_land) + deallocate (Interstitial%qss_water) + deallocate (Interstitial%raincd) + deallocate (Interstitial%raincs) + deallocate (Interstitial%rainmcadj) + deallocate (Interstitial%rainp) + deallocate (Interstitial%rb) + deallocate (Interstitial%rb_ice) + deallocate (Interstitial%rb_land) + deallocate (Interstitial%rb_water) + deallocate (Interstitial%rhc) + deallocate (Interstitial%runoff) + deallocate (Interstitial%save_q) + deallocate (Interstitial%save_t) + deallocate (Interstitial%save_tcp) + deallocate (Interstitial%save_u) + deallocate (Interstitial%save_v) + deallocate (Interstitial%sbsno) + deallocate (Interstitial%scmpsw) + deallocate (Interstitial%sfcalb) + deallocate (Interstitial%sigma) + deallocate (Interstitial%sigmaf) + deallocate (Interstitial%sigmafrac) + deallocate (Interstitial%sigmatot) + deallocate (Interstitial%snowc) + deallocate (Interstitial%snohf) + deallocate (Interstitial%snowmt) + deallocate (Interstitial%stress) + deallocate (Interstitial%stress_ice) + deallocate (Interstitial%stress_land) + deallocate (Interstitial%stress_water) + deallocate (Interstitial%theta) + deallocate (Interstitial%tkeh) + deallocate (Interstitial%tlvl) + deallocate (Interstitial%tlyr) + deallocate (Interstitial%tprcp_ice) + deallocate (Interstitial%tprcp_land) + deallocate (Interstitial%tprcp_water) + deallocate (Interstitial%trans) + deallocate (Interstitial%tseal) + deallocate (Interstitial%tsfa) + deallocate (Interstitial%tsfc_water) + deallocate (Interstitial%tsfg) + deallocate (Interstitial%tsurf_ice) + deallocate (Interstitial%tsurf_land) + deallocate (Interstitial%tsurf_water) + deallocate (Interstitial%ud_mf) + deallocate (Interstitial%uustar_ice) + deallocate (Interstitial%uustar_land) + deallocate (Interstitial%uustar_water) + deallocate (Interstitial%vdftra) + deallocate (Interstitial%vegf1d) + deallocate (Interstitial%wcbmax) + deallocate (Interstitial%wind) + deallocate (Interstitial%work1) + deallocate (Interstitial%work2) + deallocate (Interstitial%work3) + deallocate (Interstitial%xcosz) + deallocate (Interstitial%xlai1d) + deallocate (Interstitial%xmu) + deallocate (Interstitial%z01d) + deallocate (Interstitial%zt1d) + deallocate (Interstitial%ztmax_ice) + deallocate (Interstitial%ztmax_land) + deallocate (Interstitial%ztmax_water) + + ! RRTMGP + if (Model%do_RRTMGP) then + deallocate (Interstitial%tracer) + deallocate (Interstitial%tv_lay) + deallocate (Interstitial%relhum) + deallocate (Interstitial%qs_lay) + deallocate (Interstitial%q_lay) + deallocate (Interstitial%deltaZ) + deallocate (Interstitial%deltaZc) + deallocate (Interstitial%deltaP) + deallocate (Interstitial%p_lev) + deallocate (Interstitial%p_lay) + deallocate (Interstitial%t_lev) + deallocate (Interstitial%t_lay) + deallocate (Interstitial%cloud_overlap_param) + deallocate (Interstitial%precip_overlap_param) + deallocate (Interstitial%fluxlwUP_allsky) + deallocate (Interstitial%fluxlwDOWN_allsky) + deallocate (Interstitial%fluxlwUP_clrsky) + deallocate (Interstitial%fluxlwDOWN_clrsky) + deallocate (Interstitial%fluxswUP_allsky) + deallocate (Interstitial%fluxswDOWN_allsky) + deallocate (Interstitial%fluxswUP_clrsky) + deallocate (Interstitial%fluxswDOWN_clrsky) + deallocate (Interstitial%aerosolslw) + deallocate (Interstitial%aerosolssw) + deallocate (Interstitial%precip_frac) + deallocate (Interstitial%cld_cnv_frac) + deallocate (Interstitial%cnv_cloud_overlap_param) + deallocate (Interstitial%cld_cnv_lwp) + deallocate (Interstitial%cld_cnv_reliq) + deallocate (Interstitial%cld_cnv_iwp) + deallocate (Interstitial%cld_cnv_reice) + deallocate (Interstitial%cld_pbl_lwp) + deallocate (Interstitial%cld_pbl_reliq) + deallocate (Interstitial%cld_pbl_iwp) + deallocate (Interstitial%cld_pbl_reice) + deallocate (Interstitial%flxprf_lw) + deallocate (Interstitial%flxprf_sw) + deallocate (Interstitial%sfc_emiss_byband) + deallocate (Interstitial%sec_diff_byband) + deallocate (Interstitial%sfc_alb_nir_dir) + deallocate (Interstitial%sfc_alb_nir_dif) + deallocate (Interstitial%sfc_alb_uvvis_dir) + deallocate (Interstitial%sfc_alb_uvvis_dif) + deallocate (Interstitial%toa_src_sw) + deallocate (Interstitial%toa_src_lw) + deallocate (Interstitial%vmr_o2) + deallocate (Interstitial%vmr_h2o) + deallocate (Interstitial%vmr_o3) + deallocate (Interstitial%vmr_ch4) + deallocate (Interstitial%vmr_n2o) + deallocate (Interstitial%vmr_co2) + end if + + ! UGWP common + deallocate (Interstitial%tau_mtb) + deallocate (Interstitial%tau_ogw) + deallocate (Interstitial%tau_tofd) + deallocate (Interstitial%tau_ngw) + deallocate (Interstitial%tau_oss) + deallocate (Interstitial%dudt_mtb) + deallocate (Interstitial%dudt_tms) + deallocate (Interstitial%zmtb) + deallocate (Interstitial%zlwb) + deallocate (Interstitial%zogw) + deallocate (Interstitial%zngw) + + ! CIRES UGWP v1 + if (Model%ldiag_ugwp .or. Model%do_ugwp_v0 .or. Model%do_ugwp_v0_nst_only & + .or. Model%do_ugwp_v1) then + deallocate (Interstitial%dudt_ngw) + deallocate (Interstitial%dvdt_ngw) + deallocate (Interstitial%dtdt_ngw) + deallocate (Interstitial%kdis_ngw) + end if + + !-- GSL drag suite + if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. & + Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then + deallocate (Interstitial%varss) + deallocate (Interstitial%ocss) + deallocate (Interstitial%oa4ss) + deallocate (Interstitial%clxss) + end if + + ! Allocate arrays that are conditional on physics choices + if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson & + .or. Model%imp_physics == Model%imp_physics_tempo .or. Model%imp_physics == Model%imp_physics_nssl & + ) then + deallocate (Interstitial%graupelmp) + deallocate (Interstitial%icemp) + deallocate (Interstitial%rainmp) + deallocate (Interstitial%snowmp) + else if (Model%imp_physics == Model%imp_physics_mg) then + deallocate (Interstitial%ncgl) + deallocate (Interstitial%ncpr) + deallocate (Interstitial%ncps) + deallocate (Interstitial%qgl) + deallocate (Interstitial%qrn) + deallocate (Interstitial%qsnw) + deallocate (Interstitial%qlcn) + deallocate (Interstitial%qicn) + deallocate (Interstitial%w_upi) + deallocate (Interstitial%cf_upi) + deallocate (Interstitial%cnv_mfd) + deallocate (Interstitial%cnv_dqldt) + deallocate (Interstitial%clcn) + deallocate (Interstitial%cnv_fice) + deallocate (Interstitial%cnv_ndrop) + deallocate (Interstitial%cnv_nice) + end if + if (Model%lsm == Model%lsm_noahmp) then + deallocate (Interstitial%t2mmp) + deallocate (Interstitial%q2mp) + end if + + end subroutine gfs_interstitial_destroy + subroutine gfs_interstitial_setup_tracers(Interstitial, Model) ! implicit none @@ -1130,7 +1473,6 @@ subroutine gfs_interstitial_reset (Interstitial, Model) Interstitial%cmm_land = Model%huge Interstitial%cmm_water = Model%huge Interstitial%cnvc = clear_val - Interstitial%cnvw = clear_val Interstitial%ctei_r = clear_val Interstitial%ctei_rml = clear_val Interstitial%cumabs = clear_val diff --git a/ccpp/data/CCPP_typedefs.meta b/ccpp/data/CCPP_typedefs.meta index 6e6f8e90c..809487b1d 100644 --- a/ccpp/data/CCPP_typedefs.meta +++ b/ccpp/data/CCPP_typedefs.meta @@ -10,98 +10,98 @@ standard_name = surface_upwelling_longwave_flux_over_water long_name = surface upwelling longwave flux at current time over water units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjsfculw_land] standard_name = surface_upwelling_longwave_flux_over_land long_name = surface upwelling longwave flux at current time over land units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjsfculw_ice] standard_name = surface_upwelling_longwave_flux_over_ice long_name = surface upwelling longwave flux at current time over ice units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjnirbmd] standard_name = surface_downwelling_direct_near_infrared_shortwave_flux long_name = surface downwelling beam near-infrared shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjnirbmu] standard_name = surface_upwelling_direct_near_infrared_shortwave_flux long_name = surface upwelling beam near-infrared shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjnirdfd] standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux long_name = surface downwelling diffuse near-infrared shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjnirdfu] standard_name = surface_upwelling_diffuse_near_infrared_shortwave_flux long_name = surface upwelling diffuse near-infrared shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjvisbmd] standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjvisbmu] standard_name = surface_upwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling beam ultraviolet plus visible shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjvisdfu] standard_name = surface_upwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling diffuse ultraviolet plus visible shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [adjvisdfd] standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species units = none - dimensions = (horizontal_loop_extent,number_of_species_for_aerosol_optical_depth) + dimensions = (horizontal_dimension,number_of_species_for_aerosol_optical_depth) type = real kind = kind_phys [alb1d] standard_name = surface_albedo_perturbation long_name = surface albedo perturbation units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [alpha] standard_name = cloud_overlap_decorrelation_parameter long_name = cloud overlap decorrelation parameter for RRTMG (but not for RRTMGP) units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys active = (.not. flag_for_rrtmgp_radiation_scheme) @@ -109,91 +109,91 @@ standard_name = perturbation_of_soil_type_b_parameter long_name = perturbation of soil type "b" parameter units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cd] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cd_water] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cd_land] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cd_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cdq] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cdq_water] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cdq_land] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cdq_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [chh_water] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water long_name = thermal exchange coefficient over water units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [chh_land] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land long_name = thermal exchange coefficient over land units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [chh_ice] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice long_name = thermal exchange coefficient over ice units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -201,7 +201,7 @@ standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -209,140 +209,140 @@ standard_name = cloud_area_fraction long_name = fraction of grid box area in which updrafts occur units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle, high, total and BL units = frac - dimensions = (horizontal_loop_extent,5) + dimensions = (horizontal_dimension,5) type = real kind = kind_phys [cldtaulw] standard_name = cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [cld1d] standard_name = cloud_work_function long_name = cloud work function units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [clouds(:,:,1)] standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,2)] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path units = g m-2 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,3)] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud units = um - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,4)] standard_name = cloud_ice_water_path long_name = layer cloud ice water path units = g m-2 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,5)] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud units = um - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,6)] standard_name = cloud_rain_water_path long_name = cloud rain water path units = g m-2 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,7)] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop units = um - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,8)] standard_name = cloud_snow_water_path long_name = cloud snow water path units = g m-2 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,9)] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake units = um - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers_for_convective_transport) type = real kind = kind_phys [clw(:,:,1)] standard_name = ice_water_mixing_ratio_convective_transport_tracer long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [clw(:,:,2)] standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [clw(:,:,index_for_turbulent_kinetic_energy_convective_transport_tracer)] standard_name = turbulent_kinetic_energy_convective_transport_tracer long_name = turbulent kinetic energy in the convectively transported tracer array units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [clx] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height units = frac - dimensions = (horizontal_loop_extent,4) + dimensions = (horizontal_dimension,4) type = real kind = kind_phys [clxss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height small scale units = frac - dimensions = (horizontal_loop_extent,4) + dimensions = (horizontal_dimension,4) type = real kind = kind_phys active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) @@ -350,28 +350,28 @@ standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cmm_land] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land long_name = momentum exchange coefficient over land units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cmm_ice] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice long_name = momentum exchange coefficient over ice units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics units = kg m-2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -379,7 +379,7 @@ standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -387,7 +387,7 @@ standard_name = detrained_mass_flux long_name = detrained mass flux units = kg m-2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -395,7 +395,7 @@ standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment units = m-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -403,7 +403,7 @@ standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment units = m-3 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -411,119 +411,112 @@ standard_name = convective_cloud_cover long_name = convective cloud cover units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys -[cnvw] - standard_name = convective_cloud_water_mixing_ratio - long_name = moist convective cloud water mixing ratio - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [ctei_r] standard_name = cloud_top_entrainment_instability_value long_name = cloud top entrainment instability value units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ctei_rml] standard_name = grid_sensitive_critical_cloud_top_entrainment_instability_criteria long_name = grid sensitive critical cloud top entrainment instability criteria units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [cumabs] standard_name = maximum_column_heating_rate long_name = maximum heating rate in column units = K s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt units = kg m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length units = km - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [del_gz] standard_name = geopotential_difference_between_midlayers_divided_by_midlayer_virtual_temperature long_name = difference between mid-layer geopotentials divided by mid-layer virtual temperature units = m2 s-2 K-1 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys [delr] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness on radiation levels units = hPa - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [dlength] standard_name = characteristic_grid_length_scale long_name = representative horizontal length scale of grid box units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dqdt] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys [dqdt(:,:,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_specific_humidity long_name = water vapor specific humidity tendency due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_cloud_liquid_water_mixing_ratio long_name = cloud condensed water mixing ratio tendency due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_cloud_ice_mixing_ratio long_name = cloud condensed water mixing ratio tendency due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_ozone_mixing_ratio long_name = ozone mixing ratio tendency due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_liquid_water_particles_in_air long_name = number concentration of cloud droplets (liquid) tendency due to model physics units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array > 0) @@ -531,14 +524,14 @@ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = number concentration of ice tendency due to model physics units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols tendency due to model physics units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array > 0) @@ -546,7 +539,7 @@ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols tendency due to model physics units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array > 0) @@ -554,7 +547,7 @@ standard_name = tendency_of_cloud_condensation_nuclei_number_concentration_due_to_model_physics long_name = number concentration of cloud condensation nuclei tendency due to model physics units = kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = ( index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 ) @@ -562,388 +555,388 @@ standard_name = process_split_cumulative_tendency_of_rain_mixing_ratio long_name = ratio of mass of rain water tendency to mass of dry air plus vapor (without condensates) due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_snow_mixing_ratio long_name = ratio of mass of snow water tendency to mass of dry air plus vapor (without condensates) due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_graupel_mixing_ratio_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_graupel_mixing_ratio long_name = ratio of mass of graupel tendency to mass of dry air plus vapor (without condensates) due to model physics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqdt(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)] standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy long_name = turbulent kinetic energy tendency due to model physics units = J s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dqsfc1] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [drain] standard_name = subsurface_runoff_flux long_name = subsurface runoff flux units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dtsfc1] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dtzm] standard_name = mean_change_over_depth_in_sea_water_temperature long_name = mean of dT(z) (zsea1 to zsea2) units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt units = kg m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dusfcg] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dusfc1] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dvdftra] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_vertical_diffusion_tracers) type = real kind = kind_phys [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dvsfcg] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dvsfc1] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dzlyr] standard_name = layer_thickness_for_radiation long_name = layer thickness on radiation levels units = km - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ep1d] standard_name = surface_upward_potential_latent_heat_flux long_name = surface upward potential latent heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ep1d_water] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ep1d_land] standard_name = surface_upward_potential_latent_heat_flux_over_land long_name = surface upward potential latent heat flux over land units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evap_water] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evap_land] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [pah] standard_name = total_precipitation_advected_heat long_name = precipitation advected heat - total units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ecan] standard_name = evaporation_of_intercepted_water long_name = evaporation of intercepted water units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [etran] standard_name = transpiration_rate long_name = transpiration rate units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [edir] standard_name = soil_surface_evaporation_rate long_name = soil surface evaporation rate units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [faerlw] standard_name = aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 units = mixed - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation,number_of_aerosol_output_fields_for_longwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys [faerlw(:,:,:,1)] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) type = real kind = kind_phys [faerlw(:,:,:,2)] standard_name = aerosol_single_scattering_albedo_for_longwave_bands_01_16 long_name = aerosol single scattering albedo for longwave bands 01-16 units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) type = real kind = kind_phys [faerlw(:,:,:,3)] standard_name = aerosol_asymmetry_parameter_for_longwave_bands_01_16 long_name = aerosol asymmetry parameter for longwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation) type = real kind = kind_phys [faersw] standard_name = aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 units = mixed - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation) type = real kind = kind_phys [faersw(:,:,:,1)] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) type = real kind = kind_phys [faersw(:,:,:,2)] standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16 long_name = aerosol single scattering albedo for shortwave bands 01-16 units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) type = real kind = kind_phys [faersw(:,:,:,3)] standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16 long_name = aerosol asymmetry parameter for shortwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation) type = real kind = kind_phys [ffhh_water] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffhh_land] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffhh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fh2] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m long_name = Monin-Obukhov similarity parameter for heat at 2m units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fh2_water] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov similarity parameter for heat at 2m over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fh2_land] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov similarity parameter for heat at 2m over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov similarity parameter for heat at 2m over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [flag_cice] standard_name = flag_for_cice long_name = flag for cice units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [flag_lakefreeze] standard_name = flag_for_lake_water_freeze long_name = flag for lake water freeze units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [ffmm_water] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffmm_land] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity function for momentum over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ffmm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity function for momentum over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m long_name = Monin-Obukhov similarity parameter for momentum at 10m units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fm10_water] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fm10_land] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov similarity parameter for momentum at 10m over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [frain] @@ -957,7 +950,7 @@ standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fscav] @@ -978,154 +971,154 @@ standard_name = surface_downwelling_longwave_flux_absorbed_by_ground long_name = total sky surface downward longwave flux absorbed by the ground units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gabsbdlw_water] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water long_name = total sky surface downward longwave flux absorbed by the ground over water units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gabsbdlw_land] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land long_name = total sky surface downward longwave flux absorbed by the ground over land units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gabsbdlw_ice] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_ice long_name = total sky surface downward longwave flux absorbed by the ground over ice units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gamq] standard_name = countergradient_mixing_term_for_water_vapor long_name = countergradient mixing term for water vapor units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gamt] standard_name = countergradient_mixing_term_for_temperature long_name = countergradient mixing term for temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gasvmr(:,:,1)] standard_name = volume_mixing_ratio_of_co2 long_name = volume mixing ratio co2 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,2)] standard_name = volume_mixing_ratio_of_n2o long_name = volume mixing ratio no2 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,3)] standard_name = volume_mixing_ratio_of_ch4 long_name = volume mixing ratio ch4 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,4)] standard_name = volume_mixing_ratio_of_o2 long_name = volume mixing ratio o2 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,5)] standard_name = volume_mixing_ratio_of_co long_name = volume mixing ratio co units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,6)] standard_name = volume_mixing_ratio_of_cfc11 long_name = volume mixing ratio cfc11 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,7)] standard_name = volume_mixing_ratio_of_cfc12 long_name = volume mixing ratio cfc12 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,8)] standard_name = volume_mixing_ratio_of_cfc22 long_name = volume mixing ratio cfc22 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,9)] standard_name = volume_mixing_ratio_of_ccl4 long_name = volume mixing ratio ccl4 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gasvmr(:,:,10)] standard_name = volume_mixing_ratio_of_cfc113 long_name = volume mixing ratio cfc113 units = m3 m-3 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [gflx] standard_name = upward_heat_flux_in_soil long_name = soil heat flux units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gflx_water] standard_name = upward_heat_flux_in_soil_over_water long_name = soil heat flux over water units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gflx_land] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [gflx_ice] standard_name = upward_heat_flux_in_soil_over_ice long_name = soil heat flux over ice units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [graupelmp] standard_name = lwe_thickness_of_graupel_amount long_name = explicit graupel fall on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_tempo_microphysics_scheme) @@ -1133,91 +1126,91 @@ standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag long_name = zonal wind tendency due to convective gravity wave drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [gwdcv] standard_name = tendency_of_y_wind_due_to_convective_gravity_wave_drag long_name = meridional wind tendency due to convective gravity wave drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hffac] standard_name = surface_upward_sensible_heat_flux_reduction_factor long_name = surface upward sensible heat flux reduction factor from canopy heat storage units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hflxq] standard_name = kinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetation long_name = kinematic surface upward sensible heat flux reduced by surface roughness and vegetation units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hflx_water] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hflx_land] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [hflx_ice] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice units = K m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [htlwc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels long_name = total sky heating rate due to longwave radiation units = K s-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [htlw0] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = clear sky heating rate due to longwave radiation units = K s-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [htswc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels long_name = total sky heating rate due to shortwave radiation units = K s-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [htsw0] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = clear sky heating rates due to shortwave radiation units = K s-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [icemp] standard_name = lwe_thickness_of_ice_amount long_name = explicit ice fall on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_tempo_microphysics_scheme) @@ -1225,31 +1218,31 @@ standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [idxday] standard_name = daytime_points long_name = daytime points units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [lake] standard_name = flag_nonzero_lake_surface_fraction long_name = flag indicating presence of some lake surface area fraction units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [ocean] standard_name = flag_nonzero_ocean_surface_fraction long_name = flag indicating presence of some ocean surface area fraction units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [ipr] standard_name = horizontal_index_of_printed_column @@ -1261,13 +1254,13 @@ standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [islmsk_cice] standard_name = sea_land_ice_mask_cice long_name = sea/land/ice mask cice (=0/1/2) units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [itc] standard_name = index_of_first_chemical_tracer_for_convection @@ -1279,7 +1272,7 @@ standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = logical [kb] standard_name = vertical_index_difference_between_layer_and_lower_bound @@ -1291,13 +1284,13 @@ standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [kcnv] standard_name = flag_deep_convection long_name = flag indicating whether convection occurs in column (0 or 1) units = flag - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [kd] standard_name = vertical_index_difference_between_inout_and_local @@ -1309,13 +1302,13 @@ standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [kt] standard_name = vertical_index_difference_between_layer_and_upper_bound @@ -1327,7 +1320,7 @@ standard_name = vertical_index_at_cloud_top long_name = vertical index at cloud top units = index - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = integer [latidxprnt] standard_name = latitude_index_in_debug_printouts @@ -1357,7 +1350,7 @@ standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases units = index - dimensions = (horizontal_loop_extent,3) + dimensions = (horizontal_dimension,3) type = integer [mg3_as_mg2] standard_name = flag_mg3_as_mg2 @@ -1369,7 +1362,7 @@ standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops units = index - dimensions = (horizontal_loop_extent,3) + dimensions = (horizontal_dimension,3) type = integer [nbdlw] standard_name = number_of_aerosol_bands_for_longwave_radiation @@ -1387,7 +1380,7 @@ standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1395,7 +1388,7 @@ standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1403,7 +1396,7 @@ standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1501,14 +1494,14 @@ standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level units = none - dimensions = (horizontal_loop_extent,4) + dimensions = (horizontal_dimension,4) type = real kind = kind_phys [varss] standard_name = standard_deviation_of_subgrid_orography_small_scale long_name = standard deviation of subgrid height_above_mean_sea_level small scale units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) @@ -1516,7 +1509,7 @@ standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale units = none - dimensions = (horizontal_loop_extent,4) + dimensions = (horizontal_dimension,4) type = real kind = kind_phys active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) @@ -1524,14 +1517,14 @@ standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ocss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) @@ -1539,7 +1532,7 @@ standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration layer units = kg kg-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [otspt] @@ -1570,28 +1563,28 @@ standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure at vertical interface for radiation calculation units = hPa - dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_level_dimension_for_radiation) type = real kind = kind_phys [plyr] standard_name = air_pressure_at_layer_for_radiation_in_hPa long_name = air pressure at vertical layer for radiation calculation units = hPa - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [prnum] standard_name = prandtl_number long_name = turbulent Prandtl number units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1599,7 +1592,7 @@ standard_name = local_graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1607,7 +1600,7 @@ standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1615,7 +1608,7 @@ standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1623,14 +1616,14 @@ standard_name = water_vapor_specific_humidity_at_layer_for_radiation long_name = specific humidity layer units = kg kg-1 - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [qrn] standard_name = local_rain_water_mixing_ratio long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) local to physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1638,7 +1631,7 @@ standard_name = local_snow_water_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -1646,28 +1639,28 @@ standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qss_water] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qss_land] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [qss_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice units = kg kg-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [fullradar_diag] @@ -1687,28 +1680,28 @@ standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [raincs] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rainmcadj] standard_name = lwe_thickness_of_moist_convective_adj_precipitation_amount long_name = adjusted moist convective rainfall amount on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rainmp] standard_name = lwe_thickness_of_explicit_rain_amount long_name = explicit rain on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_tempo_microphysics_scheme) @@ -1716,35 +1709,35 @@ standard_name = tendency_of_rain_water_mixing_ratio_due_to_microphysics long_name = tendency of rain water mixing ratio due to microphysics units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [rb] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rb_water] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rb_land] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [rb_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [max_hourly_reset] @@ -1763,181 +1756,181 @@ standard_name = critical_relative_humidity long_name = critical relative humidity units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [rho1] standard_name = air_density_at_lowest_model_layer long_name = air density at lowest model layer units = kg m-3 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [runoff] standard_name = surface_runoff_flux long_name = surface runoff flux units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [save_q(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)] standard_name = ozone_mixing_ratio_save long_name = ozone mixing ratio before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)] standard_name = turbulent_kinetic_energy_save long_name = turbulent kinetic energy before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)] standard_name = cloud_condensed_water_mixing_ratio_save long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)] standard_name = snow_mixing_ratio_save long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)] standard_name = ice_water_mixing_ratio_save long_name = cloud ice water mixing ratio before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_specific_humidity_in_tracer_concentration_array)] standard_name = water_vapor_specific_humidity_save long_name = water vapor specific humidity before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)] standard_name = liquid_cloud_number_concentration_save long_name = liquid cloud number concentration before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q(:,:,index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array)] standard_name = ice_cloud_number_concentration_save long_name = ice cloud number concentration before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_tcp] standard_name = air_temperature_save_from_convective_parameterization long_name = air temperature after cumulus parameterization units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [scmpsw] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = cmpfsw_type [sfcalb] standard_name = surface_albedo_components long_name = surface albedo IR/UV/VIS components units = frac - dimensions = (horizontal_loop_extent,number_of_components_for_surface_albedo) + dimensions = (horizontal_dimension,number_of_components_for_surface_albedo) type = real kind = kind_phys [sfcalb(:,1)] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcalb(:,2)] standard_name = surface_albedo_due_to_near_IR_diffused long_name = surface albedo due to near IR diffused beam units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcalb(:,3)] standard_name = surface_albedo_due_to_UV_and_VIS_direct long_name = surface albedo due to UV+VIS direct beam units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sfcalb(:,4)] standard_name = surface_albedo_due_to_UV_and_VIS_diffused long_name = surface albedo due to UV+VIS diffused beam units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [sigmafrac] standard_name = convective_updraft_area_fraction long_name = convective updraft area fraction units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [sigmatot] standard_name = convective_updraft_area_fraction_at_model_interfaces long_name = convective updraft area fraction at model interfaces units = frac - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys [skip_macro] @@ -1950,21 +1943,21 @@ standard_name = surface_snow_area_fraction long_name = surface snow area fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain units = W m-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [snowmp] standard_name = lwe_thickness_of_snow_amount long_name = explicit snow fall on physics timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_tempo_microphysics_scheme) @@ -1972,42 +1965,42 @@ standard_name = surface_snow_melt long_name = snow melt during timestep units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [stress] standard_name = surface_wind_stress long_name = surface wind stress units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [stress_water] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [stress_land] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice units = m2 s-2 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [t2mmp] standard_name = temperature_at_2m_from_noahmp long_name = 2 meter temperature from noahmp units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -2015,42 +2008,42 @@ standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with_respect to east of maximum subgrid orographic variations units = degree - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tlvl] standard_name = air_temperature_at_interface_for_radiation long_name = air temperature at vertical interface for radiation calculation units = K - dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_level_dimension_for_radiation) type = real kind = kind_phys [tlyr] standard_name = air_temperature_at_layer_for_radiation long_name = air temperature at vertical layer for radiation calculation units = K - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [tprcp_water] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water long_name = total precipitation amount in each time step over water units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tprcp_land] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land long_name = total precipitation amount in each time step over land units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tprcp_ice] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice long_name = total precipitation amount in each time step over ice units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tracers_start_index] @@ -2075,49 +2068,49 @@ standard_name = surface_skin_temperature_for_nsst long_name = ocean surface skin temperature units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsfc_water] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsurf_water] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsurf_land] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice units = K - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tracers_water] @@ -2130,28 +2123,28 @@ standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [uustar_land] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [uustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [vdftra] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_vertical_diffusion_tracers) type = real kind = kind_phys [lndp_vgf] @@ -2165,14 +2158,14 @@ standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft units = m s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme) @@ -2180,105 +2173,105 @@ standard_name = maximum_updraft_velocity_at_cloud_base long_name = maximum updraft velocity at cloud base units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level units = m s-1 - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [work3] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer units = ratio - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xcosz] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xlai1d] standard_name = perturbation_of_leaf_area_index long_name = perturbation of leaf area index units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave units = none - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [z01d] standard_name = perturbation_of_momentum_roughness_length long_name = perturbation of momentum roughness length units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ztmax_water] standard_name = bounded_surface_roughness_length_for_heat_over_water long_name = bounded surface roughness length for heat over water units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ztmax_land] standard_name = bounded_surface_roughness_length_for_heat_over_land long_name = bounded surface roughness length for heat over land units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [ztmax_ice] standard_name = bounded_surface_roughness_length_for_heat_over_ice long_name = bounded surface roughness length for heat over ice units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zt1d] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio units = frac - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zmtb] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics .or. flag_for_ugwp_version_0 .or. flag_for_ugwp_version_0_nonorographic_gwd .or. flag_for_ugwp_version_1) @@ -2286,7 +2279,7 @@ standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics .or. flag_for_ugwp_version_0 .or. flag_for_ugwp_version_0_nonorographic_gwd .or. flag_for_ugwp_version_1) @@ -2294,7 +2287,7 @@ standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics .or. flag_for_ugwp_version_0 .or. flag_for_ugwp_version_0_nonorographic_gwd .or. flag_for_ugwp_version_1) @@ -2302,7 +2295,7 @@ standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag long_name = eddy mixing due to non-stationary GWs units = m2 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_unified_gravity_wave_physics_diagnostics .or. flag_for_ugwp_version_0 .or. flag_for_ugwp_version_0_nonorographic_gwd .or. flag_for_ugwp_version_1) @@ -2310,77 +2303,77 @@ standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity wave units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [zngw] standard_name = height_of_launch_level_of_nonorographic_gravity_waves long_name = height of launch level of non-stationary GWs units = m - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_tofd] standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag long_name = instantaneous momentum flux due to TOFD units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_mtb] standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag long_name = instantaneous momentum flux due to mountain blocking drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = instantaneous momentum flux due to orographic gravity wave drag units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_oss] standard_name = momentum_flux_due_to_subgrid_scale_orographic_gravity_wave_drag long_name = momentum flux or stress due to SSO including OBL-OSS-OFD units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = instantaneous momentum flux due to nonstationary gravity waves units = Pa - dimensions = (horizontal_loop_extent) + dimensions = (horizontal_dimension) type = real kind = kind_phys [dudt_mtb] standard_name = instantaneous_change_in_x_wind_due_to_mountain_blocking_drag long_name = instantaneous change in x wind due to mountain blocking drag units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2388,7 +2381,7 @@ standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2396,7 +2389,7 @@ standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure layer units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2404,7 +2397,7 @@ standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2412,7 +2405,7 @@ standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature layer units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2420,7 +2413,7 @@ standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature layer units = K - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2428,7 +2421,7 @@ standard_name = virtual_temperature long_name = layer virtual temperature units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2436,7 +2429,7 @@ standard_name = relative_humidity long_name = layer relative humidity units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2444,7 +2437,7 @@ standard_name = layer_thickness long_name = layer_thickness units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2452,7 +2445,7 @@ standard_name = layer_thickness_from_layer_center long_name = layer_thickness units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2460,7 +2453,7 @@ standard_name = layer_thickness_in_Pa long_name = layer_thickness_in_Pa units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2468,7 +2461,7 @@ standard_name = chemical_tracers long_name = chemical tracers units = g g-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2476,7 +2469,7 @@ standard_name = cloud_overlap_param long_name = cloud overlap parameter for RRTMGP (but not for RRTMG) units = km - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2484,7 +2477,7 @@ standard_name = precip_overlap_param long_name = precipitation overlap parameter units = km - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2492,7 +2485,7 @@ standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2500,7 +2493,7 @@ standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2508,7 +2501,7 @@ standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2516,7 +2509,7 @@ standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2524,7 +2517,7 @@ standard_name = RRTMGP_sw_flux_profile_upward_allsky long_name = RRTMGP upward shortwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2532,7 +2525,7 @@ standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2540,7 +2533,7 @@ standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2548,7 +2541,7 @@ standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2556,21 +2549,21 @@ standard_name = RRTMGP_lw_fluxes long_name = lw fluxes total sky / csk and up / down at levels units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = proflw_type active = (flag_for_rrtmgp_radiation_scheme) [flxprf_sw] standard_name = RRTMGP_sw_fluxes long_name = sw fluxes total sky / csk and up / down at levels units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = profsw_type active = (flag_for_rrtmgp_radiation_scheme) [aerosolslw] standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands,number_of_aerosol_output_fields_for_longwave_radiation) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_longwave_bands,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2578,7 +2571,7 @@ standard_name = RRTMGP_aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2586,7 +2579,7 @@ standard_name = RRTMGP_aerosol_single_scattering_albedo_for_longwave_bands_01_16 long_name = aerosol single scattering albedo for longwave bands 01-16 units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2594,7 +2587,7 @@ standard_name = RRTMGP_aerosol_asymmetry_parameter_for_longwave_bands_01_16 long_name = aerosol asymmetry parameter for longwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_longwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2602,7 +2595,7 @@ standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands, number_of_aerosol_output_fields_for_shortwave_radiation) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_shortwave_bands, number_of_aerosol_output_fields_for_shortwave_radiation) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2610,7 +2603,7 @@ standard_name = RRTMGP_aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2618,7 +2611,7 @@ standard_name = RRTMGP_aerosol_single_scattering_albedo_for_shortwave_bands_01_16 long_name = aerosol single scattering albedo for shortwave bands 01-16 units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2626,7 +2619,7 @@ standard_name = RRTMGP_aerosol_asymmetry_parameter_for_shortwave_bands_01_16 long_name = aerosol asymmetry parameter for shortwave bands 01-16 units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) + dimensions = (horizontal_dimension,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2634,7 +2627,7 @@ standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2642,7 +2635,7 @@ standard_name = convective_cloud_overlap_param long_name = convective cloud overlap parameter units = km - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2650,7 +2643,7 @@ standard_name = convective_cloud_fraction_for_RRTMGP long_name = layer convective cloud fraction units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2658,7 +2651,7 @@ standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path units = g m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2666,7 +2659,7 @@ standard_name = convective_cloud_ice_water_path long_name = layer convective cloud ice water path units = g m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2674,7 +2667,7 @@ standard_name = mean_effective_radius_for_liquid_convective_cloud long_name = mean effective radius for liquid convective cloud units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2682,7 +2675,7 @@ standard_name = mean_effective_radius_for_ice_convective_cloud long_name = mean effective radius for ice convective cloud units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2690,7 +2683,7 @@ standard_name = MYNN_SGS_cloud_liquid_water_path long_name = layer convective cloud liquid water path units = g m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2698,7 +2691,7 @@ standard_name = MYNN_SGS_cloud_ice_water_path long_name = layer convective cloud ice water path units = g m-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2706,7 +2699,7 @@ standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud long_name = mean effective radius for liquid MYNN_SGS cloud units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2714,7 +2707,7 @@ standard_name = mean_effective_radius_for_ice_MYNN_SGS_cloud long_name = mean effective radius for ice MYNN_SGS cloud units = um - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2722,7 +2715,7 @@ standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2730,7 +2723,7 @@ standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2738,7 +2731,7 @@ standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2746,7 +2739,7 @@ standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2754,7 +2747,7 @@ standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2762,7 +2755,7 @@ standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) + dimensions = (horizontal_dimension,vertical_layer_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2770,7 +2763,7 @@ standard_name = surface_emissivity_in_each_RRTMGP_LW_band long_name = surface emissivity in each RRTMGP LW band units = none - dimensions = (number_of_longwave_bands,horizontal_loop_extent) + dimensions = (number_of_longwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2778,7 +2771,7 @@ standard_name = secant_of_diffusivity_angle_each_RRTMGP_LW_band long_name = secant of diffusivity angle in each RRTMGP LW band units = none - dimensions = (number_of_longwave_bands,horizontal_loop_extent) + dimensions = (number_of_longwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2786,7 +2779,7 @@ standard_name = surface_albedo_nearIR_direct long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir) units = none - dimensions = (number_of_shortwave_bands,horizontal_loop_extent) + dimensions = (number_of_shortwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2794,7 +2787,7 @@ standard_name = surface_albedo_nearIR_diffuse long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif) units = none - dimensions = (number_of_shortwave_bands,horizontal_loop_extent) + dimensions = (number_of_shortwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2802,7 +2795,7 @@ standard_name = surface_albedo_uvvis_direct long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir) units = none - dimensions = (number_of_shortwave_bands,horizontal_loop_extent) + dimensions = (number_of_shortwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2810,7 +2803,7 @@ standard_name = surface_albedo_uvvis_diffuse long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif) units = none - dimensions = (number_of_shortwave_bands,horizontal_loop_extent) + dimensions = (number_of_shortwave_bands,horizontal_dimension) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2818,7 +2811,7 @@ standard_name = toa_incident_lw_flux_by_spectral_point long_name = TOA longwave incident flux at each spectral points units = W m-2 - dimensions = (horizontal_loop_extent,number_of_longwave_spectral_points) + dimensions = (horizontal_dimension,number_of_longwave_spectral_points) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2826,7 +2819,7 @@ standard_name = toa_incident_sw_flux_by_spectral_point long_name = TOA shortwave incident flux at each spectral points units = W m-2 - dimensions = (horizontal_loop_extent,number_of_shortwave_spectral_points) + dimensions = (horizontal_dimension,number_of_shortwave_spectral_points) type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) @@ -2840,7 +2833,7 @@ standard_name = vertical_turbulent_kinetic_energy_at_interface long_name = vertical turbulent kinetic energy at model layer interfaces units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) + dimensions = (horizontal_dimension,vertical_interface_dimension) type = real kind = kind_phys @@ -2864,14 +2857,14 @@ standard_name = cappa_moist_gas_constant_at_Lagrangian_surface long_name = cappa(i,j,k) = rdgas / ( rdgas + cvm(i)/(1.+r_vir*q(i,j,k,sphum)) ) units = none - dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_cappa_at_Lagrangian_surface) + dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,ccpp_constant_one:vertical_dimension_for_cappa_at_Lagrangian_surface) type = real kind = kind_dyn [dtdt] standard_name = tendency_of_air_temperature_at_Lagrangian_surface long_name = air temperature tendency due to fast physics at Lagrangian surface units = K s-1 - dimensions = (starting_x_direction_index:ending_x_direction_index,starting_y_direction_index:ending_y_direction_index,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index:ending_x_direction_index,starting_y_direction_index:ending_y_direction_index,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [do_qa] @@ -2922,7 +2915,7 @@ standard_name = atmosphere_energy_content_at_Lagrangian_surface long_name = atmosphere total energy at Lagrangian surface units = J m-2 - dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [zvir] @@ -3038,14 +3031,14 @@ standard_name = pressure_thickness_at_Lagrangian_surface long_name = pressure thickness at Lagrangian surface units = Pa - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [delz] standard_name = thickness_at_Lagrangian_surface long_name = thickness at Lagrangian_surface units = m - dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2,1:vertical_dimension_for_thickness_at_Lagrangian_surface) + dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2,ccpp_constant_one:vertical_dimension_for_thickness_at_Lagrangian_surface) type = real kind = kind_dyn [area] @@ -3095,7 +3088,7 @@ standard_name = log_pressure_at_Lagrangian_surface long_name = logarithm of pressure at Lagrangian surface units = Pa - dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,1:vertical_dimension_for_fast_physics_plus_one,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2) + dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,ccpp_constant_one:vertical_dimension_for_fast_physics_plus_one,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2) type = real kind = kind_dyn [phis] @@ -3109,77 +3102,77 @@ standard_name = finite_volume_mean_edge_pressure_raised_to_the_power_of_kappa long_name = finite-volume mean edge pressure raised to the power of kappa units = 1 - dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc2:ending_x_direction_index_alloc2,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [pt] standard_name = virtual_temperature_at_Lagrangian_surface long_name = virtual temperature at Lagrangian surface units = K - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qvi] standard_name = gas_tracers_for_multi_gas_physics_at_Lagrangian_surface long_name = gas tracers for multi gas physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics,1:number_of_gases_for_multi_gases_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics,ccpp_constant_one:number_of_gases_for_multi_gases_physics) type = real kind = kind_dyn [qv] standard_name = water_vapor_specific_humidity_at_Lagrangian_surface long_name = water vapor specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [ql] standard_name = cloud_liquid_water_specific_humidity_at_Lagrangian_surface long_name = cloud liquid water specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qi] standard_name = cloud_ice_specific_humidity_at_Lagrangian_surface long_name = cloud ice specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qr] standard_name = cloud_rain_specific_humidity_at_Lagrangian_surface long_name = cloud rain specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qs] standard_name = cloud_snow_specific_humidity_at_Lagrangian_surface long_name = cloud snow specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qg] standard_name = cloud_graupel_specific_humidity_at_Lagrangian_surface long_name = cloud graupel specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [qc] standard_name = cloud_fraction_at_Lagrangian_surface long_name = cloud fraction at Lagrangian surface units = none - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_fast_physics) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_fast_physics) type = real kind = kind_dyn [q_con] standard_name = cloud_condensed_water_specific_humidity_at_Lagrangian_surface long_name = cloud condensed water specific humidity updated by fast physics at Lagrangian surface units = kg kg-1 - dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,1:vertical_dimension_for_condensed_water_at_Lagrangian_surface) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1,ccpp_constant_one:vertical_dimension_for_condensed_water_at_Lagrangian_surface) type = real kind = kind_dyn [nthreads] @@ -3210,14 +3203,14 @@ standard_name = gas_constants_for_multi_gases_physics long_name = gas constants for multi gases physics units = J kg-1 K-1 - dimensions = (0:number_of_gases_for_multi_gases_physics) + dimensions = (constant_zero:number_of_gases_for_multi_gases_physics) type = real kind = kind_dyn [cpilist] standard_name = specific_heat_capacities_for_multi_gases_physics long_name = specific heat capacities for multi gases physics units = J kg-1 K-1 - dimensions = (0:number_of_gases_for_multi_gases_physics) + dimensions = (constant_zero:number_of_gases_for_multi_gases_physics) type = real kind = kind_dyn [mpirank] diff --git a/ccpp/data/GFS_typedefs.F90 b/ccpp/data/GFS_typedefs.F90 index 7fa4974da..e3071f27e 100644 --- a/ccpp/data/GFS_typedefs.F90 +++ b/ccpp/data/GFS_typedefs.F90 @@ -69,7 +69,7 @@ module GFS_typedefs ! LTP=0: no extra top layer integer, parameter :: LTP = 0 ! no extra top layer !integer, parameter :: LTP = 1 ! add an extra top layer - + integer, parameter :: con_zero = 0 !---------------- ! Data Containers !---------------- @@ -1889,7 +1889,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: cv (:) => null() !< fraction of convective cloud ; phys real (kind=kind_phys), pointer :: cvt (:) => null() !< convective cloud top pressure in pa ; phys real (kind=kind_phys), pointer :: cvb (:) => null() !< convective cloud bottom pressure in pa ; phys, cnvc90 - + real (kind=kind_phys), pointer :: cnvw (:,:) => null() !< convective cloud fractions contains procedure :: create => cldprop_create !< allocate array data end type GFS_cldprop_type @@ -7638,11 +7638,13 @@ subroutine cldprop_create (Cldprop, Model) allocate (Cldprop%cv (IM)) allocate (Cldprop%cvt (IM)) allocate (Cldprop%cvb (IM)) + allocate (Cldprop%cnvw(IM, Model%levs)) Cldprop%cv = clear_val Cldprop%cvt = clear_val Cldprop%cvb = clear_val - + Cldprop%cnvw = clear_val + end subroutine cldprop_create diff --git a/ccpp/data/GFS_typedefs.meta b/ccpp/data/GFS_typedefs.meta index 5e6293a5f..0b9ae7fe3 100644 --- a/ccpp/data/GFS_typedefs.meta +++ b/ccpp/data/GFS_typedefs.meta @@ -1643,7 +1643,7 @@ standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow units = K - dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:constant_zero) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1659,7 +1659,7 @@ standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice units = mm - dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:constant_zero) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -1667,7 +1667,7 @@ standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water units = mm - dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:0) + dimensions = (horizontal_dimension, lower_bound_of_vertical_dimension_of_surface_snow:constant_zero) type = real kind = kind_phys active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) @@ -8273,6 +8273,13 @@ type = real kind = kind_phys active = (number_of_cloud_types_CS > 0 .and. flag_for_Chikira_Sugiyama_deep_convection) +[phy_f2d] + standard_name = xy_dimensioned_restart_array + long_name = xy dimensioned restart array + units = mixed + dimensions = (horizontal_dimension,number_of_variables_in_xy_dimensioned_restart_array) + type = real + kind = kind_phys [phy_f2d(:,index_of_surface_air_pressure_two_timesteps_back_in_xyz_dimensioned_tracer_array)] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -8297,6 +8304,13 @@ type = real kind = kind_phys active = (index_of_enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection_in_xy_dimensioned_restart_array > 0) +[phy_f3d] + standard_name = xyz_dimensioned_restart_array + long_name = xyz dimensioned restart array + units = mixed + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_variables_in_xyz_dimensioned_restart_array) + type = real + kind = kind_phys [phy_f3d(:,:,index_of_air_temperature_two_timesteps_back_in_xyz_dimensioned_restart_array)] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -8686,6 +8700,13 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[cnvw] + standard_name = convective_cloud_water_mixing_ratio + long_name = moist convective cloud water mixing ratio + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_layer_dimension) + type = real + kind = kind_phys ######################################################################## [ccpp-table-properties] @@ -10797,3 +10818,9 @@ dimensions = () type = real kind = kind_phys +[con_zero] + standard_name = constant_zero + long_name = definition of constant zero + units = 1 + dimensions = () + type = integer diff --git a/ccpp/driver/GFS_init.F90 b/ccpp/driver/GFS_init.F90 index 25419e714..1c7e60e79 100644 --- a/ccpp/driver/GFS_init.F90 +++ b/ccpp/driver/GFS_init.F90 @@ -7,7 +7,6 @@ module GFS_init GFS_control_type, GFS_grid_type, & GFS_tbd_type, GFS_cldprop_type, & GFS_radtend_type, GFS_diag_type - use CCPP_typedefs, only: GFS_interstitial_type implicit none @@ -28,7 +27,7 @@ module GFS_init !-------------- subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & Coupling, Grid, Tbd, Cldprop, Radtend, & - Diag, Interstitial, Init_parm) + Diag, Init_parm) #ifdef _OPENMP use omp_lib @@ -45,7 +44,6 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & type(GFS_cldprop_type), intent(inout) :: Cldprop type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_diag_type), intent(inout) :: Diag - type(GFS_interstitial_type), intent(inout) :: Interstitial(:) type(GFS_init_type), intent(in) :: Init_parm !--- local variables @@ -95,35 +93,6 @@ subroutine GFS_initialize (Model, Statein, Stateout, Sfcprop, & call Coupling%create(Model) call Diag%create(Model) -! This logic deals with non-uniform block sizes for CCPP. When non-uniform block sizes -! are used, it is required that only the last block has a different (smaller) size than -! all other blocks. This is the standard in FV3. If this is the case, set non_uniform_blocks -! to .true. and initialize nthreads+1 elements of the interstitial array. The extra element -! will be used by the thread that runs over the last, smaller block. - if (minval(Init_parm%blksz)==maxval(Init_parm%blksz)) then - non_uniform_blocks = .false. - elseif (all(minloc(Init_parm%blksz)==(/size(Init_parm%blksz)/))) then - non_uniform_blocks = .true. - else - write(0,'(2a)') 'For non-uniform blocksizes, only the last element ', & - 'in Init_parm%blksz can be different from the others' - stop - endif - -! Initialize the Interstitial data type in parallel so that -! each thread creates (touches) its Interstitial(nt) first. -!$OMP parallel do default (shared) & -!$OMP schedule (static,1) & -!$OMP private (nt) - do nt=1,nthrds - call Interstitial (nt)%create (maxval(Init_parm%blksz), Model) - enddo -!$OMP end parallel do - - if (non_uniform_blocks) then - call Interstitial (nthrds+1)%create (Init_parm%blksz(nblks), Model) - end if - !--- populate the grid components call GFS_grid_populate (Grid, Init_parm%xlon, Init_parm%xlat, Init_parm%area) diff --git a/ccpp/driver/MPAS_init.F90 b/ccpp/driver/MPAS_init.F90 index f1e570fe1..b54e5f027 100644 --- a/ccpp/driver/MPAS_init.F90 +++ b/ccpp/driver/MPAS_init.F90 @@ -9,7 +9,6 @@ module MPAS_init use GFS_typedefs, only : GFS_sfcprop_type, GFS_statein_type, GFS_cldprop_type use GFS_typedefs, only : GFS_radtend_type use GFS_typedefs, only : GFS_coupling_type - use CCPP_typedefs, only : GFS_interstitial_type implicit none @@ -21,7 +20,7 @@ module MPAS_init !> !> ######################################################################################### subroutine MPAS_initialize (Model, Diag, Grid, Tbd, SfcProp, Statein, CldProp, RadTend, & - Coupling, Init_parm, Interstitial) + Coupling, Init_parm) #ifdef _OPENMP use omp_lib #endif @@ -37,7 +36,6 @@ subroutine MPAS_initialize (Model, Diag, Grid, Tbd, SfcProp, Statein, CldProp, R type(GFS_radtend_type), intent(inout) :: Radtend type(GFS_coupling_type), intent(inout) :: Coupling type(MPAS_control_type), intent(inout) :: Init_parm - type(GFS_interstitial_type), intent(inout) :: Interstitial(:) ! Locals integer :: nb @@ -73,35 +71,6 @@ subroutine MPAS_initialize (Model, Diag, Grid, Tbd, SfcProp, Statein, CldProp, R call Cldprop%create(Model) call Radtend%create(Model) call Coupling%create(Model) - - ! This logic deals with non-uniform block sizes for CCPP. When non-uniform block sizes - ! are used, it is required that only the last block has a different (smaller) size than - ! all other blocks. This is the standard in FV3. If this is the case, set non_uniform_blocks - ! to .true. and initialize nthreads+1 elements of the interstitial array. The extra element - ! will be used by the thread that runs over the last, smaller block. - if (minval(Init_parm%blksz)==maxval(Init_parm%blksz)) then - non_uniform_blocks = .false. - elseif (all(minloc(Init_parm%blksz)==(/size(Init_parm%blksz)/))) then - non_uniform_blocks = .true. - else - write(0,'(2a)') 'For non-uniform blocksizes, only the last element ', & - 'in Init_parm%blksz can be different from the others' - stop - endif - - ! Initialize the Interstitial data type in parallel so that - ! each thread creates (touches) its Interstitial(nt) first. - !$OMP parallel do default (shared) & - !$OMP schedule (static,1) & - !$OMP private (nt) - do nt=1,nthrds - call Interstitial(nt)%create(maxval(Init_parm%blksz), Model) - enddo - !$OMP end parallel do - - if (non_uniform_blocks) then - call Interstitial(nthrds+1)%create(Init_parm%blksz(nblks), Model) - end if end subroutine MPAS_initialize diff --git a/ccpp/framework b/ccpp/framework index 11359cb04..3256121dc 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 11359cb04a420fc87e4cf0f035f4d1215ab24488 +Subproject commit 3256121dc4972d5c78f43f1a16ea1cb118ec6daf diff --git a/ccpp/physics b/ccpp/physics index a78d06b4d..6382d6140 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit a78d06b4d54e2794a85ca3309e056ee67d62ed84 +Subproject commit 6382d6140c1c11a3e830716a7f5a9d7eb9d58cab diff --git a/fv3/atmos_model.F90 b/fv3/atmos_model.F90 index 611f99b20..1d7a27498 100644 --- a/fv3/atmos_model.F90 +++ b/fv3/atmos_model.F90 @@ -90,7 +90,7 @@ module atmos_model_mod GFS_coupling, GFS_intdiag, & GFS_interstitial use GFS_init, only: GFS_initialize -use CCPP_driver, only: CCPP_step, non_uniform_blocks +use CCPP_driver, only: CCPP_step use mod_ufsatm_util, only: get_atmos_tracer_types use stochastic_physics_wrapper_mod, only: stochastic_physics_wrapper,stochastic_physics_wrapper_end @@ -641,26 +641,7 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) #else nthrds = 1 #endif - - ! This logic deals with non-uniform block sizes for CCPP. - ! When non-uniform block sizes are used, it is required - ! that only the last block has a different (smaller) - ! size than all other blocks. This is the standard in - ! FV3. If this is the case, set non_uniform_blocks (a - ! variable imported from CCPP_driver) to .true. and - ! allocate nthreads+1 elements of the interstitial array. - ! The extra element will be used by the thread that - ! runs over the last, smaller block. - if (minval(Atm_block%blksz)==maxval(Atm_block%blksz)) then - non_uniform_blocks = .false. - allocate(GFS_interstitial(nthrds)) - else if (all(minloc(Atm_block%blksz)==(/size(Atm_block%blksz)/))) then - non_uniform_blocks = .true. - allocate(GFS_interstitial(nthrds+1)) - else - call mpp_error(FATAL, 'For non-uniform blocksizes, only the last element ' // & - 'in Atm_block%blksz can be different from the others') - end if + allocate(GFS_interstitial(nthrds+1)) !--- update GFS_control%jdat(8) bdat(:) = 0 @@ -715,7 +696,7 @@ subroutine atmos_model_init (Atmos, Time_init, Time, Time_step) call GFS_initialize (GFS_control, GFS_Statein, GFS_Stateout, GFS_Sfcprop, & GFS_Coupling, GFS_Grid, GFS_Tbd, GFS_Cldprop, GFS_Radtend, & - GFS_Intdiag, GFS_interstitial, Init_parm) + GFS_Intdiag, Init_parm) !--- populate/associate the Diag container elements call GFS_externaldiag_populate (GFS_Diag, GFS_Control, GFS_Statein, GFS_Stateout, & diff --git a/mpas/atmos_model.F90 b/mpas/atmos_model.F90 index d4d82a4ab..fff6197ec 100644 --- a/mpas/atmos_model.F90 +++ b/mpas/atmos_model.F90 @@ -238,16 +238,7 @@ subroutine atmos_model_init(Atmos, Time_init, Time, Time_end, Time_step, mpicomm Cfg % blksz(:) = blocksize Cfg % blksz(Atmos % nblks) = nCellsGlobal - (Atmos % nblks - 1)*blocksize - ! Allocate physics interstitial data container (UFSATM_interstitial) - ! When Cfg % blksz(Atmos % nblks) is smaller than blocksize. - if (minval(Cfg % blksz)==maxval(Cfg % blksz)) then - allocate(UFSATM_interstitial(nthrds)) - else if (all(minloc(Cfg % blksz)==(/size(Cfg % blksz)/))) then - allocate(UFSATM_interstitial(nthrds+1)) - else - call mpp_error(FATAL, 'For non-uniform blocksizes, only the last element ' // & - 'in Cfg%blksz can be different from the others') - end if + allocate(UFSATM_interstitial(nthrds+1)) ! Update time (UFS specific time formatting array) Cfg%bdat(:) = 0 @@ -262,7 +253,7 @@ subroutine atmos_model_init(Atmos, Time_init, Time, Time_end, Time_step, mpicomm ! Read in physics namelist and allocate data containers. call MPAS_initialize(UFSATM_control, UFSATM_intdiag, UFSATM_grid, UFSATM_tbd, UFSATM_sfcprop, & - UFSATM_statein, UFSATM_cldprop, UFSATM_radtend, UFSATM_coupling, Cfg, UFSATM_interstitial) + UFSATM_statein, UFSATM_cldprop, UFSATM_radtend, UFSATM_coupling, Cfg) ! Get longitude/latitude/area from MPAS to use in the physics. UFSATM_grid % xlon = lonCellGlobal