From 457d2caf228c83f234e823d8e0ce9003c6d73a00 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 22 Mar 2024 10:18:21 -0600 Subject: [PATCH 01/40] Bug fix: remove invalid active attribute in several metadata files --- physics/GWD/cires_ugwp.meta | 1 - physics/GWD/drag_suite.meta | 1 - physics/GWD/gwdc_post.meta | 1 - physics/GWD/rayleigh_damp.meta | 1 - physics/PBL/HEDMF/hedmf.meta | 1 - physics/SFC_Models/Lake/CLM/clm_lake.meta | 1 - physics/smoke_dust/rrfs_smoke_wrapper.meta | 3 --- 7 files changed, 9 deletions(-) diff --git a/physics/GWD/cires_ugwp.meta b/physics/GWD/cires_ugwp.meta index cd0192ca7..28faaeadf 100644 --- a/physics/GWD/cires_ugwp.meta +++ b/physics/GWD/cires_ugwp.meta @@ -840,7 +840,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys - active = (flag_for_diagnostics_3D) intent = inout [dtidx] standard_name = cumulative_change_of_state_variables_outer_index diff --git a/physics/GWD/drag_suite.meta b/physics/GWD/drag_suite.meta index 94dddcc93..be0449bd5 100644 --- a/physics/GWD/drag_suite.meta +++ b/physics/GWD/drag_suite.meta @@ -580,7 +580,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys - active = (flag_for_diagnostics_3D) intent = inout [dtidx] standard_name = cumulative_change_of_state_variables_outer_index diff --git a/physics/GWD/gwdc_post.meta b/physics/GWD/gwdc_post.meta index 97649d4cf..ba179181d 100644 --- a/physics/GWD/gwdc_post.meta +++ b/physics/GWD/gwdc_post.meta @@ -115,7 +115,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys - active = (flag_for_diagnostics_3D) intent = inout [dtidx] standard_name = cumulative_change_of_state_variables_outer_index diff --git a/physics/GWD/rayleigh_damp.meta b/physics/GWD/rayleigh_damp.meta index 525acbe8b..5c5271b7d 100644 --- a/physics/GWD/rayleigh_damp.meta +++ b/physics/GWD/rayleigh_damp.meta @@ -137,7 +137,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys - active = (flag_for_diagnostics_3D) intent = inout [dtidx] standard_name = cumulative_change_of_state_variables_outer_index diff --git a/physics/PBL/HEDMF/hedmf.meta b/physics/PBL/HEDMF/hedmf.meta index be0c83741..a5c6d73d9 100644 --- a/physics/PBL/HEDMF/hedmf.meta +++ b/physics/PBL/HEDMF/hedmf.meta @@ -530,7 +530,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys - active = (flag_for_diagnostics_3D) intent = inout [dtidx] standard_name = cumulative_change_of_state_variables_outer_index diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.meta b/physics/SFC_Models/Lake/CLM/clm_lake.meta index 99c7970d3..7b3bc0a49 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.meta +++ b/physics/SFC_Models/Lake/CLM/clm_lake.meta @@ -901,7 +901,6 @@ units = flag dimensions = () type = logical - active = (control_for_lake_model_selection == 3) intent = in [clm_debug_print] standard_name = flag_for_printing_in_clm_lake_model diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index 1f26e5a93..cbc25a611 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -135,7 +135,6 @@ units = index dimensions = () type = integer - active = (do_smoke_coupling) intent = in [dust_moist_correction_in] standard_name = dust_moist_correction_fengsha_dust_scheme @@ -144,7 +143,6 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) intent = in [dust_drylimit_factor_in] standard_name = dust_drylimit_factor_fengsha_dust_scheme @@ -153,7 +151,6 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) intent = in [aero_ind_fdb_in] standard_name = do_smoke_aerosol_indirect_feedback From f6082ba019833dd66c98df5a976f3f0caf633200 Mon Sep 17 00:00:00 2001 From: Lisa Bengtsson Date: Tue, 12 Mar 2024 18:44:20 +0000 Subject: [PATCH 02/40] Introduce namelist flag to convection/cloud/radiation interaction in GFS suite --- .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 | 6 +-- .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta | 7 ++++ physics/Radiation/radiation_clouds.f | 38 +++++++++++++++---- 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 index 5da5c86fb..767d3e534 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 @@ -19,7 +19,7 @@ module GFS_rrtmg_pre !>\section rrtmg_pre_gen General Algorithm subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& ltp, imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, me, ncnd, ntrac, & - num_p3d, npdf3d, & + num_p3d, npdf3d, xr_cnvcld, & ncnvcld3d,ntqv, ntcw,ntiw, ntlnc, ntinc, ntrnc, ntsnc, ntccn, top_at_1,& ntrw, ntsw, ntgl, nthl, ntwa, ntoz, ntsmoke, ntdust, ntcoarsepm, & ntclamt, nleffr, nieffr, nseffr, lndp_type, kdt, & @@ -129,7 +129,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& uni_cld, effr_in, do_mynnedmf, & lmfshal, lmfdeep2, pert_clds, lcrick,& lcnorm, top_at_1, lextop, mraerosol - logical, intent(in) :: rrfs_sd, aero_dir_fdb + logical, intent(in) :: rrfs_sd, aero_dir_fdb, xr_cnvcld logical, intent(in) :: nssl_ccn_on, nssl_invertccn integer, intent(in) :: spp_rad @@ -981,7 +981,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& & iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, & & idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, & & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, do_mynnedmf, & - & lgfdlmprad, & + & lgfdlmprad, xr_cnvcld, & & uni_cld, lmfshal, lmfdeep2, cldcov, clouds1, & & effrl, effri, effrr, effrs, effr_in, & & effrl_inout, effri_inout, effrs_inout, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta index 43802298b..15039e822 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta @@ -56,6 +56,13 @@ dimensions = () type = logical intent = in +[xr_cnvcld] + standard_name = flag_for_suspended_convective_clouds_in_Xu_Randall + long_name = flag for using suspended convective clouds in Xu Randall + units = flag + dimensions = () + type = logical + intent = in [ltp] standard_name = extra_top_layer long_name = extra top layer for radiation diff --git a/physics/Radiation/radiation_clouds.f b/physics/Radiation/radiation_clouds.f index 111be4019..979405cdb 100644 --- a/physics/Radiation/radiation_clouds.f +++ b/physics/Radiation/radiation_clouds.f @@ -348,7 +348,7 @@ subroutine radiation_clouds_prop & & iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, & & idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, & & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, & - & do_mynnedmf, lgfdlmprad, & + & do_mynnedmf, lgfdlmprad, xr_cnvcld, & & uni_cld, lmfshal, lmfdeep2, cldcov, clouds1, & & effrl, effri, effrr, effrs, effr_in, & & effrl_inout, effri_inout, effrs_inout, & @@ -538,7 +538,8 @@ subroutine radiation_clouds_prop & logical, intent(in) :: uni_cld, lmfshal, lmfdeep2, effr_in, & - & do_mynnedmf, lgfdlmprad, top_at_1, lcrick, lcnorm + & do_mynnedmf, lgfdlmprad, top_at_1, lcrick, lcnorm, & + & xr_cnvcld real (kind=kind_phys), dimension(:,:,:), intent(in) :: ccnd, & & tracer1 @@ -727,7 +728,7 @@ subroutine radiation_clouds_prop & call progcld_thompson_wsm6 (plyr,plvl,tlyr,qlyr,qstl, & ! --- inputs & rhly,tracer1,xlat,xlon,slmsk,dz,delp, & & ntrac-1, ntcw-1,ntiw-1,ntrw-1, & - & ntsw-1,ntgl-1,con_ttp, & + & ntsw-1,ntgl-1,con_ttp,xr_cnvcld, & & IX, NLAY, NLP1, uni_cld, lmfshal, lmfdeep2, & & cldcov(:,1:NLAY), cnvw, effrl_inout, & & effri_inout, effrs_inout, & @@ -801,7 +802,7 @@ subroutine radiation_clouds_prop & call progcld_thompson_wsm6 (plyr,plvl,tlyr,qlyr,qstl, & ! --- inputs & rhly,tracer1,xlat,xlon,slmsk,dz,delp, & & ntrac-1, ntcw-1,ntiw-1,ntrw-1, & - & ntsw-1,ntgl-1,con_ttp, & + & ntsw-1,ntgl-1,con_ttp,xr_cnvcld, & & IX, NLAY, NLP1, uni_cld, lmfshal, lmfdeep2, & & cldcov(:,1:NLAY), cnvw, effrl, effri, effrs, & & lwp_ex, iwp_ex, lwp_fc, iwp_fc, & @@ -1964,7 +1965,7 @@ subroutine progcld_thompson_wsm6 & & ( plyr,plvl,tlyr,qlyr,qstl,rhly,clw, & ! --- inputs: & xlat,xlon,slmsk,dz,delp, & & ntrac,ntcw,ntiw,ntrw,ntsw,ntgl,con_ttp, & - & IX, NLAY, NLP1, & + & xr_cnvcld, IX, NLAY, NLP1, & & uni_cld, lmfshal, lmfdeep2, cldcov, cnvw, & & re_cloud,re_ice,re_snow, & & lwp_ex, iwp_ex, lwp_fc, iwp_fc, & @@ -2051,7 +2052,8 @@ subroutine progcld_thompson_wsm6 & integer, intent(in) :: IX, NLAY, NLP1 integer, intent(in) :: ntrac, ntcw, ntiw, ntrw, ntsw, ntgl - logical, intent(in) :: uni_cld, lmfshal, lmfdeep2, lcnorm + logical, intent(in) :: uni_cld, lmfshal, lmfdeep2, lcnorm, & + & xr_cnvcld real (kind=kind_phys), dimension(:,:), intent(in) :: plvl, plyr, & & tlyr, qlyr, qstl, rhly, cldcov, delp, dz, dzlay, & @@ -2122,23 +2124,43 @@ subroutine progcld_thompson_wsm6 & ! enddo ! endif +!> - Include grid-mean suspended cloud condensate in Xu-Randall cloud fraction +!> if xr_cnvcld is true: + + if(xr_cnvcld)then do k = 1, NLAY do i = 1, IX clwf(i,k) = clw(i,k,ntcw) + clw(i,k,ntiw) + clw(i,k,ntsw) & + clw(i,k,ntrw) + cnvw(i,k) enddo enddo + else + do k = 1, NLAY + do i = 1, IX + clwf(i,k) = clw(i,k,ntcw) + clw(i,k,ntiw) + clw(i,k,ntsw) + & + clw(i,k,ntrw) + enddo + enddo + endif !> - Compute total-cloud liquid/ice condensate path in \f$ g/m^2 \f$. !> The total condensate includes convective condensate. do k = 1, NLAY-1 do i = 1, IX - tem1 = cnvw(i,k)*(1.-tem2d(i,k)) + if(xr_cnvcld)then + tem1 = cnvw(i,k)*(1.-tem2d(i,k)) + else + tem1 = 0. + endif cwp(i,k) = max(0.0, (clw(i,k,ntcw)+tem1) * & gfac * delp(i,k)) if(tem1 > 1.e-12 .and. clw(i,k,ntcw) < 1.e-12) & rew(i,k)=reliq_def - tem2 = cnvw(i,k)*tem2d(i,k) + if(xr_cnvcld)then + tem2 = cnvw(i,k)*tem2d(i,k) + else + tem2 = 0. + endif cip(i,k) = max(0.0, (clw(i,k,ntiw) + & snow2ice*clw(i,k,ntsw) + tem2) * & gfac * delp(i,k)) From 27683dbca78f08d43056e676118de6cedc11ff31 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Apr 2024 17:12:23 -0600 Subject: [PATCH 03/40] Add missing optional attribute to metadata files ONLY --- physics/CONV/C3/cu_c3_driver.meta | 10 +++ physics/CONV/C3/cu_c3_driver_post.meta | 1 + physics/CONV/C3/cu_c3_driver_pre.meta | 1 + physics/CONV/Chikira_Sugiyama/cs_conv.meta | 11 +++ physics/CONV/Grell_Freitas/cu_gf_driver.meta | 7 ++ .../CONV/Grell_Freitas/cu_gf_driver_post.meta | 2 + .../CONV/Grell_Freitas/cu_gf_driver_pre.meta | 2 + physics/CONV/RAS/rascnv.meta | 13 +++ physics/CONV/SAMF/samfdeepcnv.meta | 18 ++++ physics/CONV/SAMF/samfshalcnv.meta | 6 ++ physics/CONV/SAS/sascnvn.meta | 11 +++ physics/CONV/SAS/shalcnv.meta | 2 + physics/CONV/nTiedtke/cu_ntiedtke.meta | 1 + physics/CONV/nTiedtke/cu_ntiedtke_post.meta | 1 + physics/CONV/nTiedtke/cu_ntiedtke_pre.meta | 1 + physics/GWD/cires_ugwp.meta | 13 +++ physics/GWD/cires_ugwp_post.meta | 6 ++ physics/GWD/drag_suite.meta | 24 +++++ physics/GWD/gwdc_post.meta | 1 + physics/GWD/gwdps.meta | 8 ++ physics/GWD/rayleigh_damp.meta | 1 + physics/GWD/ugwpv1_gsldrag.meta | 29 +++++++ physics/GWD/ugwpv1_gsldrag_post.meta | 43 +++++++++ physics/GWD/unified_ugwp.meta | 31 +++++++ physics/GWD/unified_ugwp_post.meta | 43 +++++++++ .../GFS_DCNV_generic_post.meta | 9 ++ .../UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta | 2 + .../UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta | 2 + .../UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta | 6 ++ .../UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta | 33 +++++++ .../UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta | 26 ++++++ .../UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta | 4 + .../GFS_SCNV_generic_post.meta | 5 ++ .../UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta | 1 + .../GFS_cloud_diagnostics.meta | 3 + .../GFS_phys_time_vary.fv3.meta | 87 +++++++++++++++++++ .../GFS_phys_time_vary.scm.meta | 81 +++++++++++++++++ .../UFS_SCM_NEPTUNE/GFS_physics_post.meta | 2 + .../GFS_rad_time_vary.fv3.meta | 9 ++ .../GFS_rad_time_vary.scm.meta | 9 ++ .../GFS_radiation_surface.meta | 6 ++ .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta | 15 ++++ .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta | 21 +++++ .../GFS_rrtmgp_cloud_overlap.meta | 5 ++ .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta | 1 + .../UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta | 15 ++++ .../UFS_SCM_NEPTUNE/GFS_stochastics.meta | 10 +++ .../GFS_suite_interstitial_2.meta | 3 + .../GFS_suite_interstitial_3.meta | 9 ++ .../GFS_suite_interstitial_4.meta | 4 + .../GFS_suite_stateout_update.meta | 4 + .../GFS_surface_composites_post.meta | 3 + .../GFS_surface_generic_post.meta | 34 ++++++++ .../GFS_surface_generic_pre.meta | 6 ++ .../Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta | 1 + .../UFS_SCM_NEPTUNE/dcyc2t3.meta | 4 + .../maximum_hourly_diagnostics.meta | 6 ++ .../UFS_SCM_NEPTUNE/sgscloud_radpre.meta | 6 ++ physics/MP/Ferrier_Aligo/mp_fer_hires.meta | 1 + physics/MP/GFDL/fv_sat_adj.meta | 1 + physics/MP/GFDL/gfdl_cloud_microphys.meta | 12 +++ physics/MP/Morrison_Gettelman/m_micro.meta | 19 ++++ .../MP/Morrison_Gettelman/m_micro_post.meta | 3 + .../MP/Morrison_Gettelman/m_micro_pre.meta | 1 + physics/MP/NSSL/mp_nssl.meta | 22 +++++ physics/MP/Thompson/mp_thompson.meta | 18 ++++ physics/MP/Zhao_Carr/zhaocarr_gscond.meta | 7 ++ physics/MP/Zhao_Carr/zhaocarr_precpd.meta | 1 + physics/PBL/HEDMF/hedmf.meta | 4 + physics/PBL/MYJ/myjpbl_wrapper.meta | 3 + physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta | 64 ++++++++++++++ physics/PBL/SATMEDMF/satmedmfvdif.meta | 4 + physics/PBL/SATMEDMF/satmedmfvdifq.meta | 4 + physics/PBL/SHOC/moninshoc.meta | 4 + physics/PBL/SHOC/shoc.meta | 1 + physics/PBL/YSU/ysuvdif.meta | 3 + physics/PBL/saYSU/shinhongvdif.meta | 3 + physics/Radiation/RRTMG/radlw_main.meta | 3 + physics/Radiation/RRTMG/radsw_main.meta | 2 + .../RRTMGP/rrtmgp_aerosol_optics.meta | 2 + physics/Radiation/RRTMGP/rrtmgp_lw_main.meta | 14 +++ physics/Radiation/RRTMGP/rrtmgp_sw_main.meta | 13 +++ physics/SFC_Layer/MYJ/myjsfc_wrapper.meta | 1 + physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta | 17 ++++ physics/SFC_Layer/UFS/sfc_diag.meta | 2 + physics/SFC_Layer/UFS/sfc_diag_post.meta | 2 + physics/SFC_Layer/UFS/sfc_nst.meta | 19 ++++ physics/SFC_Layer/UFS/sfc_nst_post.meta | 5 ++ physics/SFC_Layer/UFS/sfc_nst_pre.meta | 5 ++ physics/SFC_Models/Lake/CLM/clm_lake.meta | 7 ++ .../SFC_Models/Lake/Flake/flake_driver.meta | 16 ++++ physics/SFC_Models/Land/Noah/lsm_noah.meta | 4 + physics/SFC_Models/Land/Noahmp/noahmpdrv.meta | 47 ++++++++++ physics/SFC_Models/Land/RUC/lsm_ruc.meta | 29 +++++++ physics/SFC_Models/Land/sfc_land.meta | 16 ++++ physics/SFC_Models/Ocean/UFS/sfc_ocean.meta | 3 + physics/SFC_Models/SeaIce/CICE/sfc_cice.meta | 5 ++ physics/SFC_Models/SeaIce/CICE/sfc_sice.meta | 2 + physics/smoke_dust/rrfs_smoke_postpbl.meta | 1 + physics/smoke_dust/rrfs_smoke_wrapper.meta | 11 +++ physics/tools/get_phi_fv3.meta | 1 + physics/tools/get_prs_fv3.meta | 1 + 102 files changed, 1121 insertions(+) diff --git a/physics/CONV/C3/cu_c3_driver.meta b/physics/CONV/C3/cu_c3_driver.meta index 5677cdd32..338954ae3 100644 --- a/physics/CONV/C3/cu_c3_driver.meta +++ b/physics/CONV/C3/cu_c3_driver.meta @@ -243,6 +243,7 @@ type = real kind = kind_phys intent = in + optional = True [sigmain] standard_name = prognostic_updraft_area_fraction_in_convection long_name = convective updraft area fraction @@ -251,6 +252,7 @@ type = real kind = kind_phys intent = in + optional = True [sigmaout] standard_name = updraft_area_fraction_updated_by_physics long_name = convective updraft area fraction updated by physics @@ -259,6 +261,7 @@ type = real kind = kind_phys intent = out + optional = True [betascu] standard_name = tuning_param_for_shallow_cu long_name = tuning param for shallow cu in case prognostic closure is used @@ -462,6 +465,7 @@ type = real kind = kind_phys intent = in + optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -470,6 +474,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -531,6 +536,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -538,6 +544,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -616,6 +623,7 @@ type = real kind = kind_phys intent = inout + optional = True [fhour] standard_name = forecast_time long_name = current forecast time @@ -669,6 +677,7 @@ type = real kind = kind_phys intent = in + optional = True [rainevap] standard_name = physics_field_for_coupling long_name = physics_field_for_coupling @@ -693,6 +702,7 @@ type = real kind = kind_phys intent = in + optional = True [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF diff --git a/physics/CONV/C3/cu_c3_driver_post.meta b/physics/CONV/C3/cu_c3_driver_post.meta index 78dca2ed4..b1c5e8b49 100644 --- a/physics/CONV/C3/cu_c3_driver_post.meta +++ b/physics/CONV/C3/cu_c3_driver_post.meta @@ -53,6 +53,7 @@ type = real kind = kind_phys intent = out + optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory diff --git a/physics/CONV/C3/cu_c3_driver_pre.meta b/physics/CONV/C3/cu_c3_driver_pre.meta index a022cf743..c1d46d6db 100644 --- a/physics/CONV/C3/cu_c3_driver_pre.meta +++ b/physics/CONV/C3/cu_c3_driver_pre.meta @@ -76,6 +76,7 @@ type = real kind = kind_phys intent = in + optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv.meta b/physics/CONV/Chikira_Sugiyama/cs_conv.meta index d75ab1006..08d348562 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv.meta +++ b/physics/CONV/Chikira_Sugiyama/cs_conv.meta @@ -159,6 +159,7 @@ type = real kind = kind_phys intent = inout + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -312,6 +313,7 @@ type = real kind = kind_phys intent = out + optional = True [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -320,6 +322,7 @@ type = real kind = kind_phys intent = out + optional = True [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -328,6 +331,7 @@ type = real kind = kind_phys intent = out + optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -336,6 +340,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -344,6 +349,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -352,6 +358,7 @@ type = real kind = kind_phys intent = out + optional = True [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -360,6 +367,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -368,6 +376,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -376,6 +385,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -384,6 +394,7 @@ type = real kind = kind_phys intent = out + optional = True [mp_phys] standard_name = control_for_microphysics_scheme long_name = flag for microphysics scheme diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.meta b/physics/CONV/Grell_Freitas/cu_gf_driver.meta index d0b661fd8..4c737c1c6 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.meta @@ -355,6 +355,7 @@ type = real kind = kind_phys intent = in + optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -363,6 +364,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -424,6 +426,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -431,6 +434,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -509,6 +513,7 @@ type = real kind = kind_phys intent = inout + optional = True [fhour] standard_name = forecast_time long_name = current forecast time @@ -570,6 +575,7 @@ type = real kind = kind_phys intent = in + optional = True [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -628,6 +634,7 @@ type = real kind = kind_phys intent = inout + optional = True [fscav] standard_name = smoke_dust_conv_wet_coef long_name = smoke dust convetive wet scavanging coefficents diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta index 478d48987..e3034403c 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta @@ -53,6 +53,7 @@ type = real kind = kind_phys intent = out + optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -127,6 +128,7 @@ type = real kind = kind_phys intent = inout + optional = True [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta index ff22f1583..23d753feb 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta @@ -76,6 +76,7 @@ type = real kind = kind_phys intent = in + optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -158,6 +159,7 @@ type = real kind = kind_phys intent = inout + optional = True [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics diff --git a/physics/CONV/RAS/rascnv.meta b/physics/CONV/RAS/rascnv.meta index f5a707ded..bc4a61280 100644 --- a/physics/CONV/RAS/rascnv.meta +++ b/physics/CONV/RAS/rascnv.meta @@ -334,6 +334,7 @@ type = real kind = kind_phys intent = in + optional = True [tin] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -482,6 +483,7 @@ type = real kind = kind_phys intent = out + optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * dt @@ -490,6 +492,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * dt @@ -514,6 +517,7 @@ type = real kind = kind_phys intent = inout + optional = True [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -522,6 +526,7 @@ type = real kind = kind_phys intent = inout + optional = True [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -530,6 +535,7 @@ type = real kind = kind_phys intent = inout + optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -538,6 +544,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -546,6 +553,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -554,6 +562,7 @@ type = real kind = kind_phys intent = inout + optional = True [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -562,6 +571,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -570,6 +580,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -578,6 +589,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -586,6 +598,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/SAMF/samfdeepcnv.meta b/physics/CONV/SAMF/samfdeepcnv.meta index 2dbd4407c..6d307a9fd 100644 --- a/physics/CONV/SAMF/samfdeepcnv.meta +++ b/physics/CONV/SAMF/samfdeepcnv.meta @@ -85,6 +85,7 @@ type = real kind = kind_phys intent = in + optional = True [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -257,6 +258,7 @@ type = real kind = kind_phys intent = in + optional = True [q] standard_name = specific_humidity long_name = water vapor specific humidity @@ -394,6 +396,7 @@ type = real kind = kind_phys intent = in + optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -402,6 +405,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -442,6 +446,7 @@ type = real kind = kind_phys intent = in + optional = True [sigmaout] standard_name = updraft_area_fraction_updated_by_physics long_name = convective updraft area fraction updated by physics @@ -450,6 +455,7 @@ type = real kind = kind_phys intent = out + optional = True [betascu] standard_name = tuning_param_for_shallow_cu long_name = tuning param for shallow cu in case prognostic closure is used @@ -481,6 +487,7 @@ type = real kind = kind_phys intent = in + optional = True [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -496,6 +503,7 @@ type = real kind = kind_phys intent = inout + optional = True [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -504,6 +512,7 @@ type = real kind = kind_phys intent = inout + optional = True [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -512,6 +521,7 @@ type = real kind = kind_phys intent = inout + optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -520,6 +530,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -528,6 +539,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -536,6 +548,7 @@ type = real kind = kind_phys intent = inout + optional = True [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -544,6 +557,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -552,6 +566,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -560,6 +575,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -568,6 +584,7 @@ type = real kind = kind_phys intent = inout + optional = True [mp_phys] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -690,6 +707,7 @@ type = real kind = kind_phys intent = in + optional = True [rainevap] standard_name = physics_field_for_coupling long_name = physics_field_for_coupling diff --git a/physics/CONV/SAMF/samfshalcnv.meta b/physics/CONV/SAMF/samfshalcnv.meta index 4b913a05d..b809530bc 100644 --- a/physics/CONV/SAMF/samfshalcnv.meta +++ b/physics/CONV/SAMF/samfshalcnv.meta @@ -85,6 +85,7 @@ type = real kind = kind_phys intent = in + optional = True [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -257,6 +258,7 @@ type = real kind = kind_phys intent = in + optional = True [q] standard_name = specific_humidity long_name = water vapor specific humidity @@ -372,6 +374,7 @@ type = real kind = kind_phys intent = in + optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -380,6 +383,7 @@ type = real kind = kind_phys intent = out + optional = True [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -474,6 +478,7 @@ type = real kind = kind_phys intent = in + optional = True [sigmaout] standard_name = updraft_area_fraction_updated_by_physics long_name = convective updraft area fraction updated by physics @@ -482,6 +487,7 @@ type = real kind = kind_phys intent = out + optional = True [betascu] standard_name = tuning_param_for_shallow_cu long_name = tuning param for shallow cu in case prognostic closure is used diff --git a/physics/CONV/SAS/sascnvn.meta b/physics/CONV/SAS/sascnvn.meta index fefa2823a..10b0f9aff 100644 --- a/physics/CONV/SAS/sascnvn.meta +++ b/physics/CONV/SAS/sascnvn.meta @@ -305,6 +305,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -345,6 +346,7 @@ type = real kind = kind_phys intent = inout + optional = True [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -353,6 +355,7 @@ type = real kind = kind_phys intent = inout + optional = True [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -361,6 +364,7 @@ type = real kind = kind_phys intent = inout + optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -369,6 +373,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -377,6 +382,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -385,6 +391,7 @@ type = real kind = kind_phys intent = inout + optional = True [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -393,6 +400,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -401,6 +409,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -409,6 +418,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -417,6 +427,7 @@ type = real kind = kind_phys intent = inout + optional = True [mp_phys] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme diff --git a/physics/CONV/SAS/shalcnv.meta b/physics/CONV/SAS/shalcnv.meta index 15324ed08..35ec3765a 100644 --- a/physics/CONV/SAS/shalcnv.meta +++ b/physics/CONV/SAS/shalcnv.meta @@ -311,6 +311,7 @@ type = real kind = kind_phys intent = in + optional = True [heat] 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 @@ -335,6 +336,7 @@ type = real kind = kind_phys intent = out + optional = True [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt diff --git a/physics/CONV/nTiedtke/cu_ntiedtke.meta b/physics/CONV/nTiedtke/cu_ntiedtke.meta index b425a80ad..42ffaf669 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke.meta @@ -278,6 +278,7 @@ type = real kind = kind_phys intent = out + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta index 9960b6b77..282b4c9de 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta @@ -39,6 +39,7 @@ type = real kind = kind_phys intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta index 26392f0e6..8d1baae8d 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta @@ -76,6 +76,7 @@ type = real kind = kind_phys intent = in + optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only diff --git a/physics/GWD/cires_ugwp.meta b/physics/GWD/cires_ugwp.meta index 28faaeadf..bf43e450b 100644 --- a/physics/GWD/cires_ugwp.meta +++ b/physics/GWD/cires_ugwp.meta @@ -38,6 +38,7 @@ type = character kind = len=* intent = in + optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -604,6 +605,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_ms] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from mesoscale gwd @@ -612,6 +614,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -620,6 +623,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -628,6 +632,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_ogw] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = instantaneous change in x wind due to orographic gw drag @@ -636,6 +641,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_ms] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = instantaneous change in y wind due to orographic gw drag @@ -644,6 +650,7 @@ type = real kind = kind_phys intent = out + optional = True [dtaux2d_bl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -652,6 +659,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_bl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -660,6 +668,7 @@ type = real kind = kind_phys intent = out + optional = True [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 @@ -684,6 +693,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ogw] standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag @@ -692,6 +702,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_tms] standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD @@ -700,6 +711,7 @@ type = real kind = kind_phys intent = inout + optional = True [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -848,6 +860,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index diff --git a/physics/GWD/cires_ugwp_post.meta b/physics/GWD/cires_ugwp_post.meta index dabc40082..209209e25 100644 --- a/physics/GWD/cires_ugwp_post.meta +++ b/physics/GWD/cires_ugwp_post.meta @@ -132,6 +132,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -204,6 +205,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ogw] standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag @@ -212,6 +214,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_tms] standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD @@ -220,6 +223,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ngw] standard_name = time_integral_of_change_in_x_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in x wind due to NGW @@ -228,6 +232,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3dt_ngw] standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in y wind due to NGW @@ -236,6 +241,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics diff --git a/physics/GWD/drag_suite.meta b/physics/GWD/drag_suite.meta index be0449bd5..7b65666d5 100644 --- a/physics/GWD/drag_suite.meta +++ b/physics/GWD/drag_suite.meta @@ -214,6 +214,7 @@ type = real kind = kind_phys intent = in + optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -222,6 +223,7 @@ type = real kind = kind_phys intent = in + optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -230,6 +232,7 @@ type = real kind = kind_phys intent = in + optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height small scale @@ -238,6 +241,7 @@ type = real kind = kind_phys intent = in + optional = True [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with respect to east of maximum subgrid orographic variations @@ -278,6 +282,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_ms] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from mesoscale gwd @@ -286,6 +291,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtaux2d_bl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -294,6 +300,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_bl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -302,6 +309,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtaux2d_ss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -310,6 +318,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_ss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -318,6 +327,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtaux2d_fd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -326,6 +336,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_fd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -334,6 +345,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -358,6 +370,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_ms] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from mesoscale gwd @@ -366,6 +379,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -374,6 +388,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -382,6 +397,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_ss] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -390,6 +406,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_ss] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -398,6 +415,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_fd] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -406,6 +424,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_fd] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -414,6 +433,7 @@ type = real kind = kind_phys intent = inout + optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -438,6 +458,7 @@ type = real kind = kind_phys intent = in + optional = True [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -581,6 +602,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -588,6 +610,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_orographic_gwd] standard_name = index_of_orographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of orographic gravity wave drag process in second dimension of array cumulative change index @@ -645,6 +668,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_gwd] standard_name = control_for_gravity_wave_drag_spp_perturbations long_name = control for gravity wave drag spp perturbations diff --git a/physics/GWD/gwdc_post.meta b/physics/GWD/gwdc_post.meta index ba179181d..fefc1bd0f 100644 --- a/physics/GWD/gwdc_post.meta +++ b/physics/GWD/gwdc_post.meta @@ -123,6 +123,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index diff --git a/physics/GWD/gwdps.meta b/physics/GWD/gwdps.meta index bbe7569d0..a7878db97 100644 --- a/physics/GWD/gwdps.meta +++ b/physics/GWD/gwdps.meta @@ -235,6 +235,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_ms] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = instantaneous change in y wind due to orographic gw drag @@ -243,6 +244,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtaux2d_bl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -251,6 +253,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtauy2d_bl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -259,6 +262,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_ms] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from mesoscale gwd @@ -267,6 +271,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_ms] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from mesoscale gwd @@ -275,6 +280,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -283,6 +289,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -291,6 +298,7 @@ type = real kind = kind_phys intent = inout + optional = True [g] standard_name = gravitational_acceleration long_name = gravitational acceleration diff --git a/physics/GWD/rayleigh_damp.meta b/physics/GWD/rayleigh_damp.meta index 5c5271b7d..3db1bc7be 100644 --- a/physics/GWD/rayleigh_damp.meta +++ b/physics/GWD/rayleigh_damp.meta @@ -145,6 +145,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_rayleigh_damping] standard_name = index_of_rayleigh_damping_process_in_cumulative_change_index long_name = index of rayleigh damping process in second dimension of array cumulative change index diff --git a/physics/GWD/ugwpv1_gsldrag.meta b/physics/GWD/ugwpv1_gsldrag.meta index 73d7eee1c..ba9159b2e 100644 --- a/physics/GWD/ugwpv1_gsldrag.meta +++ b/physics/GWD/ugwpv1_gsldrag.meta @@ -37,6 +37,7 @@ type = character kind = len=* intent = in + optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -545,6 +546,7 @@ type = real kind = kind_phys intent = in + optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -553,6 +555,7 @@ type = real kind = kind_phys intent = in + optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -561,6 +564,7 @@ type = real kind = kind_phys intent = in + optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by sso higher than critical height small scale @@ -569,6 +573,7 @@ type = real kind = kind_phys intent = in + optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -641,6 +646,7 @@ type = real kind = kind_phys intent = in + optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -752,6 +758,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from meso scale ogw @@ -760,6 +767,7 @@ type = real kind = kind_phys intent = out + optional = True [du_ogwcol] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw @@ -768,6 +776,7 @@ type = real kind = kind_phys intent = out + optional = True [dv_ogwcol] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw @@ -776,6 +785,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_obl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -784,6 +794,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_obl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -792,6 +803,7 @@ type = real kind = kind_phys intent = out + optional = True [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -800,6 +812,7 @@ type = real kind = kind_phys intent = out + optional = True [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -808,6 +821,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_oss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -816,6 +830,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_oss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -824,6 +839,7 @@ type = real kind = kind_phys intent = out + optional = True [du_osscol] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -832,6 +848,7 @@ type = real kind = kind_phys intent = out + optional = True [dv_osscol] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -840,6 +857,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_ofd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -848,6 +866,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_ofd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -856,6 +875,7 @@ type = real kind = kind_phys intent = out + optional = True [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -864,6 +884,7 @@ type = real kind = kind_phys intent = out + optional = True [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -872,6 +893,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -880,6 +902,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -888,6 +911,7 @@ type = real kind = kind_phys intent = out + optional = True [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -896,6 +920,7 @@ type = real kind = kind_phys intent = out + optional = True [kdis_ngw] standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag long_name = eddy mixing due to non-stationary GWs @@ -904,6 +929,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_gw] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to all GWs @@ -1049,6 +1075,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -1056,6 +1083,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -1113,6 +1141,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_gwd] standard_name = control_for_gravity_wave_drag_spp_perturbations long_name = control for gravity wave drag spp perturbations diff --git a/physics/GWD/ugwpv1_gsldrag_post.meta b/physics/GWD/ugwpv1_gsldrag_post.meta index e1c63102d..b97db21c0 100644 --- a/physics/GWD/ugwpv1_gsldrag_post.meta +++ b/physics/GWD/ugwpv1_gsldrag_post.meta @@ -108,6 +108,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_obl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -116,6 +117,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_ofd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -124,6 +126,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ofd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -132,6 +135,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_ogw] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = x wind tendency from meso scale ogw @@ -140,6 +144,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from meso scale ogw @@ -148,6 +153,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_oss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -156,6 +162,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_oss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -164,6 +171,7 @@ type = real kind = kind_phys intent = in + optional = True [tot_zmtb] standard_name = time_integral_of_height_of_mountain_blocking long_name = time integral of height of mountain blocking drag @@ -228,6 +236,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ogw] standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag @@ -236,6 +245,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_tms] standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD @@ -244,6 +254,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ngw] standard_name = time_integral_of_change_in_x_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in x wind due to NGW @@ -252,6 +263,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3dt_ngw] standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in y wind due to NGW @@ -260,6 +272,7 @@ type = real kind = kind_phys intent = inout + optional = True [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -268,6 +281,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -276,6 +290,7 @@ type = real kind = kind_phys intent = in + optional = True [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -284,6 +299,7 @@ type = real kind = kind_phys intent = in + optional = True [ldu3dt_ngw] standard_name = cumulative_change_in_x_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in x wind due to convective gravity wave drag @@ -292,6 +308,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldv3dt_ngw] standard_name = cumulative_change_in_y_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in y wind due to convective gravity wave drag @@ -300,6 +317,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldt3dt_ngw] standard_name = cumulative_change_in_temperature_due_to_convective_gravity_wave_drag long_name = cumulative change in temperature due to convective gravity wave drag @@ -308,6 +326,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_ogw] standard_name = cumulative_change_in_wind_speed_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to mesoscale orographic gravity wave drag @@ -316,6 +335,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_obl] standard_name = cumulative_change_in_wind_speed_due_to_blocking_drag long_name = cumulative change in wind speed due to blocking drag @@ -324,6 +344,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_oss] standard_name = cumulative_change_in_wind_speed_due_to_small_scale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to small scale orographic gravity wave drag @@ -332,6 +353,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_ofd] standard_name = cumulative_change_in_wind_speed_due_to_turbulent_orographic_form_drag long_name = cumulative change in wind speed due to turbulent orographic form drag @@ -340,6 +362,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_ogw] standard_name = cumulative_change_in_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in x wind due to mesoscale orographic gravity wave drag @@ -348,6 +371,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_obl] standard_name = cumulative_change_in_x_wind_due_to_blocking_drag long_name = cumulative change in x wind due to blocking drag @@ -356,6 +380,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_oss] standard_name = cumulative_change_in_x_wind_due_to_small_scale_gravity_wave_drag long_name = cumulative change in x wind due to small scale gravity wave drag @@ -364,6 +389,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_ofd] standard_name = cumulative_change_in_x_wind_due_to_form_drag long_name = cumulative change in x wind due to form drag @@ -372,6 +398,7 @@ type = real kind = kind_phys intent = inout + optional = True [du_ogwcol] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw @@ -380,6 +407,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_ogwcol] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw @@ -388,6 +416,7 @@ type = real kind = kind_phys intent = in + optional = True [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -396,6 +425,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -404,6 +434,7 @@ type = real kind = kind_phys intent = in + optional = True [du_osscol] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -412,6 +443,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_osscol] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -420,6 +452,7 @@ type = real kind = kind_phys intent = in + optional = True [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -428,6 +461,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -436,6 +470,7 @@ type = real kind = kind_phys intent = in + optional = True [du3_ogwcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated x momentum flux from mesoscale orographic gravity wave drag @@ -444,6 +479,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_ogwcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated y momentum flux from mesoscale orographic gravity wave drag @@ -452,6 +488,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_oblcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = cumulative integrated x momentum flux from blocking drag @@ -460,6 +497,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_oblcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = cumulative integrated y momentum flux from blocking drag @@ -468,6 +506,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_osscol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = cumulative integrated x momentum flux from small scale gravity wave drag @@ -476,6 +515,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_osscol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_small_scale_gravity_wave_drag long_name = cumulative integrated y momentum flux from small scale gravity wave drag @@ -484,6 +524,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_ofdcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_form_drag long_name = cumulative integrated x momentum flux from form drag @@ -492,6 +533,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_ofdcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_form_drag long_name = cumulative integrated y momentum flux from form drag @@ -500,6 +542,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics diff --git a/physics/GWD/unified_ugwp.meta b/physics/GWD/unified_ugwp.meta index 189f7072c..42c2e00a3 100644 --- a/physics/GWD/unified_ugwp.meta +++ b/physics/GWD/unified_ugwp.meta @@ -39,6 +39,7 @@ type = character kind = len=* intent = in + optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -448,6 +449,7 @@ type = real kind = kind_phys intent = in + optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -456,6 +458,7 @@ type = real kind = kind_phys intent = in + optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -464,6 +467,7 @@ type = real kind = kind_phys intent = in + optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height small scale @@ -472,6 +476,7 @@ type = real kind = kind_phys intent = in + optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -488,6 +493,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_ms] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from mesoscale gwd @@ -496,6 +502,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -504,6 +511,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -512,6 +520,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc_ss] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -520,6 +529,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_ss] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -528,6 +538,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc_fd] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -536,6 +547,7 @@ type = real kind = kind_phys intent = out + optional = True [dvsfc_fd] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -544,6 +556,7 @@ type = real kind = kind_phys intent = out + optional = True [dtaux2d_ms] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = instantaneous change in x wind due to orographic gw drag @@ -552,6 +565,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_ms] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = instantaneous change in y wind due to orographic gw drag @@ -560,6 +574,7 @@ type = real kind = kind_phys intent = out + optional = True [dtaux2d_bl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -568,6 +583,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_bl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -576,6 +592,7 @@ type = real kind = kind_phys intent = out + optional = True [dtaux2d_ss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -584,6 +601,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_ss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -592,6 +610,7 @@ type = real kind = kind_phys intent = out + optional = True [dtaux2d_fd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -600,6 +619,7 @@ type = real kind = kind_phys intent = out + optional = True [dtauy2d_fd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -608,6 +628,7 @@ type = real kind = kind_phys intent = out + optional = True [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -616,6 +637,7 @@ type = real kind = kind_phys intent = out + optional = True [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -624,6 +646,7 @@ type = real kind = kind_phys intent = out + optional = True [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -632,6 +655,7 @@ type = real kind = kind_phys intent = out + optional = True [br1] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -648,6 +672,7 @@ type = real kind = kind_phys intent = in + optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -924,6 +949,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ogw] standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag @@ -932,6 +958,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_tms] standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD @@ -940,6 +967,7 @@ type = real kind = kind_phys intent = inout + optional = True [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -1096,6 +1124,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -1103,6 +1132,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -1209,6 +1239,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_gwd] standard_name = control_for_gravity_wave_drag_spp_perturbations long_name = control for gravity wave drag spp perturbations diff --git a/physics/GWD/unified_ugwp_post.meta b/physics/GWD/unified_ugwp_post.meta index 7784c28ec..d129b046f 100644 --- a/physics/GWD/unified_ugwp_post.meta +++ b/physics/GWD/unified_ugwp_post.meta @@ -139,6 +139,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y momentum tendency from meso scale ogw @@ -147,6 +148,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -219,6 +221,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ogw] standard_name = time_integral_of_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = time integral of change in x wind due to orographic gw drag @@ -227,6 +230,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_tms] standard_name = time_integral_of_change_in_x_wind_due_to_turbulent_orographic_form_drag long_name = time integral of change in x wind due to TOFD @@ -235,6 +239,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3dt_ngw] standard_name = time_integral_of_change_in_x_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in x wind due to NGW @@ -243,6 +248,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3dt_ngw] standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in y wind due to NGW @@ -251,6 +257,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_ogw] standard_name = cumulative_change_in_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in x wind due to mesoscale orographic gravity wave drag @@ -259,6 +266,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_obl] standard_name = cumulative_change_in_x_wind_due_to_blocking_drag long_name = cumulative change in x wind due to blocking drag @@ -267,6 +275,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_oss] standard_name = cumulative_change_in_x_wind_due_to_small_scale_gravity_wave_drag long_name = cumulative change in x wind due to small scale gravity wave drag @@ -275,6 +284,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldu3dt_ofd] standard_name = cumulative_change_in_x_wind_due_to_form_drag long_name = cumulative change in x wind due to form drag @@ -283,6 +293,7 @@ type = real kind = kind_phys intent = inout + optional = True [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -291,6 +302,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -299,6 +311,7 @@ type = real kind = kind_phys intent = in + optional = True [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -307,6 +320,7 @@ type = real kind = kind_phys intent = in + optional = True [ldu3dt_ngw] standard_name = cumulative_change_in_x_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in x wind due to convective gravity wave drag @@ -315,6 +329,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldv3dt_ngw] standard_name = cumulative_change_in_y_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in y wind due to convective gravity wave drag @@ -323,6 +338,7 @@ type = real kind = kind_phys intent = inout + optional = True [ldt3dt_ngw] standard_name = cumulative_change_in_temperature_due_to_convective_gravity_wave_drag long_name = cumulative change in temperature due to convective gravity wave drag @@ -331,6 +347,7 @@ type = real kind = kind_phys intent = inout + optional = True [dudt_obl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -339,6 +356,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_obl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -347,6 +365,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_oss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -355,6 +374,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_oss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -363,6 +383,7 @@ type = real kind = kind_phys intent = in + optional = True [dudt_ofd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -371,6 +392,7 @@ type = real kind = kind_phys intent = in + optional = True [dvdt_ofd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -379,6 +401,7 @@ type = real kind = kind_phys intent = in + optional = True [dws3dt_ogw] standard_name = cumulative_change_in_wind_speed_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to mesoscale orographic gravity wave drag @@ -387,6 +410,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_obl] standard_name = cumulative_change_in_wind_speed_due_to_blocking_drag long_name = cumulative change in wind speed due to blocking drag @@ -395,6 +419,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_oss] standard_name = cumulative_change_in_wind_speed_due_to_small_scale_orographic_gravity_wave_drag long_name = cumulative change in wind speed due to small scale orographic gravity wave drag @@ -403,6 +428,7 @@ type = real kind = kind_phys intent = inout + optional = True [dws3dt_ofd] standard_name = cumulative_change_in_wind_speed_due_to_turbulent_orographic_form_drag long_name = cumulative change in wind speed due to turbulent orographic form drag @@ -411,6 +437,7 @@ type = real kind = kind_phys intent = inout + optional = True [du_ogwcol] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw @@ -419,6 +446,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_ogwcol] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw @@ -427,6 +455,7 @@ type = real kind = kind_phys intent = in + optional = True [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -435,6 +464,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -443,6 +473,7 @@ type = real kind = kind_phys intent = in + optional = True [du_osscol] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -451,6 +482,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_osscol] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -459,6 +491,7 @@ type = real kind = kind_phys intent = in + optional = True [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -467,6 +500,7 @@ type = real kind = kind_phys intent = in + optional = True [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -475,6 +509,7 @@ type = real kind = kind_phys intent = in + optional = True [du3_ogwcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated x momentum flux from mesoscale orographic gravity wave drag @@ -483,6 +518,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_ogwcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = cumulative integrated y momentum flux from mesoscale orographic gravity wave drag @@ -491,6 +527,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_oblcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = cumulative integrated x momentum flux from blocking drag @@ -499,6 +536,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_oblcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = cumulative integrated y momentum flux from blocking drag @@ -507,6 +545,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_osscol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = cumulative integrated x momentum flux from small scale gravity wave drag @@ -515,6 +554,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_osscol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_small_scale_gravity_wave_drag long_name = cumulative integrated y momentum flux from small scale gravity wave drag @@ -523,6 +563,7 @@ type = real kind = kind_phys intent = inout + optional = True [du3_ofdcol] standard_name = cumulative_vertically_integrated_x_momentum_flux_due_to_form_drag long_name = cumulative integrated x momentum flux from form drag @@ -531,6 +572,7 @@ type = real kind = kind_phys intent = inout + optional = True [dv3_ofdcol] standard_name = cumulative_vertically_integrated_y_momentum_flux_due_to_form_drag long_name = cumulative integrated y momentum flux from form drag @@ -539,6 +581,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta index ab8982e11..c23eafdc7 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta @@ -138,6 +138,7 @@ type = real kind = kind_phys intent = in + optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -162,6 +163,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -169,6 +171,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_dcnv] standard_name = index_of_deep_convection_process_process_in_cumulative_change_index long_name = index of deep convection process in second dimension of array cumulative change index @@ -280,6 +283,7 @@ type = real kind = kind_phys intent = inout + optional = True [dwn_mf] standard_name = cumulative_atmosphere_downdraft_convective_mass_flux long_name = cumulative downdraft mass flux @@ -288,6 +292,7 @@ type = real kind = kind_phys intent = inout + optional = True [det_mf] standard_name = cumulative_atmosphere_detrainment_convective_mass_flux long_name = cumulative detrainment mass flux @@ -296,6 +301,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -320,6 +326,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnvc_phy_f3d] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -328,6 +335,7 @@ type = real kind = kind_phys intent = inout + optional = True [flag_for_dcnv_generic_tend] standard_name = flag_for_generic_tendency_due_to_deep_convection long_name = true if GFS_DCNV_generic should calculate tendencies @@ -447,6 +455,7 @@ dimensions = () type = integer intent = in + optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta index ec1c59810..825f56696 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta @@ -134,6 +134,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_dcnv] standard_name = index_of_deep_convection_process_process_in_cumulative_change_index long_name = index of deep convection process in second dimension of array cumulative change index @@ -260,6 +261,7 @@ dimensions = () type = integer intent = in + optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta index beca39282..90578c2fb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta @@ -94,6 +94,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -101,6 +102,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta index dbbfc261d..609e0c259 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta @@ -76,6 +76,7 @@ type = real kind = kind_phys intent = out + optional = True [ocss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -84,6 +85,7 @@ type = real kind = kind_phys intent = out + optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -92,6 +94,7 @@ type = real kind = kind_phys intent = out + optional = True [clxss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height small scale @@ -100,6 +103,7 @@ type = real kind = kind_phys intent = out + optional = True [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -170,6 +174,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -177,6 +182,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta index 7f67aa925..724dac818 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta @@ -336,6 +336,7 @@ type = real kind = kind_phys intent = inout + optional = True [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -344,6 +345,7 @@ type = real kind = kind_phys intent = inout + optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -352,6 +354,7 @@ type = real kind = kind_phys intent = inout + optional = True [frzr] standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount long_name = accumulated surface freezing rain @@ -439,6 +442,7 @@ type = real kind = kind_phys intent = in + optional = True [ice0] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -447,6 +451,7 @@ type = real kind = kind_phys intent = in + optional = True [snow0] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -455,6 +460,7 @@ type = real kind = kind_phys intent = in + optional = True [graupel0] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -463,6 +469,7 @@ type = real kind = kind_phys intent = in + optional = True [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -559,6 +566,7 @@ type = real kind = kind_phys intent = inout + optional = True [totsnw] standard_name = accumulated_lwe_thickness_of_snow_amount long_name = accumulated snow precipitation @@ -567,6 +575,7 @@ type = real kind = kind_phys intent = inout + optional = True [totgrp] standard_name = accumulated_lwe_thickness_of_graupel_amount long_name = accumulated graupel precipitation @@ -575,6 +584,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket @@ -599,6 +609,7 @@ type = real kind = kind_phys intent = inout + optional = True [totsnwb] standard_name = accumulated_lwe_thickness_of_snow_amount_in_bucket long_name = accumulated snow precipitation in bucket @@ -607,6 +618,7 @@ type = real kind = kind_phys intent = inout + optional = True [totgrpb] standard_name = accumulated_lwe_thickness_of_graupel_amount_in_bucket long_name = accumulated graupel precipitation in bucket @@ -615,6 +627,7 @@ type = real kind = kind_phys intent = inout + optional = True [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -623,6 +636,7 @@ type = real kind = kind_phys intent = inout + optional = True [rainc_cpl] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_for_coupling long_name = total convective precipitation @@ -631,6 +645,7 @@ type = real kind = kind_phys intent = inout + optional = True [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -639,6 +654,7 @@ type = real kind = kind_phys intent = inout + optional = True [pwat] standard_name = column_precipitable_water long_name = precipitable water @@ -655,6 +671,7 @@ type = real kind = kind_phys intent = inout + optional = True [dsnow_cpl] standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) @@ -663,6 +680,7 @@ type = real kind = kind_phys intent = inout + optional = True [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -692,6 +710,7 @@ type = real kind = kind_phys intent = inout + optional = True [rainncprv] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -700,6 +719,7 @@ type = real kind = kind_phys intent = inout + optional = True [iceprv] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -708,6 +728,7 @@ type = real kind = kind_phys intent = inout + optional = True [snowprv] standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep @@ -716,6 +737,7 @@ type = real kind = kind_phys intent = inout + optional = True [graupelprv] standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep @@ -724,6 +746,7 @@ type = real kind = kind_phys intent = inout + optional = True [draincprv] standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep @@ -732,6 +755,7 @@ type = real kind = kind_phys intent = inout + optional = True [drainncprv] standard_name = explicit_precipitation_rate_on_previous_timestep long_name = explicit rainfall rate previous timestep @@ -740,6 +764,7 @@ type = real kind = kind_phys intent = inout + optional = True [diceprv] standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep @@ -748,6 +773,7 @@ type = real kind = kind_phys intent = inout + optional = True [dsnowprv] standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep @@ -756,6 +782,7 @@ type = real kind = kind_phys intent = inout + optional = True [dgraupelprv] standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep @@ -764,6 +791,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -809,6 +837,7 @@ type = real kind = kind_phys intent = in + optional = True [fhour] standard_name = forecast_time long_name = current forecast time @@ -840,6 +869,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -847,6 +877,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -883,6 +914,7 @@ type = real kind = kind_phys intent = inout + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = specific_humidity_on_previous_timestep @@ -891,6 +923,7 @@ type = real kind = kind_phys intent = inout + optional = True [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta index d49a885c5..105d9aa48 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta @@ -113,6 +113,7 @@ dimensions = () type = integer intent = in + optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -120,6 +121,7 @@ dimensions = () type = integer intent = in + optional = True [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -183,6 +185,7 @@ dimensions = () type = integer intent = in + optional = True [nthl] standard_name = index_of_hail_mixing_ratio_in_tracer_concentration_array long_name = tracer index for hail @@ -204,6 +207,7 @@ dimensions = () type = integer intent = in + optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume @@ -454,6 +458,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -490,6 +495,7 @@ type = real kind = kind_phys intent = in + optional = True [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -562,6 +568,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_cpl] standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc v momentum flux multiplied by timestep @@ -570,6 +577,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtsfc_cpl] standard_name = cumulative_surface_upward_sensible_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep @@ -578,6 +586,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqsfc_cpl] standard_name = cumulative_surface_upward_latent_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep @@ -586,6 +595,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfci_cpl] standard_name = surface_x_momentum_flux_for_coupling long_name = instantaneous sfc u momentum flux @@ -594,6 +604,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfci_cpl] standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc v momentum flux @@ -602,6 +613,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtsfci_cpl] standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux @@ -610,6 +622,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqsfci_cpl] standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux @@ -618,6 +631,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_diag] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -650,6 +664,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfci_diag] standard_name = instantaneous_surface_x_momentum_flux_for_diag long_name = instantaneous sfc x momentum flux multiplied by timestep @@ -682,6 +697,7 @@ type = real kind = kind_phys intent = inout + optional = True [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -754,6 +770,7 @@ type = real kind = kind_phys intent = out + optional = True [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -777,6 +794,7 @@ type = real kind = kind_phys intent = in + optional = True [dvsfc_cice] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -785,6 +803,7 @@ type = real kind = kind_phys intent = in + optional = True [dtsfc_cice] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -793,6 +812,7 @@ type = real kind = kind_phys intent = in + optional = True [dqsfc_cice] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux for coupling @@ -801,6 +821,7 @@ type = real kind = kind_phys intent = in + optional = True [use_med_flux] standard_name = do_mediator_atmosphere_ocean_fluxes long_name = flag for using atmosphere-ocean fluxes from mediator @@ -816,6 +837,7 @@ type = real kind = kind_phys intent = in + optional = True [dtsfc_med] standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator long_name = sfc sensible heat flux input over ocean for coupling @@ -824,6 +846,7 @@ type = real kind = kind_phys intent = in + optional = True [dusfc_med] standard_name = surface_x_momentum_flux_over_ocean_from_mediator long_name = sfc x momentum flux over ocean for coupling @@ -832,6 +855,7 @@ type = real kind = kind_phys intent = in + optional = True [dvsfc_med] standard_name = surface_y_momentum_flux_over_ocean_from_mediator long_name = sfc y momentum flux over ocean for coupling @@ -840,6 +864,7 @@ type = real kind = kind_phys intent = in + optional = True [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -893,6 +918,7 @@ type = real kind = kind_phys intent = in + optional = True [ugrs1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta index 7a8e72bba..48e7e4440 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta @@ -119,6 +119,7 @@ dimensions = () type = integer intent = in + optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -126,6 +127,7 @@ dimensions = () type = integer intent = in + optional = True [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -189,6 +191,7 @@ dimensions = () type = integer intent = in + optional = True [nthl] standard_name = index_of_hail_mixing_ratio_in_tracer_concentration_array long_name = tracer index for hail @@ -210,6 +213,7 @@ dimensions = () type = integer intent = in + optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta index 963ad4a81..4584a3e67 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta @@ -130,6 +130,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -137,6 +138,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -187,6 +189,7 @@ dimensions = () type = logical intent = in + optional = True [rain1] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep @@ -271,6 +274,7 @@ type = real kind = kind_phys intent = inout + optional = True [cnvc_phy_f3d] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -279,6 +283,7 @@ type = real kind = kind_phys intent = inout + optional = True [flag_for_scnv_generic_tend] standard_name = flag_for_generic_tendency_due_to_shallow_convection long_name = true if GFS_SCNV_generic should calculate tendencies diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta index fbd9e47d8..1ae559ba8 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta @@ -127,6 +127,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_scnv] standard_name = index_of_shallow_convection_process_process_in_cumulative_change_index long_name = index of shallow convection process in second dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta index 576c66463..8a5ede992 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta @@ -133,6 +133,7 @@ type = real kind = kind_phys intent = in + optional = True [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -141,6 +142,7 @@ type = real kind = kind_phys intent = in + optional = True [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -149,6 +151,7 @@ type = real kind = kind_phys intent = in + optional = True [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta index a1990ed43..1cdcc8863 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta @@ -131,6 +131,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -138,6 +139,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -146,6 +148,7 @@ type = real kind = kind_phys intent = inout + optional = True [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -153,6 +156,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -160,6 +164,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -168,6 +173,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -191,6 +197,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -198,6 +205,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -206,6 +214,7 @@ type = real kind = kind_phys intent = inout + optional = True [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -213,6 +222,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -220,6 +230,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -228,6 +239,7 @@ type = real kind = kind_phys intent = inout + optional = True [aer_nm] standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2 long_name = mass mixing ratio of aerosol from gocart or merra2 @@ -243,6 +255,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_ci] standard_name = upper_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -250,6 +263,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_ci] standard_name = latitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -258,6 +272,7 @@ type = real kind = kind_phys intent = inout + optional = True [iindx1_ci] standard_name = lower_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the x direction @@ -265,6 +280,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [iindx2_ci] standard_name = upper_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -272,6 +288,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddx_ci] standard_name = longitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -280,6 +297,7 @@ type = real kind = kind_phys intent = inout + optional = True [imap] standard_name = map_of_block_column_number_to_global_i_index long_name = map of local index ix to global index i for this block @@ -308,6 +326,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_tau] standard_name = upper_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index2 for weight2 for tau NGWs @@ -315,6 +334,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_j1tau] standard_name = latitude_interpolation_weight_complement_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight1 for tau NGWs @@ -323,6 +343,7 @@ type = real intent = inout kind = kind_phys + optional = True [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -331,6 +352,7 @@ type = real intent = inout kind = kind_phys + optional = True [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -368,6 +390,7 @@ type = real kind = kind_phys intent = inout + optional = True [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -473,6 +496,7 @@ type = real kind = kind_phys intent = inout + optional = True [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -481,6 +505,7 @@ type = real kind = kind_phys intent = inout + optional = True [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -489,6 +514,7 @@ type = real kind = kind_phys intent = inout + optional = True [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -497,6 +523,7 @@ type = real kind = kind_phys intent = inout + optional = True [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -505,6 +532,7 @@ type = real kind = kind_phys intent = inout + optional = True [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -513,6 +541,7 @@ type = real kind = kind_phys intent = inout + optional = True [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -521,6 +550,7 @@ type = real kind = kind_phys intent = inout + optional = True [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -529,6 +559,7 @@ type = real kind = kind_phys intent = inout + optional = True [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -537,6 +568,7 @@ type = real kind = kind_phys intent = inout + optional = True [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -545,6 +577,7 @@ type = real kind = kind_phys intent = inout + optional = True [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -553,6 +586,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -561,6 +595,7 @@ type = real kind = kind_phys intent = inout + optional = True [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -569,6 +604,7 @@ type = real kind = kind_phys intent = inout + optional = True [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -577,6 +613,7 @@ type = real kind = kind_phys intent = inout + optional = True [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -585,6 +622,7 @@ type = real kind = kind_phys intent = inout + optional = True [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -593,6 +631,7 @@ type = real kind = kind_phys intent = inout + optional = True [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -601,6 +640,7 @@ type = real kind = kind_phys intent = inout + optional = True [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -609,6 +649,7 @@ type = real kind = kind_phys intent = inout + optional = True [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -617,6 +658,7 @@ type = real kind = kind_phys intent = inout + optional = True [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -625,6 +667,7 @@ type = real kind = kind_phys intent = inout + optional = True [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -633,6 +676,7 @@ type = real kind = kind_phys intent = inout + optional = True [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -641,6 +685,7 @@ type = real kind = kind_phys intent = inout + optional = True [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -649,6 +694,7 @@ type = real kind = kind_phys intent = inout + optional = True [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -657,6 +703,7 @@ type = real kind = kind_phys intent = inout + optional = True [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -665,6 +712,7 @@ type = real kind = kind_phys intent = inout + optional = True [smcwtdxy] standard_name = volumetric_soil_moisture_between_soil_bottom_and_water_table long_name = soil water content between the bottom of the soil and the water table @@ -673,6 +721,7 @@ type = real kind = kind_phys intent = inout + optional = True [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -681,6 +730,7 @@ type = real kind = kind_phys intent = inout + optional = True [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -689,6 +739,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -729,6 +780,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -745,6 +797,7 @@ type = real kind = kind_phys intent = inout + optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -777,6 +830,7 @@ type = real kind = kind_phys intent = inout + optional = True [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice @@ -785,6 +839,7 @@ type = real kind = kind_phys intent = inout + optional = True [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -793,6 +848,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -801,6 +857,7 @@ type = real kind = kind_phys intent = inout + optional = True [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -809,6 +866,7 @@ type = real kind = kind_phys intent = inout + optional = True [zsnsoxy] standard_name = depth_from_snow_surface_at_bottom_interface long_name = depth from the top of the snow surface at the bottom of the layer @@ -817,6 +875,7 @@ type = real kind = kind_phys intent = inout + optional = True [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -1194,6 +1253,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -1201,6 +1261,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -1209,6 +1270,7 @@ type = real kind = kind_phys intent = in + optional = True [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -1224,6 +1286,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -1231,6 +1294,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -1239,6 +1303,7 @@ type = real kind = kind_phys intent = in + optional = True [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -1261,6 +1326,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -1268,6 +1334,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -1276,6 +1343,7 @@ type = real kind = kind_phys intent = in + optional = True [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -1283,6 +1351,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -1290,6 +1359,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -1298,6 +1368,7 @@ type = real kind = kind_phys intent = in + optional = True [aer_nm] standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2 long_name = mass mixing ratio of aerosol from gocart or merra2 @@ -1313,6 +1384,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_ci] standard_name = upper_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -1320,6 +1392,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_ci] standard_name = latitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -1328,6 +1401,7 @@ type = real kind = kind_phys intent = in + optional = True [iindx1_ci] standard_name = lower_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the x direction @@ -1335,6 +1409,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [iindx2_ci] standard_name = upper_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -1342,6 +1417,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddx_ci] standard_name = longitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -1350,6 +1426,7 @@ type = real kind = kind_phys intent = in + optional = True [in_nm] standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP @@ -1503,6 +1580,7 @@ type = character kind = len=256 intent = in + optional = True [use_ufo] standard_name = flag_for_gcycle_surface_option long_name = flag for gcycle surface option @@ -1596,6 +1674,7 @@ type = real kind = kind_phys intent = inout + optional = True [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -1604,6 +1683,7 @@ type = real kind = kind_phys intent = inout + optional = True [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -1612,6 +1692,7 @@ type = real kind = kind_phys intent = inout + optional = True [tiice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1636,6 +1717,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -1840,6 +1922,7 @@ type = real kind = kind_phys intent = inout + optional = True [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud bottom pressure @@ -1918,6 +2001,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_tau] standard_name = upper_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index2 for weight2 for tau NGWs @@ -1925,6 +2009,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_j1tau] standard_name = latitude_interpolation_weight_complement_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight1 for tau NGWs @@ -1933,6 +2018,7 @@ type = real intent = in kind = kind_phys + optional = True [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -1941,6 +2027,7 @@ type = real intent = in kind = kind_phys + optional = True [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta index a9094a075..20944a8b2 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta @@ -116,6 +116,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -123,6 +124,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -131,6 +133,7 @@ type = real kind = kind_phys intent = inout + optional = True [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -138,6 +141,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -145,6 +149,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -153,6 +158,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -176,6 +182,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -183,6 +190,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -191,6 +199,7 @@ type = real kind = kind_phys intent = inout + optional = True [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -198,6 +207,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -205,6 +215,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -213,6 +224,7 @@ type = real kind = kind_phys intent = inout + optional = True [aer_nm] standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2 long_name = mass mixing ratio of aerosol from gocart or merra2 @@ -228,6 +240,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_ci] standard_name = upper_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -235,6 +248,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_ci] standard_name = latitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -243,6 +257,7 @@ type = real kind = kind_phys intent = inout + optional = True [iindx1_ci] standard_name = lower_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the x direction @@ -250,6 +265,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [iindx2_ci] standard_name = upper_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -257,6 +273,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddx_ci] standard_name = longitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -265,6 +282,7 @@ type = real kind = kind_phys intent = inout + optional = True [imap] standard_name = map_of_block_column_number_to_global_i_index long_name = map of local index ix to global index i for this block @@ -293,6 +311,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [jindx2_tau] standard_name = upper_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index2 for weight2 for tau NGWs @@ -300,6 +319,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [ddy_j1tau] standard_name = latitude_interpolation_weight_complement_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight1 for tau NGWs @@ -308,6 +328,7 @@ type = real intent = inout kind = kind_phys + optional = True [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -316,6 +337,7 @@ type = real intent = inout kind = kind_phys + optional = True [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -353,6 +375,7 @@ type = real kind = kind_phys intent = inout + optional = True [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -458,6 +481,7 @@ type = real kind = kind_phys intent = inout + optional = True [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -466,6 +490,7 @@ type = real kind = kind_phys intent = inout + optional = True [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -474,6 +499,7 @@ type = real kind = kind_phys intent = inout + optional = True [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -482,6 +508,7 @@ type = real kind = kind_phys intent = inout + optional = True [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -490,6 +517,7 @@ type = real kind = kind_phys intent = inout + optional = True [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -498,6 +526,7 @@ type = real kind = kind_phys intent = inout + optional = True [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -506,6 +535,7 @@ type = real kind = kind_phys intent = inout + optional = True [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -514,6 +544,7 @@ type = real kind = kind_phys intent = inout + optional = True [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -522,6 +553,7 @@ type = real kind = kind_phys intent = inout + optional = True [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -530,6 +562,7 @@ type = real kind = kind_phys intent = inout + optional = True [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -538,6 +571,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -546,6 +580,7 @@ type = real kind = kind_phys intent = inout + optional = True [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -554,6 +589,7 @@ type = real kind = kind_phys intent = inout + optional = True [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -562,6 +598,7 @@ type = real kind = kind_phys intent = inout + optional = True [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -570,6 +607,7 @@ type = real kind = kind_phys intent = inout + optional = True [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -578,6 +616,7 @@ type = real kind = kind_phys intent = inout + optional = True [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -586,6 +625,7 @@ type = real kind = kind_phys intent = inout + optional = True [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -594,6 +634,7 @@ type = real kind = kind_phys intent = inout + optional = True [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -602,6 +643,7 @@ type = real kind = kind_phys intent = inout + optional = True [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -610,6 +652,7 @@ type = real kind = kind_phys intent = inout + optional = True [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -618,6 +661,7 @@ type = real kind = kind_phys intent = inout + optional = True [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -626,6 +670,7 @@ type = real kind = kind_phys intent = inout + optional = True [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -634,6 +679,7 @@ type = real kind = kind_phys intent = inout + optional = True [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -642,6 +688,7 @@ type = real kind = kind_phys intent = inout + optional = True [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -650,6 +697,7 @@ type = real kind = kind_phys intent = inout + optional = True [smcwtdxy] standard_name = volumetric_soil_moisture_between_soil_bottom_and_water_table long_name = soil water content between the bottom of the soil and the water table @@ -658,6 +706,7 @@ type = real kind = kind_phys intent = inout + optional = True [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -666,6 +715,7 @@ type = real kind = kind_phys intent = inout + optional = True [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -674,6 +724,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -714,6 +765,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -730,6 +782,7 @@ type = real kind = kind_phys intent = inout + optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -762,6 +815,7 @@ type = real kind = kind_phys intent = inout + optional = True [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice @@ -770,6 +824,7 @@ type = real kind = kind_phys intent = inout + optional = True [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -778,6 +833,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -786,6 +842,7 @@ type = real kind = kind_phys intent = inout + optional = True [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -794,6 +851,7 @@ type = real kind = kind_phys intent = inout + optional = True [zsnsoxy] standard_name = depth_from_snow_surface_at_bottom_interface long_name = depth from the top of the snow surface at the bottom of the layer @@ -802,6 +860,7 @@ type = real kind = kind_phys intent = inout + optional = True [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -1098,6 +1157,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -1105,6 +1165,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -1113,6 +1174,7 @@ type = real kind = kind_phys intent = in + optional = True [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -1128,6 +1190,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -1135,6 +1198,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -1143,6 +1207,7 @@ type = real kind = kind_phys intent = in + optional = True [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -1165,6 +1230,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -1172,6 +1238,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -1180,6 +1247,7 @@ type = real kind = kind_phys intent = in + optional = True [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -1187,6 +1255,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -1194,6 +1263,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -1202,6 +1272,7 @@ type = real kind = kind_phys intent = in + optional = True [aer_nm] standard_name = mass_mixing_ratio_of_aerosol_from_gocart_or_merra2 long_name = mass mixing ratio of aerosol from gocart or merra2 @@ -1217,6 +1288,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_ci] standard_name = upper_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -1224,6 +1296,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_ci] standard_name = latitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the y direction @@ -1232,6 +1305,7 @@ type = real kind = kind_phys intent = in + optional = True [iindx1_ci] standard_name = lower_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the x direction @@ -1239,6 +1313,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [iindx2_ci] standard_name = upper_longitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -1246,6 +1321,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddx_ci] standard_name = longitude_interpolation_weight_for_cloud_nuclei_forcing long_name = interpolation high index for ice and cloud condensation nuclei in the x direction @@ -1254,6 +1330,7 @@ type = real kind = kind_phys intent = in + optional = True [in_nm] standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP @@ -1321,6 +1398,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [jindx2_tau] standard_name = upper_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index2 for weight2 for tau NGWs @@ -1328,6 +1406,7 @@ dimensions = (horizontal_dimension) type = integer intent = in + optional = True [ddy_j1tau] standard_name = latitude_interpolation_weight_complement_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight1 for tau NGWs @@ -1336,6 +1415,7 @@ type = real intent = in kind = kind_phys + optional = True [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -1344,6 +1424,7 @@ type = real intent = in kind = kind_phys + optional = True [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta index 758b9d8b8..c931b9639 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta @@ -29,6 +29,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -36,6 +37,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.meta index 0759b7e2a..488f547b6 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.meta @@ -22,6 +22,7 @@ dimensions = (horizontal_dimension, number_of_host_provided_random_number_streams) type = integer intent = in + optional = True [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -57,6 +58,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [icsdlw] standard_name = random_number_seed_for_mcica_longwave long_name = random seeds for sub-column cloud generators lw @@ -64,6 +66,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [cnx] standard_name = number_of_x_points_for_current_cubed_sphere_tile long_name = number of points in x direction for this cubed sphere face @@ -157,6 +160,7 @@ type = real kind = kind_phys intent = inout + optional = True [ps_1delt] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air pressure at previous timestep @@ -165,6 +169,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_2delt] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -173,6 +178,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_1delt] standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep @@ -181,6 +187,7 @@ type = real kind = kind_phys intent = inout + optional = True [qv_2delt] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -189,6 +196,7 @@ type = real kind = kind_phys intent = inout + optional = True [qv_1delt] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -197,6 +205,7 @@ type = real kind = kind_phys intent = inout + optional = True [t] standard_name = air_temperature long_name = model layer mean temperature diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.meta index 0759b7e2a..488f547b6 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.meta @@ -22,6 +22,7 @@ dimensions = (horizontal_dimension, number_of_host_provided_random_number_streams) type = integer intent = in + optional = True [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -57,6 +58,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [icsdlw] standard_name = random_number_seed_for_mcica_longwave long_name = random seeds for sub-column cloud generators lw @@ -64,6 +66,7 @@ dimensions = (horizontal_dimension) type = integer intent = inout + optional = True [cnx] standard_name = number_of_x_points_for_current_cubed_sphere_tile long_name = number of points in x direction for this cubed sphere face @@ -157,6 +160,7 @@ type = real kind = kind_phys intent = inout + optional = True [ps_1delt] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air pressure at previous timestep @@ -165,6 +169,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_2delt] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -173,6 +178,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_1delt] standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep @@ -181,6 +187,7 @@ type = real kind = kind_phys intent = inout + optional = True [qv_2delt] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -189,6 +196,7 @@ type = real kind = kind_phys intent = inout + optional = True [qv_1delt] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -197,6 +205,7 @@ type = real kind = kind_phys intent = inout + optional = True [t] standard_name = air_temperature long_name = model layer mean temperature diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta index 686bd3c6c..8d1148d75 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta @@ -184,6 +184,7 @@ type = character kind = len=3 intent = in + optional = True [lndp_prt_list] standard_name = land_surface_perturbation_magnitudes long_name = magnitude of perturbations for landperts @@ -192,6 +193,7 @@ type = real kind = kind_phys intent = in + optional = True [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -232,6 +234,7 @@ type = real kind = kind_phys intent = in + optional = True [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -264,6 +267,7 @@ type = real kind = kind_phys intent = in + optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -461,6 +465,7 @@ type = real kind = kind_phys intent = in + optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -477,6 +482,7 @@ type = real kind = kind_phys intent = in + optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta index 15039e822..8c1c30a89 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta @@ -224,6 +224,7 @@ dimensions = () type = integer intent = in + optional = True [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -231,6 +232,7 @@ dimensions = () type = integer intent = in + optional = True [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -618,6 +620,7 @@ type = character kind = len=3 intent = in + optional = True [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -910,6 +913,7 @@ type = real kind = kind_phys intent = in + optional = True [mg_cld] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -926,6 +930,7 @@ type = real kind = kind_phys intent = in + optional = True [pert_clds] standard_name = flag_for_stochastic_cloud_fraction_perturbations long_name = flag for stochastic cloud fraction physics perturbations @@ -941,6 +946,7 @@ type = real kind = kind_phys intent = in + optional = True [sppt_amp] standard_name = total_amplitude_of_sppt_perturbation long_name = total ampltidue of stochastic sppt perturbation @@ -957,6 +963,7 @@ type = real kind = kind_phys intent = in + optional = True [cnvc_in] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -965,6 +972,7 @@ type = real kind = kind_phys intent = in + optional = True [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -1020,6 +1028,7 @@ type = real kind = kind_phys intent = inout + optional = True [effri_inout] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -1028,6 +1037,7 @@ type = real kind = kind_phys intent = inout + optional = True [effrs_inout] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -1036,6 +1046,7 @@ type = real kind = kind_phys intent = inout + optional = True [clouds1] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -1084,6 +1095,7 @@ type = real kind = kind_phys intent = in + optional = True [kd] standard_name = vertical_index_difference_between_inout_and_local long_name = vertical index difference between in/out and local @@ -1135,6 +1147,7 @@ type = real kind = kind_phys intent = out + optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -1175,6 +1188,7 @@ type = real kind = kind_phys intent = out + optional = True [plvl] standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure at vertical interface for radiation calculation @@ -1515,6 +1529,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_rad] standard_name = control_for_radiation_spp_perturbations long_name = control for radiation spp perturbations diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta index f67259b87..8b30b5a69 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta @@ -108,6 +108,7 @@ dimensions = () type = integer intent = in + optional = True [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -283,6 +284,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -299,6 +301,7 @@ type = real kind = kind_phys intent = in + optional = True [q_lay] standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio @@ -307,6 +310,7 @@ type = real kind = kind_phys intent = in + optional = True [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -315,6 +319,7 @@ type = real kind = kind_phys intent = in + optional = True [effrin_cldliq] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -323,6 +328,7 @@ type = real kind = kind_phys intent = inout + optional = True [effrin_cldice] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -331,6 +337,7 @@ type = real kind = kind_phys intent = inout + optional = True [effrin_cldrain] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -339,6 +346,7 @@ type = real kind = kind_phys intent = in + optional = True [effrin_cldsnow] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -347,6 +355,7 @@ type = real kind = kind_phys intent = inout + optional = True [tracer] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -379,6 +388,7 @@ type = real kind = kind_phys intent = in + optional = True [deltaZ] standard_name = layer_thickness long_name = layer_thickness @@ -387,6 +397,7 @@ type = real kind = kind_phys intent = in + optional = True [deltaZc] standard_name = layer_thickness_from_layer_center long_name = layer_thickness @@ -395,6 +406,7 @@ type = real kind = kind_phys intent = in + optional = True [deltaP] standard_name = layer_thickness_in_Pa long_name = layer_thickness_in_Pa @@ -403,6 +415,7 @@ type = real kind = kind_phys intent = in + optional = True [qc_mynn] standard_name = subgrid_scale_cloud_liquid_water_mixing_ratio long_name = subgrid cloud water mixing ratio from PBL scheme @@ -411,6 +424,7 @@ type = real kind = kind_phys intent = in + optional = True [qi_mynn] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -419,6 +433,7 @@ type = real kind = kind_phys intent = in + optional = True [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -552,6 +567,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_cnv_lwp] standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -560,6 +576,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_cnv_iwp] standard_name = convective_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -568,6 +585,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_cnv_reliq] standard_name = mean_effective_radius_for_liquid_convective_cloud long_name = mean effective radius for liquid convective cloud @@ -576,6 +594,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_cnv_reice] standard_name = mean_effective_radius_for_ice_convective_cloud long_name = mean effective radius for ice convective cloud @@ -584,6 +603,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_pbl_frac] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -592,6 +612,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_lwp] standard_name = MYNN_SGS_cloud_liquid_water_path long_name = layer convective cloud liquid water path diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta index 4d9af626d..7b0d5845e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta @@ -84,6 +84,7 @@ type = real kind = kind_phys intent = in + optional = True [deltaZc] standard_name = layer_thickness_from_layer_center long_name = layer_thickness @@ -92,6 +93,7 @@ type = real kind = kind_phys intent = in + optional = True [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -255,6 +257,7 @@ type = real kind = kind_phys intent = out + optional = True [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -263,6 +266,7 @@ type = real kind = kind_phys intent = out + optional = True [cnv_cloud_overlap_param] standard_name = convective_cloud_overlap_param long_name = convective cloud overlap parameter @@ -271,6 +275,7 @@ type = real kind = kind_phys intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta index 5b355849a..a02ba2276 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta @@ -354,6 +354,7 @@ type = real kind = kind_phys intent = inout + optional = True [topflw] standard_name = lw_fluxes_top_atmosphere long_name = lw radiation fluxes at top diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta index bd767d14b..4b2e192fb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta @@ -309,6 +309,7 @@ type = real kind = kind_phys intent = inout + optional = True [deltaZc] standard_name = layer_thickness_from_layer_center long_name = layer_thickness @@ -317,6 +318,7 @@ type = real kind = kind_phys intent = inout + optional = True [deltaP] standard_name = layer_thickness_in_Pa long_name = layer_thickness_in_Pa @@ -325,6 +327,7 @@ type = real kind = kind_phys intent = inout + optional = True [top_at_1] standard_name = flag_for_vertical_ordering_in_radiation long_name = flag for vertical ordering in radiation @@ -354,6 +357,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -362,6 +366,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -378,6 +383,7 @@ type = real kind = kind_phys intent = inout + optional = True [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -386,6 +392,7 @@ type = real kind = kind_phys intent = inout + optional = True [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure @@ -394,6 +401,7 @@ type = real kind = kind_phys intent = inout + optional = True [q_lay] standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio @@ -402,6 +410,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_o2] standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air @@ -410,6 +419,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_h2o] standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air @@ -418,6 +428,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_o3] standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air @@ -426,6 +437,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_ch4] standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air @@ -434,6 +446,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_n2o] standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air @@ -442,6 +455,7 @@ type = real kind = kind_phys intent = inout + optional = True [vmr_co2] standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air @@ -450,6 +464,7 @@ type = real kind = kind_phys intent = inout + optional = True [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta index 6c55a09de..904030522 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta @@ -148,6 +148,7 @@ type = real kind = kind_phys intent = in + optional = True [vfact_ca] standard_name = cellular_automata_vertical_weight long_name = vertical weight for ca @@ -172,6 +173,7 @@ type = real kind = kind_phys intent = inout + optional = True [skebu_wts] standard_name = skeb_x_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of x wind @@ -180,6 +182,7 @@ type = real kind = kind_phys intent = in + optional = True [skebv_wts] standard_name = skeb_y_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of y wind @@ -188,6 +191,7 @@ type = real kind = kind_phys intent = in + optional = True [shum_wts] standard_name = shum_weights_from_coupled_process long_name = weights for stochastic shum perturbation @@ -196,6 +200,7 @@ type = real kind = kind_phys intent = in + optional = True [diss_est] standard_name = dissipation_estimate_of_air_temperature_at_model_layers long_name = dissipation estimate model layer mean temperature @@ -316,6 +321,7 @@ type = real kind = kind_phys intent = inout + optional = True [gq0_cw] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = cloud condensed water mixing ratio updated by physics @@ -434,6 +440,7 @@ type = real kind = kind_phys intent = inout + optional = True [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -442,6 +449,7 @@ type = real kind = kind_phys intent = inout + optional = True [drain_cpl] standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) @@ -450,6 +458,7 @@ type = real kind = kind_phys intent = in + optional = True [dsnow_cpl] standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) @@ -458,6 +467,7 @@ type = real kind = kind_phys intent = in + optional = True [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta index de4db5f9f..b89fc025f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta @@ -148,6 +148,7 @@ type = real kind = kind_phys intent = in + optional = True [lwhd] standard_name = tendency_of_air_temperature_due_to_integrated_dynamics_through_earths_atmosphere long_name = idea sky lw heating rates @@ -291,6 +292,7 @@ type = real kind = kind_phys intent = in + optional = True [adjsfculw] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time @@ -362,6 +364,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_longwave] standard_name = index_of_longwave_heating_process_in_cumulative_change_index long_name = index of longwave heating process in second dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta index 22f57e354..53bfc962e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta @@ -244,6 +244,7 @@ type = real kind = kind_phys intent = inout + optional = True [sigmaout] standard_name = updraft_area_fraction_updated_by_physics long_name = convective updraft area fraction updated by physics @@ -252,6 +253,7 @@ type = real kind = kind_phys intent = inout + optional = True [qmicro] standard_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics long_name = moisture tendency due to microphysics @@ -260,6 +262,7 @@ type = real kind = kind_phys intent = out + optional = True [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -355,6 +358,7 @@ type = real kind = kind_phys intent = in + optional = True [rhcpbl] standard_name = critical_relative_humidity_at_PBL_top long_name = critical relative humidity at the PBL top @@ -363,6 +367,7 @@ type = real kind = kind_phys intent = in + optional = True [rhctop] standard_name = critical_relative_humidity_at_toa long_name = critical relative humidity at the top of atmosphere @@ -371,6 +376,7 @@ type = real kind = kind_phys intent = in + optional = True [rhcmax] standard_name = max_critical_relative_humidity long_name = maximum critical relative humidity @@ -379,6 +385,7 @@ type = real kind = kind_phys intent = in + optional = True [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -446,6 +453,7 @@ type = real kind = kind_phys intent = inout + optional = True [save_qc] 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 @@ -528,6 +536,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta index c0df52f1a..a48a84f12 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta @@ -136,6 +136,7 @@ dimensions = () type = integer intent = in + optional = True [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -311,6 +312,7 @@ type = real kind = kind_phys intent = in + optional = True [spechum] standard_name = specific_humidity long_name = water vapor specific humidity @@ -326,6 +328,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -334,6 +337,7 @@ type = real kind = kind_phys intent = inout + optional = True [ntk] standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer long_name = index for turbulent kinetic energy in the convectively transported tracer array diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta index 608ee83da..f2f5d2281 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta @@ -245,6 +245,7 @@ type = real kind = kind_phys intent = inout + optional = True [do3_dt_ozmx] standard_name = ozone_tendency_due_to_ozone_mixing_ratio long_name = ozone tendency due to ozone mixing ratio @@ -253,6 +254,7 @@ type = real kind = kind_phys intent = inout + optional = True [do3_dt_temp] standard_name = ozone_tendency_due_to_temperature long_name = ozone tendency due to temperature @@ -261,6 +263,7 @@ type = real kind = kind_phys intent = inout + optional = True [do3_dt_ohoz] standard_name = ozone_tendency_due_to_overhead_ozone_column long_name = ozone tendency due to overhead ozone column @@ -269,6 +272,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta index 7224d7221..d21892c75 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta @@ -768,6 +768,7 @@ type = real kind = kind_phys intent = in + optional = True [evap_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -776,6 +777,7 @@ type = real kind = kind_phys intent = in + optional = True [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -784,6 +786,7 @@ type = real kind = kind_phys intent = in + optional = True [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta index 2c28b17d7..2c8ae74c0 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta @@ -448,6 +448,7 @@ type = real kind = kind_phys intent = in + optional = True [epi] standard_name = instantaneous_surface_potential_evaporation long_name = instantaneous sfc potential evaporation @@ -504,6 +505,7 @@ type = real kind = kind_phys intent = inout + optional = True [dswsfci_cpl] standard_name = surface_downwelling_shortwave_flux_for_coupling long_name = instantaneous sfc downward sw flux @@ -512,6 +514,7 @@ type = real kind = kind_phys intent = inout + optional = True [dlwsfc_cpl] standard_name = cumulative_surface_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward lw flux mulitplied by timestep @@ -520,6 +523,7 @@ type = real kind = kind_phys intent = inout + optional = True [dswsfc_cpl] standard_name = cumulative_surface_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward sw flux multiplied by timestep @@ -528,6 +532,7 @@ type = real kind = kind_phys intent = inout + optional = True [dnirbmi_cpl] standard_name = surface_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir beam downward sw flux @@ -536,6 +541,7 @@ type = real kind = kind_phys intent = inout + optional = True [dnirdfi_cpl] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir diff downward sw flux @@ -544,6 +550,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvisbmi_cpl] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis beam downward sw flux @@ -552,6 +559,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvisdfi_cpl] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis diff downward sw flux @@ -560,6 +568,7 @@ type = real kind = kind_phys intent = inout + optional = True [dnirbm_cpl] standard_name = cumulative_surface_downwelling_direct_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc nir beam downward sw flux multiplied by timestep @@ -568,6 +577,7 @@ type = real kind = kind_phys intent = inout + optional = True [dnirdf_cpl] standard_name = cumulative_surface_downwelling_diffuse_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc nir diff downward sw flux multiplied by timestep @@ -576,6 +586,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvisbm_cpl] standard_name = cumulative_surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis beam dnwd sw flux multiplied by timestep @@ -584,6 +595,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvisdf_cpl] standard_name = cumulative_surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc uv+vis diff dnwd sw flux multiplied by timestep @@ -592,6 +604,7 @@ type = real kind = kind_phys intent = inout + optional = True [nlwsfci_cpl] standard_name = surface_net_downwelling_longwave_flux_for_coupling long_name = instantaneous net sfc downward lw flux @@ -600,6 +613,7 @@ type = real kind = kind_phys intent = inout + optional = True [nlwsfc_cpl] standard_name = cumulative_surface_net_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward lw flux multiplied by timestep @@ -608,6 +622,7 @@ type = real kind = kind_phys intent = inout + optional = True [t2mi_cpl] standard_name = temperature_at_2m_for_coupling long_name = instantaneous T2m @@ -616,6 +631,7 @@ type = real kind = kind_phys intent = inout + optional = True [q2mi_cpl] standard_name = specific_humidity_at_2m_for_coupling long_name = instantaneous Q2m @@ -624,6 +640,7 @@ type = real kind = kind_phys intent = inout + optional = True [u10mi_cpl] standard_name = x_wind_at_10m_for_coupling long_name = instantaneous U10m @@ -632,6 +649,7 @@ type = real kind = kind_phys intent = inout + optional = True [v10mi_cpl] standard_name = y_wind_at_10m_for_coupling long_name = instantaneous V10m @@ -640,6 +658,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsfci_cpl] standard_name = surface_skin_temperature_for_coupling long_name = instantaneous sfc temperature @@ -648,6 +667,7 @@ type = real kind = kind_phys intent = inout + optional = True [psurfi_cpl] standard_name = surface_air_pressure_for_coupling long_name = instantaneous sfc pressure @@ -656,6 +676,7 @@ type = real kind = kind_phys intent = inout + optional = True [nnirbmi_cpl] standard_name = surface_net_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous net nir beam sfc downward sw flux @@ -664,6 +685,7 @@ type = real kind = kind_phys intent = inout + optional = True [nnirdfi_cpl] standard_name = surface_net_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous net nir diff sfc downward sw flux @@ -672,6 +694,7 @@ type = real kind = kind_phys intent = inout + optional = True [nvisbmi_cpl] standard_name = surface_net_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous net uv+vis beam downward sw flux @@ -680,6 +703,7 @@ type = real kind = kind_phys intent = inout + optional = True [nvisdfi_cpl] standard_name = surface_net_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous net uv+vis diff downward sw flux @@ -688,6 +712,7 @@ type = real kind = kind_phys intent = inout + optional = True [nswsfci_cpl] standard_name = surface_net_downwelling_shortwave_flux_for_coupling long_name = instantaneous net sfc downward sw flux @@ -696,6 +721,7 @@ type = real kind = kind_phys intent = inout + optional = True [nswsfc_cpl] standard_name = cumulative_surface_net_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net downward sw flux multiplied by timestep @@ -704,6 +730,7 @@ type = real kind = kind_phys intent = inout + optional = True [nnirbm_cpl] standard_name = cumulative_surface_net_downwelling_direct_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net nir beam downward sw flux multiplied by timestep @@ -712,6 +739,7 @@ type = real kind = kind_phys intent = inout + optional = True [nnirdf_cpl] standard_name = cumulative_surface_net_downwellling_diffuse_nir_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net nir diff downward sw flux multiplied by timestep @@ -720,6 +748,7 @@ type = real kind = kind_phys intent = inout + optional = True [nvisbm_cpl] standard_name = cumulative_surface_net_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net uv+vis beam downward sw rad flux multiplied by timestep @@ -728,6 +757,7 @@ type = real kind = kind_phys intent = inout + optional = True [nvisdf_cpl] standard_name = cumulative_surface_net_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative net uv+vis diff downward sw rad flux multiplied by timestep @@ -736,6 +766,7 @@ type = real kind = kind_phys intent = inout + optional = True [gflux] standard_name = cumulative_surface_ground_heat_flux_multiplied_by_timestep long_name = cumulative groud conductive heat flux multiplied by timestep @@ -800,6 +831,7 @@ type = real kind = kind_phys intent = inout + optional = True [ep] standard_name = cumulative_surface_upward_potential_latent_heat_flux_multiplied_by_timestep long_name = cumulative surface upward potential latent heat flux multiplied by timestep @@ -840,6 +872,7 @@ type = real kind = kind_phys intent = in + optional = True [runoff] standard_name = total_runoff long_name = total water runoff @@ -904,6 +937,7 @@ type = real kind = kind_phys intent = inout + optional = True [lheatstrg] standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme long_name = flag for canopy heat storage parameterization diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta index 2b21c606d..b04aabea0 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta @@ -312,6 +312,7 @@ type = real kind = kind_phys intent = in + optional = True [lndp_var_list] standard_name = land_surface_perturbation_variables long_name = variables to be perturbed for landperts @@ -320,6 +321,7 @@ type = character kind = len=3 intent = in + optional = True [lndp_prt_list] standard_name =land_surface_perturbation_magnitudes long_name = magnitude of perturbations for landperts @@ -328,6 +330,7 @@ type = real kind = kind_phys intent = in + optional = True [z01d] standard_name = perturbation_of_momentum_roughness_length long_name = perturbation of momentum roughness length @@ -360,6 +363,7 @@ type = real kind = kind_phys intent = out + optional = True [vegf1d] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction @@ -405,6 +409,7 @@ type = real kind = kind_phys intent = in + optional = True [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -437,6 +442,7 @@ type = real kind = kind_phys intent = inout + optional = True [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = wilting point (volumetric) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta index bbf161eb5..66c205f6e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta @@ -91,6 +91,7 @@ type = real kind = kind_phys intent = inout + optional = True [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = pressure at bottom of convective cloud diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta index 6f8a0eda0..a8a74ff74 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta @@ -399,6 +399,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxlwUP_jac] standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile @@ -476,6 +477,7 @@ type = real kind = kind_phys intent = in + optional = True [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = total radiative heating rate at current time @@ -492,6 +494,7 @@ type = real kind = kind_phys intent = inout + optional = True [htrlw] standard_name = updated_tendency_of_air_temperature_due_to_longwave_heating_on_physics_timestep long_name = total sky longwave heating rate on physics time step @@ -500,6 +503,7 @@ type = real kind = kind_phys intent = inout + optional = True [adjsfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta index 5d18bd9bd..73ad1a0e5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta @@ -206,6 +206,7 @@ type = real kind = kind_phys intent = inout + optional = True [rh02min] standard_name = minimum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = minumum relative humidity at 2m over maximum hourly time interval @@ -214,6 +215,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -246,6 +248,7 @@ type = real kind = kind_phys intent = in + optional = True [qgraupel] standard_name = graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) @@ -301,6 +304,7 @@ type = real kind = kind_phys intent = inout + optional = True [ltg2_max] standard_name = lightning_threat_index_2 long_name = lightning threat index 2 @@ -309,6 +313,7 @@ type = real kind = kind_phys intent = inout + optional = True [ltg3_max] standard_name = lightning_threat_index_3 long_name = lightning threat index 3 @@ -317,6 +322,7 @@ type = real kind = kind_phys intent = inout + optional = True [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta index a9635efa5..e73fc668e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta @@ -221,6 +221,7 @@ type = real kind = kind_phys intent = in + optional = True [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -229,6 +230,7 @@ type = real kind = kind_phys intent = inout + optional = True [qlc] 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 @@ -305,6 +307,7 @@ type = real kind = kind_phys intent = in + optional = True [QI_BL] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -313,6 +316,7 @@ type = real kind = kind_phys intent = in + optional = True [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -321,6 +325,7 @@ type = real kind = kind_phys intent = in + optional = True [delp] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness on radiation levels @@ -424,6 +429,7 @@ type = real kind = kind_phys intent = in + optional = True [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length diff --git a/physics/MP/Ferrier_Aligo/mp_fer_hires.meta b/physics/MP/Ferrier_Aligo/mp_fer_hires.meta index e6d2afc5b..636edf945 100644 --- a/physics/MP/Ferrier_Aligo/mp_fer_hires.meta +++ b/physics/MP/Ferrier_Aligo/mp_fer_hires.meta @@ -279,6 +279,7 @@ type = real kind = kind_phys intent = in + optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = relative dx for the grid cell diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index c91e438b7..fbcb57c76 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -340,6 +340,7 @@ type = real kind = kind_dyn intent = inout + optional = True [pkz] standard_name = finite_volume_mean_edge_pressure_raised_to_the_power_of_kappa long_name = finite-volume mean edge pressure in Pa raised to the power of kappa diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.meta b/physics/MP/GFDL/gfdl_cloud_microphys.meta index 719a340e5..f4233ac46 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.meta +++ b/physics/MP/GFDL/gfdl_cloud_microphys.meta @@ -38,6 +38,7 @@ type = character kind = len=* intent = in + optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -311,6 +312,7 @@ type = real kind = kind_phys intent = out + optional = True [ice0] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -319,6 +321,7 @@ type = real kind = kind_phys intent = out + optional = True [snow0] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -327,6 +330,7 @@ type = real kind = kind_phys intent = out + optional = True [graupel0] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -335,6 +339,7 @@ type = real kind = kind_phys intent = out + optional = True [prcp0] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel) on physics timestep @@ -410,6 +415,7 @@ type = real kind = kind_phys intent = inout + optional = True [rei] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -418,6 +424,7 @@ type = real kind = kind_phys intent = inout + optional = True [rer] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -426,6 +433,7 @@ type = real kind = kind_phys intent = inout + optional = True [res] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -434,6 +442,7 @@ type = real kind = kind_phys intent = inout + optional = True [reg] standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = eff. radius of cloud graupel particle in micrometer @@ -442,6 +451,7 @@ type = real kind = kind_phys intent = inout + optional = True [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -457,6 +467,7 @@ type = real kind = kind_phys intent = inout + optional = True [pfl_lsan] standard_name = liquid_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of liquid water from nonconvective precipitation @@ -465,6 +476,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index 16efc5cc4..cfdda96e8 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -158,6 +158,7 @@ type = real kind = kind_phys intent = in + optional = True [microp_uniform] standard_name = flag_for_uniform_subcolumns long_name = flag for uniform subcolumns for MG microphysics @@ -395,6 +396,7 @@ type = real kind = kind_phys intent = in + optional = True [qils_i] 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 @@ -411,6 +413,7 @@ type = real kind = kind_phys intent = in + optional = True [lwheat_i] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -435,6 +438,7 @@ type = real kind = kind_phys intent = in + optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -443,6 +447,7 @@ type = real kind = kind_phys intent = in + optional = True [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -459,6 +464,7 @@ type = real kind = kind_phys intent = in + optional = True [cnv_mfd_i] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -467,6 +473,7 @@ type = real kind = kind_phys intent = in + optional = True [cnv_dqldt_i] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -475,6 +482,7 @@ type = real kind = kind_phys intent = in + optional = True [clcn_i] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -483,6 +491,7 @@ type = real kind = kind_phys intent = in + optional = True [u_i] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -539,6 +548,7 @@ type = real kind = kind_phys intent = in + optional = True [cnv_ndrop_i] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -547,6 +557,7 @@ type = real kind = kind_phys intent = in + optional = True [cnv_nice_i] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -555,6 +566,7 @@ type = real kind = kind_phys intent = in + optional = True [q_io] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -611,6 +623,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncpi_io] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air_of_new_state long_name = number concentration of ice updated by physics @@ -697,6 +710,7 @@ type = real kind = kind_phys intent = out + optional = True [cldreffi] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = effective radius of cloud ice water particle in micrometers @@ -705,6 +719,7 @@ type = real kind = kind_phys intent = out + optional = True [cldreffr] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -713,6 +728,7 @@ type = real kind = kind_phys intent = out + optional = True [cldreffs] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -721,6 +737,7 @@ type = real kind = kind_phys intent = out + optional = True [cldreffg] standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = effective radius of cloud graupel particle in micrometers @@ -729,6 +746,7 @@ type = real kind = kind_phys intent = out + optional = True [ntrcaer] standard_name = number_of_aerosol_tracers_MG long_name = number of aerosol tracers for Morrison Gettelman MP @@ -828,6 +846,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.meta b/physics/MP/Morrison_Gettelman/m_micro_post.meta index 88a4325e7..922dadc15 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_post.meta @@ -148,6 +148,7 @@ type = real kind = kind_phys intent = out + optional = True [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -156,6 +157,7 @@ type = real kind = kind_phys intent = out + optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -164,6 +166,7 @@ type = real kind = kind_phys intent = out + optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.meta b/physics/MP/Morrison_Gettelman/m_micro_pre.meta index b8cd2ac32..f552e14af 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.meta @@ -241,6 +241,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/NSSL/mp_nssl.meta b/physics/MP/NSSL/mp_nssl.meta index deb96569d..dce294582 100644 --- a/physics/MP/NSSL/mp_nssl.meta +++ b/physics/MP/NSSL/mp_nssl.meta @@ -118,6 +118,7 @@ type = real kind = kind_phys intent = inout + optional = True [crw] standard_name = mass_number_concentration_of_rain_water_in_air long_name = rain number concentration @@ -158,6 +159,7 @@ type = real kind = kind_phys intent = inout + optional = True [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -409,6 +411,7 @@ type = real kind = kind_phys intent = inout + optional = True [cccn] standard_name = cloud_condensation_nuclei_number_concentration_of_new_state long_name = number concentration of cloud condensation nuclei updated by physics @@ -417,6 +420,7 @@ type = real kind = kind_phys intent = inout + optional = True [cccna] standard_name = activated_cloud_condensation_nuclei_number_concentration_of_new_state long_name = number concentration of activated cloud condensation nuclei updated by physics @@ -425,6 +429,7 @@ type = real kind = kind_phys intent = inout + optional = True [ccw] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_state long_name = cloud droplet number concentration @@ -433,6 +438,7 @@ type = real kind = kind_phys intent = inout + optional = True [crw] standard_name = mass_number_concentration_of_rain_of_new_state long_name = rain number concentration @@ -473,6 +479,7 @@ type = real kind = kind_phys intent = inout + optional = True [vh] standard_name = graupel_volume_of_new_state long_name = graupel particle volume @@ -481,6 +488,7 @@ type = real kind = kind_phys intent = inout + optional = True [vhl] standard_name = hail_volume_of_new_state long_name = hail particle volume @@ -489,6 +497,7 @@ type = real kind = kind_phys intent = inout + optional = True [zrw] standard_name = reflectivity_of_rain_of_new_state long_name = rain reflectivity @@ -497,6 +506,7 @@ type = real kind = kind_phys intent = inout + optional = True [zhw] standard_name = reflectivity_of_graupel_of_new_state long_name = graupel reflectivity @@ -505,6 +515,7 @@ type = real kind = kind_phys intent = inout + optional = True [zhl] standard_name = reflectivity_of_hail_of_new_state long_name = hail reflectivity @@ -513,6 +524,7 @@ type = real kind = kind_phys intent = inout + optional = True [tgrs] standard_name = air_temperature_of_new_state long_name = model layer mean temperature @@ -577,6 +589,7 @@ type = real kind = kind_phys intent = inout + optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -585,6 +598,7 @@ type = real kind = kind_phys intent = inout + optional = True [ice] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -593,6 +607,7 @@ type = real kind = kind_phys intent = inout + optional = True [snow] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -601,6 +616,7 @@ type = real kind = kind_phys intent = inout + optional = True [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall @@ -646,6 +662,7 @@ type = real kind = kind_phys intent = inout + optional = True [re_ice] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -654,6 +671,7 @@ type = real kind = kind_phys intent = inout + optional = True [re_snow] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometer @@ -662,6 +680,7 @@ type = real kind = kind_phys intent = inout + optional = True [re_rain] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -670,6 +689,7 @@ type = real kind = kind_phys intent = inout + optional = True [nleffr] standard_name = index_of_cloud_liquid_water_effective_radius_in_xyz_dimensioned_restart_array long_name = the index of cloud liquid water effective radius in phy_f3d @@ -754,6 +774,7 @@ dimensions = () type = integer intent = in + optional = True [ntccna] standard_name = index_of_activated_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array long_name = tracer index for activated cloud condensation nuclei number concentration @@ -761,6 +782,7 @@ dimensions = () type = integer intent = in + optional = True [errflg] standard_name = ccpp_error_code long_name = error code for error handling in CCPP diff --git a/physics/MP/Thompson/mp_thompson.meta b/physics/MP/Thompson/mp_thompson.meta index a9bf02210..39675f30d 100644 --- a/physics/MP/Thompson/mp_thompson.meta +++ b/physics/MP/Thompson/mp_thompson.meta @@ -276,6 +276,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -427,6 +428,7 @@ type = real kind = kind_phys intent = inout + optional = True [nwfa] standard_name = mass_number_concentration_of_hygroscopic_aerosols_of_new_state long_name = number concentration of water-friendly aerosols @@ -435,6 +437,7 @@ type = real kind = kind_phys intent = inout + optional = True [nifa] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_of_new_state long_name = number concentration of ice-friendly aerosols @@ -443,6 +446,7 @@ type = real kind = kind_phys intent = inout + optional = True [nwfa2d] standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer long_name = instantaneous fake water-friendly surface aerosol source @@ -451,6 +455,7 @@ type = real kind = kind_phys intent = in + optional = True [nifa2d] standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous fake ice-friendly surface aerosol source @@ -459,6 +464,7 @@ type = real kind = kind_phys intent = in + optional = True [aero_ind_fdb] standard_name = do_smoke_aerosol_indirect_feedback long_name = flag for wfa ifa emission indirect feedback @@ -572,6 +578,7 @@ type = real kind = kind_phys intent = inout + optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -580,6 +587,7 @@ type = real kind = kind_phys intent = inout + optional = True [ice] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -588,6 +596,7 @@ type = real kind = kind_phys intent = inout + optional = True [snow] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -596,6 +605,7 @@ type = real kind = kind_phys intent = inout + optional = True [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall @@ -685,6 +695,7 @@ type = real kind = kind_phys intent = inout + optional = True [reset_diag3d] standard_name = flag_reset_extended_diagnostics_output_arrays_from_thompson_microphysics long_name = flag for resetting extended diagnostics output arrays from thompson microphysics @@ -699,6 +710,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real intent = in + optional = True [spp_mp] standard_name = control_for_microphysics_spp_perturbations long_name = control for microphysics spp perturbations @@ -713,6 +725,7 @@ dimensions = () type = integer intent = in + optional = True [spp_prt_list] standard_name = magnitude_of_spp_perturbations long_name = magnitude of spp perturbations @@ -721,6 +734,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_stddev_cutoff] standard_name = magnitude_of_spp_standard_deviation_cutoff long_name = magnitude of spp standard deviation cutoff @@ -729,6 +743,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_var_list] standard_name = perturbed_spp_schemes long_name = perturbed spp schemes @@ -737,6 +752,7 @@ type = character kind = len=10 intent = in + optional = True [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -752,6 +768,7 @@ type = real kind = kind_phys intent = inout + optional = True [pfl_lsan] standard_name = liquid_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of liquid water from nonconvective precipitation @@ -760,6 +777,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta index ed57ca909..5f07f3561 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta @@ -141,6 +141,7 @@ type = real kind = kind_phys intent = inout + optional = True [qp] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -149,6 +150,7 @@ type = real kind = kind_phys intent = inout + optional = True [psp] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -157,6 +159,7 @@ type = real kind = kind_phys intent = inout + optional = True [psat] standard_name = saturation_pressure_at_triple_point_of_water long_name = saturation pressure at triple point of water @@ -245,6 +248,7 @@ type = real kind = kind_phys intent = inout + optional = True [qp1] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -253,6 +257,7 @@ type = real kind = kind_phys intent = inout + optional = True [psp1] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air surface pressure at previous timestep @@ -261,6 +266,7 @@ type = real kind = kind_phys intent = inout + optional = True [u] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -269,6 +275,7 @@ type = real kind = kind_phys intent = in + optional = True [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output diff --git a/physics/MP/Zhao_Carr/zhaocarr_precpd.meta b/physics/MP/Zhao_Carr/zhaocarr_precpd.meta index 86e6c7d67..c82d8e040 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_precpd.meta +++ b/physics/MP/Zhao_Carr/zhaocarr_precpd.meta @@ -198,6 +198,7 @@ type = real kind = kind_phys intent = in + optional = True [psautco] standard_name = autoconversion_to_snow_coefficient long_name = conversion coefficient from cloud ice to snow diff --git a/physics/PBL/HEDMF/hedmf.meta b/physics/PBL/HEDMF/hedmf.meta index a5c6d73d9..b872639d2 100644 --- a/physics/PBL/HEDMF/hedmf.meta +++ b/physics/PBL/HEDMF/hedmf.meta @@ -356,6 +356,7 @@ type = real kind = kind_phys intent = out + optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -364,6 +365,7 @@ type = real kind = kind_phys intent = out + optional = True [hgamt] standard_name = countergradient_mixing_term_for_temperature long_name = countergradient mixing term for temperature @@ -531,6 +533,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -538,6 +541,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index diff --git a/physics/PBL/MYJ/myjpbl_wrapper.meta b/physics/PBL/MYJ/myjpbl_wrapper.meta index 281396eed..fa863b50a 100644 --- a/physics/PBL/MYJ/myjpbl_wrapper.meta +++ b/physics/PBL/MYJ/myjpbl_wrapper.meta @@ -342,6 +342,7 @@ type = real kind = kind_phys intent = out + optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -500,6 +501,7 @@ type = real kind = kind_phys intent = out + optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -601,6 +603,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta index 00589dfe5..c55d4fd54 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta @@ -320,6 +320,7 @@ type = real kind = kind_phys intent = in + optional = True [qgrs_cloud_ice_num_conc] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = number concentration of ice @@ -344,6 +345,7 @@ type = real kind = kind_phys intent = in + optional = True [qgrs_ice_aer_num_conc] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols @@ -352,6 +354,7 @@ type = real kind = kind_phys intent = in + optional = True [qgrs_cccn] standard_name = cloud_condensation_nuclei_number_concentration long_name = number concentration of cloud condensation nuclei @@ -360,6 +363,7 @@ type = real kind = kind_phys intent = inout + optional = True [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -480,6 +484,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc1] standard_name = instantaneous_surface_x_momentum_flux long_name = surface momentum flux in the x-direction valid for current call @@ -528,6 +533,7 @@ type = real kind = kind_phys intent = out + optional = True [dusfc_diag] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -560,6 +566,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_cice] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -568,6 +575,7 @@ type = real kind = kind_phys intent = in + optional = True [dvsfc_cice] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -576,6 +584,7 @@ type = real kind = kind_phys intent = in + optional = True [dtsfc_cice] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -584,6 +593,7 @@ type = real kind = kind_phys intent = in + optional = True [dqsfc_cice] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux for coupling @@ -592,6 +602,7 @@ type = real kind = kind_phys intent = in + optional = True [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -608,6 +619,7 @@ type = real kind = kind_phys intent = in + optional = True [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -661,6 +673,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfci_cpl] standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc v momentum flux @@ -669,6 +682,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtsfci_cpl] standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux @@ -677,6 +691,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqsfci_cpl] standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux @@ -685,6 +700,7 @@ type = real kind = kind_phys intent = inout + optional = True [dusfc_cpl] standard_name = cumulative_surface_x_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc u momentum flux multiplied by timestep @@ -693,6 +709,7 @@ type = real kind = kind_phys intent = inout + optional = True [dvsfc_cpl] standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc v momentum flux multiplied by timestep @@ -701,6 +718,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtsfc_cpl] standard_name = cumulative_surface_upward_sensible_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep @@ -709,6 +727,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqsfc_cpl] standard_name = cumulative_surface_upward_latent_heat_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep @@ -717,6 +736,7 @@ type = real kind = kind_phys intent = inout + optional = True [recmol] standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length @@ -725,6 +745,7 @@ type = real kind = kind_phys intent = in + optional = True [qke] standard_name = nonadvected_turbulent_kinetic_energy_multiplied_by_2 long_name = 2 x tke at mass points @@ -733,6 +754,7 @@ type = real kind = kind_phys intent = inout + optional = True [qke_adv] standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy @@ -749,6 +771,7 @@ type = real kind = kind_phys intent = out + optional = True [qsq] standard_name = variance_of_specific_humidity long_name = water vapor fluctuation squared @@ -757,6 +780,7 @@ type = real kind = kind_phys intent = out + optional = True [cov] standard_name = covariance_of_air_temperature_and_specific_humidity long_name = covariance of temperature and moisture @@ -765,6 +789,7 @@ type = real kind = kind_phys intent = out + optional = True [el_pbl] standard_name = turbulent_mixing_length long_name = mixing length in meters @@ -773,6 +798,7 @@ type = real kind = kind_phys intent = inout + optional = True [Sh3D] standard_name = stability_function_for_heat long_name = stability function for heat @@ -781,6 +807,7 @@ type = real kind = kind_phys intent = inout + optional = True [Sm3D] standard_name = stability_function_for_momentum long_name = stability function for momentum @@ -789,6 +816,7 @@ type = real kind = kind_phys intent = inout + optional = True [exch_h] standard_name = atmosphere_heat_diffusivity_for_mynnedmf long_name = diffusivity for heat for MYNN PBL (defined for all mass levels) @@ -797,6 +825,7 @@ type = real kind = kind_phys intent = out + optional = True [exch_m] standard_name = atmosphere_momentum_diffusivity_for_mynnedmf long_name = diffusivity for momentum for MYNN PBL (defined for all mass levels) @@ -805,6 +834,7 @@ type = real kind = kind_phys intent = out + optional = True [dqke] standard_name = total_time_rate_of_change_of_tke long_name = total tke tendency @@ -813,6 +843,7 @@ type = real kind = kind_phys intent = out + optional = True [qwt] standard_name = tke_tendency_due_to_vertical_transport long_name = tke tendency due to vertical transport and diffusion @@ -821,6 +852,7 @@ type = real kind = kind_phys intent = out + optional = True [qshear] standard_name = tke_tendency_due_to_shear long_name = tke tendency due to shear @@ -829,6 +861,7 @@ type = real kind = kind_phys intent = out + optional = True [qbuoy] standard_name = tke_tendency_due_to_buoyancy long_name = tke tendency due to buoyancy production or consumption @@ -837,6 +870,7 @@ type = real kind = kind_phys intent = out + optional = True [qdiss] standard_name = tke_tendency_due_to_dissipation long_name = tke tendency due to the dissipation of tke @@ -845,6 +879,7 @@ type = real kind = kind_phys intent = out + optional = True [PBLH] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -853,6 +888,7 @@ type = real kind = kind_phys intent = inout + optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -868,6 +904,7 @@ type = real kind = kind_phys intent = inout + optional = True [QI_BL] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -876,6 +913,7 @@ type = real kind = kind_phys intent = inout + optional = True [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -884,6 +922,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_a] standard_name = emdf_updraft_area long_name = updraft area from mass flux scheme @@ -892,6 +931,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_w] standard_name = emdf_updraft_vertical_velocity long_name = updraft vertical velocity from mass flux scheme @@ -900,6 +940,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_qt] standard_name = emdf_updraft_total_water long_name = updraft total water from mass flux scheme @@ -908,6 +949,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_thl] standard_name = emdf_updraft_theta_l long_name = updraft theta-l from mass flux scheme @@ -916,6 +958,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_ent] standard_name = emdf_updraft_entrainment_rate long_name = updraft entrainment rate from mass flux scheme @@ -924,6 +967,7 @@ type = real kind = kind_phys intent = inout + optional = True [edmf_qc] standard_name = emdf_updraft_cloud_water long_name = updraft cloud water from mass flux scheme @@ -932,6 +976,7 @@ type = real kind = kind_phys intent = inout + optional = True [sub_thl] standard_name = theta_subsidence_tendency long_name = updraft theta subsidence tendency @@ -940,6 +985,7 @@ type = real kind = kind_phys intent = inout + optional = True [sub_sqv] standard_name = water_vapor_subsidence_tendency long_name = updraft water vapor subsidence tendency @@ -948,6 +994,7 @@ type = real kind = kind_phys intent = inout + optional = True [det_thl] standard_name = theta_detrainment_tendency long_name = updraft theta detrainment tendency @@ -956,6 +1003,7 @@ type = real kind = kind_phys intent = inout + optional = True [det_sqv] standard_name = water_vapor_detrainment_tendency long_name = updraft water vapor detrainment tendency @@ -964,6 +1012,7 @@ type = real kind = kind_phys intent = inout + optional = True [maxwidth] standard_name = maximum_width_of_plumes long_name = maximum width of plumes per grid column @@ -972,6 +1021,7 @@ type = real kind = kind_phys intent = out + optional = True [maxMF] standard_name = maximum_mass_flux long_name = maximum mass flux within a column @@ -980,6 +1030,7 @@ type = real kind = kind_phys intent = out + optional = True [ztop_plume] standard_name = height_of_tallest_plume_in_a_column long_name = height of tallest plume in a column @@ -988,6 +1039,7 @@ type = real kind = kind_phys intent = out + optional = True [ktop_plume] standard_name = k_level_of_highest_plume long_name = k-level of highest plume @@ -995,6 +1047,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -1067,6 +1120,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqdt_ice_num_conc] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = number conc. of ice tendency due to model physics @@ -1083,6 +1137,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqdt_ice_aer_num_conc] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number conc. of ice-friendly aerosols tendency due to model physics @@ -1091,6 +1146,7 @@ type = real kind = kind_phys intent = inout + optional = True [dqdt_cccn] 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 @@ -1099,6 +1155,7 @@ type = real kind = kind_phys intent = inout + optional = True [flag_for_pbl_generic_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies @@ -1121,6 +1178,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -1205,6 +1263,7 @@ dimensions = () type = integer intent = in + optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -1212,6 +1271,7 @@ dimensions = () type = integer intent = in + optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index @@ -1391,6 +1451,7 @@ type = real kind = kind_phys intent = inout + optional = True [frp] standard_name = frp_hourly long_name = hourly fire radiative power @@ -1399,6 +1460,7 @@ type = real kind = kind_phys intent = inout + optional = True [rrfs_sd] standard_name = do_smoke_coupling long_name = flag controlling rrfs_sd collection (default off) @@ -1442,6 +1504,7 @@ type = real kind = kind_phys intent = in + optional = True [smoke_dbg] standard_name = do_smoke_debug long_name = flag for rrfs smoke plumerise debug @@ -1471,6 +1534,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_pbl] standard_name = control_for_pbl_spp_perturbations long_name = control for pbl spp perturbations diff --git a/physics/PBL/SATMEDMF/satmedmfvdif.meta b/physics/PBL/SATMEDMF/satmedmfvdif.meta index b94e74d6c..2ea9a30ff 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdif.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdif.meta @@ -457,6 +457,7 @@ type = real kind = kind_phys intent = out + optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -465,6 +466,7 @@ type = real kind = kind_phys intent = out + optional = True [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -504,6 +506,7 @@ type = real kind = kind_phys intent = in + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -511,6 +514,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.meta b/physics/PBL/SATMEDMF/satmedmfvdifq.meta index e203187aa..b2f401c76 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.meta @@ -502,6 +502,7 @@ type = real kind = kind_phys intent = out + optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -510,6 +511,7 @@ type = real kind = kind_phys intent = out + optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -626,6 +628,7 @@ type = real kind = kind_phys intent = in + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -633,6 +636,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SHOC/moninshoc.meta b/physics/PBL/SHOC/moninshoc.meta index 474689ea0..65b033d90 100644 --- a/physics/PBL/SHOC/moninshoc.meta +++ b/physics/PBL/SHOC/moninshoc.meta @@ -347,6 +347,7 @@ type = real kind = kind_phys intent = out + optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -363,6 +364,7 @@ type = real kind = kind_phys intent = out + optional = True [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -457,6 +459,7 @@ type = real kind = kind_phys intent = in + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index @@ -464,6 +467,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SHOC/shoc.meta b/physics/PBL/SHOC/shoc.meta index a1550ce11..88903fb09 100644 --- a/physics/PBL/SHOC/shoc.meta +++ b/physics/PBL/SHOC/shoc.meta @@ -208,6 +208,7 @@ type = real kind = kind_phys intent = in + optional = True [supice] standard_name = tunable_parameter_for_ice_supersaturation long_name = ice supersaturation parameter for PDF clouds diff --git a/physics/PBL/YSU/ysuvdif.meta b/physics/PBL/YSU/ysuvdif.meta index 20e96a92d..0095b8a77 100644 --- a/physics/PBL/YSU/ysuvdif.meta +++ b/physics/PBL/YSU/ysuvdif.meta @@ -243,6 +243,7 @@ type = real kind = kind_phys intent = out + optional = True [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -386,6 +387,7 @@ type = real kind = kind_phys intent = out + optional = True [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -474,6 +476,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/saYSU/shinhongvdif.meta b/physics/PBL/saYSU/shinhongvdif.meta index 8b1d48605..0002a38b9 100644 --- a/physics/PBL/saYSU/shinhongvdif.meta +++ b/physics/PBL/saYSU/shinhongvdif.meta @@ -219,6 +219,7 @@ type = real kind = kind_phys intent = out + optional = True [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -362,6 +363,7 @@ type = real kind = kind_phys intent = out + optional = True [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -451,6 +453,7 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in + optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index diff --git a/physics/Radiation/RRTMG/radlw_main.meta b/physics/Radiation/RRTMG/radlw_main.meta index f7c80fb20..453c63529 100644 --- a/physics/Radiation/RRTMG/radlw_main.meta +++ b/physics/Radiation/RRTMG/radlw_main.meta @@ -134,6 +134,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [aeraod] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -166,6 +167,7 @@ type = real kind = kind_phys intent = in + optional = True [dzlyr] standard_name = layer_thickness_for_radiation long_name = layer thickness @@ -174,6 +176,7 @@ type = real kind = kind_phys intent = in + optional = True [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness diff --git a/physics/Radiation/RRTMG/radsw_main.meta b/physics/Radiation/RRTMG/radsw_main.meta index 2169a26f0..76d55c520 100644 --- a/physics/Radiation/RRTMG/radsw_main.meta +++ b/physics/Radiation/RRTMG/radsw_main.meta @@ -134,6 +134,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [aeraod] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -198,6 +199,7 @@ type = real kind = kind_phys intent = in + optional = True [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta index 37ec2e9a0..ab49beebc 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta @@ -112,6 +112,7 @@ type = real kind = kind_phys intent = in + optional = True [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -120,6 +121,7 @@ type = real kind = kind_phys intent = in + optional = True [lsmask] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta index d71e37592..255f2388a 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta @@ -289,6 +289,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -305,6 +306,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -345,6 +347,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_h2o] standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air @@ -353,6 +356,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_o3] standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air @@ -361,6 +365,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_ch4] standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air @@ -369,6 +374,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_n2o] standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air @@ -377,6 +383,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_co2] standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air @@ -385,6 +392,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -465,6 +473,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_lwp] standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -473,6 +482,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_iwp] standard_name = convective_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -481,6 +491,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_reliq] standard_name = mean_effective_radius_for_liquid_convective_cloud long_name = mean effective radius for liquid convective cloud @@ -489,6 +500,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_reice] standard_name = mean_effective_radius_for_ice_convective_cloud long_name = mean effective radius for ice convective cloud @@ -497,6 +509,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_lwp] standard_name = MYNN_SGS_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -537,6 +550,7 @@ type = real kind = kind_phys intent = in + optional = True [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta index 68e84b924..fdcb95ce0 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta @@ -297,6 +297,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -337,6 +338,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_h2o] standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air @@ -345,6 +347,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_o3] standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air @@ -353,6 +356,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_ch4] standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air @@ -361,6 +365,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_n2o] standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air @@ -369,6 +374,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_co2] standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air @@ -377,6 +383,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -457,6 +464,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_lwp] standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -465,6 +473,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_iwp] standard_name = convective_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -473,6 +482,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_reliq] standard_name = mean_effective_radius_for_liquid_convective_cloud long_name = mean effective radius for liquid convective cloud @@ -481,6 +491,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_cnv_reice] standard_name = mean_effective_radius_for_ice_convective_cloud long_name = mean effective radius for ice convective cloud @@ -489,6 +500,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_lwp] standard_name = MYNN_SGS_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -529,6 +541,7 @@ type = real kind = kind_phys intent = in + optional = True [sfc_alb_nir_dir] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam diff --git a/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta b/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta index 0ae09985e..538e8d1f1 100644 --- a/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta +++ b/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta @@ -325,6 +325,7 @@ type = real kind = kind_phys intent = inout + optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta index 0e1c96c02..74dc319b8 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta @@ -281,6 +281,7 @@ type = real kind = kind_phys intent = in + optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -670,6 +671,7 @@ type = real kind = kind_phys intent = inout + optional = True [qflx_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -678,6 +680,7 @@ type = real kind = kind_phys intent = inout + optional = True [qflx_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -686,6 +689,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -702,6 +706,7 @@ type = real kind = kind_phys intent = in + optional = True [qsfc_ice_ruc] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -710,6 +715,7 @@ type = real kind = kind_phys intent = in + optional = True [ustm] standard_name = surface_friction_velocity_for_momentum long_name = friction velocity isolated for momentum only @@ -718,6 +724,7 @@ type = real kind = kind_phys intent = inout + optional = True [zol] standard_name = ratio_of_height_to_monin_obukhov_length long_name = monin obukhov surface stability parameter @@ -726,6 +733,7 @@ type = real kind = kind_phys intent = inout + optional = True [mol] standard_name = surface_temperature_scale long_name = temperature flux divided by ustar (temperature scale) @@ -734,6 +742,7 @@ type = real kind = kind_phys intent = inout + optional = True [rmol] standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length @@ -742,6 +751,7 @@ type = real kind = kind_phys intent = inout + optional = True [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -782,6 +792,7 @@ type = real kind = kind_phys intent = inout + optional = True [flhc] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -790,6 +801,7 @@ type = real kind = kind_phys intent = inout + optional = True [flqc] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -798,6 +810,7 @@ type = real kind = kind_phys intent = inout + optional = True [u10] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -846,6 +859,7 @@ type = real kind = kind_phys intent = inout + optional = True [chs2] standard_name = surface_exchange_coefficient_for_heat_at_2m long_name = exchange coefficient for heat at 2 meters @@ -854,6 +868,7 @@ type = real kind = kind_phys intent = inout + optional = True [cqs2] standard_name = surface_exchange_coefficient_for_moisture_at_2m long_name = exchange coefficient for moisture at 2 meters @@ -862,6 +877,7 @@ type = real kind = kind_phys intent = inout + optional = True [spp_wts_sfc] standard_name = spp_weights_for_surface_layer_scheme long_name = spp weights for surface layer scheme @@ -870,6 +886,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_sfc] standard_name = control_for_surface_layer_spp_perturbations long_name = control for surface layer spp perturbations diff --git a/physics/SFC_Layer/UFS/sfc_diag.meta b/physics/SFC_Layer/UFS/sfc_diag.meta index 4fdf37916..d00d14596 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.meta +++ b/physics/SFC_Layer/UFS/sfc_diag.meta @@ -271,6 +271,7 @@ type = real kind = kind_phys intent = in + optional = True [diag_flux] standard_name = flag_for_flux_method_in_2m_diagnostics long_name = flag for flux method in 2-m diagnostics @@ -301,6 +302,7 @@ type = real kind = kind_phys intent = in + optional = True [cdq] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture diff --git a/physics/SFC_Layer/UFS/sfc_diag_post.meta b/physics/SFC_Layer/UFS/sfc_diag_post.meta index 4abb3bac0..34c3fd049 100644 --- a/physics/SFC_Layer/UFS/sfc_diag_post.meta +++ b/physics/SFC_Layer/UFS/sfc_diag_post.meta @@ -97,6 +97,7 @@ type = real kind = kind_phys intent = out + optional = True [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -105,6 +106,7 @@ type = real kind = kind_phys intent = out + optional = True [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature diff --git a/physics/SFC_Layer/UFS/sfc_nst.meta b/physics/SFC_Layer/UFS/sfc_nst.meta index 80f468803..e35119972 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.meta +++ b/physics/SFC_Layer/UFS/sfc_nst.meta @@ -181,6 +181,7 @@ type = real kind = kind_phys intent = in + optional = True [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -441,6 +442,7 @@ type = real kind = kind_phys intent = inout + optional = True [xs] standard_name = sea_water_salinity_in_diurnal_thermocline long_name = salinity content in diurnal thermocline layer @@ -449,6 +451,7 @@ type = real kind = kind_phys intent = inout + optional = True [xu] standard_name = x_current_in_diurnal_thermocline long_name = u-current content in diurnal thermocline layer @@ -457,6 +460,7 @@ type = real kind = kind_phys intent = inout + optional = True [xv] standard_name = y_current_in_diurnal_thermocline long_name = v-current content in diurnal thermocline layer @@ -465,6 +469,7 @@ type = real kind = kind_phys intent = inout + optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -473,6 +478,7 @@ type = real kind = kind_phys intent = inout + optional = True [zm] standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness @@ -481,6 +487,7 @@ type = real kind = kind_phys intent = inout + optional = True [xtts] standard_name = derivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperature long_name = d(xt)/d(ts) @@ -489,6 +496,7 @@ type = real kind = kind_phys intent = inout + optional = True [xzts] standard_name = derivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperature long_name = d(xz)/d(ts) @@ -497,6 +505,7 @@ type = real kind = kind_phys intent = inout + optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -505,6 +514,7 @@ type = real kind = kind_phys intent = inout + optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -513,6 +523,7 @@ type = real kind = kind_phys intent = inout + optional = True [c_0] standard_name = coefficient_c_0 long_name = coefficient1 to calculate d(tz)/d(ts) @@ -521,6 +532,7 @@ type = real kind = kind_phys intent = inout + optional = True [c_d] standard_name = coefficient_c_d long_name = coefficient2 to calculate d(tz)/d(ts) @@ -529,6 +541,7 @@ type = real kind = kind_phys intent = inout + optional = True [w_0] standard_name = coefficient_w_0 long_name = coefficient3 to calculate d(tz)/d(ts) @@ -537,6 +550,7 @@ type = real kind = kind_phys intent = inout + optional = True [w_d] standard_name = coefficient_w_d long_name = coefficient4 to calculate d(tz)/d(ts) @@ -545,6 +559,7 @@ type = real kind = kind_phys intent = inout + optional = True [d_conv] standard_name = free_convection_layer_thickness_in_sea_water long_name = thickness of free convection layer @@ -553,6 +568,7 @@ type = real kind = kind_phys intent = inout + optional = True [ifd] standard_name = control_for_diurnal_thermocline_calculation long_name = index to start dtlm run or not @@ -561,6 +577,7 @@ type = real kind = kind_phys intent = inout + optional = True [qrain] standard_name = surface_sensible_heat_due_to_rainfall long_name = sensible heat flux due to rainfall @@ -569,6 +586,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsurf] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -609,6 +627,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water diff --git a/physics/SFC_Layer/UFS/sfc_nst_post.meta b/physics/SFC_Layer/UFS/sfc_nst_post.meta index caa487384..ce4bee4e4 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_post.meta +++ b/physics/SFC_Layer/UFS/sfc_nst_post.meta @@ -104,6 +104,7 @@ type = real kind = kind_phys intent = in + optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -112,6 +113,7 @@ type = real kind = kind_phys intent = in + optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -120,6 +122,7 @@ type = real kind = kind_phys intent = in + optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -128,6 +131,7 @@ type = real kind = kind_phys intent = in + optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -136,6 +140,7 @@ type = real kind = kind_phys intent = in + optional = True [xlon] standard_name = longitude long_name = longitude diff --git a/physics/SFC_Layer/UFS/sfc_nst_pre.meta b/physics/SFC_Layer/UFS/sfc_nst_pre.meta index e9cdef0d1..3b26fe52d 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_pre.meta +++ b/physics/SFC_Layer/UFS/sfc_nst_pre.meta @@ -62,6 +62,7 @@ type = real kind = kind_phys intent = in + optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -70,6 +71,7 @@ type = real kind = kind_phys intent = in + optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -78,6 +80,7 @@ type = real kind = kind_phys intent = in + optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -86,6 +89,7 @@ type = real kind = kind_phys intent = in + optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -94,6 +98,7 @@ type = real kind = kind_phys intent = inout + optional = True [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.meta b/physics/SFC_Models/Lake/CLM/clm_lake.meta index 7b3bc0a49..abb361859 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.meta +++ b/physics/SFC_Models/Lake/CLM/clm_lake.meta @@ -273,6 +273,7 @@ type = real kind = kind_phys intent = in + optional = True [rainncprv] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -281,6 +282,7 @@ type = real kind = kind_phys intent = in + optional = True [oro_lakedepth] standard_name = lake_depth long_name = lake depth @@ -342,6 +344,7 @@ type = real kind = kind_phys intent = inout + optional = True [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -350,6 +353,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -526,6 +530,7 @@ type = real kind = kind_phys intent = inout + optional = True [albedo] standard_name = mid_day_surface_albedo_over_lake long_name = mid day surface albedo over lake @@ -558,6 +563,7 @@ type = real kind = kind_phys intent = out + optional = True [lake_q2m] standard_name = specific_humidity_at_2m_from_clm_lake long_name = specific humidity at 2m from clm lake @@ -566,6 +572,7 @@ type = real kind = kind_phys intent = out + optional = True [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.meta b/physics/SFC_Models/Lake/Flake/flake_driver.meta index 22ab62d1e..6269e1873 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.meta +++ b/physics/SFC_Models/Lake/Flake/flake_driver.meta @@ -93,6 +93,7 @@ type = real kind = kind_phys intent = in + optional = True [xlat] standard_name = latitude long_name = latitude @@ -239,6 +240,7 @@ type = real kind = kind_phys intent = inout + optional = True [lflx] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water @@ -311,6 +313,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_wML] standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer @@ -319,6 +322,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_mnw] standard_name = mean_temperature_of_the_water_column long_name = thee mean temperature of the water column @@ -327,6 +331,7 @@ type = real kind = kind_phys intent = inout + optional = True [H_B] standard_name = the_thermally_active_layer_depth_of_the_bottom_sediment long_name = the depth of the thermally active layer of the bottom sediment @@ -335,6 +340,7 @@ type = real kind = kind_phys intent = inout + optional = True [T_B] standard_name = temperature_at_the_bottom_of_the_sediment_upper_layer long_name = the temperature at the bottom of the sediment upper layer @@ -343,6 +349,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_bot1] standard_name = lake_bottom_temperature long_name = the temperature at the water-bottom sediment interface @@ -351,6 +358,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_bot2] standard_name = temperature_for_bottom_layer_of_water long_name = the temperature at the lake bottom layer water @@ -359,6 +367,7 @@ type = real kind = kind_phys intent = inout + optional = True [c_t] standard_name = shape_factor_of_water_temperature_vertical_profile long_name = the shape factor of water temperature vertical profile @@ -367,6 +376,7 @@ type = real kind = kind_phys intent = inout + optional = True [T_snow] standard_name = temperature_of_snow_on_lake long_name = the temperature of snow on a lake @@ -375,6 +385,7 @@ type = real kind = kind_phys intent = inout + optional = True [T_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -447,6 +458,7 @@ type = real kind = kind_phys intent = in + optional = True [t_wML] standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer @@ -455,6 +467,7 @@ type = real kind = kind_phys intent = in + optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -463,6 +476,7 @@ type = real kind = kind_phys intent = out + optional = True [zm] standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness @@ -471,6 +485,7 @@ type = real kind = kind_phys intent = out + optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -479,6 +494,7 @@ type = real kind = kind_phys intent = out + optional = True [tfco] standard_name = sea_surface_temperature long_name = sea surface temperature diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.meta b/physics/SFC_Models/Land/Noah/lsm_noah.meta index f3ce1d19b..391d2e1dc 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.meta +++ b/physics/SFC_Models/Land/Noah/lsm_noah.meta @@ -407,6 +407,7 @@ type = real kind = kind_phys intent = in + optional = True [vegfpert] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction @@ -638,6 +639,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -750,6 +752,7 @@ type = real kind = kind_phys intent = inout + optional = True [lai] standard_name = leaf_area_index long_name = leaf area index @@ -758,6 +761,7 @@ type = real kind = kind_phys intent = inout + optional = True [rca] standard_name = aerodynamic_resistance_in_canopy long_name = canopy resistance diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 39eed1493..7d6f81245 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -302,6 +302,7 @@ type = real kind = kind_phys intent = in + optional = True [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -516,6 +517,7 @@ type = real kind = kind_phys intent = in + optional = True [rainc_mp] standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep @@ -524,6 +526,7 @@ type = real kind = kind_phys intent = in + optional = True [snow_mp] standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep @@ -532,6 +535,7 @@ type = real kind = kind_phys intent = in + optional = True [graupel_mp] standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep @@ -540,6 +544,7 @@ type = real kind = kind_phys intent = in + optional = True [ice_mp] standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep @@ -548,6 +553,7 @@ type = real kind = kind_phys intent = in + optional = True [rhonewsn1] standard_name = surface_frozen_precipitation_density long_name = density of precipitation ice @@ -809,6 +815,7 @@ type = real kind = kind_phys intent = inout + optional = True [flhc1] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -817,6 +824,7 @@ type = real kind = kind_phys intent = inout + optional = True [flqc1] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -825,6 +833,7 @@ type = real kind = kind_phys intent = inout + optional = True [do_mynnsfclay] standard_name = flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme long_name = flag to activate MYNN surface layer @@ -840,6 +849,7 @@ type = real kind = kind_phys intent = inout + optional = True [tvxy] standard_name = canopy_temperature long_name = vegetation temperature @@ -848,6 +858,7 @@ type = real kind = kind_phys intent = inout + optional = True [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -856,6 +867,7 @@ type = real kind = kind_phys intent = inout + optional = True [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -864,6 +876,7 @@ type = real kind = kind_phys intent = inout + optional = True [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -872,6 +885,7 @@ type = real kind = kind_phys intent = inout + optional = True [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -880,6 +894,7 @@ type = real kind = kind_phys intent = inout + optional = True [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -888,6 +903,7 @@ type = real kind = kind_phys intent = inout + optional = True [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -896,6 +912,7 @@ type = real kind = kind_phys intent = inout + optional = True [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -904,6 +921,7 @@ type = real kind = kind_phys intent = inout + optional = True [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -912,6 +930,7 @@ type = real kind = kind_phys intent = inout + optional = True [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -920,6 +939,7 @@ type = real kind = kind_phys intent = inout + optional = True [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -928,6 +948,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -936,6 +957,7 @@ type = real kind = kind_phys intent = inout + optional = True [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -944,6 +966,7 @@ type = real kind = kind_phys intent = inout + optional = True [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -952,6 +975,7 @@ type = real kind = kind_phys intent = inout + optional = True [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -960,6 +984,7 @@ type = real kind = kind_phys intent = inout + optional = True [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -968,6 +993,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -976,6 +1002,7 @@ type = real kind = kind_phys intent = inout + optional = True [zsnsoxy] standard_name = depth_from_snow_surface_at_bottom_interface long_name = depth from the top of the snow surface at the bottom of the layer @@ -984,6 +1011,7 @@ type = real kind = kind_phys intent = inout + optional = True [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = lwe_thickness_of_ice_in_surface_snow @@ -992,6 +1020,7 @@ type = real kind = kind_phys intent = inout + optional = True [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -1000,6 +1029,7 @@ type = real kind = kind_phys intent = inout + optional = True [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -1008,6 +1038,7 @@ type = real kind = kind_phys intent = inout + optional = True [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -1016,6 +1047,7 @@ type = real kind = kind_phys intent = inout + optional = True [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -1024,6 +1056,7 @@ type = real kind = kind_phys intent = inout + optional = True [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -1032,6 +1065,7 @@ type = real kind = kind_phys intent = inout + optional = True [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -1040,6 +1074,7 @@ type = real kind = kind_phys intent = inout + optional = True [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -1048,6 +1083,7 @@ type = real kind = kind_phys intent = inout + optional = True [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -1056,6 +1092,7 @@ type = real kind = kind_phys intent = inout + optional = True [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -1064,6 +1101,7 @@ type = real kind = kind_phys intent = inout + optional = True [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -1072,6 +1110,7 @@ type = real kind = kind_phys intent = inout + optional = True [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -1080,6 +1119,7 @@ type = real kind = kind_phys intent = inout + optional = True [smcwtdxy] standard_name = volumetric_soil_moisture_between_soil_bottom_and_water_table long_name = soil water content between the bottom of the soil and the water table @@ -1088,6 +1128,7 @@ type = real kind = kind_phys intent = inout + optional = True [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -1096,6 +1137,7 @@ type = real kind = kind_phys intent = inout + optional = True [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -1104,6 +1146,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdvis] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -1184,6 +1227,7 @@ type = real kind = kind_phys intent = out + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1328,6 +1372,7 @@ type = real kind = kind_phys intent = out + optional = True [t2mmp] standard_name = temperature_at_2m_from_noahmp long_name = 2 meter temperature from noahmp @@ -1336,6 +1381,7 @@ type = real kind = kind_phys intent = out + optional = True [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -1344,6 +1390,7 @@ type = real kind = kind_phys intent = out + optional = True [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index bc4d358e3..88dd81001 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -256,6 +256,7 @@ type = real kind = kind_phys intent = in + optional = True [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -320,6 +321,7 @@ type = real kind = kind_phys intent = inout + optional = True [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -328,6 +330,7 @@ type = real kind = kind_phys intent = inout + optional = True [sfalb_lnd_bck] standard_name =surface_snow_free_albedo_over_land long_name = surface snow-free albedo over ice @@ -400,6 +403,7 @@ type = real kind = kind_phys intent = inout + optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -416,6 +420,7 @@ type = real kind = kind_phys intent = inout + optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -440,6 +445,7 @@ type = real kind = kind_phys intent = inout + optional = True [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -456,6 +462,7 @@ type = real kind = kind_phys intent = inout + optional = True [smois] standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm @@ -464,6 +471,7 @@ type = real kind = kind_phys intent = inout + optional = True [wetness] standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness @@ -472,6 +480,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -705,6 +714,7 @@ dimensions = () type = logical intent = in + optional = True [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -815,6 +825,7 @@ type = real kind = kind_phys intent = inout + optional = True [dlwflx] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -876,6 +887,7 @@ type = real kind = kind_phys intent = in + optional = True [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -884,6 +896,7 @@ type = real kind = kind_phys intent = in + optional = True [ice] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -892,6 +905,7 @@ type = real kind = kind_phys intent = in + optional = True [snow] standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep @@ -900,6 +914,7 @@ type = real kind = kind_phys intent = in + optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep @@ -908,6 +923,7 @@ type = real kind = kind_phys intent = in + optional = True [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -1202,6 +1218,7 @@ type = real kind = kind_phys intent = inout + optional = True [weasd_ice] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -1234,6 +1251,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1250,6 +1268,7 @@ type = real kind = kind_phys intent = inout + optional = True [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -1258,6 +1277,7 @@ type = real kind = kind_phys intent = inout + optional = True [keepfr] standard_name = control_for_frozen_soil_physics long_name = flag for frozen soil physics (RUC) @@ -1306,6 +1326,7 @@ type = real kind = kind_phys intent = inout + optional = True [z0rl_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -1330,6 +1351,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsurf_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -1354,6 +1376,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx_lnd] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1442,6 +1465,7 @@ type = real kind = kind_phys intent = inout + optional = True [snowfallac_lnd] standard_name = surface_snow_amount_assuming_variable_snow_density_over_land long_name = run-total snow accumulation on the ground with variable snow density over land @@ -1522,6 +1546,7 @@ type = real kind = kind_phys intent = inout + optional = True [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -1538,6 +1563,7 @@ type = real kind = kind_phys intent = inout + optional = True [z0rl_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -1570,6 +1596,7 @@ type = real kind = kind_phys intent = inout + optional = True [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -1634,6 +1661,7 @@ type = real kind = kind_phys intent = out + optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -1650,6 +1678,7 @@ type = real kind = kind_phys intent = out + optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice diff --git a/physics/SFC_Models/Land/sfc_land.meta b/physics/SFC_Models/Land/sfc_land.meta index 6a4bd8fbe..151905280 100644 --- a/physics/SFC_Models/Land/sfc_land.meta +++ b/physics/SFC_Models/Land/sfc_land.meta @@ -50,6 +50,7 @@ type = real kind = kind_phys intent = in + optional = True [qsurf_lnd] standard_name = surface_specific_humidity_over_land_from_land long_name = surface air saturation specific humidity over land @@ -58,6 +59,7 @@ type = real kind = kind_phys intent = in + optional = True [evap_lnd] standard_name = surface_upward_latent_heat_flux_over_land_from_land long_name = sfc latent heat flux input over land for coupling @@ -66,6 +68,7 @@ type = real kind = kind_phys intent = in + optional = True [hflx_lnd] standard_name = surface_upward_sensible_heat_flux_over_land_from_land long_name = sfc sensible heat flux input over land for coupling @@ -74,6 +77,7 @@ type = real kind = kind_phys intent = in + optional = True [ep_lnd] standard_name = surface_upward_potential_latent_heat_flux_over_land_from_land long_name = surface upward potential latent heat flux over land for coupling @@ -82,6 +86,7 @@ type = real kind = kind_phys intent = in + optional = True [t2mmp_lnd] standard_name = temperature_at_2m_over_land_from_land long_name = 2 meter temperature over land for coupling @@ -90,6 +95,7 @@ type = real kind = kind_phys intent = in + optional = True [q2mp_lnd] standard_name = specific_humidity_at_2m_over_land_from_land long_name = 2 meter specific humidity over land for coupling @@ -98,6 +104,7 @@ type = real kind = kind_phys intent = in + optional = True [gflux_lnd] standard_name = upward_heat_flux_in_soil_over_land_from_land long_name = soil heat flux over land for coupling @@ -106,6 +113,7 @@ type = real kind = kind_phys intent = in + optional = True [runoff_lnd] standard_name = surface_runoff_flux_from_land long_name = surface runoff flux over land for coupling @@ -114,6 +122,7 @@ type = real kind = kind_phys intent = in + optional = True [drain_lnd] standard_name = subsurface_runoff_flux_from_land long_name = subsurface runoff flux over land for coupling @@ -122,6 +131,7 @@ type = real kind = kind_phys intent = in + optional = True [cmm_lnd] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land_from_land long_name = momentum exchange coefficient over land for coupling @@ -130,6 +140,7 @@ type = real kind = kind_phys intent = out + optional = True [chh_lnd] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land_from_land long_name = thermal exchange coefficient over land for coupling @@ -138,6 +149,7 @@ type = real kind = kind_phys intent = in + optional = True [zvfun_lnd] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction_from_land long_name = function of surface roughness length and green vegetation fraction @@ -146,6 +158,7 @@ type = real kind = kind_phys intent = in + optional = True [sncovr1] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -170,6 +183,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -194,6 +208,7 @@ type = real kind = kind_phys intent = inout + optional = True [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -202,6 +217,7 @@ type = real kind = kind_phys intent = inout + optional = True [gflux] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land diff --git a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta index 15d9fb5c4..532f0f2fa 100644 --- a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta +++ b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta @@ -232,6 +232,7 @@ type = real kind = kind_phys intent = in + optional = True [dtsfc_med] standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator long_name = sfc sensible heat flux input over ocean for coupling @@ -240,6 +241,7 @@ type = real kind = kind_phys intent = in + optional = True [qsurf] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -280,6 +282,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta index c44f9d6b5..d1ce6f512 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta @@ -124,6 +124,7 @@ type = real kind = kind_phys intent = in + optional = True [dtsfc] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -132,6 +133,7 @@ type = real kind = kind_phys intent = in + optional = True [dusfc] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -140,6 +142,7 @@ type = real kind = kind_phys intent = in + optional = True [dvsfc] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -148,6 +151,7 @@ type = real kind = kind_phys intent = in + optional = True [snowd] standard_name = lwe_surface_snow_from_coupled_process long_name = sfc snow depth in meters over sea ice for coupling @@ -188,6 +192,7 @@ type = real kind = kind_phys intent = inout + optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta index 828a83939..e6929b496 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta @@ -393,6 +393,7 @@ type = real kind = kind_phys intent = in + optional = True [evapw] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -401,6 +402,7 @@ type = real kind = kind_phys intent = in + optional = True [hflxi] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice diff --git a/physics/smoke_dust/rrfs_smoke_postpbl.meta b/physics/smoke_dust/rrfs_smoke_postpbl.meta index 8d7481ec4..9a18616b1 100755 --- a/physics/smoke_dust/rrfs_smoke_postpbl.meta +++ b/physics/smoke_dust/rrfs_smoke_postpbl.meta @@ -64,6 +64,7 @@ type = real kind = kind_phys intent = inout + optional = True [rrfs_sd] standard_name = do_smoke_coupling long_name = flag controlling rrfs_sd collection (default off) diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index cbc25a611..521e72c6a 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -307,6 +307,7 @@ type = real kind = kind_phys intent = in + optional = True [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -410,6 +411,7 @@ type = real kind = kind_phys intent = inout + optional = True [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -418,6 +420,7 @@ type = real kind = kind_phys intent = in + optional = True [vegtype_dom] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -487,6 +490,7 @@ type = real kind = kind_phys intent = in + optional = True [idat] standard_name = date_and_time_at_model_initialization_in_iso_order long_name = initialization date and time @@ -621,6 +625,7 @@ type = real kind = kind_phys intent = inout + optional = True [tile_num] standard_name = index_of_cubed_sphere_tile long_name = tile number @@ -671,6 +676,7 @@ type = real kind = kind_phys intent = inout + optional = True [nifa] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_of_new_state long_name = number concentration of ice-friendly aerosols @@ -679,6 +685,7 @@ type = real kind = kind_phys intent = inout + optional = True [emanoc] standard_name = emission_of_anothropogenic_for_mp_indir_fdb long_name = emission of anothropogenic for mp indirect feedabck @@ -719,6 +726,7 @@ type = real kind = kind_phys intent = inout + optional = True [coef_bb] standard_name = coef_bb_dc long_name = coef to estimate the fire emission @@ -803,6 +811,7 @@ type = real kind = kind_phys intent = inout + optional = True [drydep_flux_out] standard_name = dry_deposition_flux long_name = rrfs dry deposition flux @@ -843,6 +852,7 @@ type = real kind = kind_phys intent = in + optional = True [ndvel] standard_name = number_of_chemical_species_deposited long_name = number of chemical pbl deposited @@ -858,6 +868,7 @@ type = real kind = kind_phys intent = inout + optional = True [peak_hr_out] standard_name = peak_hr_fire long_name = time_of_peak_fire_emissions diff --git a/physics/tools/get_phi_fv3.meta b/physics/tools/get_phi_fv3.meta index 5c162c746..2bae1e7c9 100644 --- a/physics/tools/get_phi_fv3.meta +++ b/physics/tools/get_phi_fv3.meta @@ -54,6 +54,7 @@ type = real kind = kind_phys intent = inout + optional = True [phii] standard_name = geopotential_at_interface long_name = interface geopotential diff --git a/physics/tools/get_prs_fv3.meta b/physics/tools/get_prs_fv3.meta index 4cdad7566..9352b07cf 100644 --- a/physics/tools/get_prs_fv3.meta +++ b/physics/tools/get_prs_fv3.meta @@ -77,6 +77,7 @@ type = real kind = kind_phys intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP From 778930dbaef2b52601f78a4f62df5a1eca5163d6 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Apr 2024 17:24:40 -0600 Subject: [PATCH 04/40] Add missing optional attribute to conditionally allocated variables, part 2 --- .../CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta | 1 + .../UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta | 2 ++ .../UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta | 2 ++ .../UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta | 2 ++ .../UFS_SCM_NEPTUNE/GFS_radiation_surface.meta | 2 ++ .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta | 1 + .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta | 8 ++++++++ .../GFS_rrtmgp_cloud_overlap.meta | 3 +++ .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta | 9 +++++++++ .../UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta | 7 +++++++ .../Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta | 3 +++ physics/MP/GFDL/fv_sat_adj.meta | 1 + physics/MP/Morrison_Gettelman/m_micro.meta | 1 + physics/MP/Morrison_Gettelman/m_micro_pre.meta | 1 + .../Radiation/RRTMGP/rrtmgp_aerosol_optics.meta | 2 ++ physics/Radiation/RRTMGP/rrtmgp_lw_main.meta | 17 +++++++++++++++++ physics/Radiation/RRTMGP/rrtmgp_sw_main.meta | 14 ++++++++++++++ physics/SFC_Models/Land/RUC/lsm_ruc.meta | 4 ++++ 18 files changed, 80 insertions(+) diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta index 54350dbac..230add227 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta +++ b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta @@ -134,6 +134,7 @@ type = real kind = kind_phys intent = inout + optional = True [subcldfrac] standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta index 8a5ede992..daf1bddee 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.meta @@ -109,6 +109,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -125,6 +126,7 @@ type = real kind = kind_phys intent = in + optional = True [deltaZ] standard_name = layer_thickness long_name = layer_thickness diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta index 1cdcc8863..2a15cf16f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta @@ -789,6 +789,7 @@ type = real kind = kind_phys intent = inout + optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -806,6 +807,7 @@ type = real kind = kind_phys intent = inout + optional = True [emiss_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta index 20944a8b2..2eddb777b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta @@ -774,6 +774,7 @@ type = real kind = kind_phys intent = inout + optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -791,6 +792,7 @@ type = real kind = kind_phys intent = inout + optional = True [emiss_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta index 8d1148d75..ac5e9e3fe 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta @@ -474,6 +474,7 @@ type = real kind = kind_phys intent = in + optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -491,6 +492,7 @@ type = real kind = kind_phys intent = in + optional = True [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta index 8c1c30a89..b53647af5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta @@ -922,6 +922,7 @@ type = real kind = kind_phys intent = in + optional = True [effrr_in] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta index 8b30b5a69..87cc1c7d0 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta @@ -268,6 +268,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -276,6 +277,7 @@ type = real kind = kind_phys intent = in + optional = True [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -293,6 +295,7 @@ type = real kind = kind_phys intent = in + optional = True [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure @@ -380,6 +383,7 @@ type = real kind = kind_phys intent = inout + optional = True [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -621,6 +625,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_pbl_iwp] standard_name = MYNN_SGS_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -629,6 +634,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_pbl_reliq] standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud long_name = mean effective radius for liquid MYNN_SGS cloud @@ -637,6 +643,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_pbl_reice] standard_name = mean_effective_radius_for_ice_MYNN_SGS_cloud long_name = mean effective radius for ice MYNN_SGS cloud @@ -645,6 +652,7 @@ type = real kind = kind_phys intent = inout + optional = True [lwp_ex] standard_name = liq_water_path_from_microphysics long_name = total liquid water path from explicit microphysics diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta index 7b0d5845e..5b2907492 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta @@ -68,6 +68,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -76,6 +77,7 @@ type = real kind = kind_phys intent = in + optional = True [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -213,6 +215,7 @@ type = real kind = kind_phys intent = in + optional = True [top_at_1] standard_name = flag_for_vertical_ordering_in_radiation long_name = flag for vertical ordering in radiation diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta index a02ba2276..5d67afcd8 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta @@ -166,6 +166,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -174,6 +175,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxlwDOWN_allsky] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -182,6 +184,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -190,6 +193,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxlwDOWN_clrsky] standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile @@ -198,6 +202,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxswUP_allsky] standard_name = RRTMGP_sw_flux_profile_upward_allsky long_name = RRTMGP upward shortwave all-sky flux profile @@ -206,6 +211,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxswDOWN_allsky] standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile @@ -214,6 +220,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxswUP_clrsky] standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile @@ -222,6 +229,7 @@ type = real kind = kind_phys intent = in + optional = True [fluxswDOWN_clrsky] standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile @@ -230,6 +238,7 @@ type = real kind = kind_phys intent = in + optional = True [raddt] standard_name = time_step_for_radiation long_name = radiation time step diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta index 4b2e192fb..59d7cd68a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta @@ -32,6 +32,7 @@ type = character kind = len=128 intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -277,6 +278,7 @@ type = real kind = kind_phys intent = inout + optional = True [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -285,6 +287,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -293,6 +296,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -301,6 +305,7 @@ type = real kind = kind_phys intent = inout + optional = True [deltaZ] standard_name = layer_thickness long_name = layer_thickness @@ -473,6 +478,7 @@ type = character kind = len=* intent = in + optional = True [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period @@ -505,6 +511,7 @@ type = real kind = kind_phys intent = inout + optional = True [nday] standard_name = daytime_points_dimension long_name = daytime points dimension diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta index a8a74ff74..b2187f0c5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.meta @@ -408,6 +408,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lay] standard_name = air_temperature_of_new_state long_name = model layer mean temperature updated by physics @@ -440,6 +441,7 @@ type = real kind = kind_phys intent = in + optional = True [flux2D_lwDOWN] standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep long_name = RRTMGP downward longwave all-sky flux profile @@ -448,6 +450,7 @@ type = real kind = kind_phys intent = in + optional = True [pert_radtend] standard_name = flag_for_stochastic_radiative_heating_perturbations long_name = flag for stochastic radiative heating perturbations diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index fbcb57c76..d5194bf99 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -252,6 +252,7 @@ type = real kind = kind_dyn intent = inout + optional = True [qv] standard_name = water_vapor_specific_humidity_at_Lagrangian_surface long_name = water vapor specific humidity updated by fast physics at Lagrangian surface diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index cfdda96e8..4a1fa98a6 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -695,6 +695,7 @@ type = real kind = kind_phys intent = inout + optional = True [kcbl] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.meta b/physics/MP/Morrison_Gettelman/m_micro_pre.meta index f552e14af..313ef0c63 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.meta @@ -217,6 +217,7 @@ type = real kind = kind_phys intent = inout + optional = True [clw_water] 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 diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta index ab49beebc..4212adcc6 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta @@ -88,6 +88,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -96,6 +97,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta index 255f2388a..b49130bd6 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta @@ -115,6 +115,7 @@ type = character kind = len=* intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -315,6 +316,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -323,6 +325,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -331,6 +334,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -339,6 +343,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_o2] standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air @@ -518,6 +523,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_iwp] standard_name = MYNN_SGS_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -526,6 +532,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_reliq] standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud long_name = mean effective radius for liquid MYNN_SGS cloud @@ -534,6 +541,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_reice] standard_name = mean_effective_radius_for_ice_MYNN_SGS_cloud long_name = mean effective radius for ice MYNN_SGS cloud @@ -542,6 +550,7 @@ type = real kind = kind_phys intent = in + optional = True [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -559,6 +568,7 @@ type = character kind = len=* intent = in + optional = True [aerlw_tau] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -591,6 +601,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwDOWN_radtime] standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep long_name = RRTMGP downward longwave all-sky flux profile @@ -599,6 +610,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -607,6 +619,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwDOWN_allsky] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -615,6 +628,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -623,6 +637,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwDOWN_clrsky] standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile @@ -631,6 +646,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxlwUP_jac] standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile @@ -639,6 +655,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta index fdcb95ce0..9bfda6fa1 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta @@ -115,6 +115,7 @@ type = character kind = len=* intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -306,6 +307,7 @@ type = real kind = kind_phys intent = in + optional = True [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -314,6 +316,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -322,6 +325,7 @@ type = real kind = kind_phys intent = in + optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -330,6 +334,7 @@ type = real kind = kind_phys intent = in + optional = True [vmr_o2] standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air @@ -509,6 +514,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_iwp] standard_name = MYNN_SGS_cloud_ice_water_path long_name = layer convective cloud ice water path @@ -517,6 +523,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_reliq] standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud long_name = mean effective radius for liquid MYNN_SGS cloud @@ -525,6 +532,7 @@ type = real kind = kind_phys intent = in + optional = True [cld_pbl_reice] standard_name = mean_effective_radius_for_ice_MYNN_SGS_cloud long_name = mean effective radius for ice MYNN_SGS cloud @@ -533,6 +541,7 @@ type = real kind = kind_phys intent = in + optional = True [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -582,6 +591,7 @@ type = character kind = len=* intent = in + optional = True [aersw_tau] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -629,6 +639,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxswDOWN_allsky] standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile @@ -637,6 +648,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxswUP_clrsky] standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile @@ -645,6 +657,7 @@ type = real kind = kind_phys intent = inout + optional = True [fluxswDOWN_clrsky] standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile @@ -653,6 +666,7 @@ type = real kind = kind_phys intent = inout + optional = True [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index 88dd81001..8cb4ec106 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -412,6 +412,7 @@ type = real kind = kind_phys intent = inout + optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -429,6 +430,7 @@ type = real kind = kind_phys intent = inout + optional = True [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -1670,6 +1672,7 @@ type = real kind = kind_phys intent = out + optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -1687,6 +1690,7 @@ type = real kind = kind_phys intent = out + optional = True [rhosnf] standard_name = lsm_internal_surface_frozen_precipitation_density long_name = density of frozen precipitation From d1e97a1ad74bd87c2787569ddb512b9ceb07a8f9 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 3 Apr 2024 19:22:20 -0600 Subject: [PATCH 05/40] Add missing optional attribute to conditionally allocated variables, part 3 --- physics/CONV/C3/cu_c3_driver.meta | 8 +++++++ physics/CONV/C3/cu_c3_driver_post.meta | 6 +++++ physics/CONV/C3/cu_c3_driver_pre.meta | 7 ++++++ physics/CONV/Chikira_Sugiyama/cs_conv.meta | 1 + .../CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta | 1 + physics/CONV/Grell_Freitas/cu_gf_driver.meta | 10 ++++++++ .../CONV/Grell_Freitas/cu_gf_driver_post.meta | 5 ++++ .../CONV/Grell_Freitas/cu_gf_driver_pre.meta | 7 ++++++ physics/CONV/nTiedtke/cu_ntiedtke.meta | 2 ++ physics/CONV/nTiedtke/cu_ntiedtke_post.meta | 1 + physics/CONV/nTiedtke/cu_ntiedtke_pre.meta | 3 +++ physics/MP/Morrison_Gettelman/m_micro.meta | 6 +++++ .../MP/Morrison_Gettelman/m_micro_post.meta | 6 +++++ .../MP/Morrison_Gettelman/m_micro_pre.meta | 7 ++++++ physics/PBL/SHOC/shoc.meta | 1 + physics/SFC_Models/Lake/CLM/clm_lake.meta | 21 ++++++++++++++++ physics/SFC_Models/Land/RUC/lsm_ruc.meta | 14 +++++++++++ physics/smoke_dust/rrfs_smoke_wrapper.meta | 24 +++++++++++++++++++ 18 files changed, 130 insertions(+) diff --git a/physics/CONV/C3/cu_c3_driver.meta b/physics/CONV/C3/cu_c3_driver.meta index 338954ae3..f6dc927c0 100644 --- a/physics/CONV/C3/cu_c3_driver.meta +++ b/physics/CONV/C3/cu_c3_driver.meta @@ -156,6 +156,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = mid-level cloud convective activity memory @@ -163,6 +164,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -219,6 +221,7 @@ type = real kind = kind_phys intent = in + optional = True [forceqv_spechum] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -227,6 +230,7 @@ type = real kind = kind_phys intent = in + optional = True [tmf] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -441,6 +445,7 @@ type = real kind = kind_phys intent = inout + optional = True [cliw] 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 @@ -639,6 +644,7 @@ dimensions = () type = logical intent = in + optional = True [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals @@ -669,6 +675,7 @@ type = real kind = kind_phys intent = in + optional = True [ca_deep] standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process long_name = fraction of cellular automata for deep convection @@ -694,6 +701,7 @@ type = real kind = kind_phys intent = out + optional = True [maxMF] standard_name = maximum_mass_flux long_name = maximum mass flux within a column diff --git a/physics/CONV/C3/cu_c3_driver_post.meta b/physics/CONV/C3/cu_c3_driver_post.meta index b1c5e8b49..4e4122b69 100644 --- a/physics/CONV/C3/cu_c3_driver_post.meta +++ b/physics/CONV/C3/cu_c3_driver_post.meta @@ -45,6 +45,7 @@ type = real kind = kind_phys intent = out + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -61,6 +62,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -68,6 +70,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -76,6 +79,7 @@ type = real kind = kind_phys intent = out + optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -84,6 +88,7 @@ type = real kind = kind_phys intent = out + optional = True [dt] standard_name = timestep_for_physics long_name = physics time step @@ -116,6 +121,7 @@ type = real kind = kind_phys intent = in + optional = True [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm diff --git a/physics/CONV/C3/cu_c3_driver_pre.meta b/physics/CONV/C3/cu_c3_driver_pre.meta index c1d46d6db..6e0b30045 100644 --- a/physics/CONV/C3/cu_c3_driver_pre.meta +++ b/physics/CONV/C3/cu_c3_driver_pre.meta @@ -68,6 +68,7 @@ type = real kind = kind_phys intent = in + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -85,6 +86,7 @@ type = real kind = kind_phys intent = out + optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -93,6 +95,7 @@ type = real kind = kind_phys intent = out + optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -100,6 +103,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = out + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -107,6 +111,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = out + optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -115,6 +120,7 @@ type = real kind = kind_phys intent = in + optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -123,6 +129,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv.meta b/physics/CONV/Chikira_Sugiyama/cs_conv.meta index 08d348562..ee8e1de55 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv.meta +++ b/physics/CONV/Chikira_Sugiyama/cs_conv.meta @@ -216,6 +216,7 @@ type = real kind = kind_phys intent = inout + optional = True [mype] standard_name = mpi_rank long_name = current MPI rank diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta index 230add227..88c3d27c7 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta +++ b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.meta @@ -143,6 +143,7 @@ type = real kind = kind_phys intent = inout + optional = True [prcp] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.meta b/physics/CONV/Grell_Freitas/cu_gf_driver.meta index 4c737c1c6..d84f6f8b1 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.meta @@ -128,6 +128,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = mid-level cloud convective activity memory @@ -135,6 +136,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -175,6 +177,7 @@ type = real kind = kind_phys intent = in + optional = True [forceqv_spechum] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -183,6 +186,7 @@ type = real kind = kind_phys intent = in + optional = True [phil] standard_name = geopotential long_name = layer geopotential @@ -331,6 +335,7 @@ type = real kind = kind_phys intent = inout + optional = True [cliw] 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 @@ -529,6 +534,7 @@ dimensions = () type = logical intent = in + optional = True [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals @@ -559,6 +565,7 @@ type = real kind = kind_phys intent = in + optional = True [maxupmf] standard_name = maximum_convective_updraft_mass_flux long_name = maximum convective updraft mass flux within a column @@ -567,6 +574,7 @@ type = real kind = kind_phys intent = out + optional = True [maxMF] standard_name = maximum_mass_flux long_name = maximum mass flux within a column @@ -612,6 +620,7 @@ type = real kind = kind_phys intent = in + optional = True [spp_cu_deep] standard_name = control_for_deep_convection_spp_perturbations long_name = control for deep convection spp perturbations @@ -658,6 +667,7 @@ type = real kind = kind_phys intent = inout + optional = True [kdt] standard_name = index_of_timestep long_name = current forecast iteration diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta index e3034403c..302fec1d7 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta @@ -45,6 +45,7 @@ type = real kind = kind_phys intent = out + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -61,6 +62,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -68,6 +70,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = in + optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -76,6 +79,7 @@ type = real kind = kind_phys intent = out + optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -84,6 +88,7 @@ type = real kind = kind_phys intent = out + optional = True [rrfs_sd] standard_name = do_smoke_coupling long_name = flag controlling rrfs_sd collection diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta index 23d753feb..105461758 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta @@ -68,6 +68,7 @@ type = real kind = kind_phys intent = in + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -85,6 +86,7 @@ type = real kind = kind_phys intent = out + optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -93,6 +95,7 @@ type = real kind = kind_phys intent = out + optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -100,6 +103,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = out + optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -107,6 +111,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = out + optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -115,6 +120,7 @@ type = real kind = kind_phys intent = in + optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -123,6 +129,7 @@ type = real kind = kind_phys intent = in + optional = True [rrfs_sd] standard_name = do_smoke_coupling long_name = flag controlling rrfs_sd collection diff --git a/physics/CONV/nTiedtke/cu_ntiedtke.meta b/physics/CONV/nTiedtke/cu_ntiedtke.meta index 42ffaf669..3e1755a5a 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke.meta @@ -125,6 +125,7 @@ type = real kind = kind_phys intent = in + optional = True [ptf] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -133,6 +134,7 @@ type = real kind = kind_phys intent = in + optional = True [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other tracers diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta index 282b4c9de..db51223d3 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta @@ -31,6 +31,7 @@ type = real kind = kind_phys intent = out + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta index 8d1baae8d..1938ee711 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta @@ -68,6 +68,7 @@ type = real kind = kind_phys intent = in + optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -85,6 +86,7 @@ type = real kind = kind_phys intent = out + optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -93,6 +95,7 @@ type = real kind = kind_phys intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index 4a1fa98a6..f1e13a78c 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -647,6 +647,7 @@ type = real kind = kind_phys intent = inout + optional = True [snw_io] 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 @@ -655,6 +656,7 @@ type = real kind = kind_phys intent = inout + optional = True [qgl_io] 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 @@ -663,6 +665,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncpr_io] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -671,6 +674,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncps_io] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -679,6 +683,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncgl_io] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -687,6 +692,7 @@ type = real kind = kind_phys intent = inout + optional = True [clls_io] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.meta b/physics/MP/Morrison_Gettelman/m_micro_post.meta index 922dadc15..c41a07909 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_post.meta @@ -44,6 +44,7 @@ type = real kind = kind_phys intent = in + optional = True [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -52,6 +53,7 @@ type = real kind = kind_phys intent = in + optional = True [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -60,6 +62,7 @@ type = real kind = kind_phys intent = in + optional = True [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 @@ -68,6 +71,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsnw] 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 @@ -76,6 +80,7 @@ type = real kind = kind_phys intent = inout + optional = True [qgl] 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 @@ -84,6 +89,7 @@ type = real kind = kind_phys intent = inout + optional = True [gq0_ice] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) updated by physics diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.meta b/physics/MP/Morrison_Gettelman/m_micro_pre.meta index 313ef0c63..2b10edba2 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.meta @@ -121,6 +121,7 @@ type = real kind = kind_phys intent = in + optional = True [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -169,6 +170,7 @@ type = real kind = kind_phys intent = inout + optional = True [qsnw] 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 @@ -177,6 +179,7 @@ type = real kind = kind_phys intent = inout + optional = True [qgl] 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 @@ -185,6 +188,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncpr] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -193,6 +197,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -201,6 +206,7 @@ type = real kind = kind_phys intent = inout + optional = True [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -209,6 +215,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_frc_MG] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP diff --git a/physics/PBL/SHOC/shoc.meta b/physics/PBL/SHOC/shoc.meta index 88903fb09..7bfb3fd9b 100644 --- a/physics/PBL/SHOC/shoc.meta +++ b/physics/PBL/SHOC/shoc.meta @@ -368,6 +368,7 @@ type = real kind = kind_phys intent = inout + optional = True [tke] standard_name = turbulent_kinetic_energy_convective_transport_tracer long_name = turbulent kinetic energy in the convectively transported tracer array diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.meta b/physics/SFC_Models/Lake/CLM/clm_lake.meta index abb361859..965981e91 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.meta +++ b/physics/SFC_Models/Lake/CLM/clm_lake.meta @@ -101,6 +101,7 @@ dimensions = () type = logical intent = in + optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -124,6 +125,7 @@ type = real kind = kind_phys intent = inout + optional = True [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -299,6 +301,7 @@ type = real kind = kind_phys intent = inout + optional = True [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -539,6 +542,7 @@ type = real kind = kind_phys intent = inout + optional = True [zorlw] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -611,6 +615,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [cannot_freeze] standard_name = clm_lake_cannot_freeze long_name = lake at this point is so salty it cannot freeze @@ -618,6 +623,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout + optional = True [savedtke12d] standard_name = top_level_eddy_conductivity_from_previous_timestep_in_clm_lake_model long_name = top level eddy conductivity from previous timestep in clm lake model @@ -626,6 +632,7 @@ type = real kind = kind_phys intent = inout + optional = True [snowdp2d] standard_name = actual_snow_depth_in_clm_lake_model long_name = actual acc snow depth over lake in clm lake model @@ -634,6 +641,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2osno2d] standard_name = water_equivalent_accumulated_snow_depth_in_clm_lake_model long_name = water equiv of acc snow depth over lake in clm lake model @@ -642,6 +650,7 @@ type = real kind = kind_phys intent = inout + optional = True [snl2d] standard_name = snow_layers_in_clm_lake_model long_name = snow layers in clm lake model (treated as integer) @@ -650,6 +659,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_grnd2d] standard_name = skin_temperature_from_lake_model long_name = skin_temperature_from_lake_model @@ -658,6 +668,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_lake3d] standard_name = lake_layer_temperature_from_clm_lake_model long_name = lake layer temperature from clm lake model @@ -666,6 +677,7 @@ type = real kind = kind_phys intent = inout + optional = True [lake_icefrac3d] standard_name = lake_fractional_ice_cover_on_clm_lake_levels long_name = lake fractional ice cover on clm lake levels @@ -674,6 +686,7 @@ type = real kind = kind_phys intent = inout + optional = True [t_soisno3d] standard_name = soil_or_snow_layer_temperature_from_clm_lake_model long_name = soil or snow layer temperature from clm lake model @@ -682,6 +695,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2osoi_ice3d] standard_name = soil_ice_water_content_in_clm_lake_model long_name = soil ice water content in clm lake model @@ -690,6 +704,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2osoi_liq3d] standard_name = soil_liquid_water_content_in_clm_lake_model long_name = soil liquid water content in clm lake model @@ -698,6 +713,7 @@ type = real kind = kind_phys intent = inout + optional = True [h2osoi_vol3d] standard_name = volumetric_soil_water_in_clm_lake_model long_name = volumetric soil water in clm lake model @@ -706,6 +722,7 @@ type = real kind = kind_phys intent = inout + optional = True [z3d] standard_name = snow_level_depth_in_clm_lake_model long_name = snow level depth in clm lake model @@ -714,6 +731,7 @@ type = real kind = kind_phys intent = inout + optional = True [dz3d] standard_name = snow_level_thickness_in_clm_lake_model long_name = snow level thickness in clm lake model @@ -722,6 +740,7 @@ type = real kind = kind_phys intent = inout + optional = True [zi3d] standard_name = snow_interface_depth_in_clm_lake_model long_name = snow interface_depth in clm lake model @@ -730,6 +749,7 @@ type = real kind = kind_phys intent = inout + optional = True [clm_lakedepth] standard_name = clm_lake_depth long_name = clm internal copy of lake depth with 10.0 replaced by default lake depth @@ -738,6 +758,7 @@ type = real kind = kind_phys intent = in + optional = True [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index 8cb4ec106..c1074b585 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -339,6 +339,7 @@ type = real kind = kind_phys intent = inout + optional = True [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction @@ -456,6 +457,7 @@ type = real kind = kind_phys intent = inout + optional = True [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -982,6 +984,7 @@ type = real kind = kind_phys intent = in + optional = True [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -1172,6 +1175,7 @@ type = real kind = kind_phys intent = inout + optional = True [sfalb_ice] standard_name = surface_diffused_shortwave_albedo_over_ice long_name = mean surface diffused sw albedo over ice @@ -1180,6 +1184,7 @@ type = real kind = kind_phys intent = inout + optional = True [sncovr1_lnd] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction over land @@ -1288,6 +1293,7 @@ type = real kind = kind_phys intent = inout + optional = True [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -1296,6 +1302,7 @@ type = real kind = kind_phys intent = inout + optional = True [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -1345,6 +1352,7 @@ type = real kind = kind_phys intent = inout + optional = True [sfcqv_lnd] standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land @@ -1476,6 +1484,7 @@ type = real kind = kind_phys intent = inout + optional = True [acsnow_lnd] standard_name = surface_snow_lwe_thickness_amount_over_land long_name = run-total snowfall water equivalent over land @@ -1540,6 +1549,7 @@ type = real kind = kind_phys intent = inout + optional = True [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -1639,6 +1649,7 @@ type = real kind = kind_phys intent = inout + optional = True [acsnow_ice] standard_name = surface_snow_lwe_thickness_amount_over_ice long_name = run-total snowfall water equivalent over ice @@ -1699,6 +1710,7 @@ type = real kind = kind_phys intent = inout + optional = True [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -1796,6 +1808,7 @@ type = real kind = kind_phys intent = in + optional = True [frac_grid_burned_out] standard_name = fraction_of_grid_cell_burning long_name = ration of the burnt area to the grid cell area @@ -1804,6 +1817,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index 521e72c6a..cacba07e9 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -570,6 +570,7 @@ type = real kind = kind_phys intent = in + optional = True [emi_ant_in] standard_name = anthropogenic_background_input long_name = anthropogenic background input @@ -578,6 +579,7 @@ type = real kind = kind_phys intent = in + optional = True [smoke_RRFS] standard_name = emission_smoke_RRFS long_name = emission fire RRFS @@ -586,6 +588,7 @@ type = real kind = kind_phys intent = in + optional = True [smoke2d_RRFS] standard_name = emission_smoke_prvd_RRFS long_name = emission fire RRFS daily @@ -594,6 +597,7 @@ type = real kind = kind_phys intent = in + optional = True [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -694,6 +698,7 @@ type = real kind = kind_phys intent = inout + optional = True [emdust] standard_name = emission_of_dust_for_smoke long_name = emission of dust for smoke @@ -702,6 +707,7 @@ type = real kind = kind_phys intent = inout + optional = True [emseas] standard_name = emission_of_sea_salt_for_mp_indir_fdb long_name = emission of sea salt for mp indirect feedabck @@ -710,6 +716,7 @@ type = real kind = kind_phys intent = inout + optional = True [ebb_smoke_in] standard_name = surface_smoke_emission long_name = emission of surface smoke @@ -718,6 +725,7 @@ type = real kind = kind_phys intent = inout + optional = True [frp_output] standard_name = frp_hourly long_name = hourly fire radiative power @@ -735,6 +743,7 @@ type = real kind = kind_phys intent = inout + optional = True [fire_type_out] standard_name = fire_type long_name = type of fire @@ -742,6 +751,7 @@ dimensions = (horizontal_loop_extent) type = integer intent = out + optional = True [ebu_smoke] standard_name = ebu_smoke long_name = buffer of vertical fire emission @@ -750,6 +760,7 @@ type = real kind = kind_phys intent = inout + optional = True [fhist] standard_name = fire_hist long_name = coefficient to scale the fire activity depending on the fire duration @@ -758,6 +769,7 @@ type = real kind = kind_phys intent = inout + optional = True [min_fplume] standard_name = minimum_fire_plume_sigma_pressure_level long_name = minimum model level of fire plumerise @@ -766,6 +778,7 @@ type = real kind = kind_phys intent = inout + optional = True [max_fplume] standard_name = maximum_fire_plume_sigma_pressure_level long_name = maximum model level of fire plumerise @@ -774,6 +787,7 @@ type = real kind = kind_phys intent = inout + optional = True [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -803,6 +817,7 @@ type = real kind = kind_phys intent = inout + optional = True [hpbl_thetav] standard_name = atmosphere_boundary_layer_thickness_from_modified_parcel long_name = pbl height based on modified parcel method @@ -820,6 +835,7 @@ type = real kind = kind_phys intent = inout + optional = True [wetdpr] standard_name = mp_wet_deposition_smoke_dust long_name = large scale wet deposition of smoke and dust @@ -828,6 +844,7 @@ type = real kind = kind_phys intent = inout + optional = True [hwp] standard_name = hourly_wildfire_potential long_name = rrfs hourly fire weather potential @@ -836,6 +853,7 @@ type = real kind = kind_phys intent = out + optional = True [hwp_ave] standard_name = hourly_wildfire_potential_average long_name = rrfs hourly fire weather potential average @@ -844,6 +862,7 @@ type = real kind = kind_phys intent = inout + optional = True [wetness] standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness @@ -877,6 +896,7 @@ type = real kind = kind_phys intent = out + optional = True [lu_nofire_out] standard_name = sum_of_land_use_fractions_for_no_fire_pixels long_name = land use of no fire pixels for type @@ -885,6 +905,7 @@ type = real kind = kind_phys intent = out + optional = True [lu_qfire_out] standard_name = sum_of_land_use_fractions_for_cropland_fire_pixels long_name = land use of fire pixels for type @@ -893,6 +914,7 @@ type = real kind = kind_phys intent = out + optional = True [fire_heat_flux_out] standard_name = surface_fire_heat_flux long_name = heat flux of fire at the surface @@ -901,6 +923,7 @@ type = real kind = kind_phys intent = out + optional = True [frac_grid_burned_out] standard_name = fraction_of_grid_cell_burning long_name = ration of the burnt area to the grid cell area @@ -909,6 +932,7 @@ type = real kind = kind_phys intent = out + optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index From bbc16cdf3ba6590f02fb8f4c1e8e10777127539f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sat, 13 Apr 2024 20:53:03 -0600 Subject: [PATCH 06/40] Add missing optional attribute to conditionally allocated variables, part 4 --- physics/GWD/cires_ugwp.meta | 1 + physics/GWD/gwdc_post.meta | 1 + physics/GWD/rayleigh_damp.meta | 1 + .../Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta | 1 + physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta | 4 ++++ .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta | 1 + physics/MP/Thompson/mp_thompson.meta | 5 +++++ physics/PBL/MYJ/myjpbl_wrapper.meta | 1 + physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta | 1 + physics/PBL/YSU/ysuvdif.meta | 1 + physics/PBL/saYSU/shinhongvdif.meta | 1 + 11 files changed, 18 insertions(+) diff --git a/physics/GWD/cires_ugwp.meta b/physics/GWD/cires_ugwp.meta index bf43e450b..b0f122db5 100644 --- a/physics/GWD/cires_ugwp.meta +++ b/physics/GWD/cires_ugwp.meta @@ -853,6 +853,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/GWD/gwdc_post.meta b/physics/GWD/gwdc_post.meta index fefc1bd0f..a68e70c20 100644 --- a/physics/GWD/gwdc_post.meta +++ b/physics/GWD/gwdc_post.meta @@ -116,6 +116,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/GWD/rayleigh_damp.meta b/physics/GWD/rayleigh_damp.meta index 3db1bc7be..b247d1de7 100644 --- a/physics/GWD/rayleigh_damp.meta +++ b/physics/GWD/rayleigh_damp.meta @@ -138,6 +138,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta index 105d9aa48..9d7e13072 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta @@ -451,6 +451,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta index c931b9639..1e8f4c244 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta @@ -130,6 +130,7 @@ type = real kind = kind_phys intent = in + optional = True [do3_dt_ozmx] standard_name = ozone_tendency_due_to_ozone_mixing_ratio long_name = ozone tendency due to ozone mixing ratio @@ -138,6 +139,7 @@ type = real kind = kind_phys intent = in + optional = True [do3_dt_temp] standard_name = ozone_tendency_due_to_temperature long_name = ozone tendency due to temperature @@ -146,6 +148,7 @@ type = real kind = kind_phys intent = in + optional = True [do3_dt_ohoz] standard_name = ozone_tendency_due_to_overhead_ozone_column long_name = ozone tendency due to overhead ozone column @@ -154,6 +157,7 @@ type = real kind = kind_phys intent = in + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta index b89fc025f..485b9b223 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta @@ -357,6 +357,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/MP/Thompson/mp_thompson.meta b/physics/MP/Thompson/mp_thompson.meta index 39675f30d..ba6e2a515 100644 --- a/physics/MP/Thompson/mp_thompson.meta +++ b/physics/MP/Thompson/mp_thompson.meta @@ -161,6 +161,7 @@ type = real kind = kind_phys intent = inout + optional = True [nwfa2d] standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer long_name = instantaneous fake water-friendly surface aerosol source @@ -169,6 +170,7 @@ type = real kind = kind_phys intent = inout + optional = True [nifa2d] standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous fake ice-friendly surface aerosol source @@ -177,6 +179,7 @@ type = real kind = kind_phys intent = inout + optional = True [nwfa] standard_name = mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols @@ -185,6 +188,7 @@ type = real kind = kind_phys intent = inout + optional = True [nifa] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols @@ -193,6 +197,7 @@ type = real kind = kind_phys intent = inout + optional = True [tgrs] standard_name = air_temperature long_name = model layer mean temperature diff --git a/physics/PBL/MYJ/myjpbl_wrapper.meta b/physics/PBL/MYJ/myjpbl_wrapper.meta index fa863b50a..ea6c76fa3 100644 --- a/physics/PBL/MYJ/myjpbl_wrapper.meta +++ b/physics/PBL/MYJ/myjpbl_wrapper.meta @@ -596,6 +596,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta index c55d4fd54..5731da63f 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta @@ -1171,6 +1171,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/PBL/YSU/ysuvdif.meta b/physics/PBL/YSU/ysuvdif.meta index 0095b8a77..06efaefce 100644 --- a/physics/PBL/YSU/ysuvdif.meta +++ b/physics/PBL/YSU/ysuvdif.meta @@ -469,6 +469,7 @@ type = real kind = kind_phys intent = in + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index diff --git a/physics/PBL/saYSU/shinhongvdif.meta b/physics/PBL/saYSU/shinhongvdif.meta index 0002a38b9..10fbea566 100644 --- a/physics/PBL/saYSU/shinhongvdif.meta +++ b/physics/PBL/saYSU/shinhongvdif.meta @@ -446,6 +446,7 @@ type = real kind = kind_phys intent = inout + optional = True [dtidx] standard_name = cumulative_change_of_state_variables_outer_index long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index From e5b77dbf45f2c799613f1dc03ad9983da0df45ab Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 18 Apr 2024 13:07:10 -0600 Subject: [PATCH 07/40] Bug fix for physics/MP/GFDL/fv_sat_adj.*: use correct allocation of variables but internally bend everything back to where it's expected (affects some, but not all variables) --- physics/MP/GFDL/fv_sat_adj.F90 | 6 +++- physics/MP/GFDL/fv_sat_adj.meta | 54 +++++++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 14 deletions(-) diff --git a/physics/MP/GFDL/fv_sat_adj.F90 b/physics/MP/GFDL/fv_sat_adj.F90 index 53543485b..2207f5755 100644 --- a/physics/MP/GFDL/fv_sat_adj.F90 +++ b/physics/MP/GFDL/fv_sat_adj.F90 @@ -230,7 +230,7 @@ end subroutine fv_sat_adj_finalize !! \section arg_table_fv_sat_adj_run Argument Table !! \htmlinclude fv_sat_adj_run.html !! -subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, kmp, km, kmdelz, js, je, jsd, jed, & +subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz, js, je, jsd, jed, jsc, jec, & ng, hydrostatic, fast_mp_consv, te0_2d, te0, ngas, qvi, qv, ql, qi, qr, & qs, qg, hs, peln, delz, delp, pt, pkz, q_con, akap, cappa, area, dtdt, & out_dt, last_step, do_qa, qa, & @@ -245,6 +245,8 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, kmp, km, kmdelz, js, je, integer, intent(in) :: ie integer, intent(in) :: isd integer, intent(in) :: ied + integer, intent(in) :: isc + integer, intent(in) :: iec integer, intent(in) :: kmp integer, intent(in) :: km integer, intent(in) :: kmdelz @@ -252,6 +254,8 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, kmp, km, kmdelz, js, je, integer, intent(in) :: je integer, intent(in) :: jsd integer, intent(in) :: jed + integer, intent(in) :: jsc + integer, intent(in) :: jec integer, intent(in) :: ng logical, intent(in) :: hydrostatic logical, intent(in) :: fast_mp_consv diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index d5194bf99..16b4791c3 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -137,6 +137,20 @@ dimensions = () type = integer intent = in +[isc] + standard_name = starting_x_direction_index_alloc + long_name = starting X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[iec] + standard_name = ending_x_direction_index_alloc + long_name = ending X direction index for allocation + units = count + dimensions = () + type = integer + intent = in [isd] standard_name = starting_x_direction_index_domain long_name = starting X direction index for domain @@ -200,6 +214,20 @@ dimensions = () type = integer intent = in +[jsc] + standard_name = starting_y_direction_index_alloc + long_name = starting X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[jec] + standard_name = ending_y_direction_index_alloc + long_name = ending X direction index for allocation + units = count + dimensions = () + type = integer + intent = in [ng] standard_name = number_of_ghost_zones long_name = number of ghost zones defined in fv_mp @@ -248,7 +276,7 @@ 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_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_fast_physics,1:number_of_gases_for_multi_gases_physics) + dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics,1:number_of_gases_for_multi_gases_physics) type = real kind = kind_dyn intent = inout @@ -257,7 +285,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -265,7 +293,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -273,7 +301,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -281,7 +309,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -289,7 +317,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -297,7 +325,7 @@ 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_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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -305,7 +333,7 @@ standard_name = surface_geopotential_at_Lagrangian_surface long_name = surface geopotential at Lagrangian surface units = m2 s-2 - dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain) + dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc) type = real kind = kind_dyn intent = in @@ -329,7 +357,7 @@ standard_name = pressure_thickness_at_Lagrangian_surface long_name = pressure thickness at Lagrangian surface units = Pa - 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = in @@ -337,7 +365,7 @@ standard_name = virtual_temperature_at_Lagrangian_surface long_name = virtual temperature at Lagrangian surface units = K - 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -354,7 +382,7 @@ 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_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain,1:vertical_dimension_for_condensed_water_at_Lagrangian_surface) + dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_condensed_water_at_Lagrangian_surface) type = real kind = kind_dyn intent = inout @@ -378,7 +406,7 @@ standard_name = cell_area_for_fast_physics long_name = area of the grid cell for fast physics units = m2 - dimensions = (starting_x_direction_index_domain:ending_x_direction_index_domain,starting_y_direction_index_domain:ending_y_direction_index_domain) + dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc) type = real kind = kind_grid intent = in @@ -415,7 +443,7 @@ standard_name = cloud_fraction_at_Lagrangian_surface long_name = cloud fraction at Lagrangian surface 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_fast_physics) + dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = out From c0f1c606f8afe30dd4d317910e84686f1813f3cc Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 19 Apr 2024 09:54:50 -0600 Subject: [PATCH 08/40] Revert many false optional arguments in metadata files --- physics/CONV/C3/cu_c3_driver.meta | 3 --- physics/CONV/Grell_Freitas/cu_gf_driver.meta | 3 --- physics/CONV/RAS/rascnv.meta | 1 - physics/CONV/SAMF/samfdeepcnv.meta | 1 - physics/CONV/SAMF/samfshalcnv.meta | 1 - physics/CONV/SAS/shalcnv.meta | 1 - physics/GWD/cires_ugwp.meta | 2 -- physics/GWD/drag_suite.meta | 2 -- physics/GWD/gwdc_post.meta | 1 - physics/GWD/rayleigh_damp.meta | 1 - physics/GWD/ugwpv1_gsldrag.meta | 3 --- physics/GWD/unified_ugwp.meta | 3 --- .../UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta | 2 -- .../UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta | 2 -- .../UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta | 10 ---------- .../UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta | 9 --------- .../UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta | 4 ---- .../UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta | 2 -- .../UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta | 3 --- .../UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_physics_post.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_radiation_surface.meta | 2 -- .../Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta | 4 ---- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta | 1 - .../Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta | 1 - .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta | 6 ------ .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta | 2 -- .../UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta | 3 --- .../UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta | 1 - physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta | 1 - .../UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta | 2 -- .../Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta | 1 - physics/MP/GFDL/fv_sat_adj.meta | 1 - physics/MP/GFDL/gfdl_cloud_microphys.meta | 1 - physics/MP/Morrison_Gettelman/m_micro.meta | 3 --- physics/MP/Morrison_Gettelman/m_micro_post.meta | 3 --- physics/MP/NSSL/mp_nssl.meta | 2 -- physics/MP/Thompson/mp_thompson.meta | 1 - physics/MP/Zhao_Carr/zhaocarr_gscond.meta | 1 - physics/MP/Zhao_Carr/zhaocarr_precpd.meta | 1 - physics/PBL/HEDMF/hedmf.meta | 3 --- physics/PBL/MYJ/myjpbl_wrapper.meta | 3 --- physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta | 9 --------- physics/PBL/SATMEDMF/satmedmfvdif.meta | 3 --- physics/PBL/SATMEDMF/satmedmfvdifq.meta | 3 --- physics/PBL/SHOC/moninshoc.meta | 3 --- physics/PBL/SHOC/shoc.meta | 1 - physics/PBL/YSU/ysuvdif.meta | 3 --- physics/PBL/saYSU/shinhongvdif.meta | 3 --- physics/Radiation/RRTMG/radlw_main.meta | 2 -- physics/Radiation/RRTMG/radsw_main.meta | 1 - physics/Radiation/RRTMGP/rrtmgp_lw_main.meta | 1 - physics/SFC_Layer/MYJ/myjsfc_wrapper.meta | 1 - physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta | 7 ------- physics/SFC_Layer/UFS/sfc_nst.meta | 1 - physics/SFC_Models/Lake/CLM/clm_lake.meta | 3 --- physics/SFC_Models/Lake/Flake/flake_driver.meta | 2 -- physics/SFC_Models/Land/Noah/lsm_noah.meta | 2 -- physics/SFC_Models/Land/Noahmp/noahmpdrv.meta | 5 ----- physics/SFC_Models/Land/RUC/lsm_ruc.meta | 5 ----- physics/SFC_Models/Land/sfc_land.meta | 1 - physics/SFC_Models/Ocean/UFS/sfc_ocean.meta | 1 - physics/SFC_Models/SeaIce/CICE/sfc_cice.meta | 1 - physics/SFC_Models/SeaIce/CICE/sfc_sice.meta | 2 -- physics/smoke_dust/rrfs_smoke_wrapper.meta | 2 -- physics/tools/get_phi_fv3.meta | 1 - physics/tools/get_prs_fv3.meta | 1 - 71 files changed, 167 deletions(-) diff --git a/physics/CONV/C3/cu_c3_driver.meta b/physics/CONV/C3/cu_c3_driver.meta index f6dc927c0..af411cb6b 100644 --- a/physics/CONV/C3/cu_c3_driver.meta +++ b/physics/CONV/C3/cu_c3_driver.meta @@ -470,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -549,7 +548,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -644,7 +642,6 @@ dimensions = () type = logical intent = in - optional = True [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.meta b/physics/CONV/Grell_Freitas/cu_gf_driver.meta index d84f6f8b1..f76d0c30c 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.meta @@ -360,7 +360,6 @@ type = real kind = kind_phys intent = in - optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -439,7 +438,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -534,7 +532,6 @@ dimensions = () type = logical intent = in - optional = True [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals diff --git a/physics/CONV/RAS/rascnv.meta b/physics/CONV/RAS/rascnv.meta index bc4a61280..8e23ae8b8 100644 --- a/physics/CONV/RAS/rascnv.meta +++ b/physics/CONV/RAS/rascnv.meta @@ -334,7 +334,6 @@ type = real kind = kind_phys intent = in - optional = True [tin] standard_name = air_temperature_of_new_state long_name = updated temperature diff --git a/physics/CONV/SAMF/samfdeepcnv.meta b/physics/CONV/SAMF/samfdeepcnv.meta index 6d307a9fd..3652a0d27 100644 --- a/physics/CONV/SAMF/samfdeepcnv.meta +++ b/physics/CONV/SAMF/samfdeepcnv.meta @@ -396,7 +396,6 @@ type = real kind = kind_phys intent = in - optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt diff --git a/physics/CONV/SAMF/samfshalcnv.meta b/physics/CONV/SAMF/samfshalcnv.meta index b809530bc..4dfa8ac20 100644 --- a/physics/CONV/SAMF/samfshalcnv.meta +++ b/physics/CONV/SAMF/samfshalcnv.meta @@ -374,7 +374,6 @@ type = real kind = kind_phys intent = in - optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt diff --git a/physics/CONV/SAS/shalcnv.meta b/physics/CONV/SAS/shalcnv.meta index 35ec3765a..8a06e7b06 100644 --- a/physics/CONV/SAS/shalcnv.meta +++ b/physics/CONV/SAS/shalcnv.meta @@ -311,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = True [heat] 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 diff --git a/physics/GWD/cires_ugwp.meta b/physics/GWD/cires_ugwp.meta index b0f122db5..b0b1a8615 100644 --- a/physics/GWD/cires_ugwp.meta +++ b/physics/GWD/cires_ugwp.meta @@ -38,7 +38,6 @@ type = character kind = len=* intent = in - optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -861,7 +860,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index diff --git a/physics/GWD/drag_suite.meta b/physics/GWD/drag_suite.meta index 7b65666d5..fd3d605c1 100644 --- a/physics/GWD/drag_suite.meta +++ b/physics/GWD/drag_suite.meta @@ -458,7 +458,6 @@ type = real kind = kind_phys intent = in - optional = True [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -610,7 +609,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_orographic_gwd] standard_name = index_of_orographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of orographic gravity wave drag process in second dimension of array cumulative change index diff --git a/physics/GWD/gwdc_post.meta b/physics/GWD/gwdc_post.meta index a68e70c20..6b3a160d0 100644 --- a/physics/GWD/gwdc_post.meta +++ b/physics/GWD/gwdc_post.meta @@ -124,7 +124,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index diff --git a/physics/GWD/rayleigh_damp.meta b/physics/GWD/rayleigh_damp.meta index b247d1de7..857c66e8b 100644 --- a/physics/GWD/rayleigh_damp.meta +++ b/physics/GWD/rayleigh_damp.meta @@ -146,7 +146,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_rayleigh_damping] standard_name = index_of_rayleigh_damping_process_in_cumulative_change_index long_name = index of rayleigh damping process in second dimension of array cumulative change index diff --git a/physics/GWD/ugwpv1_gsldrag.meta b/physics/GWD/ugwpv1_gsldrag.meta index ba9159b2e..4004ade59 100644 --- a/physics/GWD/ugwpv1_gsldrag.meta +++ b/physics/GWD/ugwpv1_gsldrag.meta @@ -37,7 +37,6 @@ type = character kind = len=* intent = in - optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -646,7 +645,6 @@ type = real kind = kind_phys intent = in - optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -1083,7 +1081,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_x_wind] standard_name = index_of_x_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index diff --git a/physics/GWD/unified_ugwp.meta b/physics/GWD/unified_ugwp.meta index 42c2e00a3..de1ce672b 100644 --- a/physics/GWD/unified_ugwp.meta +++ b/physics/GWD/unified_ugwp.meta @@ -39,7 +39,6 @@ type = character kind = len=* intent = in - optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -672,7 +671,6 @@ type = real kind = kind_phys intent = in - optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -1132,7 +1130,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta index c23eafdc7..30bc93ccd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta @@ -171,7 +171,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_dcnv] standard_name = index_of_deep_convection_process_process_in_cumulative_change_index long_name = index of deep convection process in second dimension of array cumulative change index @@ -455,7 +454,6 @@ dimensions = () type = integer intent = in - optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta index 825f56696..ec1c59810 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta @@ -134,7 +134,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_dcnv] standard_name = index_of_deep_convection_process_process_in_cumulative_change_index long_name = index of deep convection process in second dimension of array cumulative change index @@ -261,7 +260,6 @@ dimensions = () type = integer intent = in - optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta index 90578c2fb..a11b8641d 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta @@ -102,7 +102,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta index 609e0c259..8321c7d32 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta @@ -182,7 +182,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta index 724dac818..53b547985 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta @@ -336,7 +336,6 @@ type = real kind = kind_phys intent = inout - optional = True [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -345,7 +344,6 @@ type = real kind = kind_phys intent = inout - optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -354,7 +352,6 @@ type = real kind = kind_phys intent = inout - optional = True [frzr] standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount long_name = accumulated surface freezing rain @@ -566,7 +563,6 @@ type = real kind = kind_phys intent = inout - optional = True [totsnw] standard_name = accumulated_lwe_thickness_of_snow_amount long_name = accumulated snow precipitation @@ -575,7 +571,6 @@ type = real kind = kind_phys intent = inout - optional = True [totgrp] standard_name = accumulated_lwe_thickness_of_graupel_amount long_name = accumulated graupel precipitation @@ -584,7 +579,6 @@ type = real kind = kind_phys intent = inout - optional = True [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket @@ -609,7 +603,6 @@ type = real kind = kind_phys intent = inout - optional = True [totsnwb] standard_name = accumulated_lwe_thickness_of_snow_amount_in_bucket long_name = accumulated snow precipitation in bucket @@ -618,7 +611,6 @@ type = real kind = kind_phys intent = inout - optional = True [totgrpb] standard_name = accumulated_lwe_thickness_of_graupel_amount_in_bucket long_name = accumulated graupel precipitation in bucket @@ -627,7 +619,6 @@ type = real kind = kind_phys intent = inout - optional = True [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -877,7 +868,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta index 9d7e13072..057d061a4 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta @@ -113,7 +113,6 @@ dimensions = () type = integer intent = in - optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -121,7 +120,6 @@ dimensions = () type = integer intent = in - optional = True [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -185,7 +183,6 @@ dimensions = () type = integer intent = in - optional = True [nthl] standard_name = index_of_hail_mixing_ratio_in_tracer_concentration_array long_name = tracer index for hail @@ -207,7 +204,6 @@ dimensions = () type = integer intent = in - optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume @@ -459,7 +455,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -496,7 +491,6 @@ type = real kind = kind_phys intent = in - optional = True [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -665,7 +659,6 @@ type = real kind = kind_phys intent = inout - optional = True [dusfci_diag] standard_name = instantaneous_surface_x_momentum_flux_for_diag long_name = instantaneous sfc x momentum flux multiplied by timestep @@ -698,7 +691,6 @@ type = real kind = kind_phys intent = inout - optional = True [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -919,7 +911,6 @@ type = real kind = kind_phys intent = in - optional = True [ugrs1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta index 48e7e4440..7a8e72bba 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_pre.meta @@ -119,7 +119,6 @@ dimensions = () type = integer intent = in - optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -127,7 +126,6 @@ dimensions = () type = integer intent = in - optional = True [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -191,7 +189,6 @@ dimensions = () type = integer intent = in - optional = True [nthl] standard_name = index_of_hail_mixing_ratio_in_tracer_concentration_array long_name = tracer index for hail @@ -213,7 +210,6 @@ dimensions = () type = integer intent = in - optional = True [nthv] standard_name = index_of_hail_volume_in_tracer_concentration_array long_name = tracer index for hail particle volume diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta index 4584a3e67..f90fccf01 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta @@ -138,7 +138,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -189,7 +188,6 @@ dimensions = () type = logical intent = in - optional = True [rain1] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta index 1ae559ba8..fbd9e47d8 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta @@ -127,7 +127,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_scnv] standard_name = index_of_shallow_convection_process_process_in_cumulative_change_index long_name = index of shallow convection process in second dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta index 2a15cf16f..df957e257 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta @@ -390,7 +390,6 @@ type = real kind = kind_phys intent = inout - optional = True [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -1582,7 +1581,6 @@ type = character kind = len=256 intent = in - optional = True [use_ufo] standard_name = flag_for_gcycle_surface_option long_name = flag for gcycle surface option @@ -1924,7 +1922,6 @@ type = real kind = kind_phys intent = inout - optional = True [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud bottom pressure diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta index 2eddb777b..43397f854 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta @@ -375,7 +375,6 @@ type = real kind = kind_phys intent = inout - optional = True [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta index 1e8f4c244..c42da0166 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta @@ -37,7 +37,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta index ac5e9e3fe..94043898d 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta @@ -234,7 +234,6 @@ type = real kind = kind_phys intent = in - optional = True [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -267,7 +266,6 @@ type = real kind = kind_phys intent = in - optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta index b53647af5..a7df9be2a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta @@ -224,7 +224,6 @@ dimensions = () type = integer intent = in - optional = True [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -232,7 +231,6 @@ dimensions = () type = integer intent = in - optional = True [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -1148,7 +1146,6 @@ type = real kind = kind_phys intent = out - optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -1189,7 +1186,6 @@ type = real kind = kind_phys intent = out - optional = True [plvl] standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure at vertical interface for radiation calculation diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta index 87cc1c7d0..a0fb78333 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta @@ -108,7 +108,6 @@ dimensions = () type = integer intent = in - optional = True [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta index 59d7cd68a..7af8e04d5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta @@ -371,7 +371,6 @@ type = real kind = kind_phys intent = inout - optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta index 485b9b223..a1f1660ad 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta @@ -365,7 +365,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_longwave] standard_name = index_of_longwave_heating_process_in_cumulative_change_index long_name = index of longwave heating process in second dimension of array cumulative change index diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta index 53bfc962e..d1e9d4d50 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta @@ -358,7 +358,6 @@ type = real kind = kind_phys intent = in - optional = True [rhcpbl] standard_name = critical_relative_humidity_at_PBL_top long_name = critical relative humidity at the PBL top @@ -367,7 +366,6 @@ type = real kind = kind_phys intent = in - optional = True [rhctop] standard_name = critical_relative_humidity_at_toa long_name = critical relative humidity at the top of atmosphere @@ -376,7 +374,6 @@ type = real kind = kind_phys intent = in - optional = True [rhcmax] standard_name = max_critical_relative_humidity long_name = maximum critical relative humidity @@ -385,7 +382,6 @@ type = real kind = kind_phys intent = in - optional = True [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -453,7 +449,6 @@ type = real kind = kind_phys intent = inout - optional = True [save_qc] 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 @@ -536,7 +531,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta index a48a84f12..c6a330ccb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta @@ -136,7 +136,6 @@ dimensions = () type = integer intent = in - optional = True [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -328,7 +327,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta index d21892c75..7224d7221 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta @@ -768,7 +768,6 @@ type = real kind = kind_phys intent = in - optional = True [evap_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -777,7 +776,6 @@ type = real kind = kind_phys intent = in - optional = True [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -786,7 +784,6 @@ type = real kind = kind_phys intent = in - optional = True [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta index b04aabea0..30c69732c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta @@ -363,7 +363,6 @@ type = real kind = kind_phys intent = out - optional = True [vegf1d] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta index 66c205f6e..bbf161eb5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/cnvc90.meta @@ -91,7 +91,6 @@ type = real kind = kind_phys intent = inout - optional = True [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = pressure at bottom of convective cloud diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta index 73ad1a0e5..7108e2f97 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta @@ -206,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = True [rh02min] standard_name = minimum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = minumum relative humidity at 2m over maximum hourly time interval @@ -215,7 +214,6 @@ type = real kind = kind_phys intent = inout - optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta index e73fc668e..8e25428cc 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta @@ -429,7 +429,6 @@ type = real kind = kind_phys intent = in - optional = True [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index 16b4791c3..5e129e2d9 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -369,7 +369,6 @@ type = real kind = kind_dyn intent = inout - optional = True [pkz] standard_name = finite_volume_mean_edge_pressure_raised_to_the_power_of_kappa long_name = finite-volume mean edge pressure in Pa raised to the power of kappa diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.meta b/physics/MP/GFDL/gfdl_cloud_microphys.meta index f4233ac46..01f848c77 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.meta +++ b/physics/MP/GFDL/gfdl_cloud_microphys.meta @@ -38,7 +38,6 @@ type = character kind = len=* intent = in - optional = True [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index f1e13a78c..6068d4dd9 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -158,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = True [microp_uniform] standard_name = flag_for_uniform_subcolumns long_name = flag for uniform subcolumns for MG microphysics @@ -464,7 +463,6 @@ type = real kind = kind_phys intent = in - optional = True [cnv_mfd_i] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -853,7 +851,6 @@ type = real kind = kind_phys intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.meta b/physics/MP/Morrison_Gettelman/m_micro_post.meta index c41a07909..62449c5fc 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_post.meta @@ -154,7 +154,6 @@ type = real kind = kind_phys intent = out - optional = True [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -163,7 +162,6 @@ type = real kind = kind_phys intent = out - optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -172,7 +170,6 @@ type = real kind = kind_phys intent = out - optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep diff --git a/physics/MP/NSSL/mp_nssl.meta b/physics/MP/NSSL/mp_nssl.meta index dce294582..0f672eedb 100644 --- a/physics/MP/NSSL/mp_nssl.meta +++ b/physics/MP/NSSL/mp_nssl.meta @@ -774,7 +774,6 @@ dimensions = () type = integer intent = in - optional = True [ntccna] standard_name = index_of_activated_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array long_name = tracer index for activated cloud condensation nuclei number concentration @@ -782,7 +781,6 @@ dimensions = () type = integer intent = in - optional = True [errflg] standard_name = ccpp_error_code long_name = error code for error handling in CCPP diff --git a/physics/MP/Thompson/mp_thompson.meta b/physics/MP/Thompson/mp_thompson.meta index ba6e2a515..7d750ee93 100644 --- a/physics/MP/Thompson/mp_thompson.meta +++ b/physics/MP/Thompson/mp_thompson.meta @@ -730,7 +730,6 @@ dimensions = () type = integer intent = in - optional = True [spp_prt_list] standard_name = magnitude_of_spp_perturbations long_name = magnitude of spp perturbations diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta index 5f07f3561..b8cb2ea64 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta @@ -275,7 +275,6 @@ type = real kind = kind_phys intent = in - optional = True [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output diff --git a/physics/MP/Zhao_Carr/zhaocarr_precpd.meta b/physics/MP/Zhao_Carr/zhaocarr_precpd.meta index c82d8e040..86e6c7d67 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_precpd.meta +++ b/physics/MP/Zhao_Carr/zhaocarr_precpd.meta @@ -198,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = True [psautco] standard_name = autoconversion_to_snow_coefficient long_name = conversion coefficient from cloud ice to snow diff --git a/physics/PBL/HEDMF/hedmf.meta b/physics/PBL/HEDMF/hedmf.meta index b872639d2..3d9b492c0 100644 --- a/physics/PBL/HEDMF/hedmf.meta +++ b/physics/PBL/HEDMF/hedmf.meta @@ -356,7 +356,6 @@ type = real kind = kind_phys intent = out - optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -365,7 +364,6 @@ type = real kind = kind_phys intent = out - optional = True [hgamt] standard_name = countergradient_mixing_term_for_temperature long_name = countergradient mixing term for temperature @@ -541,7 +539,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index diff --git a/physics/PBL/MYJ/myjpbl_wrapper.meta b/physics/PBL/MYJ/myjpbl_wrapper.meta index ea6c76fa3..a4786f40a 100644 --- a/physics/PBL/MYJ/myjpbl_wrapper.meta +++ b/physics/PBL/MYJ/myjpbl_wrapper.meta @@ -342,7 +342,6 @@ type = real kind = kind_phys intent = out - optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -501,7 +500,6 @@ type = real kind = kind_phys intent = out - optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -604,7 +602,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta index 5731da63f..f2adfc4f5 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta @@ -484,7 +484,6 @@ type = real kind = kind_phys intent = out - optional = True [dusfc1] standard_name = instantaneous_surface_x_momentum_flux long_name = surface momentum flux in the x-direction valid for current call @@ -533,7 +532,6 @@ type = real kind = kind_phys intent = out - optional = True [dusfc_diag] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -566,7 +564,6 @@ type = real kind = kind_phys intent = inout - optional = True [dusfc_cice] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -619,7 +616,6 @@ type = real kind = kind_phys intent = in - optional = True [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -745,7 +741,6 @@ type = real kind = kind_phys intent = in - optional = True [qke] standard_name = nonadvected_turbulent_kinetic_energy_multiplied_by_2 long_name = 2 x tke at mass points @@ -888,7 +883,6 @@ type = real kind = kind_phys intent = inout - optional = True [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -1179,7 +1173,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index @@ -1264,7 +1257,6 @@ dimensions = () type = integer intent = in - optional = True [ntia] standard_name = index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array long_name = tracer index for ice friendly aerosol @@ -1272,7 +1264,6 @@ dimensions = () type = integer intent = in - optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index diff --git a/physics/PBL/SATMEDMF/satmedmfvdif.meta b/physics/PBL/SATMEDMF/satmedmfvdif.meta index 2ea9a30ff..a14238574 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdif.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdif.meta @@ -457,7 +457,6 @@ type = real kind = kind_phys intent = out - optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -466,7 +465,6 @@ type = real kind = kind_phys intent = out - optional = True [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -514,7 +512,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.meta b/physics/PBL/SATMEDMF/satmedmfvdifq.meta index b2f401c76..76c3c520f 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.meta @@ -502,7 +502,6 @@ type = real kind = kind_phys intent = out - optional = True [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -511,7 +510,6 @@ type = real kind = kind_phys intent = out - optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -636,7 +634,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SHOC/moninshoc.meta b/physics/PBL/SHOC/moninshoc.meta index 65b033d90..e1cae216a 100644 --- a/physics/PBL/SHOC/moninshoc.meta +++ b/physics/PBL/SHOC/moninshoc.meta @@ -347,7 +347,6 @@ type = real kind = kind_phys intent = out - optional = True [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -364,7 +363,6 @@ type = real kind = kind_phys intent = out - optional = True [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -467,7 +465,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/SHOC/shoc.meta b/physics/PBL/SHOC/shoc.meta index 7bfb3fd9b..7da3eda0b 100644 --- a/physics/PBL/SHOC/shoc.meta +++ b/physics/PBL/SHOC/shoc.meta @@ -208,7 +208,6 @@ type = real kind = kind_phys intent = in - optional = True [supice] standard_name = tunable_parameter_for_ice_supersaturation long_name = ice supersaturation parameter for PDF clouds diff --git a/physics/PBL/YSU/ysuvdif.meta b/physics/PBL/YSU/ysuvdif.meta index 06efaefce..7696058d7 100644 --- a/physics/PBL/YSU/ysuvdif.meta +++ b/physics/PBL/YSU/ysuvdif.meta @@ -243,7 +243,6 @@ type = real kind = kind_phys intent = out - optional = True [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -387,7 +386,6 @@ type = real kind = kind_phys intent = out - optional = True [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -477,7 +475,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_temperature] standard_name = index_of_temperature_in_cumulative_change_index long_name = index of temperature in first dimension of array cumulative change index diff --git a/physics/PBL/saYSU/shinhongvdif.meta b/physics/PBL/saYSU/shinhongvdif.meta index 10fbea566..3e919d78f 100644 --- a/physics/PBL/saYSU/shinhongvdif.meta +++ b/physics/PBL/saYSU/shinhongvdif.meta @@ -219,7 +219,6 @@ type = real kind = kind_phys intent = out - optional = True [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -363,7 +362,6 @@ type = real kind = kind_phys intent = out - optional = True [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -454,7 +452,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = True [index_of_process_pbl] standard_name = index_of_subgrid_scale_vertical_mixing_process_in_cumulative_change_index long_name = index of subgrid scale vertical mixing process in second dimension of array cumulative change index diff --git a/physics/Radiation/RRTMG/radlw_main.meta b/physics/Radiation/RRTMG/radlw_main.meta index 453c63529..0b0819042 100644 --- a/physics/Radiation/RRTMG/radlw_main.meta +++ b/physics/Radiation/RRTMG/radlw_main.meta @@ -167,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = True [dzlyr] standard_name = layer_thickness_for_radiation long_name = layer thickness @@ -176,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = True [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness diff --git a/physics/Radiation/RRTMG/radsw_main.meta b/physics/Radiation/RRTMG/radsw_main.meta index 76d55c520..00a93e438 100644 --- a/physics/Radiation/RRTMG/radsw_main.meta +++ b/physics/Radiation/RRTMG/radsw_main.meta @@ -199,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = True [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta index b49130bd6..ac1da1490 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta @@ -307,7 +307,6 @@ type = real kind = kind_phys intent = in - optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation diff --git a/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta b/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta index 538e8d1f1..0ae09985e 100644 --- a/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta +++ b/physics/SFC_Layer/MYJ/myjsfc_wrapper.meta @@ -325,7 +325,6 @@ type = real kind = kind_phys intent = inout - optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta index 74dc319b8..957beacbb 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta @@ -281,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = True [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -671,7 +670,6 @@ type = real kind = kind_phys intent = inout - optional = True [qflx_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -680,7 +678,6 @@ type = real kind = kind_phys intent = inout - optional = True [qflx_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -689,7 +686,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -751,7 +747,6 @@ type = real kind = kind_phys intent = inout - optional = True [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -801,7 +796,6 @@ type = real kind = kind_phys intent = inout - optional = True [flqc] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -810,7 +804,6 @@ type = real kind = kind_phys intent = inout - optional = True [u10] standard_name = x_wind_at_10m long_name = 10 meter u wind speed diff --git a/physics/SFC_Layer/UFS/sfc_nst.meta b/physics/SFC_Layer/UFS/sfc_nst.meta index e35119972..06089aa66 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.meta +++ b/physics/SFC_Layer/UFS/sfc_nst.meta @@ -627,7 +627,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.meta b/physics/SFC_Models/Lake/CLM/clm_lake.meta index 965981e91..7754362f0 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.meta +++ b/physics/SFC_Models/Lake/CLM/clm_lake.meta @@ -101,7 +101,6 @@ dimensions = () type = logical intent = in - optional = True [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -347,7 +346,6 @@ type = real kind = kind_phys intent = inout - optional = True [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -356,7 +354,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.meta b/physics/SFC_Models/Lake/Flake/flake_driver.meta index 6269e1873..f5615ba08 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.meta +++ b/physics/SFC_Models/Lake/Flake/flake_driver.meta @@ -93,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = True [xlat] standard_name = latitude long_name = latitude @@ -240,7 +239,6 @@ type = real kind = kind_phys intent = inout - optional = True [lflx] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.meta b/physics/SFC_Models/Land/Noah/lsm_noah.meta index 391d2e1dc..0a58312c8 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.meta +++ b/physics/SFC_Models/Land/Noah/lsm_noah.meta @@ -407,7 +407,6 @@ type = real kind = kind_phys intent = in - optional = True [vegfpert] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction @@ -639,7 +638,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 7d6f81245..7417b200e 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -302,7 +302,6 @@ type = real kind = kind_phys intent = in - optional = True [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -815,7 +814,6 @@ type = real kind = kind_phys intent = inout - optional = True [flhc1] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -824,7 +822,6 @@ type = real kind = kind_phys intent = inout - optional = True [flqc1] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -833,7 +830,6 @@ type = real kind = kind_phys intent = inout - optional = True [do_mynnsfclay] standard_name = flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme long_name = flag to activate MYNN surface layer @@ -1227,7 +1223,6 @@ type = real kind = kind_phys intent = out - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index c1074b585..0abe4ada3 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -256,7 +256,6 @@ type = real kind = kind_phys intent = in - optional = True [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -718,7 +717,6 @@ dimensions = () type = logical intent = in - optional = True [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -1225,7 +1223,6 @@ type = real kind = kind_phys intent = inout - optional = True [weasd_ice] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -1386,7 +1383,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx_lnd] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1608,7 +1604,6 @@ type = real kind = kind_phys intent = inout - optional = True [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice diff --git a/physics/SFC_Models/Land/sfc_land.meta b/physics/SFC_Models/Land/sfc_land.meta index 151905280..15790145e 100644 --- a/physics/SFC_Models/Land/sfc_land.meta +++ b/physics/SFC_Models/Land/sfc_land.meta @@ -183,7 +183,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land diff --git a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta index 532f0f2fa..c0955d440 100644 --- a/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta +++ b/physics/SFC_Models/Ocean/UFS/sfc_ocean.meta @@ -282,7 +282,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta index d1ce6f512..226c6e948 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta @@ -192,7 +192,6 @@ type = real kind = kind_phys intent = inout - optional = True [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta index e6929b496..828a83939 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta @@ -393,7 +393,6 @@ type = real kind = kind_phys intent = in - optional = True [evapw] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -402,7 +401,6 @@ type = real kind = kind_phys intent = in - optional = True [hflxi] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index cacba07e9..c7afc1d97 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -307,7 +307,6 @@ type = real kind = kind_phys intent = in - optional = True [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -490,7 +489,6 @@ type = real kind = kind_phys intent = in - optional = True [idat] standard_name = date_and_time_at_model_initialization_in_iso_order long_name = initialization date and time diff --git a/physics/tools/get_phi_fv3.meta b/physics/tools/get_phi_fv3.meta index 2bae1e7c9..5c162c746 100644 --- a/physics/tools/get_phi_fv3.meta +++ b/physics/tools/get_phi_fv3.meta @@ -54,7 +54,6 @@ type = real kind = kind_phys intent = inout - optional = True [phii] standard_name = geopotential_at_interface long_name = interface geopotential diff --git a/physics/tools/get_prs_fv3.meta b/physics/tools/get_prs_fv3.meta index 9352b07cf..4cdad7566 100644 --- a/physics/tools/get_prs_fv3.meta +++ b/physics/tools/get_prs_fv3.meta @@ -77,7 +77,6 @@ type = real kind = kind_phys intent = out - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP From 240e3cf886e83497c002ec52137d1b649e6fbc41 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:10:14 -0600 Subject: [PATCH 09/40] Add optional in physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 --- .../UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index f6067a86c..933d75bfe 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -72,16 +72,17 @@ subroutine GFS_radiation_surface_run ( & integer, dimension(:), intent(in) :: use_lake_model real(kind=kind_phys), dimension(:), intent(in) :: xlat, xlon, slmsk, & - sfc_alb_pert, lndp_prt_list, & + sfc_alb_pert, & landfrac, lakefrac, & snodl, snodi, sncovr, & sncovr_ice, fice, zorl, & hprime, tsfg, tsfa, tisfc, & coszen, alvsf, alnsf, alvwf, & alnwf, facsf, facwf, snoalb - character(len=3) , dimension(:), intent(in) :: lndp_var_list - real(kind=kind_phys), dimension(:), intent(in) :: albdvis_ice, albdnir_ice, & - albivis_ice, albinir_ice + real(kind=kind_phys), dimension(:), intent(in), optional :: lndp_prt_list + character(len=3) , dimension(:), intent(in), optional :: lndp_var_list + real(kind=kind_phys), dimension(:), intent(in), optional :: albdvis_ice, albdnir_ice, & + albivis_ice, albinir_ice real(kind=kind_phys), dimension(:), intent(inout) :: albdvis_lnd, albdnir_lnd, & albivis_lnd, albinir_lnd, & From 7d34ce541bb57c16ec049c4304461e8925203e58 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:16:38 -0600 Subject: [PATCH 10/40] Add optional in physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 --- physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 index 936393d5b..95d172d4f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.F90 @@ -81,18 +81,18 @@ subroutine sgscloud_radpre_run( & real(kind=kind_phys), dimension(:,:), intent(inout) :: qc, qi real(kind=kind_phys), dimension(:,:), intent(inout) :: qr, qs, qg ! note: qci_conv only allocated if GF is used - real(kind=kind_phys), dimension(:,:), intent(inout) :: qci_conv + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: qci_conv real(kind=kind_phys), dimension(:,:), intent(inout) :: qlc, qli !for SAS - real(kind=kind_phys), dimension(:,:), intent(in) :: ud_mf + real(kind=kind_phys), dimension(:,:), intent(in), optional :: ud_mf real(kind=kind_phys), dimension(:,:), intent(in) :: T3D,delp real(kind=kind_phys), dimension(:,:), intent(in) :: qv,P3D,exner real(kind=kind_phys), dimension(:,:), intent(inout) :: & & clouds1,clouds2,clouds3,clouds4,clouds5, & & clouds8,clouds9 real(kind=kind_phys), dimension(:,:), intent(inout) :: qc_save, qi_save, qs_save - real(kind=kind_phys), dimension(:,:), intent(in) :: qc_bl, qi_bl, cldfra_bl + real(kind=kind_phys), dimension(:,:), intent(in), optional :: qc_bl, qi_bl, cldfra_bl real(kind=kind_phys), dimension(:), intent(in) :: slmsk, xlat, de_lgth - real(kind=kind_phys), dimension(:,:), intent(in) :: plyr, dz + real(kind=kind_phys), dimension(:,:), intent(in) :: plyr, dz real(kind=kind_phys), dimension(:,:), intent(inout) :: cldsa integer, dimension(:,:), intent(inout) :: mbota, mtopa integer, intent(in) :: iovr From 97bbc319475043c3f923b8850b4b5a5ef52da457 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:21:35 -0600 Subject: [PATCH 11/40] Add optional in .//physics/GWD/cires_ugwp.F90 --- physics/GWD/cires_ugwp.F90 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/physics/GWD/cires_ugwp.F90 b/physics/GWD/cires_ugwp.F90 index c648d9647..a71bd28d0 100644 --- a/physics/GWD/cires_ugwp.F90 +++ b/physics/GWD/cires_ugwp.F90 @@ -229,13 +229,14 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr real(kind=kind_phys), intent(out), dimension(:) :: zmtb, zlwb, zogw, rdxzb real(kind=kind_phys), intent(out), dimension(:) :: tau_mtb, tau_ogw, tau_tofd, tau_ngw real(kind=kind_phys), intent(out), dimension(:, :):: gw_dudt, gw_dvdt, gw_dtdt, gw_kdis - real(kind=kind_phys), intent(out), dimension(:, :):: dudt_mtb, dudt_ogw, dudt_tms - real(kind=kind_phys), intent(out), dimension(:) :: dusfc_ms, dvsfc_ms, dusfc_bl, dvsfc_bl - real(kind=kind_phys), intent(out), dimension(:, :) :: dtauy2d_ms - real(kind=kind_phys), intent(out), dimension(:, :) :: dtaux2d_bl, dtauy2d_bl + real(kind=kind_phys), intent(out), dimension(:, :):: dudt_mtb, dudt_tms + real(kind=kind_phys), intent(out), dimension(:, :), optional :: dudt_ogw + real(kind=kind_phys), intent(out), dimension(:), optional :: dusfc_ms, dvsfc_ms, dusfc_bl, dvsfc_bl + real(kind=kind_phys), intent(out), dimension(:, :), optional :: dtauy2d_ms + real(kind=kind_phys), intent(out), dimension(:, :), optional :: dtaux2d_bl, dtauy2d_bl ! dtend is only allocated if ldiag=.true. - real(kind=kind_phys), optional, intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), optional, intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:), & index_of_x_wind, index_of_y_wind, index_of_temperature, & index_of_process_orographic_gwd, index_of_process_nonorographic_gwd @@ -243,7 +244,7 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr logical, intent(in) :: ldiag3d, lssav ! These arrays only allocated if ldiag_ugwp = .true. - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_mtb, du3dt_ogw, du3dt_tms + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms real(kind=kind_phys), intent(inout), dimension(:, :):: dudt, dvdt, dtdt From 9a825382bced5e61386b02252c63f801ed8f0f3d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:27:58 -0600 Subject: [PATCH 12/40] Add optional in physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_{2,3}.F90 --- .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 | 7 ++++--- .../UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 index c72e5c7b2..61b48c854 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 @@ -30,9 +30,10 @@ subroutine GFS_suite_interstitial_2_run (im, levs, lssav, ldiag3d, lsidea, flag_ logical, intent(in ), dimension(:) :: flag_cice real(kind=kind_phys), intent(in ), dimension(:) :: ctei_rm real(kind=kind_phys), intent(in ), dimension(:) :: xcosz, adjsfcdsw, adjsfcdlw, pgr, xmu, work1, work2 - real(kind=kind_phys), intent(in ), dimension(:) :: ulwsfc_cice + real(kind=kind_phys), intent(in ), dimension(:), optional :: ulwsfc_cice real(kind=kind_phys), intent(in ), dimension(:) :: cice - real(kind=kind_phys), intent(in ), dimension(:,:) :: htrsw, htrlw, htrlwu, tgrs, prsl, qgrs_water_vapor, qgrs_cloud_water, prslk + real(kind=kind_phys), intent(in ), dimension(:,:) :: htrsw, htrlw, tgrs, prsl, qgrs_water_vapor, qgrs_cloud_water, prslk + real(kind=kind_phys), intent(in ), dimension(:,:), optional :: htrlwu real(kind=kind_phys), intent(in ), dimension(:,:) :: prsi real(kind=kind_phys), intent(in ), dimension(:,:,:) :: lwhd integer, intent(inout), dimension(:) :: kinver @@ -41,7 +42,7 @@ subroutine GFS_suite_interstitial_2_run (im, levs, lssav, ldiag3d, lsidea, flag_ real(kind=kind_phys), intent(inout), dimension(:) :: adjsfculw ! dtend is only allocated if ldiag3d is .true. - real(kind=kind_phys), optional, intent(inout), dimension(:,:,:) :: dtend + real(kind=kind_phys), optional, intent(inout), dimension(:,:,:), optional :: dtend integer, intent(in), dimension(:,:) :: dtidx integer, intent(in) :: index_of_process_longwave, index_of_process_shortwave, & index_of_process_pbl, index_of_process_dcnv, index_of_process_scnv, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 index 5ca20ffc1..bc99e7fff 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 @@ -54,8 +54,8 @@ subroutine GFS_suite_interstitial_3_run (otsptflag, & real(kind=kind_phys), intent(in ), dimension(:,:) :: gt0 real(kind=kind_phys), intent(in ), dimension(:,:,:) :: gq0 - real(kind=kind_phys), intent(inout ), dimension(:,:) :: sigmain - real(kind=kind_phys), intent(inout ), dimension(:,:) :: sigmaout,qmicro + real(kind=kind_phys), intent(inout ), dimension(:,:), optional :: sigmain + real(kind=kind_phys), intent(inout ), dimension(:,:), optional :: sigmaout, qmicro real(kind=kind_phys), intent(inout), dimension(:,:) :: rhc, save_qc ! save_qi is not allocated for Zhao-Carr MP real(kind=kind_phys), intent(inout), dimension(:,:) :: save_qi From 19fcb91a58d9049ea6870602b8459666bdcfc756 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:37:03 -0600 Subject: [PATCH 13/40] Add optional .//physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.* --- .../GFS_rrtmgp_cloud_overlap.F90 | 14 +++++----- .../GFS_rrtmgp_cloud_overlap.meta | 27 ------------------- 2 files changed, 6 insertions(+), 35 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 index 0094f8165..3d3eb2e5d 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 @@ -30,7 +30,7 @@ module GFS_rrtmgp_cloud_overlap !! !! \section GFS_rrtmgp_cloud_overlap_run subroutine GFS_rrtmgp_cloud_overlap_run(nCol, nLev, yearlen, doSWrad, doLWrad, & - julian, lat, p_lev, p_lay, tv_lay, deltaZc, con_pi, con_g, con_rd, con_epsq, & + julian, lat, deltaZc, con_pi, con_g, con_rd, con_epsq, & dcorr_con, idcor, iovr, iovr_dcorr, iovr_exp, iovr_exprand, idcor_con, & idcor_hogan, idcor_oreopoulos, cld_frac, cld_cnv_frac, iovr_convcld, top_at_1, & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_samf, de_lgth, cloud_overlap_param, & @@ -67,19 +67,17 @@ subroutine GFS_rrtmgp_cloud_overlap_run(nCol, nLev, yearlen, doSWrad, doLWrad, dcorr_con ! Decorrelation-length (used if idcor = idcor_con) real(kind_phys), dimension(:), intent(in) :: & lat ! Latitude - real(kind_phys), dimension(:,:), intent(in) :: & - tv_lay, & ! Virtual temperature (K) - p_lay, & ! Pressure at model-layers (Pa) - cld_frac, & ! Total cloud fraction + real(kind_phys), dimension(:,:), intent(in) :: & + cld_frac, ! Total cloud fraction + real(kind_phys), dimension(:,:), intent(in), optional :: & cld_cnv_frac ! Convective cloud-fraction - real(kind_phys), dimension(:,:), intent(in) :: & - p_lev, & ! Pressure at model-level interfaces (Pa) + real(kind_phys), dimension(:,:), intent(in), optional :: & deltaZc ! Layer thickness (from layer-centers)(m) ! Outputs real(kind_phys), dimension(:),intent(out) :: & de_lgth ! Decorrelation length - real(kind_phys), dimension(:,:),intent(out) :: & + real(kind_phys), dimension(:,:),intent(out), optional :: & cloud_overlap_param, & ! Cloud-overlap parameter cnv_cloud_overlap_param,& ! Convective cloud-overlap parameter precip_overlap_param ! Precipitation overlap parameter diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta index 5b2907492..3455087b5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta @@ -60,33 +60,6 @@ type = real intent = in kind = kind_phys -[p_lev] - standard_name = air_pressure_at_interface_for_RRTMGP - long_name = air pressure at vertical interface for radiation calculation - units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = in - optional = True -[p_lay] - standard_name = air_pressure_at_layer_for_RRTMGP - long_name = air pressure at vertical layer for radiation calculation - units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True -[tv_lay] - standard_name = virtual_temperature - long_name = layer virtual temperature - units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True [deltaZc] standard_name = layer_thickness_from_layer_center long_name = layer_thickness From 000365eb05fa931daf36ab46d18e6153293e972b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 14:46:54 -0600 Subject: [PATCH 14/40] Add optional .//physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 --- .../GFS_phys_time_vary.scm.F90 | 108 +++++++++--------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 index 075bfc039..59b59e76a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 @@ -84,18 +84,18 @@ subroutine GFS_phys_time_vary_init ( real(kind_phys), intent(in) :: fhour real(kind_phys), intent(in) :: xlat_d(:), xlon_d(:) - integer, intent(inout) :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) - real(kind_phys), intent(inout) :: ddy_o3(:), ddy_h(:) + integer, intent(inout), optional :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) + real(kind_phys), intent(inout), optional :: ddy_o3(:), ddy_h(:) real(kind_phys), intent(in) :: h2opl(:,:,:) - integer, intent(inout) :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) - real(kind_phys), intent(inout) :: ddy_aer(:), ddx_aer(:) + integer, intent(inout), optional :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) + real(kind_phys), intent(inout), optional :: ddy_aer(:), ddx_aer(:) real(kind_phys), intent(in) :: aer_nm(:,:,:) - integer, intent(inout) :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) - real(kind_phys), intent(inout) :: ddy_ci(:), ddx_ci(:) + integer, intent(inout), optional :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) + real(kind_phys), intent(inout), optional :: ddy_ci(:), ddx_ci(:) integer, intent(inout) :: imap(:), jmap(:) logical, intent(in) :: do_ugwp_v1 - real(kind_phys), intent(inout) :: ddy_j1tau(:), ddy_j2tau(:) - integer, intent(inout) :: jindx1_tau(:), jindx2_tau(:) + real(kind_phys), intent(inout), optional :: ddy_j1tau(:), ddy_j2tau(:) + integer, intent(inout), optional :: jindx1_tau(:), jindx2_tau(:) integer, intent(in) :: isot, ivegsrc, nlunit real(kind_phys), intent(inout) :: sncovr(:), sncovr_ice(:) @@ -109,50 +109,50 @@ subroutine GFS_phys_time_vary_init ( integer, intent(in) :: lsoil, lsnow_lsm_lbound, lsnow_lsm_ubound real(kind_phys), intent(in) :: zs(:) real(kind_phys), intent(in) :: dzs(:) - real(kind_phys), intent(inout) :: tvxy(:) - real(kind_phys), intent(inout) :: tgxy(:) - real(kind_phys), intent(inout) :: tahxy(:) - real(kind_phys), intent(inout) :: canicexy(:) - real(kind_phys), intent(inout) :: canliqxy(:) - real(kind_phys), intent(inout) :: eahxy(:) - real(kind_phys), intent(inout) :: cmxy(:) - real(kind_phys), intent(inout) :: chxy(:) - real(kind_phys), intent(inout) :: fwetxy(:) - real(kind_phys), intent(inout) :: sneqvoxy(:) - real(kind_phys), intent(inout) :: alboldxy(:) - real(kind_phys), intent(inout) :: qsnowxy(:) - real(kind_phys), intent(inout) :: wslakexy(:) + real(kind_phys), intent(inout), optional :: tvxy(:) + real(kind_phys), intent(inout), optional :: tgxy(:) + real(kind_phys), intent(inout), optional :: tahxy(:) + real(kind_phys), intent(inout), optional :: canicexy(:) + real(kind_phys), intent(inout), optional :: canliqxy(:) + real(kind_phys), intent(inout), optional :: eahxy(:) + real(kind_phys), intent(inout), optional :: cmxy(:) + real(kind_phys), intent(inout), optional :: chxy(:) + real(kind_phys), intent(inout), optional :: fwetxy(:) + real(kind_phys), intent(inout), optional :: sneqvoxy(:) + real(kind_phys), intent(inout), optional :: alboldxy(:) + real(kind_phys), intent(inout), optional :: qsnowxy(:) + real(kind_phys), intent(inout), optional :: wslakexy(:) real(kind_phys), intent(inout) :: albdvis_lnd(:) real(kind_phys), intent(inout) :: albdnir_lnd(:) real(kind_phys), intent(inout) :: albivis_lnd(:) real(kind_phys), intent(inout) :: albinir_lnd(:) - real(kind_phys), intent(inout) :: albdvis_ice(:) - real(kind_phys), intent(inout) :: albdnir_ice(:) - real(kind_phys), intent(inout) :: albivis_ice(:) - real(kind_phys), intent(inout) :: albinir_ice(:) + real(kind_phys), intent(inout), optional :: albdvis_ice(:) + real(kind_phys), intent(inout), optional :: albdnir_ice(:) + real(kind_phys), intent(inout), optional :: albivis_ice(:) + real(kind_phys), intent(inout), optional :: albinir_ice(:) real(kind_phys), intent(inout) :: emiss_lnd(:) real(kind_phys), intent(inout) :: emiss_ice(:) - real(kind_phys), intent(inout) :: taussxy(:) - real(kind_phys), intent(inout) :: waxy(:) - real(kind_phys), intent(inout) :: wtxy(:) - real(kind_phys), intent(inout) :: zwtxy(:) - real(kind_phys), intent(inout) :: xlaixy(:) - real(kind_phys), intent(inout) :: xsaixy(:) - real(kind_phys), intent(inout) :: lfmassxy(:) - real(kind_phys), intent(inout) :: stmassxy(:) - real(kind_phys), intent(inout) :: rtmassxy(:) - real(kind_phys), intent(inout) :: woodxy(:) - real(kind_phys), intent(inout) :: stblcpxy(:) - real(kind_phys), intent(inout) :: fastcpxy(:) - real(kind_phys), intent(inout) :: smcwtdxy(:) - real(kind_phys), intent(inout) :: deeprechxy(:) - real(kind_phys), intent(inout) :: rechxy(:) - real(kind_phys), intent(inout) :: snowxy(:) - real(kind_phys), intent(inout) :: snicexy(:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: snliqxy(:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: tsnoxy (:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: smoiseq(:,:) - real(kind_phys), intent(inout) :: zsnsoxy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: taussxy(:) + real(kind_phys), intent(inout), optional :: waxy(:) + real(kind_phys), intent(inout), optional :: wtxy(:) + real(kind_phys), intent(inout), optional :: zwtxy(:) + real(kind_phys), intent(inout), optional :: xlaixy(:) + real(kind_phys), intent(inout), optional :: xsaixy(:) + real(kind_phys), intent(inout), optional :: lfmassxy(:) + real(kind_phys), intent(inout), optional :: stmassxy(:) + real(kind_phys), intent(inout), optional :: rtmassxy(:) + real(kind_phys), intent(inout), optional :: woodxy(:) + real(kind_phys), intent(inout), optional :: stblcpxy(:) + real(kind_phys), intent(inout), optional :: fastcpxy(:) + real(kind_phys), intent(inout), optional :: smcwtdxy(:) + real(kind_phys), intent(inout), optional :: deeprechxy(:) + real(kind_phys), intent(inout), optional :: rechxy(:) + real(kind_phys), intent(inout), optional :: snowxy(:) + real(kind_phys), intent(inout), optional :: snicexy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: snliqxy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: tsnoxy (:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: smoiseq(:,:) + real(kind_phys), intent(inout), optional :: zsnsoxy(:,lsnow_lsm_lbound:) real(kind_phys), intent(inout) :: slc(:,:) real(kind_phys), intent(inout) :: smc(:,:) real(kind_phys), intent(inout) :: stc(:,:) @@ -649,14 +649,14 @@ subroutine GFS_phys_time_vary_timestep_init ( real(kind_phys), intent(in) :: fhswr, fhour logical, intent(in) :: lsswr, cal_pre, random_clds, h2o_phys, iaerclm real(kind_phys), intent(out) :: clstp - integer, intent(in) :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) - real(kind_phys), intent(in) :: ddy_o3(:), ddy_h(:) + integer, intent(in), optional :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) + real(kind_phys), intent(in), optional :: ddy_o3(:), ddy_h(:) real(kind_phys), intent(inout) :: ozpl(:,:,:), h2opl(:,:,:) - integer, intent(in) :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) - real(kind_phys), intent(in) :: ddy_aer(:), ddx_aer(:) + integer, intent(in), optional :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) + real(kind_phys), intent(in), optional :: ddy_aer(:), ddx_aer(:) real(kind_phys), intent(inout) :: aer_nm(:,:,:) - integer, intent(in) :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) - real(kind_phys), intent(in) :: ddy_ci(:), ddx_ci(:) + integer, intent(in), optional :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) + real(kind_phys), intent(in), optional :: ddy_ci(:), ddx_ci(:) real(kind_phys), intent(inout) :: in_nm(:,:), ccn_nm(:,:) integer, intent(in) :: imap(:), jmap(:) real(kind_phys), intent(in) :: prsl(:,:) @@ -664,8 +664,8 @@ subroutine GFS_phys_time_vary_timestep_init ( real(kind_phys), intent(inout) :: rann(:,:) logical, intent(in) :: do_ugwp_v1 - integer, intent(in) :: jindx1_tau(:), jindx2_tau(:) - real(kind_phys), intent(in) :: ddy_j1tau(:), ddy_j2tau(:) + integer, intent(in), optional :: jindx1_tau(:), jindx2_tau(:) + real(kind_phys), intent(in), optional :: ddy_j1tau(:), ddy_j2tau(:) real(kind_phys), intent(inout) :: tau_amf(:) type(ty_ozphys), intent(in) :: ozphys integer, intent(in) :: nthrds From f24c55800a6e9bf29f73a387273da9718c0a3033 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 15:46:12 -0600 Subject: [PATCH 15/40] Add optional .//physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 --- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index 79ae1559a..a664c4dcd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -105,28 +105,31 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic xlon, & ! Longitude xlat, & ! Latitude dx ! Characteristic grid lengthscale (m) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & tv_lay, & ! Virtual temperature (K) t_lay, & ! Temperature (K) qs_lay, & ! Saturation vapor pressure (Pa) q_lay, & ! water-vapor mixing ratio (kg/kg) relhum, & ! Relative humidity - p_lay, & ! Pressure at model-layers (Pa) - cnv_mixratio, & ! Convective cloud mixing-ratio (kg/kg) + p_lay ! Pressure at model-layers (Pa) + real(kind_phys), dimension(:,:), intent(in) :: & + cnv_mixratio ! Convective cloud mixing-ratio (kg/kg) + real(kind_phys), dimension(:,:), intent(in), optional :: & qci_conv, & ! Convective cloud condesate after rainout (kg/kg) deltaZ, & ! Layer-thickness (m) deltaZc, & ! Layer-thickness, from layer centers (m) deltaP, & ! Layer-thickness (Pa) qc_mynn, & ! - qi_mynn, & ! + qi_mynn, ! + real(kind_phys), dimension(:,:), intent(in), optional :: & cld_pbl_frac ! - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & effrin_cldliq, & ! Effective radius for stratiform liquid cloud-particles (microns) effrin_cldice, & ! Effective radius for stratiform ice cloud-particles (microns) effrin_cldsnow ! Effective radius for stratiform snow cloud-particles (microns) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & effrin_cldrain ! Effective radius for stratiform rain cloud-particles (microns) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & p_lev ! Pressure at model-level interfaces (Pa) real(kind_phys), dimension(:,:,:),intent(in) :: & tracer ! Cloud condensate amount in layer by type () @@ -149,6 +152,7 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors cld_rerain, & ! Effective radius for rain hydrometeors + real(kind_phys), dimension(:,:),intent(inout), optional :: & precip_frac, & ! Precipitation fraction cld_cnv_frac, & ! Cloud-fraction for convective clouds cld_cnv_lwp, & ! Water path for convective liquid cloud-particles @@ -569,7 +573,7 @@ subroutine cloud_mp_uni(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrai effrin_cldliq, & ! Effective radius for liquid cloud-particles (microns) effrin_cldice, & ! Effective radius for ice cloud-particles (microns) effrin_cldsnow ! Effective radius for snow cloud-particles (microns) - real(kind_phys), dimension(:,:), intent(in) ,optional :: & + real(kind_phys), dimension(:,:), intent(in) :: & effrin_cldrain ! Effective radius for rain cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) :: & p_lev ! Pressure at model-level interfaces (Pa) From 7bc2486dd82d4b49b423e42265edbc47049e1a21 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 16:05:51 -0600 Subject: [PATCH 16/40] Bug fixes in physics/GWD/cires_ugwp.F90 and physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 --- physics/GWD/cires_ugwp.F90 | 2 +- .../Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/physics/GWD/cires_ugwp.F90 b/physics/GWD/cires_ugwp.F90 index a71bd28d0..cab602252 100644 --- a/physics/GWD/cires_ugwp.F90 +++ b/physics/GWD/cires_ugwp.F90 @@ -236,7 +236,7 @@ subroutine cires_ugwp_run(do_ugwp, me, master, im, levs, ntrac, dtp, kdt, lonr real(kind=kind_phys), intent(out), dimension(:, :), optional :: dtaux2d_bl, dtauy2d_bl ! dtend is only allocated if ldiag=.true. - real(kind=kind_phys), optional, intent(inout), optional :: dtend(:,:,:) + real(kind=kind_phys), optional, intent(inout) :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:), & index_of_x_wind, index_of_y_wind, index_of_temperature, & index_of_process_orographic_gwd, index_of_process_nonorographic_gwd diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 index 61b48c854..923cee897 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 @@ -42,7 +42,7 @@ subroutine GFS_suite_interstitial_2_run (im, levs, lssav, ldiag3d, lsidea, flag_ real(kind=kind_phys), intent(inout), dimension(:) :: adjsfculw ! dtend is only allocated if ldiag3d is .true. - real(kind=kind_phys), optional, intent(inout), dimension(:,:,:), optional :: dtend + real(kind=kind_phys), optional, intent(inout), dimension(:,:,:) :: dtend integer, intent(in), dimension(:,:) :: dtidx integer, intent(in) :: index_of_process_longwave, index_of_process_shortwave, & index_of_process_pbl, index_of_process_dcnv, index_of_process_scnv, & From eb64212ebb92fa7f950cbd1de7c59f07fd5ca397 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 22 Apr 2024 16:34:47 -0600 Subject: [PATCH 17/40] More bug fixes in physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 and physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 --- .../Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 | 6 +++--- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index a664c4dcd..f61ea76c6 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -120,7 +120,7 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic deltaZc, & ! Layer-thickness, from layer centers (m) deltaP, & ! Layer-thickness (Pa) qc_mynn, & ! - qi_mynn, ! + qi_mynn ! real(kind_phys), dimension(:,:), intent(in), optional :: & cld_pbl_frac ! real(kind_phys), dimension(:,:), intent(inout), optional :: & @@ -151,7 +151,7 @@ subroutine GFS_rrtmgp_cloud_mp_run(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldic cld_swp, & ! Water path for snow hydrometeors cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors + cld_rerain ! Effective radius for rain hydrometeors real(kind_phys), dimension(:,:),intent(inout), optional :: & precip_frac, & ! Precipitation fraction cld_cnv_frac, & ! Cloud-fraction for convective clouds @@ -573,7 +573,7 @@ subroutine cloud_mp_uni(nCol, nLev, nTracers, ncnd, i_cldliq, i_cldice, i_cldrai effrin_cldliq, & ! Effective radius for liquid cloud-particles (microns) effrin_cldice, & ! Effective radius for ice cloud-particles (microns) effrin_cldsnow ! Effective radius for snow cloud-particles (microns) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & effrin_cldrain ! Effective radius for rain cloud-particles (microns) real(kind_phys), dimension(:,:), intent(in) :: & p_lev ! Pressure at model-level interfaces (Pa) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 index 3d3eb2e5d..db660148e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.F90 @@ -68,7 +68,7 @@ subroutine GFS_rrtmgp_cloud_overlap_run(nCol, nLev, yearlen, doSWrad, doLWrad, real(kind_phys), dimension(:), intent(in) :: & lat ! Latitude real(kind_phys), dimension(:,:), intent(in) :: & - cld_frac, ! Total cloud fraction + cld_frac ! Total cloud fraction real(kind_phys), dimension(:,:), intent(in), optional :: & cld_cnv_frac ! Convective cloud-fraction real(kind_phys), dimension(:,:), intent(in), optional :: & From 4e100f808df35c9485c9a9a0b3cc95848b137a4d Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 16:32:33 +0000 Subject: [PATCH 18/40] Add optional attribute to GWD files. --- physics/GWD/cires_ugwp_post.F90 | 5 ++-- physics/GWD/drag_suite.F90 | 15 ++++++------ physics/GWD/gwdc_post.f | 2 +- physics/GWD/gwdps.f | 6 ++--- physics/GWD/rayleigh_damp.f | 3 ++- physics/GWD/ugwpv1_gsldrag.F90 | 23 +++++++++-------- physics/GWD/ugwpv1_gsldrag_post.F90 | 38 ++++++++++++++--------------- physics/GWD/unified_ugwp.F90 | 23 ++++++++--------- physics/GWD/unified_ugwp_post.F90 | 35 +++++++++++++------------- 9 files changed, 79 insertions(+), 71 deletions(-) diff --git a/physics/GWD/cires_ugwp_post.F90 b/physics/GWD/cires_ugwp_post.F90 index f12237e2f..3efb2b7e8 100644 --- a/physics/GWD/cires_ugwp_post.F90 +++ b/physics/GWD/cires_ugwp_post.F90 @@ -33,8 +33,9 @@ subroutine cires_ugwp_post_run (ldiag_ugwp, dtf, im, levs, & real(kind=kind_phys), intent(in), dimension(:) :: tau_mtb, tau_ogw, tau_tofd, tau_ngw real(kind=kind_phys), intent(inout), dimension(:) :: tot_mtb, tot_ogw, tot_tofd, tot_ngw real(kind=kind_phys), intent(inout), dimension(:) :: tot_zmtb, tot_zlwb, tot_zogw - real(kind=kind_phys), intent(in), dimension(:,:) :: gw_dtdt, gw_dudt, gw_dvdt, dudt_mtb, dudt_ogw, dudt_tms - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_mtb, du3dt_ogw, du3dt_tms, du3dt_ngw, dv3dt_ngw + real(kind=kind_phys), intent(in), dimension(:,:) :: gw_dtdt, gw_dudt, gw_dvdt, dudt_mtb, dudt_tms + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_ogw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms, du3dt_ngw, dv3dt_ngw real(kind=kind_phys), intent(inout), dimension(:,:) :: dtdt, dudt, dvdt character(len=*), intent(out) :: errmsg diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index ff68f4216..8f292cde7 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -328,9 +328,10 @@ subroutine drag_suite_run( & logical, intent(in) :: lprnt integer, intent(in) :: KPBL(:) real(kind=kind_phys), intent(in) :: deltim, G, CP, RD, RV, cdmbgwd(:) - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) logical, intent(in) :: ldiag3d - integer, intent(in) :: dtidx(:,:), index_of_temperature, & + integer, intent(in) :: dtidx(:,:) + integer, intent(in) :: index_of_temperature, & & index_of_process_orographic_gwd, index_of_x_wind, index_of_y_wind integer :: kpblmax @@ -353,7 +354,7 @@ subroutine drag_suite_run( & real(kind=kind_phys), intent(in) :: var(:),oc1(:), & & oa4(:,:),ol4(:,:), & & dx(:) - real(kind=kind_phys), intent(in) :: varss(:),oc1ss(:), & + real(kind=kind_phys), intent(in), optional :: varss(:),oc1ss(:), & & oa4ss(:,:),ol4ss(:,:) real(kind=kind_phys), intent(in) :: THETA(:),SIGMA(:), & & GAMMA(:),ELVMAX(:) @@ -361,8 +362,8 @@ subroutine drag_suite_run( & ! added for small-scale orographic wave drag real(kind=kind_phys), dimension(im,km) :: utendwave,vtendwave,thx,thvx real(kind=kind_phys), intent(in) :: br1(:), & - & hpbl(:), & & slmsk(:) + real(kind=kind_phys), intent(in), optional :: hpbl(:) real(kind=kind_phys), dimension(im) :: govrth,xland !real(kind=kind_phys), dimension(im,km) :: dz2 real(kind=kind_phys) :: tauwavex0,tauwavey0, & @@ -374,7 +375,7 @@ subroutine drag_suite_run( & !SPP real(kind=kind_phys), dimension(im) :: var_stoch, varss_stoch, & varmax_fd_stoch - real(kind=kind_phys), intent(in) :: spp_wts_gwd(:,:) + real(kind=kind_phys), intent(in), optional :: spp_wts_gwd(:,:) integer, intent(in) :: spp_gwd real(kind=kind_phys), dimension(im) :: rstoch @@ -383,12 +384,12 @@ subroutine drag_suite_run( & real(kind=kind_phys), intent(inout) :: & & dusfc(:), dvsfc(:) !Output (optional): - real(kind=kind_phys), intent(inout) :: & + real(kind=kind_phys), intent(inout), optional :: & & dusfc_ms(:),dvsfc_ms(:), & & dusfc_bl(:),dvsfc_bl(:), & & dusfc_ss(:),dvsfc_ss(:), & & dusfc_fd(:),dvsfc_fd(:) - real(kind=kind_phys), intent(inout) :: & + real(kind=kind_phys), intent(inout), optional :: & & dtaux2d_ms(:,:),dtauy2d_ms(:,:), & & dtaux2d_bl(:,:),dtauy2d_bl(:,:), & & dtaux2d_ss(:,:),dtauy2d_ss(:,:), & diff --git a/physics/GWD/gwdc_post.f b/physics/GWD/gwdc_post.f index 62891ffd4..ab2043fec 100644 --- a/physics/GWD/gwdc_post.f +++ b/physics/GWD/gwdc_post.f @@ -79,4 +79,4 @@ subroutine gwdc_post_run( & end subroutine gwdc_post_run - end module gwdc_post \ No newline at end of file + end module gwdc_post diff --git a/physics/GWD/gwdps.f b/physics/GWD/gwdps.f index 273c2d5dc..ca2efeef4 100644 --- a/physics/GWD/gwdps.f +++ b/physics/GWD/gwdps.f @@ -315,11 +315,11 @@ subroutine gwdps_run( & & THETA(:), SIGMA(:), GAMMA(:) real(kind=kind_phys), intent(inout) :: DUSFC(:), DVSFC(:), & & RDXZB(:) - real(kind=kind_phys), intent(inout) :: dtaux2d_ms(:,:), & + real(kind=kind_phys), intent(inout), optional :: dtaux2d_ms(:,:), & & dtauy2d_ms(:,:), dtaux2d_bl(:,:), & & dtauy2d_bl(:,:) - real(kind=kind_phys), intent(inout) :: dusfc_ms(:), dvsfc_ms(:), & - & dusfc_bl(:), dvsfc_bl(:) + real(kind=kind_phys), intent(inout), optional :: dusfc_ms(:), & + & dvsfc_ms(:), dusfc_bl(:), dvsfc_bl(:) integer, intent(in) :: nmtvr logical, intent(in) :: lprnt logical, intent(in) :: ldiag_ugwp diff --git a/physics/GWD/rayleigh_damp.f b/physics/GWD/rayleigh_damp.f index abbac041c..f8b4ac6a6 100644 --- a/physics/GWD/rayleigh_damp.f +++ b/physics/GWD/rayleigh_damp.f @@ -70,7 +70,8 @@ subroutine rayleigh_damp_run ( & real(kind=kind_phys),intent(in) :: U1(:,:), V1(:,:) real(kind=kind_phys),intent(inout) :: A(:,:), B(:,:), C(:,:) real(kind=kind_phys),optional, intent(inout) :: dtend(:,:,:) - integer, intent(in) :: dtidx(:,:), & + integer, intent(in) :: dtidx(:,:) + integer, intent(in) :: & & index_of_process_rayleigh_damping, index_of_temperature, & & index_of_x_wind, index_of_y_wind character(len=*), intent(out) :: errmsg diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 9303e0221..09eda6b1d 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -82,7 +82,7 @@ subroutine ugwpv1_gsldrag_init ( & integer, intent (in) :: me integer, intent (in) :: master integer, intent (in) :: nlunit - character(len=*), intent (in) :: input_nml_file(:) + character(len=*), intent (in), optional :: input_nml_file(:) integer, intent (in) :: logunit integer, intent (in) :: jdat(:) integer, intent (in) :: lonr @@ -378,8 +378,9 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, real(kind=kind_phys), intent(in), dimension(:) :: elvmax real(kind=kind_phys), intent(in), dimension(:,:) :: clx, oa4 - real(kind=kind_phys), intent(in), dimension(:) :: varss,oc1ss,dx - real(kind=kind_phys), intent(in), dimension(:,:) :: oa4ss,ol4ss + real(kind=kind_phys), intent(in), dimension(:) :: dx + real(kind=kind_phys), intent(in), dimension(:), optional :: varss,oc1ss + real(kind=kind_phys), intent(in), dimension(:,:), optional :: oa4ss,ol4ss !===== !ccpp-style passing constants, I prefer to take them out from the "call-subr" list @@ -398,7 +399,8 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, integer, intent(in), dimension(:) :: kpbl real(kind=kind_phys), intent(in), dimension(:) :: rain - real(kind=kind_phys), intent(in), dimension(:) :: br1, hpbl, slmsk + real(kind=kind_phys), intent(in), dimension(:) :: br1, slmsk + real(kind=kind_phys), intent(in), dimension(:), optional :: hpbl ! ! moved to GFS_phys_time_vary ! real(kind=kind_phys), intent(in), dimension(:) :: ddy_j1tau, ddy_j2tau @@ -407,7 +409,7 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, !Output (optional): - real(kind=kind_phys), intent(out), dimension(:) :: & + real(kind=kind_phys), intent(out), dimension(:), optional :: & du_ogwcol, dv_ogwcol, du_oblcol, dv_oblcol, & du_osscol, dv_osscol, du_ofdcol, dv_ofdcol ! @@ -417,11 +419,11 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, real(kind=kind_phys), intent(out), dimension(:) :: dusfcg, dvsfcg real(kind=kind_phys), intent(out), dimension(:) :: tau_ogw, tau_ngw, tau_oss - real(kind=kind_phys), intent(out) , dimension(:,:) :: & + real(kind=kind_phys), intent(out) , dimension(:,:), optional :: & dudt_ogw, dvdt_ogw, dudt_obl, dvdt_obl, & dudt_oss, dvdt_oss, dudt_ofd, dvdt_ofd - real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_ngw, dvdt_ngw, kdis_ngw + real(kind=kind_phys), intent(out) , dimension(:,:), optional :: dudt_ngw, dvdt_ngw, kdis_ngw real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_gw, dvdt_gw, kdis_gw real(kind=kind_phys), intent(out) , dimension(:,:) :: dtdt_ngw, dtdt_gw @@ -431,14 +433,15 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, ! real(kind=kind_phys), intent(inout), dimension(:,:) :: dudt, dvdt, dtdt - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) - integer, intent(in) :: dtidx(:,:), & + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) + integer, intent(in) :: dtidx(:,:) + integer, intent(in) :: & index_of_x_wind, index_of_y_wind, index_of_temperature, & index_of_process_orographic_gwd, index_of_process_nonorographic_gwd real(kind=kind_phys), intent(out), dimension(:) :: rdxzb ! for stoch phys. mtb-level - real(kind=kind_phys), intent(in) :: spp_wts_gwd(:,:) + real(kind=kind_phys), intent(in), optional :: spp_wts_gwd(:,:) integer, intent(in) :: spp_gwd character(len=*), intent(out) :: errmsg diff --git a/physics/GWD/ugwpv1_gsldrag_post.F90 b/physics/GWD/ugwpv1_gsldrag_post.F90 index 8c6704dc5..1d3703001 100644 --- a/physics/GWD/ugwpv1_gsldrag_post.F90 +++ b/physics/GWD/ugwpv1_gsldrag_post.F90 @@ -40,25 +40,25 @@ subroutine ugwpv1_gsldrag_post_run ( im, levs, ldiag_ugwp, & real(kind=kind_phys), intent(inout), dimension(:) :: tot_zmtb, tot_zlwb, tot_zogw real(kind=kind_phys), intent(in), dimension(:,:) :: dtdt_gw, dudt_gw, dvdt_gw - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_obl, dvdt_obl, dudt_ogw - real(kind=kind_phys), intent(in), dimension(:,:) :: dvdt_ogw, dudt_ofd, dvdt_ofd - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_oss, dvdt_oss - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_mtb, du3dt_ogw, du3dt_tms - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_ngw, dv3dt_ngw - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_ngw, dvdt_ngw, dtdt_ngw - real(kind=kind_phys), intent(inout), dimension(:,:) :: ldu3dt_ngw, ldv3dt_ngw, ldt3dt_ngw - real(kind=kind_phys), intent(inout), dimension(:,:) :: dws3dt_ogw, dws3dt_obl - real(kind=kind_phys), intent(inout), dimension(:,:) :: dws3dt_oss, dws3dt_ofd - real(kind=kind_phys), intent(inout), dimension(:,:) :: ldu3dt_ogw, ldu3dt_obl - real(kind=kind_phys), intent(inout), dimension(:,:) :: ldu3dt_oss, ldu3dt_ofd - real(kind=kind_phys), intent(in), dimension(:) :: du_ogwcol, dv_ogwcol - real(kind=kind_phys), intent(in), dimension(:) :: dv_oblcol - real(kind=kind_phys), intent(in), dimension(:) :: du_osscol, dv_osscol - real(kind=kind_phys), intent(in), dimension(:) :: dv_ofdcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_ogwcol, dv3_ogwcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_oblcol, dv3_oblcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_osscol, dv3_osscol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_ofdcol, dv3_ofdcol + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_obl, dvdt_obl, dudt_ogw + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dvdt_ogw, dudt_ofd, dvdt_ofd + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_oss, dvdt_oss + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_ngw, dv3dt_ngw + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_ngw, dvdt_ngw, dtdt_ngw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: ldu3dt_ngw, ldv3dt_ngw, ldt3dt_ngw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: dws3dt_ogw, dws3dt_obl + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: dws3dt_oss, dws3dt_ofd + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: ldu3dt_ogw, ldu3dt_obl + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: ldu3dt_oss, ldu3dt_ofd + real(kind=kind_phys), intent(in), dimension(:), optional :: du_ogwcol, dv_ogwcol + real(kind=kind_phys), intent(in), dimension(:), optional :: dv_oblcol + real(kind=kind_phys), intent(in), dimension(:), optional :: du_osscol, dv_osscol + real(kind=kind_phys), intent(in), dimension(:), optional :: dv_ofdcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_ogwcol, dv3_ogwcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_oblcol, dv3_oblcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_osscol, dv3_osscol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_ofdcol, dv3_ofdcol real(kind=kind_phys), intent(inout), dimension(:,:) :: dtdt, dudt, dvdt diff --git a/physics/GWD/unified_ugwp.F90 b/physics/GWD/unified_ugwp.F90 index fcdee3b5d..4f880573c 100644 --- a/physics/GWD/unified_ugwp.F90 +++ b/physics/GWD/unified_ugwp.F90 @@ -75,7 +75,7 @@ subroutine unified_ugwp_init (me, master, nlunit, input_nml_file, logunit, & integer, intent (in) :: me integer, intent (in) :: master integer, intent (in) :: nlunit - character(len=*), intent (in) :: input_nml_file(:) + character(len=*), intent (in), optional :: input_nml_file(:) integer, intent (in) :: logunit integer, intent (in) :: jdat(:) integer, intent (in) :: lonr @@ -272,10 +272,11 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt integer, intent(in), dimension(:) :: kpbl real(kind=kind_phys), intent(in), dimension(:) :: ak, bk real(kind=kind_phys), intent(in), dimension(:) :: oro, oro_uf, hprime, oc, theta, sigma, gamma - real(kind=kind_phys), intent(in), dimension(:) :: varss,oc1ss, dx + real(kind=kind_phys), intent(in), dimension(:), optional :: varss,oc1ss + real(kind=kind_phys), intent(in), dimension(:) :: dx !vay-nov 2020 - real(kind=kind_phys), intent(in), dimension(:,:) :: oa4ss,ol4ss + real(kind=kind_phys), intent(in), dimension(:,:), optional :: oa4ss,ol4ss logical, intent(in) :: flag_for_gwd_generic_tend @@ -292,20 +293,19 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt logical, intent(in) :: do_tofd, ldiag_ugwp, ugwp_seq_update !Output (optional): - real(kind=kind_phys), intent(out) :: & + real(kind=kind_phys), intent(out), optional :: & & dusfc_ms(:),dvsfc_ms(:), & & dusfc_bl(:),dvsfc_bl(:), & & dusfc_ss(:),dvsfc_ss(:), & & dusfc_fd(:),dvsfc_fd(:) - real(kind=kind_phys), intent(out) :: & + real(kind=kind_phys), intent(out), optional :: & & dtaux2d_ms(:,:),dtauy2d_ms(:,:), & & dtaux2d_bl(:,:),dtauy2d_bl(:,:), & & dtaux2d_ss(:,:),dtauy2d_ss(:,:), & & dtaux2d_fd(:,:),dtauy2d_fd(:,:), & & dudt_ngw(:,:),dvdt_ngw(:,:),dtdt_ngw(:,:) - + real(kind=kind_phys), intent(in), optional :: hpbl(:) real(kind=kind_phys), intent(in) :: br1(:), & - & hpbl(:), & & slmsk(:) real(kind=kind_phys), intent(out), dimension(:) :: dusfcg, dvsfcg @@ -314,14 +314,15 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt real(kind=kind_phys), intent(out), dimension(:,:) :: gw_dudt, gw_dvdt, gw_dtdt, gw_kdis real(kind=kind_phys), intent(out), dimension(:,:) :: dudt_mtb, dudt_tms - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) - integer, intent(in) :: dtidx(:,:), index_of_temperature, index_of_x_wind, & + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) + integer, intent(in) :: dtidx(:,:) + integer, intent(in) :: index_of_temperature, index_of_x_wind, & index_of_y_wind, index_of_process_nonorographic_gwd, & index_of_process_orographic_gwd logical, intent(in) :: ldiag3d, lssav ! These arrays only allocated if ldiag_ugwp = .true. - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_mtb, du3dt_ogw, du3dt_tms + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms real(kind=kind_phys), intent(inout), dimension(:,:) :: dudt, dvdt, dtdt @@ -342,7 +343,7 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt do_gsl_drag_ls_bl, do_gsl_drag_ss, & do_gsl_drag_tofd - real(kind=kind_phys), intent(in) :: spp_wts_gwd(:,:) + real(kind=kind_phys), intent(in), optional :: spp_wts_gwd(:,:) integer, intent(in) :: spp_gwd character(len=*), intent(out) :: errmsg diff --git a/physics/GWD/unified_ugwp_post.F90 b/physics/GWD/unified_ugwp_post.F90 index 9c3717546..47ad40ba9 100644 --- a/physics/GWD/unified_ugwp_post.F90 +++ b/physics/GWD/unified_ugwp_post.F90 @@ -42,23 +42,24 @@ subroutine unified_ugwp_post_run (ldiag3d, ldiag_ugwp, & real(kind=kind_phys), intent(inout), dimension(:) :: tot_mtb, tot_ogw, tot_tofd, tot_ngw real(kind=kind_phys), intent(inout), dimension(:) :: tot_zmtb, tot_zlwb, tot_zogw real(kind=kind_phys), intent(in), dimension(:,:) :: gw_dtdt, gw_dudt, gw_dvdt, dudt_mtb - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_ogw, dvdt_ogw, dudt_tms - real(kind=kind_phys), intent(inout), dimension(:,:) :: du3dt_mtb, du3dt_ogw, du3dt_tms, du3dt_ngw, dv3dt_ngw - real(kind=kind_phys), intent(inout), dimension(:,:) :: ldu3dt_ogw, ldu3dt_obl, ldu3dt_oss, ldu3dt_ofd - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_ngw, dvdt_ngw, dtdt_ngw - real(kind=kind_phys), intent(inout), dimension(:,:) :: ldu3dt_ngw, ldv3dt_ngw, ldt3dt_ngw - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_obl, dvdt_obl - real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_oss, dvdt_oss, dudt_ofd, dvdt_ofd - real(kind=kind_phys), intent(inout), dimension(:,:) :: dws3dt_obl, dws3dt_ogw - real(kind=kind_phys), intent(inout), dimension(:,:) :: dws3dt_oss, dws3dt_ofd - real(kind=kind_phys), intent(in), dimension(:) :: du_ogwcol, dv_ogwcol - real(kind=kind_phys), intent(in), dimension(:) :: du_oblcol, dv_oblcol - real(kind=kind_phys), intent(in), dimension(:) :: du_osscol, dv_osscol - real(kind=kind_phys), intent(in), dimension(:) :: du_ofdcol, dv_ofdcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_ogwcol, dv3_ogwcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_oblcol, dv3_oblcol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_osscol, dv3_osscol - real(kind=kind_phys), intent(inout), dimension(:) :: du3_ofdcol, dv3_ofdcol + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_ogw, dvdt_ogw + real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_tms + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms, du3dt_ngw, dv3dt_ngw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: ldu3dt_ogw, ldu3dt_obl, ldu3dt_oss, ldu3dt_ofd + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_ngw, dvdt_ngw, dtdt_ngw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: ldu3dt_ngw, ldv3dt_ngw, ldt3dt_ngw + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_obl, dvdt_obl + real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_oss, dvdt_oss, dudt_ofd, dvdt_ofd + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: dws3dt_obl, dws3dt_ogw + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: dws3dt_oss, dws3dt_ofd + real(kind=kind_phys), intent(in), dimension(:), optional :: du_ogwcol, dv_ogwcol + real(kind=kind_phys), intent(in), dimension(:), optional :: du_oblcol, dv_oblcol + real(kind=kind_phys), intent(in), dimension(:), optional :: du_osscol, dv_osscol + real(kind=kind_phys), intent(in), dimension(:), optional :: du_ofdcol, dv_ofdcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_ogwcol, dv3_ogwcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_oblcol, dv3_oblcol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_osscol, dv3_osscol + real(kind=kind_phys), intent(inout), dimension(:), optional :: du3_ofdcol, dv3_ofdcol real(kind=kind_phys), intent(inout), dimension(:,:) :: dtdt, dudt, dvdt character(len=*), intent(out) :: errmsg From 1abc8109b662b4f05c29603cc22e01a2e63782f6 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 16:46:46 +0000 Subject: [PATCH 19/40] Add optional attribute to smoke/dust files. --- physics/smoke_dust/rrfs_smoke_postpbl.F90 | 2 +- physics/smoke_dust/rrfs_smoke_wrapper.F90 | 40 +++++++++++------------ 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/physics/smoke_dust/rrfs_smoke_postpbl.F90 b/physics/smoke_dust/rrfs_smoke_postpbl.F90 index 220284dbb..01c85a655 100755 --- a/physics/smoke_dust/rrfs_smoke_postpbl.F90 +++ b/physics/smoke_dust/rrfs_smoke_postpbl.F90 @@ -28,7 +28,7 @@ subroutine rrfs_smoke_postpbl_run(ite, kte, ntsmoke, ntdust, ntcoarsepm, ntrac, integer, parameter :: its=1,kts=1 real(kind_phys), dimension(:,:,:), intent(inout) :: qgrs - real(kind_phys), dimension(:,:,:), intent(inout) :: chem3d + real(kind_phys), dimension(:,:,:), intent(inout), optional :: chem3d logical, intent(in) :: rrfs_sd character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.F90 b/physics/smoke_dust/rrfs_smoke_wrapper.F90 index 37ffccb35..b6da50ca0 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.F90 +++ b/physics/smoke_dust/rrfs_smoke_wrapper.F90 @@ -139,11 +139,11 @@ subroutine rrfs_smoke_wrapper_run(im, kte, kme, ktau, dt, garea, land, jdate, integer, parameter :: its=1,jts=1,jte=1, kts=1 integer, dimension(:), intent(in) :: land, vegtype_dom, soiltyp - real(kind_phys), dimension(:,:), intent(in) :: smc, tslb - real(kind_phys), dimension(:,:,:), intent(in) :: dust12m_in - real(kind_phys), dimension(:,:,:), intent(in) :: smoke_RRFS - real(kind_phys), dimension(:,:), intent(in) :: smoke2d_RRFS - real(kind_phys), dimension(:,:), intent(in) :: emi_ant_in + real(kind_phys), dimension(:,:), intent(in), optional :: smc, tslb + real(kind_phys), dimension(:,:,:), intent(in), optional :: dust12m_in + real(kind_phys), dimension(:,:,:), intent(in), optional :: smoke_RRFS + real(kind_phys), dimension(:,:), intent(in), optional :: smoke2d_RRFS + real(kind_phys), dimension(:,:), intent(in), optional :: emi_ant_in real(kind_phys), dimension(:), intent(in) :: u10m, v10m, ustar, dswsfc, & recmol, garea, rlat,rlon, tskin, pb2d, zorl, snow, & rain_cpl, rainc_cpl, hf2d, t2m, dpt2m @@ -151,21 +151,21 @@ subroutine rrfs_smoke_wrapper_run(im, kte, kme, ktau, dt, garea, land, jdate, real(kind_phys), dimension(:,:), intent(in) :: ph3d, pr3d real(kind_phys), dimension(:,:), intent(in) :: phl3d, prl3d, tk3d, us3d, vs3d, spechum, w real(kind_phys), dimension(:,:,:), intent(inout) :: qgrs, gq0 - real(kind_phys), dimension(:,:,:), intent(inout) :: chem3d - real(kind_phys), dimension(:), intent(inout) :: emdust, emseas, emanoc - real(kind_phys), dimension(:), intent(inout) :: ebb_smoke_in,coef_bb, frp_output, fhist - real(kind_phys), dimension(:,:), intent(inout) :: ebu_smoke - real(kind_phys), dimension(:), intent(out ) :: fire_heat_flux_out, frac_grid_burned_out - real(kind_phys), dimension(:), intent(inout) :: max_fplume, min_fplume, uspdavg, hpbl_thetav - real(kind_phys), dimension(:), intent(inout) :: hwp, peak_hr_out - real(kind_phys), dimension(:), intent(inout) :: hwp_ave - real(kind_phys), dimension(:,:), intent(inout) :: nwfa, nifa - real(kind_phys), dimension(:,:), intent(inout) :: ddvel_inout - real(kind_phys), dimension(:,:), intent(inout) :: drydep_flux_out - real(kind_phys), dimension(:,:), intent(inout) :: wetdpr - real(kind_phys), dimension(:), intent(in) :: wetness - real(kind_phys), dimension(:), intent(out) :: lu_nofire_out,lu_qfire_out - integer, dimension(:), intent(out) :: fire_type_out + real(kind_phys), dimension(:,:,:), intent(inout), optional :: chem3d + real(kind_phys), dimension(:), intent(inout), optional :: emdust, emseas, emanoc + real(kind_phys), dimension(:), intent(inout), optional :: ebb_smoke_in,coef_bb, frp_output, fhist + real(kind_phys), dimension(:,:), intent(inout), optional :: ebu_smoke + real(kind_phys), dimension(:), intent(out ), optional :: fire_heat_flux_out, frac_grid_burned_out + real(kind_phys), dimension(:), intent(inout), optional :: max_fplume, min_fplume, uspdavg, hpbl_thetav + real(kind_phys), dimension(:), intent(inout), optional :: hwp, peak_hr_out + real(kind_phys), dimension(:), intent(inout), optional :: hwp_ave + real(kind_phys), dimension(:,:), intent(inout), optional :: nwfa, nifa + real(kind_phys), dimension(:,:), intent(inout), optional :: ddvel_inout + real(kind_phys), dimension(:,:), intent(inout), optional :: drydep_flux_out + real(kind_phys), dimension(:,:), intent(inout), optional :: wetdpr + real(kind_phys), dimension(:), intent(in), optional :: wetness + real(kind_phys), dimension(:), intent(out), optional :: lu_nofire_out,lu_qfire_out + integer, dimension(:), intent(out), optional :: fire_type_out integer, intent(in) :: imp_physics, imp_physics_thompson integer, dimension(:), intent(in) :: kpbl real(kind_phys), dimension(:), intent(in) :: oro From 26937e4c2b53deef277faccddea68d2a4a810dba Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 17:14:31 +0000 Subject: [PATCH 20/40] Add optional attribute to MP files. --- physics/MP/Ferrier_Aligo/mp_fer_hires.F90 | 2 +- physics/MP/GFDL/fv_sat_adj.F90 | 2 +- physics/MP/Morrison_Gettelman/m_micro.F90 | 15 +++---- .../MP/Morrison_Gettelman/m_micro_post.F90 | 12 +++--- physics/MP/Morrison_Gettelman/m_micro_pre.F90 | 11 +++-- physics/MP/NSSL/mp_nssl.F90 | 40 +++++++++---------- physics/MP/Thompson/mp_thompson.F90 | 32 +++++++-------- physics/MP/Zhao_Carr/zhaocarr_gscond.f | 2 +- 8 files changed, 58 insertions(+), 58 deletions(-) diff --git a/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 b/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 index 47e80e9d9..f4fe9b62a 100644 --- a/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 +++ b/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 @@ -149,7 +149,7 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT ,SPEC_ADV & real(kind_phys), intent(inout) :: prec(:) real(kind_phys), intent(inout) :: refl_10cm(:,:) - real(kind_phys), intent(in ) :: rhgrd + real(kind_phys), intent(in ), optional :: rhgrd real(kind_phys), intent(in ) :: dx(:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/MP/GFDL/fv_sat_adj.F90 b/physics/MP/GFDL/fv_sat_adj.F90 index 2207f5755..ad8e5af0e 100644 --- a/physics/MP/GFDL/fv_sat_adj.F90 +++ b/physics/MP/GFDL/fv_sat_adj.F90 @@ -263,7 +263,7 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz real(kind=kind_dyn), intent( out) :: te0(isd:ied, jsd:jed, 1:km) ! If multi-gases physics are not used, ngas is one and qvi identical to qv integer, intent(in) :: ngas - real(kind=kind_dyn), intent(inout) :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas) + real(kind=kind_dyn), intent(inout), optional :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas) real(kind=kind_dyn), intent(inout) :: qv(isd:ied, jsd:jed, 1:km) real(kind=kind_dyn), intent(inout) :: ql(isd:ied, jsd:jed, 1:km) real(kind=kind_dyn), intent(inout) :: qi(isd:ied, jsd:jed, 1:km) diff --git a/physics/MP/Morrison_Gettelman/m_micro.F90 b/physics/MP/Morrison_Gettelman/m_micro.F90 index 714372d53..c712d5fe8 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro.F90 @@ -199,7 +199,7 @@ subroutine m_micro_run( im, lm, flipv, dt_i & & prsl_i,u_i,v_i,phil, omega_i, QLLS_i,QILS_i, & & lwheat_i,swheat_i real (kind=kind_phys), dimension(:,0:),intent(in):: prsi_i, phii - real (kind=kind_phys), dimension(:,:), intent(in) :: & + real (kind=kind_phys), dimension(:,:),intent(in), optional :: & & CNV_DQLDT_i, CLCN_i, QLCN_i, QICN_i, & & CNV_MFD_i, cf_upi, CNV_FICE_i, CNV_NDROP_i, & & CNV_NICE_i, w_upi @@ -214,8 +214,9 @@ subroutine m_micro_run( im, lm, flipv, dt_i & ! & CNVPRCP ! output - real (kind=kind_phys),dimension(:,:), intent(out) :: lwm_o, qi_o, & - cldreffl, cldreffi, cldreffr, cldreffs, cldreffg + real (kind=kind_phys),dimension(:,:), intent(out) :: lwm_o, qi_o + real (kind=kind_phys),dimension(:,:), intent(out), optional :: & + cldreffl, cldreffi, cldreffr, cldreffs, cldreffg real (kind=kind_phys),dimension(:), intent(out) :: rn_o, sr_o character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg @@ -224,10 +225,10 @@ subroutine m_micro_run( im, lm, flipv, dt_i & ! Anning Cheng 10/24/2016 twat for total water, diagnostic purpose integer, dimension(:), intent(inout):: KCBL real (kind=kind_phys),dimension(:,:),intent(inout):: q_io, t_io, & - & ncpl_io,ncpi_io,CLLS_io - real (kind=kind_phys),dimension(:,:),intent(inout):: rnw_io,snw_io,& - & ncpr_io, ncps_io, & - & qgl_io, ncgl_io + & ncpi_io + real (kind=kind_phys),dimension(:,:),intent(inout), optional :: & + rnw_io, snw_io, ncpr_io, ncps_io, qgl_io, ncgl_io, ncpl_io, & + CLLS_io ! *GJF !Moo real (kind=kind_phys),dimension(im,lm),intent(inout):: CLLS_io diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.F90 b/physics/MP/Morrison_Gettelman/m_micro_post.F90 index a61ee4874..0a91e25ef 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro_post.F90 @@ -22,12 +22,12 @@ subroutine m_micro_post_run( & integer, intent(in) :: im, levs, fprcp logical, intent(in) :: mg3_as_mg2 - real(kind=kind_phys), intent(in ) :: ncpr(:,:) - real(kind=kind_phys), intent(in ) :: ncps(:,:) - real(kind=kind_phys), intent(in ) :: ncgl(:,:) - real(kind=kind_phys), intent(inout) :: qrn(:,:) - real(kind=kind_phys), intent(inout) :: qsnw(:,:) - real(kind=kind_phys), intent(inout) :: qgl(:,:) + real(kind=kind_phys), intent(in ),optional :: ncpr(:,:) + real(kind=kind_phys), intent(in ),optional :: ncps(:,:) + real(kind=kind_phys), intent(in ),optional :: ncgl(:,:) + real(kind=kind_phys), intent(inout),optional :: qrn(:,:) + real(kind=kind_phys), intent(inout),optional :: qsnw(:,:) + real(kind=kind_phys), intent(inout),optional :: qgl(:,:) real(kind=kind_phys), intent(in ) :: gq0_ice(:,:) real(kind=kind_phys), intent(out ) :: gq0_rain(:,:) real(kind=kind_phys), intent(out ) :: gq0_snow(:,:) diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.F90 b/physics/MP/Morrison_Gettelman/m_micro_pre.F90 index 9893e0db1..4709a1611 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.F90 @@ -25,16 +25,15 @@ subroutine m_micro_pre_run (im, levs, do_shoc, skip_macro, fprcp, mg3_as_mg2, gq real(kind=kind_phys), intent(in) :: & gq0_ice(:,:), gq0_water(:,:), gq0_rain(:,:), gq0_snow(:,:), & gq0_graupel(:,:), gq0_rain_nc(:,:), gq0_snow_nc(:,:), & - gq0_graupel_nc(:,:), cld_shoc(:,:), cnvc(:,:), cnvw(:,:), & - gt0(:,:) - - real(kind=kind_phys), intent(inout) :: & + gq0_graupel_nc(:,:), cnvc(:,:), cnvw(:,:), gt0(:,:) + real(kind=kind_phys), intent(in), optional :: cld_shoc(:,:) + real(kind=kind_phys), intent(inout), optional :: & qrn(:,:), qsnw(:,:), qgl(:,:), ncpr(:,:), ncps(:,:), ncgl(:,:), & cld_frc_MG(:,:) real(kind=kind_phys), intent(out) :: clw_ice(:,:), clw_water(:,:) - real(kind=kind_phys), intent(in) :: clcn(:,:) + real(kind=kind_phys), intent(in), optional :: clcn(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg @@ -132,4 +131,4 @@ subroutine m_micro_pre_run (im, levs, do_shoc, skip_macro, fprcp, mg3_as_mg2, gq end subroutine m_micro_pre_run - end module m_micro_pre \ No newline at end of file + end module m_micro_pre diff --git a/physics/MP/NSSL/mp_nssl.F90 b/physics/MP/NSSL/mp_nssl.F90 index 5c47bce73..7b21fbbe1 100644 --- a/physics/MP/NSSL/mp_nssl.F90 +++ b/physics/MP/NSSL/mp_nssl.F90 @@ -68,12 +68,12 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & real(kind_phys), intent(inout) :: qi (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qs (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qh (:,:) !(1:ncol,1:nlev) graupel - real(kind_phys), intent(inout) :: ccw(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: ccw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: crw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: cci(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: csw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: chw(:,:) !(1:ncol,1:nlev) graupel number - real(kind_phys), intent(inout) :: vh (:,:) !(1:ncol,1:nlev) graupel volume + real(kind_phys), intent(inout), optional :: vh (:,:) !(1:ncol,1:nlev) graupel volume ! Local variables: dimensions used in nssl_init integer :: ims,ime, jms,jme, kms,kme, nx, nz, i,k @@ -224,25 +224,25 @@ subroutine mp_nssl_run(ncol, nlev, con_g, con_rd, mpirank, & ! Hydrometeors logical, intent(in ) :: convert_dry_rho real(kind_phys), intent(inout) :: spechum(:,:) !(1:ncol,1:nlev) - real(kind_phys), intent(inout) :: cccn(:,:) !(1:ncol,1:nlev) - real(kind_phys), intent(inout) :: cccna(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: cccn(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: cccna(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qc (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qr (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qi (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qs (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qh (:,:) !(1:ncol,1:nlev) graupel - real(kind_phys), intent(inout) :: qhl(:,:) !(1:ncol,1:nlev) hail - real(kind_phys), intent(inout) :: ccw(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: qhl(:,:) !(1:ncol,1:nlev) hail + real(kind_phys), intent(inout), optional :: ccw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: crw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: cci(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: csw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: chw(:,:) !(1:ncol,1:nlev) graupel number - real(kind_phys), intent(inout) :: chl(:,:) !(1:ncol,1:nlev) hail number - real(kind_phys), intent(inout) :: vh (:,:) !(1:ncol,1:nlev) graupel volume - real(kind_phys), intent(inout) :: vhl(:,:) !(1:ncol,1:nlev) hail volume - real(kind_phys), intent(inout) :: zrw(:,:) !(1:ncol,1:nlev) rain reflectivity - real(kind_phys), intent(inout) :: zhw(:,:) !(1:ncol,1:nlev) graupel reflectivity - real(kind_phys), intent(inout) :: zhl(:,:) !(1:ncol,1:nlev) hail reflectivity + real(kind_phys), intent(inout), optional :: chl(:,:) !(1:ncol,1:nlev) hail number + real(kind_phys), intent(inout), optional :: vh (:,:) !(1:ncol,1:nlev) graupel volume + real(kind_phys), intent(inout), optional :: vhl(:,:) !(1:ncol,1:nlev) hail volume + real(kind_phys), intent(inout), optional :: zrw(:,:) !(1:ncol,1:nlev) rain reflectivity + real(kind_phys), intent(inout), optional :: zhw(:,:) !(1:ncol,1:nlev) graupel reflectivity + real(kind_phys), intent(inout), optional :: zhl(:,:) !(1:ncol,1:nlev) hail reflectivity ! State variables and timestep information real(kind_phys), intent(inout) :: tgrs (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(in ) :: prsl (:,:) !(1:ncol,1:nlev) @@ -252,20 +252,20 @@ subroutine mp_nssl_run(ncol, nlev, con_g, con_rd, mpirank, & real(kind_phys), intent(in ) :: dtp ! Precip/rain/snow/graupel fall amounts and fraction of frozen precip real(kind_phys), intent( out) :: prcp (:) !(1:ncol) - real(kind_phys), intent( out) :: rain (:) !(1:ncol) - real(kind_phys), intent( out) :: graupel(:) !(1:ncol) - real(kind_phys), intent( out) :: ice (:) !(1:ncol) - real(kind_phys), intent( out) :: snow (:) !(1:ncol) + real(kind_phys), intent( out), optional :: rain (:) !(1:ncol) + real(kind_phys), intent( out), optional :: graupel(:) !(1:ncol) + real(kind_phys), intent( out), optional :: ice (:) !(1:ncol) + real(kind_phys), intent( out), optional :: snow (:) !(1:ncol) real(kind_phys), intent( out) :: sr (:) !(1:ncol) ! Radar reflectivity real(kind_phys), intent(inout) :: refl_10cm(:,:) !(1:ncol,1:nlev) logical, intent(in ) :: do_radar_ref, first_time_step logical, intent(in) :: restart ! Cloud effective radii - real(kind_phys), intent(inout) :: re_cloud(:,:) ! (1:ncol,1:nlev) - real(kind_phys), intent(inout) :: re_ice(:,:) ! (1:ncol,1:nlev) - real(kind_phys), intent(inout) :: re_snow(:,:) ! (1:ncol,1:nlev) - real(kind_phys), intent(inout) :: re_rain(:,:) ! (1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: re_cloud(:,:) ! (1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: re_ice(:,:) ! (1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: re_snow(:,:) ! (1:ncol,1:nlev) + real(kind_phys), intent(inout), optional :: re_rain(:,:) ! (1:ncol,1:nlev) integer, intent(in) :: nleffr, nieffr, nseffr, nreffr integer, intent(in) :: imp_physics integer, intent(in) :: imp_physics_nssl diff --git a/physics/MP/Thompson/mp_thompson.F90 b/physics/MP/Thompson/mp_thompson.F90 index 120ca30a7..4bb9964ba 100644 --- a/physics/MP/Thompson/mp_thompson.F90 +++ b/physics/MP/Thompson/mp_thompson.F90 @@ -64,11 +64,11 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, & ! Aerosols logical, intent(in ) :: is_aerosol_aware logical, intent(in ) :: merra2_aerosol_aware - real(kind_phys), intent(inout) :: nc(:,:) - real(kind_phys), intent(inout) :: nwfa(:,:) - real(kind_phys), intent(inout) :: nifa(:,:) - real(kind_phys), intent(inout) :: nwfa2d(:) - real(kind_phys), intent(inout) :: nifa2d(:) + real(kind_phys), intent(inout), optional :: nc(:,:) + real(kind_phys), intent(inout), optional :: nwfa(:,:) + real(kind_phys), intent(inout), optional :: nifa(:,:) + real(kind_phys), intent(inout), optional :: nwfa2d(:) + real(kind_phys), intent(inout), optional :: nifa2d(:) real(kind_phys), intent(in) :: aerfld(:,:,:) ! State variables real(kind_phys), intent(in ) :: tgrs(:,:) @@ -83,7 +83,7 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, & integer, intent(in ) :: threads ! Extended diagnostics logical, intent(in ) :: ext_diag - real(kind_phys), intent(in ) :: diag3d(:,:,:) + real(kind_phys), intent(in ), optional :: diag3d(:,:,:) ! CCPP error handling character(len=*), intent( out) :: errmsg integer, intent( out) :: errflg @@ -382,10 +382,10 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & real, intent(in ) :: dt_inner ! Precip/rain/snow/graupel fall amounts and fraction of frozen precip real(kind_phys), intent(inout) :: prcp(:) - real(kind_phys), intent(inout) :: rain(:) - real(kind_phys), intent(inout) :: graupel(:) - real(kind_phys), intent(inout) :: ice(:) - real(kind_phys), intent(inout) :: snow(:) + real(kind_phys), intent(inout), optional :: rain(:) + real(kind_phys), intent(inout), optional :: graupel(:) + real(kind_phys), intent(inout), optional :: ice(:) + real(kind_phys), intent(inout), optional :: snow(:) real(kind_phys), intent( out) :: sr(:) ! Radar reflectivity real(kind_phys), intent(inout) :: refl_10cm(:,:) @@ -400,7 +400,7 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & integer, intent(in) :: mpiroot ! Extended diagnostic output logical, intent(in) :: ext_diag - real(kind_phys), target, intent(inout) :: diag3d(:,:,:) + real(kind_phys), target, intent(inout), optional :: diag3d(:,:,:) logical, intent(in) :: reset_diag3d ! CCPP error handling @@ -410,15 +410,15 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & ! SPP integer, intent(in) :: spp_mp integer, intent(in) :: n_var_spp - real(kind_phys), intent(in) :: spp_wts_mp(:,:) - real(kind_phys), intent(in) :: spp_prt_list(:) - character(len=10), intent(in) :: spp_var_list(:) + real(kind_phys), intent(in), optional :: spp_wts_mp(:,:) + real(kind_phys), intent(in), optional :: spp_prt_list(:) + character(len=10), intent(in), optional :: spp_var_list(:) real(kind_phys), intent(in) :: spp_stddev_cutoff(:) logical, intent (in) :: cplchm ! ice and liquid water 3d precipitation fluxes - only allocated if cplchm is .true. - real(kind=kind_phys), intent(inout), dimension(:,:) :: pfi_lsan - real(kind=kind_phys), intent(inout), dimension(:,:) :: pfl_lsan + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: pfi_lsan + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: pfl_lsan ! Local variables diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.f b/physics/MP/Zhao_Carr/zhaocarr_gscond.f index 50f9358f4..65091f59f 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.f +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.f @@ -103,7 +103,7 @@ subroutine zhaocarr_gscond_run (im,km,dt,dtf,prsl,ps,q,clw1 & real(kind=kind_phys), intent(inout) :: q(:,:) real(kind=kind_phys), intent(in) :: clw1(:,:), clw2(:,:) real(kind=kind_phys), intent(out) :: cwm(:,:) - real(kind=kind_phys), intent(inout) :: t(:,:) & + real(kind=kind_phys), intent(inout), optional :: t(:,:) & &, tp(:,:), qp(:,:), psp(:) & &, tp1(:,:), qp1(:,:), psp1(:) real(kind=kind_phys), intent(in) :: u(:,:) From f8f8c2c86263f3d8c311e22215f8282e830f5969 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 17:48:20 +0000 Subject: [PATCH 21/40] Add optional attribute to Convection files, and MP file omitted from previous committ. --- physics/CONV/C3/cu_c3_driver.F90 | 29 +++++++++++-------- physics/CONV/C3/cu_c3_driver_post.F90 | 15 +++++----- physics/CONV/C3/cu_c3_driver_pre.F90 | 16 +++++----- physics/CONV/Chikira_Sugiyama/cs_conv.F90 | 7 +++-- .../CONV/Chikira_Sugiyama/cs_conv_aw_adj.F90 | 4 +-- physics/CONV/Grell_Freitas/cu_gf_driver.F90 | 28 ++++++++++-------- .../CONV/Grell_Freitas/cu_gf_driver_post.F90 | 15 +++++----- .../CONV/Grell_Freitas/cu_gf_driver_pre.F90 | 19 ++++++------ physics/CONV/RAS/rascnv.F90 | 8 +++-- physics/CONV/SAMF/samfdeepcnv.f | 17 ++++++----- physics/CONV/SAMF/samfshalcnv.f | 11 ++++--- physics/CONV/SAS/sascnvn.F | 6 ++-- physics/CONV/SAS/shalcnv.F | 3 +- physics/CONV/nTiedtke/cu_ntiedtke.F90 | 6 ++-- physics/CONV/nTiedtke/cu_ntiedtke_post.F90 | 4 +-- physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 | 8 ++--- physics/MP/GFDL/gfdl_cloud_microphys.F90 | 12 ++++---- 17 files changed, 115 insertions(+), 93 deletions(-) diff --git a/physics/CONV/C3/cu_c3_driver.F90 b/physics/CONV/C3/cu_c3_driver.F90 index c911ff5e4..8057ed030 100644 --- a/physics/CONV/C3/cu_c3_driver.F90 +++ b/physics/CONV/C3/cu_c3_driver.F90 @@ -111,18 +111,19 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& real (kind=kind_phys), intent(in) :: g,cp,fv,r_d,xlv,r_v,betascu,betamcu,betadcu logical, intent(in ) :: ldiag3d logical, intent(in ) :: progsigma - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) !$acc declare copy(dtend) integer, intent(in) :: dtidx(:,:), & index_of_x_wind, index_of_y_wind, index_of_temperature, & index_of_process_scnv, index_of_process_dcnv, ntqv, ntcw, ntiw !$acc declare copyin(dtidx) - real(kind=kind_phys), dimension( : , : ), intent(in ) :: forcet,forceqv_spechum,w,phil,delp - real(kind=kind_phys), dimension ( : , : ), intent(in ) :: sigmain,qmicro + real(kind=kind_phys), dimension( : , : ), intent(in ), optional :: forcet,forceqv_spechum + real(kind=kind_phys), dimension( : , : ), intent(in ) :: w,phil,delp + real(kind=kind_phys), dimension ( : , : ), intent(in ), optional :: sigmain,qmicro real(kind=kind_phys), dimension( : , : ), intent(inout ) :: t,us,vs - real(kind=kind_phys), dimension( : , : ), intent(inout ) :: qci_conv + real(kind=kind_phys), dimension( : , : ), intent(inout ), optional :: qci_conv real(kind=kind_phys), dimension( : , : ), intent(out ) :: cnvw_moist,cnvc - real(kind=kind_phys), dimension ( : , : ), intent(out ) :: sigmaout + real(kind=kind_phys), dimension ( : , : ), intent(out ), optional :: sigmaout real(kind=kind_phys), dimension( : , : ), intent(inout ) :: cliw, clcw real(kind=kind_phys), dimension ( : , : , :), intent(in ) :: tmf !$acc declare copyin(forcet,forceqv_spechum,w,phil) @@ -134,27 +135,31 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& integer, intent(in) :: dfi_radar_max_intervals real(kind=kind_phys), intent(in) :: fhour, fh_dfi_radar(:) integer, intent(in) :: num_dfi_radar, ix_dfi_radar(:) - real(kind=kind_phys), intent(in) :: cap_suppress(:,:) + real(kind=kind_phys), intent(in), optional :: cap_suppress(:,:) !$acc declare copyin(fh_dfi_radar,ix_dfi_radar,cap_suppress) integer, dimension (:), intent(out) :: hbot,htop,kcnv integer, dimension (:), intent(in) :: xland - real(kind=kind_phys), dimension (:), intent(in) :: pbl,maxMF + real(kind=kind_phys), dimension (:), intent(in) :: pbl + real(kind=kind_phys), dimension (:), intent(in), optional :: maxMF !$acc declare copyout(hbot,htop,kcnv) !$acc declare copyin(xland,pbl) integer, dimension (im) :: tropics !$acc declare create(tropics) ! ruc variable - real(kind=kind_phys), dimension (:), intent(in) :: hfx2,qfx2,psuri,ca_deep - real(kind=kind_phys), dimension (:,:), intent(out) :: ud_mf,dd_mf,dt_mf - real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d,maxupmf,rainevap + real(kind=kind_phys), dimension (:), intent(in) :: hfx2,qfx2,psuri + real(kind=kind_phys), dimension (:), intent(in), optional :: ca_deep + real(kind=kind_phys), dimension (:,:), intent(out), optional :: ud_mf + real(kind=kind_phys), dimension (:,:), intent(out) :: dd_mf,dt_mf + real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d,rainevap + real(kind=kind_phys), dimension (:), intent(out), optional :: maxupmf real(kind=kind_phys), dimension (:,:), intent(in) :: t2di,p2di !$acc declare copyin(hfx2,qfx2,psuri,t2di,p2di) !$acc declare copyout(ud_mf,dd_mf,dt_mf,raincv,cld1d) ! Specific humidity from FV3 real(kind=kind_phys), dimension (:,:), intent(in) :: qv2di_spechum real(kind=kind_phys), dimension (:,:), intent(inout) :: qv_spechum - real(kind=kind_phys), dimension (:), intent(inout) :: aod_gf + real(kind=kind_phys), dimension (:), intent(inout), optional :: aod_gf !$acc declare copyin(qv2di_spechum) copy(qv_spechum,aod_gf) ! Local water vapor mixing ratios and cloud water mixing ratios real(kind=kind_phys), dimension (im,km) :: qv2di, qv, forceqv, cnvw @@ -165,7 +170,7 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& real(kind=kind_phys), intent(in ) :: dt integer, intent(in ) :: imfshalcnv - integer, dimension(:), intent(inout) :: cactiv,cactiv_m + integer, dimension(:), intent(inout), optional :: cactiv,cactiv_m !$acc declare copy(cactiv,cactiv_m) character(len=*), intent(out) :: errmsg diff --git a/physics/CONV/C3/cu_c3_driver_post.F90 b/physics/CONV/C3/cu_c3_driver_post.F90 index d5d2dee3b..28ddbf62b 100644 --- a/physics/CONV/C3/cu_c3_driver_post.F90 +++ b/physics/CONV/C3/cu_c3_driver_post.F90 @@ -26,15 +26,16 @@ subroutine cu_c3_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) real(kind_phys), dimension(:),intent(in) :: garea - real(kind_phys), intent(out) :: prevst(:,:) - real(kind_phys), intent(out) :: prevsq(:,:) - integer, intent(in) :: cactiv(:) - integer, intent(in) :: cactiv_m(:) - real(kind_phys), intent(out) :: conv_act(:) - real(kind_phys), intent(out) :: conv_act_m(:) + real(kind_phys), intent(out), optional :: prevst(:,:) + real(kind_phys), intent(out), optional :: prevsq(:,:) + integer, intent(in), optional :: cactiv(:) + integer, intent(in), optional :: cactiv_m(:) + real(kind_phys), intent(out), optional :: conv_act(:) + real(kind_phys), intent(out), optional :: conv_act_m(:) ! for Radar reflectivity real(kind_phys), intent(in) :: dt - real(kind_phys), intent(in) :: raincv(:), maxupmf(:) + real(kind_phys), intent(in) :: raincv(:) + real(kind_phys), intent(in), optional :: maxupmf(:) real(kind_phys), intent(inout) :: refl_10cm(:,:) character(len=*), intent(out) :: errmsg !$acc declare copyin(t,q,cactiv,cactiv_m) copyout(prevst,prevsq,conv_act,conv_act_m) diff --git a/physics/CONV/C3/cu_c3_driver_pre.F90 b/physics/CONV/C3/cu_c3_driver_pre.F90 index c6e79059b..368687116 100644 --- a/physics/CONV/C3/cu_c3_driver_pre.F90 +++ b/physics/CONV/C3/cu_c3_driver_pre.F90 @@ -30,16 +30,16 @@ subroutine cu_c3_driver_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in) :: prevst(:,:) - real(kind_phys), intent(in) :: prevsq(:,:) + real(kind_phys), intent(in), optional :: prevst(:,:) + real(kind_phys), intent(in), optional :: prevsq(:,:) !$acc declare copyin(t,q,prevst,prevsq) - real(kind_phys), intent(out) :: forcet(:,:) - real(kind_phys), intent(out) :: forceq(:,:) - integer, intent(out) :: cactiv(:) - integer, intent(out) :: cactiv_m(:) + real(kind_phys), intent(out), optional :: forcet(:,:) + real(kind_phys), intent(out), optional :: forceq(:,:) + integer, intent(out), optional :: cactiv(:) + integer, intent(out), optional :: cactiv_m(:) !$acc declare copyout(forcet,forceq,cactiv,cactiv_m) - real(kind_phys), intent(in) :: conv_act(:) - real(kind_phys), intent(in) :: conv_act_m(:) + real(kind_phys), intent(in), optional :: conv_act(:) + real(kind_phys), intent(in), optional :: conv_act_m(:) !$acc declare copyin(conv_act,conv_act_m) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv.F90 b/physics/CONV/Chikira_Sugiyama/cs_conv.F90 index 4e7030dd5..02c834ffa 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv.F90 +++ b/physics/CONV/Chikira_Sugiyama/cs_conv.F90 @@ -195,18 +195,19 @@ subroutine cs_conv_run( IJSDIM , KMAX , ntracp1 , NN, & ! ! modified arguments ! - real(kind_phys), intent(inout) :: CBMFX(:,:) ! cloud base mass flux (kg/m2/s) + real(kind_phys), intent(inout), optional :: CBMFX(:,:) ! cloud base mass flux (kg/m2/s) ! ! output arguments ! ! updraft, downdraft, and detrainment mass flux (kg/m2/s) - real(kind_phys), intent(inout), dimension(:,:) :: ud_mf, dd_mf, dt_mf + real(kind_phys), intent(inout), dimension(:,:), optional :: ud_mf + real(kind_phys), intent(inout), dimension(:,:) :: dd_mf, dt_mf real(kind_phys), intent(out) :: rain1(:) ! lwe thickness of deep convective precipitation amount (m) ! GJF* These variables are conditionally allocated depending on whether the ! Morrison-Gettelman microphysics is used, so they must be declared ! using assumed shape. - real(kind_phys), intent(out), dimension(:,:) :: qlcn, qicn, w_upi,cnv_mfd, & + real(kind_phys), intent(out), dimension(:,:), optional :: qlcn, qicn, w_upi,cnv_mfd, & cnv_dqldt, clcn, cnv_fice, & cnv_ndrop, cnv_nice, cf_upi ! *GJF diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.F90 b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.F90 index bd0444bab..2d74779d1 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.F90 +++ b/physics/CONV/Chikira_Sugiyama/cs_conv_aw_adj.F90 @@ -40,8 +40,8 @@ subroutine cs_conv_aw_adj_run(im, levs, do_cscnv, do_aw, do_shoc, & real(kind_phys), dimension(:,:), intent(in) :: save_t real(kind_phys), dimension(:,:,:), intent(in) :: save_q real(kind_phys), dimension(:,:), intent(in) :: prsi - real(kind_phys), dimension(:,:), intent(inout) :: cldfrac - real(kind_phys), dimension(:,:), intent(inout) :: subcldfrac + real(kind_phys), dimension(:,:), intent(inout), optional :: cldfrac + real(kind_phys), dimension(:,:), intent(inout), optional :: subcldfrac real(kind_phys), dimension(:), intent(inout) :: prcp integer, intent(in ) :: imp_physics, imp_physics_mg character(len=*), intent( out) :: errmsg diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 index 54a23ca74..9db7dcfd9 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 @@ -82,7 +82,7 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& integer :: ichoicem=13 ! 0 2 5 13 integer :: ichoice_s=3 ! 0 1 2 3 integer, intent(in) :: spp_cu_deep ! flag for using SPP perturbations - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in),optional :: & & spp_wts_cu_deep real(kind=kind_phys) :: spp_wts_cu_deep_tmp @@ -102,15 +102,16 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& real (kind=kind_phys), intent(in) :: g,cp,xlv,r_v logical, intent(in ) :: ldiag3d - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) !$acc declare copy(dtend) integer, intent(in) :: dtidx(:,:), & index_of_x_wind, index_of_y_wind, index_of_temperature, & index_of_process_scnv, index_of_process_dcnv, ntqv, ntcw, ntiw !$acc declare copyin(dtidx) - real(kind=kind_phys), dimension( : , : ), intent(in ) :: forcet,forceqv_spechum,w,phil + real(kind=kind_phys), dimension( : , : ), intent(in ), optional :: forcet,forceqv_spechum + real(kind=kind_phys), dimension( : , : ), intent(in ) :: w,phil real(kind=kind_phys), dimension( : , : ), intent(inout ) :: t,us,vs - real(kind=kind_phys), dimension( : , : ), intent(inout ) :: qci_conv + real(kind=kind_phys), dimension( : , : ), intent(inout ), optional :: qci_conv real(kind=kind_phys), dimension( : , : ), intent(out ) :: cnvw_moist,cnvc real(kind=kind_phys), dimension( : , : ), intent(inout ) :: cliw, clcw !$acc declare copyin(forcet,forceqv_spechum,w,phil) @@ -122,27 +123,30 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& integer, intent(in) :: dfi_radar_max_intervals real(kind=kind_phys), intent(in) :: fhour, fh_dfi_radar(:) integer, intent(in) :: num_dfi_radar, ix_dfi_radar(:) - real(kind=kind_phys), intent(in) :: cap_suppress(:,:) + real(kind=kind_phys), intent(in), optional :: cap_suppress(:,:) !$acc declare copyin(fh_dfi_radar,ix_dfi_radar,cap_suppress) integer, dimension (:), intent(out) :: hbot,htop,kcnv integer, dimension (:), intent(in) :: xland - real(kind=kind_phys), dimension (:), intent(in) :: pbl,maxMF + real(kind=kind_phys), dimension (:), intent(in) :: pbl + real(kind=kind_phys), dimension (:), intent(in), optional :: maxMF !$acc declare copyout(hbot,htop,kcnv) !$acc declare copyin(xland,pbl) integer, dimension (im) :: tropics !$acc declare create(tropics) ! ruc variable real(kind=kind_phys), dimension (:), intent(in) :: hfx2,qfx2,psuri - real(kind=kind_phys), dimension (:,:), intent(out) :: ud_mf,dd_mf,dt_mf - real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d,maxupmf + real(kind=kind_phys), dimension (:,:), intent(out) :: dd_mf,dt_mf + real(kind=kind_phys), dimension (:,:), intent(out), optional :: ud_mf + real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d + real(kind=kind_phys), dimension (:), intent(out), optional :: maxupmf real(kind=kind_phys), dimension (:,:), intent(in) :: t2di,p2di !$acc declare copyin(hfx2,qfx2,psuri,t2di,p2di) !$acc declare copyout(ud_mf,dd_mf,dt_mf,raincv,cld1d) ! Specific humidity from FV3 real(kind=kind_phys), dimension (:,:), intent(in) :: qv2di_spechum real(kind=kind_phys), dimension (:,:), intent(inout) :: qv_spechum - real(kind=kind_phys), dimension (:), intent(inout) :: aod_gf + real(kind=kind_phys), dimension (:), intent(inout), optional :: aod_gf !$acc declare copyin(qv2di_spechum) copy(qv_spechum,aod_gf) ! Local water vapor mixing ratios and cloud water mixing ratios real(kind=kind_phys), dimension (im,km) :: qv2di, qv, forceqv, cnvw @@ -153,11 +157,11 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& real(kind=kind_phys), intent(in ) :: dt integer, intent(in ) :: imfshalcnv - integer, dimension(:), intent(inout) :: cactiv,cactiv_m + integer, dimension(:), intent(inout), optional :: cactiv,cactiv_m real(kind_phys), dimension(:), intent(in) :: fscav !$acc declare copyin(fscav) - real(kind_phys), dimension(:,:,:), intent(inout) :: chem3d - real(kind_phys), dimension(:,:), intent(inout) :: wetdpc_deep + real(kind_phys), dimension(:,:,:), intent(inout), optional :: chem3d + real(kind_phys), dimension(:,:), intent(inout), optional :: wetdpc_deep !$acc declare copy(cactiv,cactiv_m,chem3d,wetdpc_deep) character(len=*), intent(out) :: errmsg diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 index 6ed1321bc..02bb3cb84 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 @@ -25,15 +25,16 @@ subroutine cu_gf_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m integer, intent(in) :: im, km real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(out) :: prevst(:,:) - real(kind_phys), intent(out) :: prevsq(:,:) - integer, intent(in) :: cactiv(:) - integer, intent(in) :: cactiv_m(:) - real(kind_phys), intent(out) :: conv_act(:) - real(kind_phys), intent(out) :: conv_act_m(:) + real(kind_phys), intent(out), optional :: prevst(:,:) + real(kind_phys), intent(out), optional :: prevsq(:,:) + integer, intent(in), optional :: cactiv(:) + integer, intent(in), optional :: cactiv_m(:) + real(kind_phys), intent(out), optional :: conv_act(:) + real(kind_phys), intent(out), optional :: conv_act_m(:) logical, intent(in) :: rrfs_sd integer, intent(in) :: ntsmoke, ntdust, ntcoarsepm - real(kind_phys), intent(inout) :: chem3d(:,:,:), gq0(:,:,:) + real(kind_phys), intent(inout), optional :: chem3d(:,:,:) + real(kind_phys), intent(inout) :: gq0(:,:,:) character(len=*), intent(out) :: errmsg !$acc declare copyin(t,q,cactiv,cactiv_m) copyout(prevst,prevsq,conv_act,conv_act_m,chem3d,gq0) integer, intent(out) :: errflg diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 index 7ff66be21..1bc9aed34 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 @@ -32,18 +32,19 @@ subroutine cu_gf_driver_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in) :: prevst(:,:) - real(kind_phys), intent(in) :: prevsq(:,:) + real(kind_phys), intent(in), optional :: prevst(:,:) + real(kind_phys), intent(in), optional :: prevsq(:,:) !$acc declare copyin(t,q,prevst,prevsq) - real(kind_phys), intent(out) :: forcet(:,:) - real(kind_phys), intent(out) :: forceq(:,:) - integer, intent(out) :: cactiv(:) - integer, intent(out) :: cactiv_m(:) + real(kind_phys), intent(out), optional :: forcet(:,:) + real(kind_phys), intent(out), optional :: forceq(:,:) + integer, intent(out), optional :: cactiv(:) + integer, intent(out), optional :: cactiv_m(:) integer, intent(in) :: ntsmoke, ntdust, ntcoarsepm !$acc declare copyout(forcet,forceq,cactiv,cactiv_m) - real(kind_phys), intent(in) :: conv_act(:) - real(kind_phys), intent(in) :: conv_act_m(:) - real(kind_phys), intent(inout) :: chem3d(:,:,:), gq0(:,:,:) + real(kind_phys), intent(in), optional :: conv_act(:) + real(kind_phys), intent(in), optional :: conv_act_m(:) + real(kind_phys), intent(inout), optional :: chem3d(:,:,:) + real(kind_phys), intent(inout) :: gq0(:,:,:) !$acc declare copyin(conv_act,conv_act_m) copy(chem3d,gq0) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/RAS/rascnv.F90 b/physics/CONV/RAS/rascnv.F90 index 0b57de1fe..a6f21ea30 100644 --- a/physics/CONV/RAS/rascnv.F90 +++ b/physics/CONV/RAS/rascnv.F90 @@ -331,14 +331,16 @@ subroutine rascnv_run(IM, k, itc, ntc, ntr, dt, dtf & real(kind=kind_phys), dimension(:,:), intent(inout) :: tin, qin, uin, vin real(kind=kind_phys), dimension(:,:), intent(in) :: prsl, prslk, phil & &, rhc - real(kind=kind_phys), dimension(:,:), intent(out) :: ud_mf, dd_mf, dt_mf - real(kind=kind_phys), dimension(:,:), intent(inout) :: qlcn, qicn, w_upi & + real(kind=kind_phys), dimension(:,:), intent(out), optional :: ud_mf + real(kind=kind_phys), dimension(:,:), intent(out) :: dd_mf, dt_mf + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: qlcn, qicn, w_upi & &, cnv_mfd & &, cnv_dqldt, clcn & &, cnv_fice, cnv_ndrop & &, cnv_nice, cf_upi real(kind=kind_phys), dimension(:) , intent(in) :: area, cdrag - real(kind=kind_phys), dimension(:) , intent(out) :: rainc, ddvel + real(kind=kind_phys), dimension(:) , intent(out) :: rainc + real(kind=kind_phys), dimension(:) , intent(out), optional :: ddvel real(kind=kind_phys), dimension(:,:), intent(in) :: rannum real(kind=kind_phys), intent(inout) :: ccin(:,:,:) real(kind=kind_phys), intent(in) :: dt, dtf diff --git a/physics/CONV/SAMF/samfdeepcnv.f b/physics/CONV/SAMF/samfdeepcnv.f index 5853254c0..7c2d9acf8 100644 --- a/physics/CONV/SAMF/samfdeepcnv.f +++ b/physics/CONV/SAMF/samfdeepcnv.f @@ -103,12 +103,13 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & & progsigma,do_mynnedmf real(kind=kind_phys), intent(in) :: nthresh,betadcu,betamcu, & & betascu - real(kind=kind_phys), intent(in) :: ca_deep(:) - real(kind=kind_phys), intent(in) :: sigmain(:,:),qmicro(:,:), & - & tmf(:,:,:),q(:,:), prevsq(:,:) - real(kind=kind_phys), dimension (:), intent(in) :: maxMF + real(kind=kind_phys), intent(in), optional :: ca_deep(:) + real(kind=kind_phys), intent(in), optional :: sigmain(:,:), & + & qmicro(:,:), prevsq(:,:) + real(kind=kind_phys), intent(in) :: tmf(:,:,:),q(:,:) + real(kind=kind_phys), dimension (:), intent(in), optional :: maxMF real(kind=kind_phys), intent(out) :: rainevap(:) - real(kind=kind_phys), intent(out) :: sigmaout(:,:) + real(kind=kind_phys), intent(out), optional :: sigmaout(:,:) logical, intent(in) :: do_ca,ca_closure,ca_entr,ca_trigger integer, intent(inout) :: kcnv(:) ! DH* TODO - check dimensions of qtr, ntr+2 correct? *DH @@ -119,12 +120,12 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & integer, intent(out) :: kbot(:), ktop(:) real(kind=kind_phys), intent(out) :: cldwrk(:), & & rn(:), & - & ud_mf(:,:),dd_mf(:,:), dt_mf(:,:) - + & dd_mf(:,:), dt_mf(:,:) + real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) ! GJF* These variables are conditionally allocated depending on whether the ! Morrison-Gettelman microphysics is used, so they must be declared ! using assumed shape. - real(kind=kind_phys), dimension(:,:), intent(inout) :: & + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: & & qlcn, qicn, w_upi, cnv_mfd, cnv_dqldt, clcn & &, cnv_fice, cnv_ndrop, cnv_nice, cf_upi ! *GJF diff --git a/physics/CONV/SAMF/samfshalcnv.f b/physics/CONV/SAMF/samfshalcnv.f index d0bab05dd..f720c4701 100644 --- a/physics/CONV/SAMF/samfshalcnv.f +++ b/physics/CONV/SAMF/samfshalcnv.f @@ -72,9 +72,10 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & real(kind=kind_phys), intent(in) :: delt real(kind=kind_phys), intent(in) :: psp(:), delp(:,:), & & prslp(:,:), garea(:), hpbl(:), dot(:,:), phil(:,:), & - & qmicro(:,:),tmf(:,:,:),prevsq(:,:),q(:,:) - - real(kind=kind_phys), intent(in) :: sigmain(:,:) + & tmf(:,:,:), q(:,:) + real(kind=kind_phys), intent(in), optional :: qmicro(:,:), & + & prevsq(:,:) + real(kind=kind_phys), intent(in), optional :: sigmain(:,:) ! real(kind=kind_phys), dimension(:), intent(in) :: fscav integer, intent(inout) :: kcnv(:) @@ -84,8 +85,10 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & ! integer, intent(out) :: kbot(:), ktop(:) real(kind=kind_phys), intent(out) :: rn(:), & - & cnvw(:,:), cnvc(:,:), ud_mf(:,:), dt_mf(:,:), sigmaout(:,:) + & cnvw(:,:), cnvc(:,:), dt_mf(:,:) ! + real(kind=kind_phys), intent(out), optional :: ud_mf(:,:), & + & sigmaout(:,:) real(kind=kind_phys), intent(in) :: clam, c0s, c1, & & asolfac, evef, pgcon logical, intent(in) :: hwrf_samfshal,first_time_step, & diff --git a/physics/CONV/SAS/sascnvn.F b/physics/CONV/SAS/sascnvn.F index 673231e05..709e4dd5b 100644 --- a/physics/CONV/SAS/sascnvn.F +++ b/physics/CONV/SAS/sascnvn.F @@ -126,9 +126,9 @@ subroutine sascnvn_run( & u1(:,:), v1(:,:), & & cnvw(:,:), cnvc(:,:) real(kind=kind_phys), intent(out) :: cldwrk(:), rn(:), & - & ud_mf(:,:), dd_mf(:,:), & - & dt_mf(:,:) - real(kind=kind_phys), intent(inout) :: & + & dt_mf(:,:), dd_mf(:,:) + real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) + real(kind=kind_phys), intent(inout), optional :: & & qlcn(:,:), qicn(:,:), & & w_upi(:,:), cnv_mfd(:,:), & & cnv_dqldt(:,:), clcn(:,:), & diff --git a/physics/CONV/SAS/shalcnv.F b/physics/CONV/SAS/shalcnv.F index 3b8d706cd..3224ed125 100644 --- a/physics/CONV/SAS/shalcnv.F +++ b/physics/CONV/SAS/shalcnv.F @@ -123,7 +123,8 @@ subroutine shalcnv_run( & & q1(:,:), t1(:,:), & & u1(:,:), v1(:,:), & & cnvw(:,:), cnvc(:,:) - real(kind=kind_phys), intent(out) :: rn(:), ud_mf(:,:), dt_mf(:,:) + real(kind=kind_phys), intent(out) :: rn(:), dt_mf(:,:) + real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg ! diff --git a/physics/CONV/nTiedtke/cu_ntiedtke.F90 b/physics/CONV/nTiedtke/cu_ntiedtke.F90 index 0be7df95a..ada38c6f5 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke.F90 +++ b/physics/CONV/nTiedtke/cu_ntiedtke.F90 @@ -171,13 +171,15 @@ subroutine cu_ntiedtke_run(pu,pv,pt,pqv,tdi,qvdi,pqvf,ptf,clw,poz,pzz,prsl,prsi, integer, dimension( : ), intent(in) :: lmask real(kind=kind_phys), dimension( : ), intent(in ) :: evap, hfx, dx real(kind=kind_phys), dimension( :, : ), intent(inout) :: pu, pv, pt, pqv - real(kind=kind_phys), dimension( :, :), intent(in ) :: tdi, qvdi, poz, prsl, pomg, pqvf, ptf + real(kind=kind_phys), dimension( :, :), intent(in ) :: tdi, qvdi, poz, prsl, pomg + real(kind=kind_phys), dimension( :, :), intent(in ), optional :: pqvf, ptf real(kind=kind_phys), dimension( :, : ), intent(in ) :: pzz, prsi real(kind=kind_phys), dimension( :, :, : ), intent(inout ) :: clw integer, dimension( : ), intent(out) :: kbot, ktop, kcnv real(kind=kind_phys), dimension( : ), intent(out) :: zprecc - real(kind=kind_phys), dimension (:, :), intent(out) :: ud_mf, dd_mf, dt_mf, cnvw, cnvc + real(kind=kind_phys), dimension (:, :), intent(out), optional :: ud_mf + real(kind=kind_phys), dimension (:, :), intent(out) :: dd_mf, dt_mf, cnvw, cnvc ! error messages character(len=*), intent(out) :: errmsg diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 b/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 index 8b3c99681..583dfd57d 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 +++ b/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 @@ -23,8 +23,8 @@ subroutine cu_ntiedtke_post_run (t, q, prevst, prevsq, errmsg, errflg) ! Interface variables real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(out) :: prevst(:,:) - real(kind_phys), intent(out) :: prevsq(:,:) + real(kind_phys), intent(out), optional :: prevst(:,:) + real(kind_phys), intent(out), optional :: prevsq(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 b/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 index abdffcb49..81a55176d 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 +++ b/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 @@ -28,10 +28,10 @@ subroutine cu_ntiedtke_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in) :: prevst(:,:) - real(kind_phys), intent(in) :: prevsq(:,:) - real(kind_phys), intent(out) :: forcet(:,:) - real(kind_phys), intent(out) :: forceq(:,:) + real(kind_phys), intent(in), optional :: prevst(:,:) + real(kind_phys), intent(in), optional :: prevsq(:,:) + real(kind_phys), intent(out), optional :: forcet(:,:) + real(kind_phys), intent(out), optional :: forceq(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.F90 b/physics/MP/GFDL/gfdl_cloud_microphys.F90 index 0fd84c7ea..8b149616e 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.F90 +++ b/physics/MP/GFDL/gfdl_cloud_microphys.F90 @@ -144,10 +144,10 @@ subroutine gfdl_cloud_microphys_run( real(kind=kind_phys), intent(in ), dimension(:,:) :: phii ! rain/snow/ice/graupel/precip amounts, fraction of frozen precip - real(kind_phys), intent(out ), dimension(:) :: rain0 - real(kind_phys), intent(out ), dimension(:) :: snow0 - real(kind_phys), intent(out ), dimension(:) :: ice0 - real(kind_phys), intent(out ), dimension(:) :: graupel0 + real(kind_phys), intent(out ), dimension(:), optional :: rain0 + real(kind_phys), intent(out ), dimension(:), optional :: snow0 + real(kind_phys), intent(out ), dimension(:), optional :: ice0 + real(kind_phys), intent(out ), dimension(:), optional :: graupel0 real(kind_phys), intent(out ), dimension(:) :: prcp0 real(kind_phys), intent(out ), dimension(:) :: sr @@ -157,10 +157,10 @@ subroutine gfdl_cloud_microphys_run( logical, intent (in) :: lradar real(kind=kind_phys), intent(inout), dimension(:,:) :: refl_10cm logical, intent (in) :: reset, effr_in - real(kind=kind_phys), intent(inout), dimension(:,:) :: rew, rei, rer, res, reg + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: rew, rei, rer, res, reg logical, intent (in) :: cplchm ! ice and liquid water 3d precipitation fluxes - only allocated if cplchm is .true. - real(kind=kind_phys), intent(inout), dimension(:,:) :: pfi_lsan, pfl_lsan + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: pfi_lsan, pfl_lsan character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg From 5f0ca0bf548bef7965e73e6208ce4fa87c5eb538 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 18:19:59 +0000 Subject: [PATCH 22/40] Add optional attribute to Radiation files. --- physics/Radiation/RRTMG/radlw_main.F90 | 2 +- physics/Radiation/RRTMG/radsw_main.F90 | 3 ++- .../Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 | 7 ++++--- physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 | 16 +++++++++------- physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 | 17 ++++++++++------- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/physics/Radiation/RRTMG/radlw_main.F90 b/physics/Radiation/RRTMG/radlw_main.F90 index 7bc1ea80c..cdf5c69ef 100644 --- a/physics/Radiation/RRTMG/radlw_main.F90 +++ b/physics/Radiation/RRTMG/radlw_main.F90 @@ -609,7 +609,7 @@ subroutine rrtmg_lw_run & integer, intent(in) :: npts, nlay, nlp1, ilwcliq, ilwcice, & isubclw, iovr, iovr_dcorr, iovr_exp, iovr_exprand, iovr_rand,& iovr_maxrand, iovr_max - integer, intent(in) :: icseed(npts) + integer, intent(in), optional :: icseed(npts) logical, intent(in) :: lprnt, inc_minor_gas diff --git a/physics/Radiation/RRTMG/radsw_main.F90 b/physics/Radiation/RRTMG/radsw_main.F90 index fe63963f5..42ee92213 100644 --- a/physics/Radiation/RRTMG/radsw_main.F90 +++ b/physics/Radiation/RRTMG/radsw_main.F90 @@ -689,7 +689,8 @@ subroutine rrtmg_sw_run & isubcsw, iovr, iswmode, iovr_dcorr, iovr_exp, iovr_exprand, & iovr_rand, iovr_maxrand, iovr_max - integer, dimension(:), intent(in) :: idxday, icseed + integer, dimension(:), intent(in) :: idxday + integer, dimension(:), intent(in), optional :: icseed logical, intent(in) :: lprnt, lsswr, inc_minor_gas, top_at_1 diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 index 9a92ea98a..7e78c19a3 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 @@ -50,16 +50,17 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, lon, & ! Longitude lat, & ! Latitude lsmask ! Land/sea/sea-ice mask - real(kind_phys), dimension(:,:),intent(in) :: & + real(kind_phys), dimension(:,:),intent(in), optional :: & p_lay, & ! Pressure @ layer-centers (Pa) tv_lay, & ! Virtual-temperature @ layer-centers (K) - relhum, & ! Relative-humidity @ layer-centers + relhum ! Relative-humidity @ layer-centers + real(kind_phys), dimension(:,:),intent(in) :: & p_lk ! Exner function @ layer-centers (1) real(kind_phys), dimension(:, :,:),intent(in) :: & tracer ! trace gas concentrations real(kind_phys), dimension(:, :,:),intent(in) :: & aerfld ! aerosol input concentrations - real(kind_phys), dimension(:,:),intent(in) :: & + real(kind_phys), dimension(:,:),intent(in), optional :: & p_lev ! Pressure @ layer-interfaces (Pa) real (kind=kind_phys), dimension(:,:), intent(out) :: & ext550 ! 3d optical extinction for total aerosol species diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index c471f89c5..82a5e274a 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -52,7 +52,7 @@ subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_fi ! clouds optical properties rrtmgp_lw_file_gas ! RRTMGP file containing coefficients used to compute ! gaseous optical properties - character(len=*), dimension(:), intent(in) :: & + character(len=*), dimension(:), intent(in), optional :: & active_gases_array ! List of active gases from namelist as array) logical, intent(in) :: & doGP_cldoptics_PADE, & ! Use RRTMGP cloud-optics: PADE approximation? @@ -137,12 +137,12 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, iovr_exp, & ! Flag for exponential cloud overlap method iovr_exprand, & ! Flag for exponential-random cloud overlap method isubc_lw ! Flag for cloud-seeding (rng) for cloud-sampling - integer,intent(in),dimension(:) :: & + integer,intent(in),dimension(:), optional :: & icseed_lw ! Seed for random number generation for longwave radiation real(kind_phys), dimension(:), intent(in) :: & semis, & ! Surface-emissivity (1) tsfg ! Skin temperature (K) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & p_lay, & ! Pressure @ model layer-centers (Pa) t_lay, & ! Temperature (K) p_lev, & ! Pressure @ model layer-interfaces (Pa) @@ -152,7 +152,8 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, vmr_o3, & ! Molar-mixing ratio ozone vmr_ch4, & ! Molar-mixing ratio methane vmr_n2o, & ! Molar-mixing ratio nitrous oxide - vmr_co2, & ! Molar-mixing ratio carbon dioxide + vmr_co2 ! Molar-mixing ratio carbon dioxide + real(kind_phys), dimension(:,:), intent(in) :: & cld_frac, & ! Cloud-fraction for stratiform clouds cld_lwp, & ! Water path for stratiform liquid cloud-particles cld_reliq, & ! Effective radius for stratiform liquid cloud-particles @@ -161,7 +162,8 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, cld_swp, & ! Water path for snow hydrometeors cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors + cld_rerain ! Effective radius for rain hydrometeors + real(kind_phys), dimension(:,:), intent(in), optional :: & precip_frac, & ! Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) cld_cnv_lwp, & ! Water path for convective liquid cloud-particles cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles @@ -176,11 +178,11 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, aerlw_tau, & ! Aerosol optical depth aerlw_ssa, & ! Aerosol single scattering albedo aerlw_g ! Aerosol asymmetry paramter - character(len=*), dimension(:), intent(in) :: & + character(len=*), dimension(:), intent(in), optional :: & active_gases_array ! List of active gases from namelist as array ! Outputs - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & fluxlwUP_jac, & ! Jacobian of upwelling LW surface radiation (W/m2/K) fluxlwUP_allsky, & ! All-sky flux (W/m2) fluxlwDOWN_allsky, & ! All-sky flux (W/m2) diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index b350334a3..fb0fe2052 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -41,7 +41,7 @@ subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_fi rrtmgp_root_dir, & ! RTE-RRTMGP root directory rrtmgp_sw_file_clouds, & ! RRTMGP file containing K-distribution data rrtmgp_sw_file_gas ! RRTMGP file containing cloud-optics data - character(len=*), dimension(:), intent(in) :: & + character(len=*), dimension(:), intent(in), optional :: & active_gases_array ! List of active gases from namelist as array) logical, intent(in) :: & doGP_cldoptics_PADE, & ! Use RRTMGP cloud-optics: PADE approximation? @@ -120,7 +120,8 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ isubc_sw, & ! iSFC integer,intent(in),dimension(:) :: & - idx, & ! Index array for daytime points + idx ! Index array for daytime points + integer,intent(in),dimension(:), optional :: & icseed_sw ! Seed for random number generation for shortwave radiation real(kind_phys), dimension(:), intent(in) :: & sfc_alb_nir_dir, & ! Surface albedo (direct) @@ -128,7 +129,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ sfc_alb_uvvis_dir, & ! Surface albedo (direct) sfc_alb_uvvis_dif, & ! Surface albedo (diffuse) coszen ! Cosize of SZA - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & p_lay, & ! Pressure @ model layer-centers (Pa) t_lay, & ! Temperature (K) p_lev, & ! Pressure @ model layer-interfaces (Pa) @@ -138,7 +139,8 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ vmr_o3, & ! Molar-mixing ratio ozone vmr_ch4, & ! Molar-mixing ratio methane vmr_n2o, & ! Molar-mixing ratio nitrous oxide - vmr_co2, & ! Molar-mixing ratio carbon dioxide + vmr_co2 ! Molar-mixing ratio carbon dioxide + real(kind_phys), dimension(:,:), intent(in) :: & cld_frac, & ! Cloud-fraction for stratiform clouds cld_lwp, & ! Water path for stratiform liquid cloud-particles cld_reliq, & ! Effective radius for stratiform liquid cloud-particles @@ -147,7 +149,8 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ cld_swp, & ! Water path for snow hydrometeors cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors - cld_rerain, & ! Effective radius for rain hydrometeors + cld_rerain ! Effective radius for rain hydrometeors + real(kind_phys), dimension(:,:), intent(in), optional :: & precip_frac, & ! Precipitation fraction cld_cnv_lwp, & ! Water path for convective liquid cloud-particles cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles @@ -162,7 +165,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ aersw_tau, & ! Aerosol optical depth aersw_ssa, & ! Aerosol single scattering albedo aersw_g ! Aerosol asymmetry paramter - character(len=*), dimension(:), intent(in) :: & + character(len=*), dimension(:), intent(in), optional :: & active_gases_array ! List of active gases from namelist as array real(kind_phys), intent(in) :: & solcon ! Solar constant @@ -174,7 +177,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ errflg ! CCPP error flag real(kind_phys), dimension(:,:), intent(inout) :: & cldtausw ! Approx 10.mu band layer cloud optical depth - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & fluxswUP_allsky, & ! RRTMGP upward all-sky flux profiles (W/m2) fluxswDOWN_allsky, & ! RRTMGP downward all-sky flux profiles (W/m2) fluxswUP_clrsky, & ! RRTMGP upward clear-sky flux profiles (W/m2) From acbda856e83d66c95d95153753e30aaa91879130 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 20:00:14 +0000 Subject: [PATCH 23/40] Add optional attribute to PBL files. --- physics/PBL/HEDMF/hedmf.f | 2 +- physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 | 52 ++++++++++++---------- physics/PBL/SATMEDMF/satmedmfvdif.F | 3 +- physics/PBL/SATMEDMF/satmedmfvdifq.F | 3 +- physics/PBL/SHOC/moninshoc.f | 3 +- physics/PBL/SHOC/shoc.F90 | 3 +- physics/PBL/YSU/ysuvdif.F90 | 2 +- 7 files changed, 39 insertions(+), 29 deletions(-) diff --git a/physics/PBL/HEDMF/hedmf.f b/physics/PBL/HEDMF/hedmf.f index 4b010a121..b75526ba6 100644 --- a/physics/PBL/HEDMF/hedmf.f +++ b/physics/PBL/HEDMF/hedmf.f @@ -104,7 +104,7 @@ subroutine hedmf_run (im,km,ntrac,ntcw,dv,du,tau,rtg, & real(kind=kind_phys), intent(inout) :: dv(:,:), du(:,:), & & tau(:,:), rtg(:,:,:) ! dtend is only allocated if ldiag3d or qdiag3d are true - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:) integer, intent(in) :: index_of_x_wind, index_of_y_wind, & & index_of_process_pbl, index_of_temperature, ntqv, rtg_ozone_index diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 index 487753027..81d77588b 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 @@ -244,38 +244,40 @@ SUBROUTINE mynnedmf_wrapper_run( & real(kind_phys), dimension(:,:), intent(inout) :: & & dtdt, dudt, dvdt, & & dqdt_water_vapor, dqdt_liquid_cloud, dqdt_ice, & - & dqdt_snow, & - & dqdt_cloud_droplet_num_conc, dqdt_ice_num_conc, & - & dqdt_ozone, dqdt_water_aer_num_conc, dqdt_ice_aer_num_conc + & dqdt_snow, dqdt_ice_num_conc, dqdt_ozone + real(kind_phys), dimension(:,:), intent(inout), optional :: & + & dqdt_cloud_droplet_num_conc, dqdt_water_aer_num_conc, & + & dqdt_ice_aer_num_conc real(kind_phys), dimension(:,:), intent(inout) ::dqdt_cccn - real(kind_phys), dimension(:,:), intent(inout) :: & - & qke, qke_adv, EL_PBL, Sh3D, Sm3D, & - & qc_bl, qi_bl, cldfra_bl + real(kind_phys), dimension(:,:), intent(inout), optional :: qke, & + & EL_PBL, Sh3D, Sm3D + real(kind_phys), dimension(:,:), intent(inout), optional :: & + & qke_adv, qc_bl, qi_bl, cldfra_bl !These 10 arrays are only allocated when bl_mynn_output > 0 - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & & edmf_a,edmf_w,edmf_qt, & & edmf_thl,edmf_ent,edmf_qc, & & sub_thl,sub_sqv,det_thl,det_sqv real(kind_phys), dimension(:,:), intent(inout) :: & - & dqke,qWT,qSHEAR,qBUOY,qDISS - real(kind_phys), dimension(:,:), intent(inout) :: & & t3d,qgrs_water_vapor,qgrs_liquid_cloud,qgrs_ice, & & qgrs_snow real(kind_phys), dimension(:,:), intent(in) :: & & u,v,omega, & & exner,prsl,prsi, & - & qgrs_cloud_droplet_num_conc, & + & qgrs_ozone + real(kind_phys), dimension(:,:), intent(in), optional :: & & qgrs_cloud_ice_num_conc, & - & qgrs_ozone, & & qgrs_water_aer_num_conc, & + & qgrs_cloud_droplet_num_conc, & & qgrs_ice_aer_num_conc - real(kind_phys), dimension(:,:), intent(in) ::qgrs_cccn - real(kind_phys), dimension(:,:), intent(out) :: & - & Tsq, Qsq, Cov, exch_h, exch_m + real(kind_phys), dimension(:,:), intent(in), optional :: qgrs_cccn + real(kind_phys), dimension(:,:), intent(out), optional :: & + & Tsq, Qsq, Cov, exch_h, exch_m, dqke, qWT, qSHEAR, qBUOY, & + & qDISS real(kind_phys), dimension(:), intent(in) :: xmu real(kind_phys), dimension(:,:), intent(in) :: htrsw, htrlw ! spp_wts_pbl only allocated if spp_pbl == 1 - real(kind_phys), dimension(:,:), intent(in) :: spp_wts_pbl + real(kind_phys), dimension(:,:), intent(in), optional :: spp_wts_pbl !LOCAL real(kind_phys), dimension(im,levs) :: & @@ -287,10 +289,10 @@ SUBROUTINE mynnedmf_wrapper_run( & real(kind_phys), allocatable :: old_ozone(:,:) !smoke/chem arrays - real(kind_phys), dimension(:), intent(inout) :: frp + real(kind_phys), dimension(:), intent(inout), optional :: frp logical, intent(in) :: mix_chem, enh_mix, rrfs_sd - real(kind_phys), dimension(:,:,:), intent(inout) :: chem3d - real(kind_phys), dimension(:,: ), intent(inout) :: vdep + real(kind_phys), dimension(:,:,:), intent(inout), optional :: chem3d + real(kind_phys), dimension(:,: ), intent(inout), optional :: vdep real(kind_phys), dimension(im) :: emis_ant_no !MYNN-2D @@ -298,8 +300,9 @@ SUBROUTINE mynnedmf_wrapper_run( & & dx,zorl,slmsk,tsurf,qsfc,ps, & & hflx,qflx,ust,wspd,rb,recmol + real(kind_phys), dimension(:), intent(in), optional :: & + & dusfc_cice,dvsfc_cice,dtsfc_cice,dqsfc_cice real(kind_phys), dimension(:), intent(in) :: & - & dusfc_cice,dvsfc_cice,dtsfc_cice,dqsfc_cice, & & stress_wat,hflx_wat,qflx_wat, & & oceanfrac,fice @@ -310,14 +313,17 @@ SUBROUTINE mynnedmf_wrapper_run( & & pblh,dusfc_diag,dvsfc_diag,dtsfc_diag,dqsfc_diag real(kind_phys), dimension(:), intent(out) :: & & ch,dtsfc1,dqsfc1,dusfc1,dvsfc1, & - & dtsfci_diag,dqsfci_diag,dusfci_diag,dvsfci_diag, & + & dtsfci_diag,dqsfci_diag,dusfci_diag,dvsfci_diag + real(kind_phys), dimension(:), intent(out), optional :: & & maxMF,maxwidth,ztop_plume integer, dimension(:), intent(inout) :: & - & kpbl,ktop_plume + & kpbl + integer, dimension(:), intent(inout), optional :: & + & ktop_plume - real(kind_phys), dimension(:), intent(inout) :: & + real(kind_phys), dimension(:), intent(inout), optional :: & & dusfc_cpl,dvsfc_cpl,dtsfc_cpl,dqsfc_cpl - real(kind_phys), dimension(:), intent(inout) :: & + real(kind_phys), dimension(:), intent(inout), optional :: & & dusfci_cpl,dvsfci_cpl,dtsfci_cpl,dqsfci_cpl !LOCAL diff --git a/physics/PBL/SATMEDMF/satmedmfvdif.F b/physics/PBL/SATMEDMF/satmedmfvdif.F index 79f7bbea1..7e2d511f1 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdif.F +++ b/physics/PBL/SATMEDMF/satmedmfvdif.F @@ -84,7 +84,8 @@ subroutine satmedmfvdif_run(im,km,ntrac,ntcw,ntiw,ntke, & integer, intent(out) :: kpbl(:) ! logical, intent(in) :: gen_tend, ldiag3d - real(kind=kind_phys), intent(inout), dimension(:,:,:) :: dtend + real(kind=kind_phys), intent(inout), dimension(:,:,:), optional ::& + & dtend integer, intent(in) :: index_of_temperature,index_of_x_wind, & & index_of_y_wind, ntqv, ntoz, dtidx(:,:), index_of_process_pbl ! diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.F b/physics/PBL/SATMEDMF/satmedmfvdifq.F index 40527ce35..95a1e35e5 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.F +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.F @@ -124,7 +124,8 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw, & & prsi(:,:), del(:,:), & & prsl(:,:), prslk(:,:), & & phii(:,:), phil(:,:) - real(kind=kind_phys), intent(inout), dimension(:,:,:) :: dtend + real(kind=kind_phys), intent(inout), dimension(:,:,:), optional ::& + & dtend integer, intent(in) :: dtidx(:,:), index_of_temperature, & & index_of_x_wind, index_of_y_wind, index_of_process_pbl integer, intent(in) :: icplocn2atm diff --git a/physics/PBL/SHOC/moninshoc.f b/physics/PBL/SHOC/moninshoc.f index eb6cbd002..994b78bf6 100644 --- a/physics/PBL/SHOC/moninshoc.f +++ b/physics/PBL/SHOC/moninshoc.f @@ -78,7 +78,8 @@ subroutine moninshoc_run (im,km,ntrac,ntcw,ncnd,dv,du,tau,rtg, & tau real(kind=kind_phys), dimension(:,:,:), intent(inout) :: rtg - real(kind=kind_phys), dimension(:,:,:), intent(inout) :: dtend + real(kind=kind_phys), dimension(:,:,:), intent(inout), optional ::& + & dtend integer, dimension(:,:), intent(in) :: dtidx integer, intent(in) :: index_of_temperature, index_of_x_wind, & index_of_y_wind, index_of_process_pbl, ntqv diff --git a/physics/PBL/SHOC/shoc.F90 b/physics/PBL/SHOC/shoc.F90 index 797be6aec..9afe3b725 100644 --- a/physics/PBL/SHOC/shoc.F90 +++ b/physics/PBL/SHOC/shoc.F90 @@ -52,7 +52,8 @@ subroutine shoc_run (nx, nzm, tcr, tcrf, con_cp, con_g, con_hvap, con_hfus, con_ real(kind=kind_phys), intent(in), dimension(:,:) :: prsl, delp, phil, u, v, omega, rhc, prnum real(kind=kind_phys), intent(in), dimension(:,:) :: phii ! - real(kind=kind_phys), intent(inout), dimension(:,:) :: gt0, cld_sgs, tke, tkh, wthv_sec + real(kind=kind_phys), intent(inout), dimension(:,:) :: gt0, tke, tkh, wthv_sec + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: cld_sgs real(kind=kind_phys), intent(inout), dimension(:,:,:) :: gq0 character(len=*), intent(out) :: errmsg diff --git a/physics/PBL/YSU/ysuvdif.F90 b/physics/PBL/YSU/ysuvdif.F90 index bfae11d39..ad28256c0 100644 --- a/physics/PBL/YSU/ysuvdif.F90 +++ b/physics/PBL/YSU/ysuvdif.F90 @@ -101,7 +101,7 @@ subroutine ysuvdif_run(im,km,ux,vx,tx,qx,p2d,p2di,pi2d,karman, & intent(inout) :: utnp,vtnp,ttnp real(kind=kind_phys), dimension( :,:,: ) , & intent(inout) :: qtnp - real(kind=kind_phys), optional, intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), optional, intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:), ntqv, index_of_temperature, & index_of_x_wind, index_of_y_wind, index_of_process_pbl ! From 6846533fe2ebb9fe83f809fdd3251e502f70dc8f Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 22:15:51 +0000 Subject: [PATCH 24/40] Add optional attribute to Surface Model files. --- physics/SFC_Models/Lake/CLM/clm_lake.f90 | 27 +++--- .../SFC_Models/Lake/Flake/flake_driver.F90 | 15 ++-- physics/SFC_Models/Land/Noah/lsm_noah.f | 6 +- physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 | 84 +++++++++---------- physics/SFC_Models/Land/RUC/lsm_ruc.F90 | 58 +++++++------ physics/SFC_Models/Land/sfc_land.F90 | 30 +++---- physics/SFC_Models/Ocean/UFS/sfc_ocean.F | 2 +- physics/SFC_Models/SeaIce/CICE/sfc_cice.f | 5 +- 8 files changed, 122 insertions(+), 105 deletions(-) diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.f90 b/physics/SFC_Models/Lake/CLM/clm_lake.f90 index 91e8c71b7..8686221fa 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.f90 +++ b/physics/SFC_Models/Lake/CLM/clm_lake.f90 @@ -316,7 +316,7 @@ SUBROUTINE clm_lake_run( & REAL(KIND_PHYS), INTENT(IN) :: min_lakeice, lakedepth_default, dtp LOGICAL, INTENT(IN) :: use_lakedepth INTEGER, DIMENSION(:), INTENT(IN) :: use_lake_model - REAL(KIND_PHYS), INTENT(INOUT) :: clm_lake_initialized(:) + REAL(KIND_PHYS), INTENT(INOUT), OPTIONAL :: clm_lake_initialized(:) LOGICAL, INTENT(IN) :: frac_grid, frac_ice ! @@ -325,7 +325,9 @@ SUBROUTINE clm_lake_run( & REAL(KIND_PHYS), DIMENSION(:), INTENT(IN):: & tg3, pgr, zlvl, qvcurr, xlat_d, xlon_d, ch, cm, & dlwsfci, dswsfci, oro_lakedepth, wind, & - rainncprv, raincprv, t1, qv1, prsl1 + t1, qv1, prsl1 + REAL(KIND_PHYS), DIMENSION(:), INTENT(IN), OPTIONAL :: & + rainncprv, raincprv REAL(KIND_PHYS), DIMENSION(:,:), INTENT(in) :: gu0, gv0, prsi, gt0, phii LOGICAL, DIMENSION(:), INTENT(IN) :: flag_iter LOGICAL, DIMENSION(:), INTENT(INOUT) :: flag_lakefreeze @@ -340,34 +342,35 @@ SUBROUTINE clm_lake_run( & ep1d_water, ep1d_ice, tsurf_water, tsurf_ice, tsfc_wat, tisfc, tsfc, & weasdi, snodi, hice, qss_water, qss_ice, & cmm_water, cmm_ice, chh_water, chh_ice, & - uustar_water, uustar_ice, lake_t_snow, albedo, zorlw, & - zorli, lake_t2m, lake_q2m, weasd, snowd, fice + uustar_water, uustar_ice, zorlw, zorli, weasd, snowd, fice + REAL(KIND_PHYS), DIMENSION(:), INTENT(INOUT) , OPTIONAL :: & + lake_t_snow, albedo, lake_t2m, lake_q2m LOGICAL, INTENT(INOUT) :: icy(:) ! ! Lake model internal state stored by caller: ! - INTEGER, DIMENSION( : ), INTENT(INOUT) :: salty - INTEGER, DIMENSION( : ), INTENT(INOUT) :: cannot_freeze + INTEGER, DIMENSION( : ), INTENT(INOUT), OPTIONAL :: salty + INTEGER, DIMENSION( : ), INTENT(INOUT), OPTIONAL :: cannot_freeze - real(kind_phys), dimension(: ) ,intent(inout) :: savedtke12d, & + real(kind_phys), dimension(: ), OPTIONAL ,intent(inout) :: savedtke12d, & snowdp2d, & h2osno2d, & snl2d, & t_grnd2d - real(kind_phys), dimension( :,: ) ,INTENT(inout) :: t_lake3d, & + real(kind_phys), dimension( :,: ), OPTIONAL, INTENT(inout) :: t_lake3d, & lake_icefrac3d - real(kind_phys), dimension( :,-nlevsnow+1: ) ,INTENT(inout) :: t_soisno3d, & + real(kind_phys), dimension( :,-nlevsnow+1: ) ,INTENT(inout), OPTIONAL :: t_soisno3d, & h2osoi_ice3d, & h2osoi_liq3d, & h2osoi_vol3d, & z3d, & dz3d - real(kind_phys), dimension( :,-nlevsnow+0: ) ,INTENT(inout) :: zi3d + real(kind_phys), dimension( :,-nlevsnow+0: ) ,INTENT(inout), OPTIONAL :: zi3d - REAL(KIND_PHYS), DIMENSION( : ) ,INTENT(INOUT) :: clm_lakedepth - REAL(KIND_PHYS), DIMENSION( : ) ,INTENT(INOUT) :: input_lakedepth + REAL(KIND_PHYS), DIMENSION( : ) ,INTENT(INOUT), OPTIONAL :: clm_lakedepth + REAL(KIND_PHYS), DIMENSION( : ) ,INTENT(INOUT), OPTIONAL :: input_lakedepth ! ! Error reporting: diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.F90 b/physics/SFC_Models/Lake/Flake/flake_driver.F90 index 3b5988254..f849c6f62 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.F90 +++ b/physics/SFC_Models/Lake/Flake/flake_driver.F90 @@ -65,9 +65,9 @@ SUBROUTINE flake_driver_run ( & real (kind=kind_phys),dimension(:),intent(inout) :: & & snwdph, hice, tsurf, t_sfc, hflx, evap, fice, ustar, qsfc, & - & ch, cm, chh, cmm, h_ML, t_wML, t_mnw, H_B, T_B, & - & t_bot1, t_bot2, c_t, T_snow, T_ice, tsurf_ice, lflx, gflx - + & ch, cm, chh, cmm, tsurf_ice, lflx, gflx + real (kind=kind_phys),dimension(:),intent(inout), optional :: & + & h_ML, t_wML, t_mnw, H_B, T_B, t_bot1, t_bot2, c_t, T_snow real (kind=kind_phys), intent(in) :: julian logical, dimension(:), intent(in) :: flag_iter, wet @@ -442,10 +442,13 @@ subroutine flake_driver_post_run (im, use_lake_model, h_ML, T_wML, & ! integer, dimension(im), intent(in) :: islmsk real (kind=kind_phys), dimension(:), intent(in) :: & - & lakedepth, tsurf, h_ML, t_wML + & lakedepth, tsurf + real (kind=kind_phys), dimension(:), intent(in), optional :: & + & h_ML, t_wML - real (kind=kind_phys),dimension(:),intent(inout) :: & - & xz, zm, tref, tsfco + real (kind=kind_phys),dimension(:),intent(inout), optional :: & + & xz, zm, tref + real (kind=kind_phys),dimension(:),intent(inout) :: tsfco integer, dimension(:), intent(in) :: use_lake_model diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.f b/physics/SFC_Models/Land/Noah/lsm_noah.f index 836fc3b72..6ac87fb76 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.f +++ b/physics/SFC_Models/Land/Noah/lsm_noah.f @@ -285,8 +285,10 @@ subroutine lsm_noah_run & real (kind=kind_phys), dimension(:), intent(inout) :: sncovr1, & & qsurf, gflux, drain, evap, hflx, ep, runoff, cmm, chh, & & evbs, evcw, sbsno, snowc, stm, snohf, smcwlt2, smcref2, & - & wet1, lai, rca - + & rca + real (kind=kind_phys), dimension(:), intent(inout), optional :: & + & wet1, lai + character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index 6aff50666..5b2fde639 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -292,11 +292,11 @@ subroutine noahmpdrv_run & integer , intent(in) :: iyrlen ! year length [days] real(kind=kind_phys) , intent(in) :: julian ! julian day of year real(kind=kind_phys), dimension(:) , intent(in) :: garea ! area of the grid cell - real(kind=kind_phys), dimension(:) , intent(in) :: rainn_mp ! microphysics non-convective precipitation [mm] - real(kind=kind_phys), dimension(:) , intent(in) :: rainc_mp ! microphysics convective precipitation [mm] - real(kind=kind_phys), dimension(:) , intent(in) :: snow_mp ! microphysics snow [mm] - real(kind=kind_phys), dimension(:) , intent(in) :: graupel_mp ! microphysics graupel [mm] - real(kind=kind_phys), dimension(:) , intent(in) :: ice_mp ! microphysics ice/hail [mm] + real(kind=kind_phys), dimension(:) , intent(in), optional :: rainn_mp ! microphysics non-convective precipitation [mm] + real(kind=kind_phys), dimension(:) , intent(in), optional :: rainc_mp ! microphysics convective precipitation [mm] + real(kind=kind_phys), dimension(:) , intent(in), optional :: snow_mp ! microphysics snow [mm] + real(kind=kind_phys), dimension(:) , intent(in), optional :: graupel_mp ! microphysics graupel [mm] + real(kind=kind_phys), dimension(:) , intent(in), optional :: ice_mp ! microphysics ice/hail [mm] real(kind=kind_phys), dimension(:) , intent(in) :: rhonewsn1 ! precipitation ice density (kg/m^3) real(kind=kind_phys) , intent(in) :: con_hvap ! latent heat condensation [J/kg] real(kind=kind_phys) , intent(in) :: con_cp ! specific heat air [J/kg/K] @@ -334,40 +334,40 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(inout) :: fm101 ! MOS function for momentum evaulated @ 10 m real(kind=kind_phys), dimension(:) , intent(inout) :: fh21 ! MOS function for heat evaulated @ 2m - real(kind=kind_phys), dimension(:) , intent(inout) :: snowxy ! actual no. of snow layers - real(kind=kind_phys), dimension(:) , intent(inout) :: tvxy ! vegetation leaf temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout) :: tgxy ! bulk ground surface temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout) :: canicexy ! canopy-intercepted ice [mm] - real(kind=kind_phys), dimension(:) , intent(inout) :: canliqxy ! canopy-intercepted liquid water [mm] - real(kind=kind_phys), dimension(:) , intent(inout) :: eahxy ! canopy air vapor pressure [Pa] - real(kind=kind_phys), dimension(:) , intent(inout) :: tahxy ! canopy air temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout) :: cmxy ! bulk momentum drag coefficient [m/s] - real(kind=kind_phys), dimension(:) , intent(inout) :: chxy ! bulk sensible heat exchange coefficient [m/s] - real(kind=kind_phys), dimension(:) , intent(inout) :: fwetxy ! wetted or snowed fraction of the canopy [-] - real(kind=kind_phys), dimension(:) , intent(inout) :: sneqvoxy ! snow mass at last time step[mm h2o] - real(kind=kind_phys), dimension(:) , intent(inout) :: alboldxy ! snow albedo at last time step [-] - real(kind=kind_phys), dimension(:) , intent(inout) :: qsnowxy ! snowfall on the ground [mm/s] - real(kind=kind_phys), dimension(:) , intent(inout) :: wslakexy ! lake water storage [mm] - real(kind=kind_phys), dimension(:) , intent(inout) :: zwtxy ! water table depth [m] - real(kind=kind_phys), dimension(:) , intent(inout) :: waxy ! water in the "aquifer" [mm] - real(kind=kind_phys), dimension(:) , intent(inout) :: wtxy ! groundwater storage [mm] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: tsnoxy ! snow temperature [K] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: zsnsoxy ! snow/soil layer depth [m] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: snicexy ! snow layer ice [mm] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: snliqxy ! snow layer liquid water [mm] - real(kind=kind_phys), dimension(:) , intent(inout) :: lfmassxy ! leaf mass [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: rtmassxy ! mass of fine roots [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: stmassxy ! stem mass [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: woodxy ! mass of wood (incl. woody roots) [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: stblcpxy ! stable carbon in deep soil [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: fastcpxy ! short-lived carbon, shallow soil [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: xlaixy ! leaf area index [m2/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: xsaixy ! stem area index [m2/m2] - real(kind=kind_phys), dimension(:) , intent(inout) :: taussxy ! snow age factor [-] - real(kind=kind_phys), dimension(:,:) , intent(inout) :: smoiseq ! eq volumetric soil moisture [m3/m3] - real(kind=kind_phys), dimension(:) , intent(inout) :: smcwtdxy ! soil moisture content in the layer to the water table when deep - real(kind=kind_phys), dimension(:) , intent(inout) :: deeprechxy ! recharge to the water table when deep - real(kind=kind_phys), dimension(:) , intent(inout) :: rechxy ! recharge to the water table + real(kind=kind_phys), dimension(:) , intent(inout), optional :: snowxy ! actual no. of snow layers + real(kind=kind_phys), dimension(:) , intent(inout), optional :: tvxy ! vegetation leaf temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: tgxy ! bulk ground surface temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: canicexy ! canopy-intercepted ice [mm] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: canliqxy ! canopy-intercepted liquid water [mm] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: eahxy ! canopy air vapor pressure [Pa] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: tahxy ! canopy air temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: cmxy ! bulk momentum drag coefficient [m/s] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: chxy ! bulk sensible heat exchange coefficient [m/s] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: fwetxy ! wetted or snowed fraction of the canopy [-] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: sneqvoxy ! snow mass at last time step[mm h2o] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: alboldxy ! snow albedo at last time step [-] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: qsnowxy ! snowfall on the ground [mm/s] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: wslakexy ! lake water storage [mm] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: zwtxy ! water table depth [m] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: waxy ! water in the "aquifer" [mm] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: wtxy ! groundwater storage [mm] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: tsnoxy ! snow temperature [K] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: zsnsoxy ! snow/soil layer depth [m] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: snicexy ! snow layer ice [mm] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: snliqxy ! snow layer liquid water [mm] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: lfmassxy ! leaf mass [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: rtmassxy ! mass of fine roots [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: stmassxy ! stem mass [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: woodxy ! mass of wood (incl. woody roots) [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: stblcpxy ! stable carbon in deep soil [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: fastcpxy ! short-lived carbon, shallow soil [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: xlaixy ! leaf area index [m2/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: xsaixy ! stem area index [m2/m2] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: taussxy ! snow age factor [-] + real(kind=kind_phys), dimension(:,:) , intent(inout), optional :: smoiseq ! eq volumetric soil moisture [m3/m3] + real(kind=kind_phys), dimension(:) , intent(inout), optional :: smcwtdxy ! soil moisture content in the layer to the water table when deep + real(kind=kind_phys), dimension(:) , intent(inout), optional :: deeprechxy ! recharge to the water table when deep + real(kind=kind_phys), dimension(:) , intent(inout), optional :: rechxy ! recharge to the water table real(kind=kind_phys), dimension(:) , intent(out) :: albdvis ! albedo - direct visible [fraction] real(kind=kind_phys), dimension(:) , intent(out) :: albdnir ! albedo - direct NIR [fraction] real(kind=kind_phys), dimension(:) , intent(out) :: albivis ! albedo - diffuse visible [fraction] @@ -395,9 +395,9 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(out) :: snohf ! snow/freezing-rain latent heat flux [W/m2] real(kind=kind_phys), dimension(:) , intent(out) :: smcwlt2 ! dry soil moisture threshold [m3/m3] real(kind=kind_phys), dimension(:) , intent(out) :: smcref2 ! soil moisture threshold [m3/m3] - real(kind=kind_phys), dimension(:) , intent(out) :: wet1 ! normalized surface soil saturated fraction - real(kind=kind_phys), dimension(:) , intent(out) :: t2mmp ! combined T2m from tiles - real(kind=kind_phys), dimension(:) , intent(out) :: q2mp ! combined q2m from tiles + real(kind=kind_phys), dimension(:) , intent(out), optional :: wet1 ! normalized surface soil saturated fraction + real(kind=kind_phys), dimension(:) , intent(out), optional :: t2mmp ! combined T2m from tiles + real(kind=kind_phys), dimension(:) , intent(out), optional :: q2mp ! combined q2m from tiles real(kind=kind_phys), dimension(:) , intent(out) :: zvfun ! real(kind=kind_phys), dimension(:) , intent(out) :: ztmax ! thermal roughness length character(len=*) , intent(out) :: errmsg diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index ba1b1b4e9..7c50a5bf7 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -87,21 +87,22 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & real (kind_phys), dimension(:,:), intent(in) :: smc,slc,stc real (kind_phys), intent(in) :: min_seaice ! --- in/out: - real (kind_phys), dimension(:), intent(inout) :: wetness + real (kind_phys), dimension(:), intent(inout), optional :: wetness ! --- inout - real (kind_phys), dimension(:,:), intent(inout) :: sh2o, smfrkeep - real (kind_phys), dimension(:,:), intent(inout) :: tslb, smois + real (kind_phys), dimension(:,:), intent(inout), optional :: sh2o, smfrkeep + real (kind_phys), dimension(:,:), intent(inout), optional :: tslb, smois real (kind_phys), dimension(:), intent(inout) :: semis_lnd real (kind_phys), dimension(:), intent(inout) :: semis_ice - real (kind_phys), dimension(:), intent(inout) :: & - albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & + real (kind_phys), dimension(:), intent(inout) :: & + albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & + real (kind_phys), dimension(:), intent(inout), optional :: & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, & sfcqv_lnd, sfcqv_ice ! --- out real (kind_phys), dimension(:), intent(out) :: zs - real (kind_phys), dimension(:), intent(inout) :: sfalb_lnd_bck + real (kind_phys), dimension(:), intent(inout), optional :: sfalb_lnd_bck real (kind_phys), dimension(:,:), intent(inout) :: tsice real (kind_phys), dimension(:), intent(out) :: semisbase real (kind_phys), dimension(:), intent(out) :: pores, resid @@ -381,11 +382,11 @@ subroutine lsm_ruc_run & ! inputs imp_physics_nssl real (kind_phys), dimension(:), intent(in) :: xlat_d, xlon_d real (kind_phys), dimension(:), intent(in) :: oro, sigma - + real (kind_phys), dimension(:), intent(in), optional :: sfalb_lnd_bck real (kind_phys), dimension(:), intent(in) :: & & t1, sigmaf, dlwflx, dswsfc, tg3, & & coszen, prsl1, wind, shdmin, shdmax, & - & sfalb_lnd_bck, snoalb, zf, qc, q1, & + & snoalb, zf, qc, q1, & ! for land & cm_lnd, ch_lnd, & ! for water @@ -418,44 +419,51 @@ subroutine lsm_ruc_run & ! inputs real (kind_phys), dimension(:), intent(in) :: zs real (kind_phys), dimension(:), intent(in) :: srflag - real (kind_phys), dimension(:), intent(inout) :: & - & canopy, trans, smcwlt2, smcref2, laixy, & + real (kind_phys), dimension(:), intent(inout), optional :: & + & laixy, tsnow_lnd, sfcqv_lnd, sfcqc_lnd, sfcqc_ice, sfcqv_ice,& + & tsnow_ice + real (kind_phys), dimension(:), intent(inout) :: & + & canopy, trans, smcwlt2, smcref2, & ! for land & weasd_lnd, snwdph_lnd, tskin_lnd, & - & tsurf_lnd, z0rl_lnd, tsnow_lnd, & - & sfcqc_lnd, sfcqv_lnd, & + & tsurf_lnd, z0rl_lnd, & ! for ice & weasd_ice, snwdph_ice, tskin_ice, & - & tsurf_ice, z0rl_ice, tsnow_ice, & - & sfcqc_ice, sfcqv_ice, fice + & tsurf_ice, z0rl_ice, fice ! --- in - real (kind_phys), dimension(:), intent(in) :: & - & rainnc, rainc, ice, snow, graupel, rhonewsn1 - real (kind_phys), dimension(:), intent(in) :: fire_heat_flux_out, & - frac_grid_burned_out + real (kind_phys), dimension(:), intent(in), optional :: & + & rainnc, rainc, ice, snow, graupel + real (kind_phys), dimension(:), intent(in) :: rhonewsn1 + real (kind_phys), dimension(:), intent(in), optional :: & + fire_heat_flux_out, frac_grid_burned_out logical, intent(in) :: add_fire_heat_flux ! --- in/out: ! --- on RUC levels + real (kind_phys), dimension(:,:), intent(inout), optional :: & + & smois, tslb, sh2o, keepfr, smfrkeep real (kind_phys), dimension(:,:), intent(inout) :: & - & smois, tsice, tslb, sh2o, keepfr, smfrkeep + & tsice ! --- output: + real (kind_phys), dimension(:), intent(inout), optional :: + & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, & + & snowfallac_ice, rhosnf real (kind_phys), dimension(:), intent(inout) :: & - & rhosnf, runof, drain, runoff, srunoff, evbs, evcw, & - & stm, wetness, semisbase, semis_lnd, semis_ice, & - & sfalb_lnd, sfalb_ice, & + & runof, drain, runoff, srunoff, evbs, evcw, & + & stm, semisbase, semis_lnd, semis_ice, & ! for land & sncovr1_lnd, qsurf_lnd, gflux_lnd, evap_lnd, & & cmm_lnd, chh_lnd, hflx_lnd, sbsno, & - & snowfallac_lnd, acsnow_lnd, snowmt_lnd, snohf, & + & acsnow_lnd, snowmt_lnd, snohf, & ! for ice & sncovr1_ice, qsurf_ice, gflux_ice, evap_ice, ep1d_ice, & & cmm_ice, chh_ice, hflx_ice, & - & snowfallac_ice, acsnow_ice, snowmt_ice + & acsnow_ice, snowmt_ice real (kind_phys), dimension(:), intent( out) :: & - & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & + & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd + real (kind_phys), dimension(:), intent( out), optional :: & & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice logical, intent(in) :: flag_init, lsm_cold_start diff --git a/physics/SFC_Models/Land/sfc_land.F90 b/physics/SFC_Models/Land/sfc_land.F90 index 2b0696ed8..a85e8b787 100644 --- a/physics/SFC_Models/Land/sfc_land.F90 +++ b/physics/SFC_Models/Land/sfc_land.F90 @@ -44,27 +44,27 @@ subroutine sfc_land_run(im, cpllnd, cpllnd2atm, flag_iter, dry, & logical , intent(in) :: cpllnd2atm logical , intent(in) :: flag_iter(:) logical , intent(in) :: dry(:) - real(kind=kind_phys), intent(in) :: sncovr1_lnd(:) - real(kind=kind_phys), intent(in) :: qsurf_lnd(:) - real(kind=kind_phys), intent(in) :: evap_lnd(:) - real(kind=kind_phys), intent(in) :: hflx_lnd(:) - real(kind=kind_phys), intent(in) :: ep_lnd(:) - real(kind=kind_phys), intent(in) :: t2mmp_lnd(:) - real(kind=kind_phys), intent(in) :: q2mp_lnd(:) - real(kind=kind_phys), intent(in) :: gflux_lnd(:) - real(kind=kind_phys), intent(in) :: runoff_lnd(:) - real(kind=kind_phys), intent(in) :: drain_lnd(:) - real(kind=kind_phys), intent(in) :: cmm_lnd(:) - real(kind=kind_phys), intent(in) :: chh_lnd(:) - real(kind=kind_phys), intent(in) :: zvfun_lnd(:) + real(kind=kind_phys), intent(in), optional :: sncovr1_lnd(:) + real(kind=kind_phys), intent(in), optional :: qsurf_lnd(:) + real(kind=kind_phys), intent(in), optional :: evap_lnd(:) + real(kind=kind_phys), intent(in), optional :: hflx_lnd(:) + real(kind=kind_phys), intent(in), optional :: ep_lnd(:) + real(kind=kind_phys), intent(in), optional :: t2mmp_lnd(:) + real(kind=kind_phys), intent(in), optional :: q2mp_lnd(:) + real(kind=kind_phys), intent(in), optional :: gflux_lnd(:) + real(kind=kind_phys), intent(in), optional :: runoff_lnd(:) + real(kind=kind_phys), intent(in), optional :: drain_lnd(:) + real(kind=kind_phys), intent(in), optional :: cmm_lnd(:) + real(kind=kind_phys), intent(in), optional :: chh_lnd(:) + real(kind=kind_phys), intent(in), optional :: zvfun_lnd(:) ! Inputs/Outputs real(kind=kind_phys), intent(inout) :: sncovr1(:) real(kind=kind_phys), intent(inout) :: qsurf(:) real(kind=kind_phys), intent(inout) :: evap(:) real(kind=kind_phys), intent(inout) :: hflx(:) real(kind=kind_phys), intent(inout) :: ep(:) - real(kind=kind_phys), intent(inout) :: t2mmp(:) - real(kind=kind_phys), intent(inout) :: q2mp(:) + real(kind=kind_phys), intent(inout), optional :: t2mmp(:) + real(kind=kind_phys), intent(inout), optional :: q2mp(:) real(kind=kind_phys), intent(inout) :: gflux(:) real(kind=kind_phys), intent(inout) :: runoff(:) real(kind=kind_phys), intent(inout) :: drain(:) diff --git a/physics/SFC_Models/Ocean/UFS/sfc_ocean.F b/physics/SFC_Models/Ocean/UFS/sfc_ocean.F index 88d23a7aa..a0410a51c 100644 --- a/physics/SFC_Models/Ocean/UFS/sfc_ocean.F +++ b/physics/SFC_Models/Ocean/UFS/sfc_ocean.F @@ -128,7 +128,7 @@ subroutine sfc_ocean_run & logical, intent(in) :: use_med_flux ! To receive fluxes from mediator - real (kind=kind_phys), dimension(:), intent(in) :: & + real (kind=kind_phys), dimension(:), intent(in), optional :: & & dqsfc_med, dtsfc_med ! --- outputs: diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f index 36f2bccbf..0df1f67a5 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f @@ -101,9 +101,10 @@ subroutine sfc_cice_run & ! real (kind=kind_phys), dimension(im), intent(in) :: u1, v1, & real (kind=kind_phys), dimension(:), intent(in) :: & - & t1, q1, cm, ch, prsl1, wind, dqsfc, dtsfc, dusfc, dvsfc - &, snowd + & t1, q1, cm, ch, prsl1, wind, snowd + real (kind=kind_phys), dimension(:), intent(in), optional :: & + & dqsfc, dtsfc, dusfc, dvsfc logical, dimension(:), intent(in) :: flag_cice, flag_iter ! --- outputs: From ce18ef54fcfc0c88e0b53e72b74071123d8395df Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 22:30:17 +0000 Subject: [PATCH 25/40] Add optional attribute to Surface Layer files. --- physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 | 14 ++++++++------ physics/SFC_Layer/UFS/sfc_diag.f | 6 +++--- physics/SFC_Layer/UFS/sfc_diag_post.F90 | 2 +- physics/SFC_Layer/UFS/sfc_nst.f90 | 8 ++++++-- physics/SFC_Layer/UFS/sfc_nst_post.f90 | 3 ++- physics/SFC_Layer/UFS/sfc_nst_pre.f90 | 6 ++++-- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 index 3c033e65e..8df0116a8 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 @@ -135,7 +135,7 @@ SUBROUTINE mynnsfc_wrapper_run( & integer, dimension(:), intent(in) :: vegtype real(kind_phys), dimension(:), intent(in) :: & & sigmaf,shdmax,z0pert,ztpert - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & & spp_wts_sfc real(kind_phys), dimension(:,:), & @@ -168,15 +168,17 @@ SUBROUTINE mynnsfc_wrapper_run( & !MYNN-2D real(kind_phys), dimension(:), intent(in) :: & - & dx, pblh, slmsk, ps, & + & dx, pblh, slmsk, ps + real(kind_phys), dimension(:), intent(in),optional :: & & qsfc_lnd_ruc, qsfc_ice_ruc real(kind_phys), dimension(:), intent(inout) :: & - & ustm, hflx, qflx, wspd, qsfc, & + & hflx, qflx, wspd, qsfc, & & FLHC, FLQC, U10, V10, TH2, T2, Q2, & - & CHS2, CQS2, rmol, zol, mol, ch, & - & lh, wstar - !LOCAL + & rmol, ch + real(kind_phys), dimension(:), intent(inout), optional :: & + & ustm, zol, mol, lh, wstar, CHS2, CQS2 + !LOCAL real(kind_phys), dimension(im) :: & & hfx, znt, psim, psih, & & chs, ck, cd, mavail, xland, GZ1OZ0, & diff --git a/physics/SFC_Layer/UFS/sfc_diag.f b/physics/SFC_Layer/UFS/sfc_diag.f index b0432df6f..c8ef19e8f 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.f +++ b/physics/SFC_Layer/UFS/sfc_diag.f @@ -44,9 +44,9 @@ subroutine sfc_diag_run (im,xlat_d,xlon_d, & & qsurf, prslki, evap, fm, fh, fm10, fh2, & & shflx, cdq, wind, xlat_d, xlon_d real(kind=kind_phys), dimension(:), intent(out) :: & - & f10m, u10m, v10m, t2m, q2m, dpt2m - real(kind=kind_phys), dimension(:), intent(in) :: lake_t2m, & - & lake_q2m + & f10m, u10m, v10m, t2m, q2m, dpt2m + real(kind=kind_phys), dimension(:), intent(in), optional :: & + & lake_t2m, lake_q2m integer, dimension(:), intent(in) :: use_lake_model character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/SFC_Layer/UFS/sfc_diag_post.F90 b/physics/SFC_Layer/UFS/sfc_diag_post.F90 index 6945e48e9..3f930f641 100644 --- a/physics/SFC_Layer/UFS/sfc_diag_post.F90 +++ b/physics/SFC_Layer/UFS/sfc_diag_post.F90 @@ -28,7 +28,7 @@ subroutine sfc_diag_post_run (im, lsm, lsm_noahmp, opt_diag, dry, lssav, dtf, co logical , dimension(:), intent(in) :: dry real(kind=kind_phys), dimension(:), intent(in) :: pgr, u10m, v10m real(kind=kind_phys), dimension(:), intent(inout) :: t2m, q2m, tmpmin, tmpmax, spfhmin, spfhmax - real(kind=kind_phys), dimension(:), intent(inout) :: t2mmp, q2mp + real(kind=kind_phys), dimension(:), intent(inout), optional :: t2mmp, q2mp real(kind=kind_phys), dimension(:), intent(inout) :: wind10mmax, u10mmax, v10mmax, dpt2m character(len=*), intent(out) :: errmsg diff --git a/physics/SFC_Layer/UFS/sfc_nst.f90 b/physics/SFC_Layer/UFS/sfc_nst.f90 index 9c3804211..c8c40a20d 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst.f90 @@ -175,9 +175,11 @@ subroutine sfc_nst_run & real (kind=kind_phys), intent(in) :: hvap, cp, hfus, jcal, eps, & epsm1, rvrdm1, rd, rhw0, sbc, pi, tgice real (kind=kind_phys), dimension(:), intent(in) :: ps, u1, v1, & - usfco, vsfco, t1, q1, tref, cm, ch, fm, fm10, & + usfco, vsfco, t1, q1, cm, ch, fm, fm10, & prsl1, prslki, prsik1, prslk1, xlon, xcosz, & sinlat, stress, sfcemis, dlwflx, sfcnsw, rain, wind + real (kind=kind_phys), dimension(:), intent(in), optional :: & + tref real (kind=kind_phys), intent(in) :: timestep real (kind=kind_phys), intent(in) :: solhr @@ -192,7 +194,9 @@ subroutine sfc_nst_run & ! --- input/outputs: ! control variables of dtl system (5+2) and sl (2) and coefficients for d(tz)/d(ts) calculation real (kind=kind_phys), dimension(:), intent(inout) :: tskin, & - tsurf, xt, xs, xu, xv, xz, zm, xtts, xzts, dt_cool, & + tsurf + real (kind=kind_phys), dimension(:), intent(inout), optional :: & + xt, xs, xu, xv, xz, zm, xtts, xzts, dt_cool, & z_c, c_0, c_d, w_0, w_d, d_conv, ifd, qrain ! --- outputs: diff --git a/physics/SFC_Layer/UFS/sfc_nst_post.f90 b/physics/SFC_Layer/UFS/sfc_nst_post.f90 index 174d5df76..0357a86f0 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_post.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_post.f90 @@ -32,7 +32,8 @@ subroutine sfc_nst_post_run & real (kind=kind_phys), intent(in) :: rlapse, tgice real (kind=kind_phys), dimension(:), intent(in) :: oro, oro_uf integer, intent(in) :: nstf_name1, nstf_name4, nstf_name5 - real (kind=kind_phys), dimension(:), intent(in) :: xt, xz, dt_cool, z_c, tref, xlon + real (kind=kind_phys), dimension(:), intent(in) :: xlon + real (kind=kind_phys), dimension(:), intent(in), optional :: xt, xz, dt_cool, z_c, tref ! --- input/outputs: real (kind=kind_phys), dimension(:), intent(inout) :: tsurf_wat, tsfc_wat diff --git a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 index 3e77f2d6b..c61f9b903 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 @@ -30,11 +30,13 @@ subroutine sfc_nst_pre_run & integer, intent(in) :: im, nthreads logical, dimension(:), intent(in) :: wet real (kind=kind_phys), intent(in) :: tgice - real (kind=kind_phys), dimension(:), intent(in) :: tsfco, xt, xz, dt_cool, z_c, oceanfrac + real (kind=kind_phys), dimension(:), intent(in) :: tsfco, oceanfrac + real (kind=kind_phys), dimension(:), intent(in), optional :: xt, xz, dt_cool, z_c logical, intent(in) :: cplflx ! --- input/outputs: - real (kind=kind_phys), dimension(:), intent(inout) :: tsurf_wat, tseal, tref + real (kind=kind_phys), dimension(:), intent(inout) :: tsurf_wat, tseal + real (kind=kind_phys), dimension(:), intent(inout), optional :: tref ! --- outputs: character(len=*), intent(out) :: errmsg From 671aedd1e27daa74dcf47f0b8c294ad7892d7b3a Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Tue, 23 Apr 2024 23:12:31 +0000 Subject: [PATCH 26/40] Add optional attribute to Interstitial schemes. --- .../UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.F90 | 9 +- .../UFS_SCM_NEPTUNE/GFS_GWD_generic_post.F90 | 2 +- .../UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 | 6 +- .../UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 | 34 +++--- .../UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90 | 13 +- .../UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90 | 4 +- .../UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 | 7 +- .../GFS_phys_time_vary.fv3.F90 | 112 +++++++++--------- .../UFS_SCM_NEPTUNE/GFS_physics_post.F90 | 2 +- .../UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 | 16 +-- .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 | 11 +- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 | 5 +- .../UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 | 6 +- .../UFS_SCM_NEPTUNE/GFS_stochastics.F90 | 20 ++-- .../GFS_suite_interstitial_4.F90 | 7 +- .../GFS_suite_stateout_update.F90 | 2 +- .../GFS_surface_generic_post.F90 | 10 +- .../GFS_surface_generic_pre.F90 | 10 +- .../Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f | 13 +- .../maximum_hourly_diagnostics.F90 | 5 +- 20 files changed, 154 insertions(+), 140 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.F90 index 3b69849a7..da255adc8 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.F90 @@ -32,16 +32,17 @@ subroutine GFS_DCNV_generic_post_run (im, levs, lssav, ldiag3d, qdiag3d, ras, & real(kind=kind_phys), dimension(:,:), intent(in) :: save_u, save_v, save_t real(kind=kind_phys), dimension(:,:), intent(in) :: gu0, gv0, gt0 real(kind=kind_phys), dimension(:,:,:), intent(in) :: gq0, save_q - real(kind=kind_phys), dimension(:,:), intent(in) :: ud_mf, dd_mf, dt_mf + real(kind=kind_phys), dimension(:,:), intent(in) :: dd_mf, dt_mf + real(kind=kind_phys), dimension(:,:), intent(in), optional :: ud_mf real(kind=kind_phys), intent(in) :: con_g integer, intent(in) :: npdf3d, num_p3d, ncnvcld3d logical, intent(in) :: satmedmf, trans_trac real(kind=kind_phys), dimension(:), intent(inout) :: rainc, cldwrk - real(kind=kind_phys), dimension(:,:), intent(inout) :: upd_mf, dwn_mf, det_mf + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: upd_mf, dwn_mf, det_mf real(kind=kind_phys), dimension(:,:), intent(inout) :: cnvw, cnvc - real(kind=kind_phys), dimension(:,:,:), intent(inout) :: dtend + real(kind=kind_phys), dimension(:,:,:), intent(inout), optional :: dtend integer, intent(in) :: dtidx(:,:), index_of_process_dcnv, index_of_temperature, & index_of_x_wind, index_of_y_wind, ntqv integer, intent(in) :: ntcw,ntiw,ntclamt,ntrw,ntsw,ntrnc,ntsnc,ntgl, & @@ -50,7 +51,7 @@ subroutine GFS_DCNV_generic_post_run (im, levs, lssav, ldiag3d, qdiag3d, ras, & real(kind=kind_phys), dimension(:,:,:), intent(in) :: clw - real(kind=kind_phys), dimension(:,:), intent(inout) :: cnvw_phy_f3d, cnvc_phy_f3d + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: cnvw_phy_f3d, cnvc_phy_f3d character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.F90 index 58f18567d..579d32fac 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.F90 @@ -27,7 +27,7 @@ subroutine GFS_GWD_generic_post_run(lssav, ldiag3d, dtf, dusfcg, dvsfcg, dudt, d real(kind=kind_phys), intent(inout) :: dugwd(:), dvgwd(:) ! dtend only allocated only if ldiag3d is .true. - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:), index_of_temperature, & & index_of_x_wind, index_of_y_wind, index_of_process_orographic_gwd diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 index 51a76c989..53dce2b4c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.F90 @@ -28,13 +28,13 @@ subroutine GFS_GWD_generic_pre_run( & real(kind=kind_phys), intent(out) :: & & oc(:), oa4(:,:), clx(:,:), & - & varss(:), ocss(:), oa4ss(:,:), clxss(:,:), & & theta(:), sigma(:), gamma(:), elvmax(:) - + real(kind=kind_phys), intent(out), optional :: & + & varss(:), ocss(:), oa4ss(:,:), clxss(:,:) logical, intent(in) :: lssav, ldiag3d, flag_for_gwd_generic_tend real(kind=kind_phys), intent(in) :: dtdt(:,:), dudt(:,:), dvdt(:,:) ! dtend only allocated only if ldiag3d is .true. - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:), index_of_temperature, & & index_of_x_wind, index_of_y_wind, index_of_process_orographic_gwd real(kind=kind_phys), intent(in) :: dtf diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 index d9d30fb90..0c991924b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 @@ -52,38 +52,38 @@ subroutine GFS_MP_generic_post_run( real(kind=kind_phys), intent(in) :: dtf, frain, con_g, rainmin, rhowater real(kind=kind_phys), dimension(:), intent(in) :: rain1, xlat, xlon, tsfc real(kind=kind_phys), dimension(:), intent(inout) :: ice, snow, graupel, rainc - real(kind=kind_phys), dimension(:), intent(in) :: rain0, ice0, snow0, graupel0 + real(kind=kind_phys), dimension(:), intent(in), optional :: rain0, ice0, snow0, graupel0 real(kind=kind_phys), dimension(:,:), intent(in) :: rann real(kind=kind_phys), dimension(:,:), intent(in) :: prsl, save_t, del real(kind=kind_phys), dimension(:,:), intent(in) :: prsi, phii,phil real(kind=kind_phys), dimension(:,:,:), intent(in) :: gq0, save_q - real(kind=kind_phys), dimension(:,:,:), intent(in) :: dfi_radar_tten + real(kind=kind_phys), dimension(:,:,:), intent(in), optional :: dfi_radar_tten real(kind=kind_phys), dimension(:), intent(in ) :: sr real(kind=kind_phys), dimension(:), intent(inout) :: rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, & srflag, cnvprcp, totprcp, totice, totsnw, totgrp, cnvprcpb, & totprcpb, toticeb, totsnwb, totgrpb, pwat - real(kind=kind_phys), dimension(:), intent(inout) :: rain_cpl, rainc_cpl, snow_cpl + real(kind=kind_phys), dimension(:), intent(inout), optional :: rain_cpl, rainc_cpl, snow_cpl - real(kind=kind_phys), dimension(:,:,:), intent(inout) :: dtend + real(kind=kind_phys), dimension(:,:,:), intent(inout), optional :: dtend integer, dimension(:,:), intent(in) :: dtidx ! Stochastic physics / surface perturbations - real(kind=kind_phys), dimension(:), intent(inout) :: drain_cpl, dsnow_cpl + real(kind=kind_phys), dimension(:), intent(inout), optional :: drain_cpl, dsnow_cpl ! Rainfall variables previous time step integer, intent(in) :: lsm, lsm_ruc, lsm_noahmp - real(kind=kind_phys), dimension(:), intent(inout) :: raincprv - real(kind=kind_phys), dimension(:), intent(inout) :: rainncprv - real(kind=kind_phys), dimension(:), intent(inout) :: iceprv - real(kind=kind_phys), dimension(:), intent(inout) :: snowprv - real(kind=kind_phys), dimension(:), intent(inout) :: graupelprv - real(kind=kind_phys), dimension(:), intent(inout) :: draincprv - real(kind=kind_phys), dimension(:), intent(inout) :: drainncprv - real(kind=kind_phys), dimension(:), intent(inout) :: diceprv - real(kind=kind_phys), dimension(:), intent(inout) :: dsnowprv - real(kind=kind_phys), dimension(:), intent(inout) :: dgraupelprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: raincprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: rainncprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: iceprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: snowprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: graupelprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: draincprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: drainncprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: diceprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: dsnowprv + real(kind=kind_phys), dimension(:), intent(inout), optional :: dgraupelprv real(kind=kind_phys), dimension(:), intent(inout) :: frzr real(kind=kind_phys), dimension(:), intent(inout) :: frzrb real(kind=kind_phys), dimension(:), intent(inout) :: frozr @@ -91,8 +91,8 @@ subroutine GFS_MP_generic_post_run( real(kind=kind_phys), dimension(:), intent(inout) :: tsnowp real(kind=kind_phys), dimension(:), intent(inout) :: tsnowpb real(kind=kind_phys), dimension(:), intent(inout) :: rhonewsn1 - real(kind=kind_phys), dimension(:,:), intent(inout) :: dqdt_qmicro - real(kind=kind_phys), dimension(:,:), intent(inout) :: prevsq + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: dqdt_qmicro + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: prevsq real(kind=kind_phys), intent(in) :: dtp ! CCPP error handling diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90 index a4e5f172a..ccf83f7bb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.F90 @@ -47,8 +47,9 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac, real(kind=kind_phys), intent(in) :: rd, cp, fvirt, hvap, huge real(kind=kind_phys), dimension(:), intent(in) :: t1, q1, hflx, oceanfrac real(kind=kind_phys), dimension(:,:), intent(in) :: prsl - real(kind=kind_phys), dimension(:), intent(in) :: dusfc_cice, dvsfc_cice, dtsfc_cice, dqsfc_cice, & - dtsfc_med, dqsfc_med, dusfc_med, dvsfc_med, wind, stress_wat, hflx_wat, evap_wat, ugrs1, vgrs1 + real(kind=kind_phys), dimension(:), intent(in), optional :: dusfc_cice, dvsfc_cice, dtsfc_cice, dqsfc_cice, & + dtsfc_med, dqsfc_med, dusfc_med, dvsfc_med + real(kind=kind_phys), dimension(:), intent(in) :: wind, stress_wat, hflx_wat, evap_wat, ugrs1, vgrs1 real(kind=kind_phys), dimension(:,:, :), intent(in) :: qgrs real(kind=kind_phys), dimension(:,:), intent(in) :: ugrs, vgrs, tgrs @@ -63,14 +64,16 @@ subroutine GFS_PBL_generic_post_run (im, levs, nvdiff, ntrac, ! Since Intel 15 crashes when passing unallocated arrays to arrays defined with explicit shape, ! use assumed-shape arrays. Note that Intel 18 and GNU 6.2.0-8.1.0 tolerate explicit-shape arrays ! as long as these do not get used when not allocated. - real(kind=kind_phys), dimension(:), intent(inout) :: dusfc_cpl, dvsfc_cpl, dtsfc_cpl, dqsfc_cpl, dusfci_cpl, dvsfci_cpl, & - dtsfci_cpl, dqsfci_cpl, dusfc_diag, dvsfc_diag, dtsfc_diag, dqsfc_diag, dusfci_diag, dvsfci_diag, dtsfci_diag, dqsfci_diag + real(kind=kind_phys), dimension(:), intent(inout), optional :: dusfc_cpl, dvsfc_cpl, & + dtsfc_cpl, dqsfc_cpl, dusfci_cpl, dvsfci_cpl, dtsfci_cpl, dqsfci_cpl + real(kind=kind_phys), dimension(:), intent(inout) :: dusfc_diag, dvsfc_diag, & + dtsfc_diag, dqsfc_diag, dusfci_diag, dvsfci_diag, dtsfci_diag, dqsfci_diag real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:) integer, intent(in) :: index_of_temperature, index_of_x_wind, index_of_y_wind, index_of_process_pbl logical, dimension(:),intent(in) :: wet, dry, icy - real(kind=kind_phys), dimension(:), intent(out) :: ushfsfci + real(kind=kind_phys), dimension(:), intent(out), optional :: ushfsfci ! From canopy heat storage - reduction factors in latent/sensible heat flux due to surface roughness real(kind=kind_phys), dimension(:), intent(in) :: hffac diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90 index 0b38ff081..8102d70eb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90 @@ -31,7 +31,7 @@ subroutine GFS_SCNV_generic_post_run (im, levs, nn, lssav, ldiag3d, qdiag3d, & real(kind=kind_phys), dimension(:,:,:), intent(in) :: save_q, gq0 ! dtend only allocated if ldiag3d == .true. - real(kind=kind_phys), intent(inout) :: dtend(:,:,:) + real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:) integer, intent(in) :: dtidx(:,:) integer, intent(in) :: index_of_temperature, index_of_x_wind, index_of_y_wind, index_of_process_scnv real(kind=kind_phys), dimension(:,:,:), intent(in) :: clw @@ -46,7 +46,7 @@ subroutine GFS_SCNV_generic_post_run (im, levs, nn, lssav, ldiag3d, qdiag3d, & ! Since Intel 15 crashes when passing unallocated arrays to arrays defined with explicit shape, ! use assumed-shape arrays. Note that Intel 18 and GNU 6.2.0-8.1.0 tolerate explicit-shape arrays ! as long as these do not get used when not allocated. - real(kind=kind_phys), dimension(:,:), intent(inout) :: cnvw_phy_f3d, cnvc_phy_f3d + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: cnvw_phy_f3d, cnvc_phy_f3d integer, intent(in) :: imfshalcnv, imfshalcnv_sas, imfshalcnv_samf logical, intent(in) :: cscnv, satmedmf, trans_trac, ras diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 index 86dc2b518..2fd553c8e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_cloud_diagnostics.F90 @@ -59,12 +59,13 @@ subroutine GFS_cloud_diagnostics_run(nCol, nLev, iovr, iovr_rand, iovr_maxrand, lat, & ! Latitude de_lgth, & ! Decorrelation length si ! Vertical sigma coordinate + real(kind_phys), dimension(:,:), intent(in), optional :: & + p_lay ! Pressure at model-layer real(kind_phys), dimension(:,:), intent(in) :: & - p_lay, & ! Pressure at model-layer cld_frac ! Total cloud fraction - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & p_lev ! Pressure at model interfaces - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & deltaZ, & ! Layer thickness (m) cloud_overlap_param, & ! Cloud-overlap parameter precip_overlap_param ! Precipitation overlap parameter diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 index 406887f00..ea9beaf90 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 @@ -112,19 +112,19 @@ subroutine GFS_phys_time_vary_init ( integer, intent(inout) :: use_lake_model(:) real(kind=kind_phys), intent(in ) :: lakefrac(:), lakedepth(:) - integer, intent(inout) :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) - real(kind_phys), intent(inout) :: ddy_o3(:), ddy_h(:) + integer, intent(inout), optional :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) + real(kind_phys), intent(inout), optional :: ddy_o3(:), ddy_h(:) real(kind_phys), intent(in) :: h2opl(:,:,:) - integer, intent(inout) :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) - real(kind_phys), intent(inout) :: ddy_aer(:), ddx_aer(:) + integer, intent(inout), optional :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) + real(kind_phys), intent(inout), optional :: ddy_aer(:), ddx_aer(:) real(kind_phys), intent(out) :: aer_nm(:,:,:) - integer, intent(inout) :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) - real(kind_phys), intent(inout) :: ddy_ci(:), ddx_ci(:) + integer, intent(inout), optional :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) + real(kind_phys), intent(inout), optional :: ddy_ci(:), ddx_ci(:) integer, intent(inout) :: imap(:), jmap(:) logical, intent(in) :: do_ugwp_v1 - real(kind_phys), intent(inout) :: ddy_j1tau(:), ddy_j2tau(:) - integer, intent(inout) :: jindx1_tau(:), jindx2_tau(:) + real(kind_phys), intent(inout), optional :: ddy_j1tau(:), ddy_j2tau(:) + integer, intent(inout), optional :: jindx1_tau(:), jindx2_tau(:) integer, intent(in) :: isot, ivegsrc, nlunit real(kind_phys), intent(inout) :: sncovr(:), sncovr_ice(:) @@ -138,50 +138,50 @@ subroutine GFS_phys_time_vary_init ( integer, intent(in) :: lsoil, lsnow_lsm_lbound, lsnow_lsm_ubound real(kind_phys), intent(in) :: zs(:) real(kind_phys), intent(in) :: dzs(:) - real(kind_phys), intent(inout) :: tvxy(:) - real(kind_phys), intent(inout) :: tgxy(:) - real(kind_phys), intent(inout) :: tahxy(:) - real(kind_phys), intent(inout) :: canicexy(:) - real(kind_phys), intent(inout) :: canliqxy(:) - real(kind_phys), intent(inout) :: eahxy(:) - real(kind_phys), intent(inout) :: cmxy(:) - real(kind_phys), intent(inout) :: chxy(:) - real(kind_phys), intent(inout) :: fwetxy(:) - real(kind_phys), intent(inout) :: sneqvoxy(:) - real(kind_phys), intent(inout) :: alboldxy(:) - real(kind_phys), intent(inout) :: qsnowxy(:) - real(kind_phys), intent(inout) :: wslakexy(:) + real(kind_phys), intent(inout), optional :: tvxy(:) + real(kind_phys), intent(inout), optional :: tgxy(:) + real(kind_phys), intent(inout), optional :: tahxy(:) + real(kind_phys), intent(inout), optional :: canicexy(:) + real(kind_phys), intent(inout), optional :: canliqxy(:) + real(kind_phys), intent(inout), optional :: eahxy(:) + real(kind_phys), intent(inout), optional :: cmxy(:) + real(kind_phys), intent(inout), optional :: chxy(:) + real(kind_phys), intent(inout), optional :: fwetxy(:) + real(kind_phys), intent(inout), optional :: sneqvoxy(:) + real(kind_phys), intent(inout), optional :: alboldxy(:) + real(kind_phys), intent(inout), optional :: qsnowxy(:) + real(kind_phys), intent(inout), optional :: wslakexy(:) real(kind_phys), intent(inout) :: albdvis_lnd(:) real(kind_phys), intent(inout) :: albdnir_lnd(:) real(kind_phys), intent(inout) :: albivis_lnd(:) real(kind_phys), intent(inout) :: albinir_lnd(:) - real(kind_phys), intent(inout) :: albdvis_ice(:) - real(kind_phys), intent(inout) :: albdnir_ice(:) - real(kind_phys), intent(inout) :: albivis_ice(:) - real(kind_phys), intent(inout) :: albinir_ice(:) + real(kind_phys), intent(inout), optional :: albdvis_ice(:) + real(kind_phys), intent(inout), optional :: albdnir_ice(:) + real(kind_phys), intent(inout), optional :: albivis_ice(:) + real(kind_phys), intent(inout), optional :: albinir_ice(:) real(kind_phys), intent(inout) :: emiss_lnd(:) real(kind_phys), intent(inout) :: emiss_ice(:) - real(kind_phys), intent(inout) :: taussxy(:) - real(kind_phys), intent(inout) :: waxy(:) - real(kind_phys), intent(inout) :: wtxy(:) - real(kind_phys), intent(inout) :: zwtxy(:) - real(kind_phys), intent(inout) :: xlaixy(:) - real(kind_phys), intent(inout) :: xsaixy(:) - real(kind_phys), intent(inout) :: lfmassxy(:) - real(kind_phys), intent(inout) :: stmassxy(:) - real(kind_phys), intent(inout) :: rtmassxy(:) - real(kind_phys), intent(inout) :: woodxy(:) - real(kind_phys), intent(inout) :: stblcpxy(:) - real(kind_phys), intent(inout) :: fastcpxy(:) - real(kind_phys), intent(inout) :: smcwtdxy(:) - real(kind_phys), intent(inout) :: deeprechxy(:) - real(kind_phys), intent(inout) :: rechxy(:) - real(kind_phys), intent(inout) :: snowxy(:) - real(kind_phys), intent(inout) :: snicexy(:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: snliqxy(:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: tsnoxy (:,lsnow_lsm_lbound:) - real(kind_phys), intent(inout) :: smoiseq(:,:) - real(kind_phys), intent(inout) :: zsnsoxy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: taussxy(:) + real(kind_phys), intent(inout), optional :: waxy(:) + real(kind_phys), intent(inout), optional :: wtxy(:) + real(kind_phys), intent(inout), optional :: zwtxy(:) + real(kind_phys), intent(inout), optional :: xlaixy(:) + real(kind_phys), intent(inout), optional :: xsaixy(:) + real(kind_phys), intent(inout), optional :: lfmassxy(:) + real(kind_phys), intent(inout), optional :: stmassxy(:) + real(kind_phys), intent(inout), optional :: rtmassxy(:) + real(kind_phys), intent(inout), optional :: woodxy(:) + real(kind_phys), intent(inout), optional :: stblcpxy(:) + real(kind_phys), intent(inout), optional :: fastcpxy(:) + real(kind_phys), intent(inout), optional :: smcwtdxy(:) + real(kind_phys), intent(inout), optional :: deeprechxy(:) + real(kind_phys), intent(inout), optional :: rechxy(:) + real(kind_phys), intent(inout), optional :: snowxy(:) + real(kind_phys), intent(inout), optional :: snicexy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: snliqxy(:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: tsnoxy (:,lsnow_lsm_lbound:) + real(kind_phys), intent(inout), optional :: smoiseq(:,:) + real(kind_phys), intent(inout), optional :: zsnsoxy(:,lsnow_lsm_lbound:) real(kind_phys), intent(inout) :: slc(:,:) real(kind_phys), intent(inout) :: smc(:,:) real(kind_phys), intent(inout) :: stc(:,:) @@ -746,14 +746,14 @@ subroutine GFS_phys_time_vary_timestep_init ( real(kind_phys), intent(in) :: fhswr, fhour logical, intent(in) :: lsswr, cal_pre, random_clds, h2o_phys, iaerclm real(kind_phys), intent(out) :: clstp - integer, intent(in) :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) - real(kind_phys), intent(in) :: ddy_o3(:), ddy_h(:) + integer, intent(in), optional :: jindx1_o3(:), jindx2_o3(:), jindx1_h(:), jindx2_h(:) + real(kind_phys), intent(in), optional :: ddy_o3(:), ddy_h(:) real(kind_phys), intent(inout) :: ozpl(:,:,:), h2opl(:,:,:) - integer, intent(in) :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) - real(kind_phys), intent(in) :: ddy_aer(:), ddx_aer(:) + integer, intent(in), optional :: jindx1_aer(:), jindx2_aer(:), iindx1_aer(:), iindx2_aer(:) + real(kind_phys), intent(in), optional :: ddy_aer(:), ddx_aer(:) real(kind_phys), intent(inout) :: aer_nm(:,:,:) - integer, intent(in) :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) - real(kind_phys), intent(in) :: ddy_ci(:), ddx_ci(:) + integer, intent(in), optional :: jindx1_ci(:), jindx2_ci(:), iindx1_ci(:), iindx2_ci(:) + real(kind_phys), intent(in), optional :: ddy_ci(:), ddx_ci(:) real(kind_phys), intent(inout) :: in_nm(:,:), ccn_nm(:,:) integer, intent(in) :: imap(:), jmap(:) real(kind_phys), intent(in) :: prsl(:,:) @@ -761,8 +761,8 @@ subroutine GFS_phys_time_vary_timestep_init ( real(kind_phys), intent(inout) :: rann(:,:) logical, intent(in) :: do_ugwp_v1 - integer, intent(in) :: jindx1_tau(:), jindx2_tau(:) - real(kind_phys), intent(in) :: ddy_j1tau(:), ddy_j2tau(:) + integer, intent(in), optional :: jindx1_tau(:), jindx2_tau(:) + real(kind_phys), intent(in), optional :: ddy_j1tau(:), ddy_j2tau(:) real(kind_phys), intent(inout) :: tau_amf(:) type(ty_ozphys), intent(in) :: ozphys @@ -774,13 +774,13 @@ subroutine GFS_phys_time_vary_timestep_init ( logical, intent(in) :: use_ufo, nst_anl, frac_grid real(kind_phys), intent(in) :: fhcyc, phour, lakefrac(:), min_seaice, min_lakeice, & xlat_d(:), xlon_d(:), landfrac(:) - real(kind_phys), intent(inout) :: smc(:,:), slc(:,:), stc(:,:), smois(:,:), sh2o(:,:), & - tslb(:,:), tiice(:,:), tg3(:), tref(:), & + real(kind_phys), intent(inout) :: smc(:,:), slc(:,:), stc(:,:), tiice(:,:), tg3(:), & tsfc(:), tsfco(:), tisfc(:), hice(:), fice(:), & facsf(:), facwf(:), alvsf(:), alvwf(:), alnsf(:), alnwf(:), & zorli(:), zorll(:), zorlo(:), weasd(:), snoalb(:), & canopy(:), vfrac(:), shdmin(:), shdmax(:), & snowd(:), cv(:), cvb(:), cvt(:), oro(:), oro_uf(:), slmsk(:) + real(kind_phys), intent(inout), optional :: smois(:,:), sh2o(:,:), tslb(:,:), tref(:) integer, intent(inout) :: vtype(:), stype(:),scolor(:), slope(:) character(len=*), intent(out) :: errmsg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 index fe5409353..ec041623c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.F90 @@ -53,7 +53,7 @@ subroutine GFS_physics_post_run(nCol, nLev, ntoz, ntracp100, nprocess, nprocess_ do3_dt_ohoz ! Physics tendency: overhead ozone effect ! Outputs - real(kind=kind_phys), intent(inout), dimension(:,:,:) :: & + real(kind=kind_phys), intent(inout), dimension(:,:,:), optional :: & dtend ! Diagnostic tendencies for state variables character(len=*), intent(out) :: & errmsg ! CCPP error message diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 index 978dc177f..d55fac983 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.fv3.F90 @@ -30,19 +30,19 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, ! Interface variables logical, intent(in) :: lrseeds - integer, intent(in) :: rseeds(:,:) + integer, intent(in), optional :: rseeds(:,:) integer, intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt integer, intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim logical, intent(in) :: lslwr, lsswr - integer, intent(inout) :: icsdsw(:), icsdlw(:) + integer, intent(inout), optional :: icsdsw(:), icsdlw(:) integer, intent(in) :: imap(:), jmap(:) real(kind_phys), intent(in) :: sec - real(kind_phys), intent(inout) :: ps_2delt(:) - real(kind_phys), intent(inout) :: ps_1delt(:) - real(kind_phys), intent(inout) :: t_2delt(:,:) - real(kind_phys), intent(inout) :: t_1delt(:,:) - real(kind_phys), intent(inout) :: qv_2delt(:,:) - real(kind_phys), intent(inout) :: qv_1delt(:,:) + real(kind_phys), intent(inout), optional :: ps_2delt(:) + real(kind_phys), intent(inout), optional :: ps_1delt(:) + real(kind_phys), intent(inout), optional :: t_2delt(:,:) + real(kind_phys), intent(inout), optional :: t_1delt(:,:) + real(kind_phys), intent(inout), optional :: qv_2delt(:,:) + real(kind_phys), intent(inout), optional:: qv_1delt(:,:) real(kind_phys), intent(in) :: t(:,:), qv(:,:), ps(:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 index 767d3e534..69d723b8a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 @@ -123,7 +123,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& integer, intent(in) :: ntdu1, ntdu2, ntdu3, ntdu4, ntdu5, ntss1, ntss2, ntss3, & ntss4, ntss5, ntsu, ntbcb, ntbcl, ntocb, ntocl, ntchm - character(len=3), dimension(:), intent(in) :: lndp_var_list + character(len=3), dimension(:), intent(in), optional :: lndp_var_list logical, intent(in) :: lsswr, lslwr, ltaerosol, lgfdlmprad, & uni_cld, effr_in, do_mynnedmf, & @@ -133,7 +133,7 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& logical, intent(in) :: nssl_ccn_on, nssl_invertccn integer, intent(in) :: spp_rad - real(kind_phys), intent(in) :: spp_wts_rad(:,:) + real(kind_phys), intent(in), optional :: spp_wts_rad(:,:) real(kind=kind_phys), intent(in) :: fhswr, fhlwr, solhr, sup, julian, sppt_amp, dcorr_con real(kind=kind_phys), intent(in) :: con_eps, epsm1, fvirt, rog, rocp, con_rd, con_pi, con_g, con_ttp, con_thgni @@ -143,7 +143,8 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& slmsk, dx, si real(kind=kind_phys), dimension(:,:), intent(in) :: prsi, prsl, prslk, & - tgrs, sfc_wts, & + tgrs, sfc_wts + real(kind=kind_phys), dimension(:,:), intent(in), optional :: & mg_cld, effrr_in, & cnvw_in, cnvc_in, & sppt_wts @@ -153,13 +154,13 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& real(kind=kind_phys), dimension(:), intent(inout) :: coszen, coszdg - real(kind=kind_phys), dimension(:,:), intent(inout) :: effrl_inout, & + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: effrl_inout, & effri_inout, & effrs_inout real(kind=kind_phys), dimension(:,:), intent(inout) :: clouds1, & clouds2, clouds3, & clouds4, clouds5 - real(kind=kind_phys), dimension(:,:), intent(in) :: qci_conv + real(kind=kind_phys), dimension(:,:), intent(in), optional :: qci_conv real(kind=kind_phys), dimension(:), intent(in) :: fdb_coef real(kind=kind_phys), dimension(:), intent(out) :: lwp_ex,iwp_ex, & lwp_fc,iwp_fc diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 index 22fe2fc21..34dc7de86 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.F90 @@ -71,7 +71,7 @@ subroutine GFS_rrtmgp_post_run (nCol, nLev, nDay, iSFC, iTOA, idxday, doLWrad, d sfc_alb_nir_dif, & ! Surface albedo (diffuse) sfc_alb_uvvis_dir, & ! Surface albedo (direct) sfc_alb_uvvis_dif ! Surface albedo (diffuse) - real(kind_phys), dimension(:,:), intent(in) :: & + real(kind_phys), dimension(:,:), intent(in), optional :: & p_lev, & ! Pressure @ model layer-interfaces (Pa) fluxlwUP_allsky, & ! RRTMGP longwave all-sky flux (W/m2) fluxlwDOWN_allsky, & ! RRTMGP longwave all-sky flux (W/m2) @@ -118,7 +118,8 @@ subroutine GFS_rrtmgp_post_run (nCol, nLev, nDay, iSFC, iTOA, idxday, doLWrad, d sfcdsw ! SW sfc all-sky downward flux (W/m2) real(kind_phys), dimension(:,:), intent(inout) :: & htrlw, & ! LW all-sky heating rate (K/s) - htrsw, & ! SW all-sky heating rate (K/s) + htrsw ! SW all-sky heating rate (K/s) + real(kind_phys), dimension(:,:), intent(inout), optional :: & htrlwu ! LW all-sky heating-rate updated in-between radiation calls. type(sfcflw_type), dimension(:), intent(inout) :: & sfcflw ! LW radiation fluxes at sfc diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 index cbf8d161b..ba5e2ad58 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.F90 @@ -48,7 +48,7 @@ subroutine GFS_rrtmgp_pre_init(nGases, active_gases, active_gases_array, errmsg, nGases ! Number of active gases in RRTMGP character(len=*), intent(in) :: & active_gases ! List of active gases from namelist - character(len=*), dimension(:), intent(out) :: & + character(len=*), dimension(:), intent(out), optional :: & active_gases_array ! List of active gases from namelist as array ! Outputs @@ -158,7 +158,7 @@ subroutine GFS_rrtmgp_pre_run(me, nCol, nLev, i_o3, doSWrad, doLWrad, fhswr, fhl prsi ! Pressure at model-interfaces (Pa) real(kind_phys), dimension(:,:,:), intent(in) :: & qgrs ! Tracer concentrations (kg/kg) - character(len=*), dimension(:), intent(in) :: & + character(len=*), dimension(:), intent(in), optional :: & active_gases_array ! List of active gases from namelist as array ! Outputs @@ -182,7 +182,7 @@ subroutine GFS_rrtmgp_pre_run(me, nCol, nLev, i_o3, doSWrad, doLWrad, fhswr, fhl coszdg ! Cosine of SZA, daytime integer, dimension(:), intent(inout) :: & idxday ! Indices for daylit points - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & p_lay, & ! Pressure at model-layer t_lay, & ! Temperature at model layer q_lay, & ! Water-vapor mixing ratio (kg/kg) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 index 36ed2815a..2fb1b185d 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.F90 @@ -89,12 +89,12 @@ subroutine GFS_stochastics_run (im, km, kdt, delt, do_sppt, pert_mp, use_zmtnblc logical, intent(in) :: do_skeb real(kind_phys), dimension(:), intent(in) :: zmtnblck ! sppt_wts only allocated if do_sppt == .true. - real(kind_phys), dimension(:,:), intent(inout) :: sppt_wts + real(kind_phys), dimension(:,:), intent(inout), optional :: sppt_wts ! skebu_wts, skebv_wts only allocated if do_skeb == .true. - real(kind_phys), dimension(:,:), intent(in) :: skebu_wts - real(kind_phys), dimension(:,:), intent(in) :: skebv_wts + real(kind_phys), dimension(:,:), intent(in), optional :: skebu_wts + real(kind_phys), dimension(:,:), intent(in), optional :: skebv_wts ! shum_wts only allocated if do_shum == .true. - real(kind_phys), dimension(:,:), intent(in) :: shum_wts + real(kind_phys), dimension(:,:), intent(in), optional :: shum_wts real(kind_phys), dimension(:,:), intent(in) :: diss_est real(kind_phys), dimension(:,:), intent(in) :: ugrs real(kind_phys), dimension(:,:), intent(in) :: vgrs @@ -119,7 +119,7 @@ subroutine GFS_stochastics_run (im, km, kdt, delt, do_sppt, pert_mp, use_zmtnblc integer, intent(in) :: ntsw integer, intent(in) :: ntiw integer, intent(in) :: ntgl - real(kind_phys), dimension(:,:), intent(inout) :: dtdtnp + real(kind_phys), dimension(:,:), intent(inout), optional :: dtdtnp real(kind_phys), dimension(:), intent(in) :: rain real(kind_phys), dimension(:), intent(in) :: rainc real(kind_phys), dimension(:), intent(inout) :: tprcp @@ -130,14 +130,14 @@ subroutine GFS_stochastics_run (im, km, kdt, delt, do_sppt, pert_mp, use_zmtnblc logical, intent(in) :: cplflx logical, intent(in) :: cpllnd ! rain_cpl only allocated if cplflx == .true. or cplchm == .true. or cpllnd == .true. - real(kind_phys), dimension(:), intent(inout) :: rain_cpl + real(kind_phys), dimension(:), intent(inout), optional :: rain_cpl ! snow_cpl only allocated if cplflx == .true. or cplchm == .true. - real(kind_phys), dimension(:), intent(inout) :: snow_cpl + real(kind_phys), dimension(:), intent(inout), optional :: snow_cpl ! drain_cpl, dsnow_cpl only allocated if cplflx == .true. or cplchm == .true. - real(kind_phys), dimension(:), intent(in) :: drain_cpl - real(kind_phys), dimension(:), intent(in) :: dsnow_cpl + real(kind_phys), dimension(:), intent(in), optional :: drain_cpl + real(kind_phys), dimension(:), intent(in), optional :: dsnow_cpl real(kind_phys), dimension(:), intent(in) :: vfact_ca - real(kind_phys), dimension(:), intent(in) :: ca1 + real(kind_phys), dimension(:), intent(in), optional :: ca1 character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.F90 index cbabb991b..d1aadb731 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.F90 @@ -37,7 +37,7 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, tracers_total, ntr ! dtend and dtidx are only allocated if ldiag3d logical, intent(in) :: ldiag3d, qdiag3d - real(kind=kind_phys), dimension(:,:,:), intent(inout) :: dtend + real(kind=kind_phys), dimension(:,:,:), intent(inout), optional :: dtend integer, dimension(:,:), intent(in) :: dtidx integer, intent(in) :: index_of_process_conv_trans,ntk,ntke @@ -45,7 +45,8 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, tracers_total, ntr real(kind=kind_phys), dimension(:,:,:), intent(inout) :: clw real(kind=kind_phys), dimension(:,:), intent(in) :: prsl real(kind=kind_phys), intent(in) :: con_rd, con_eps, nssl_cccn - real(kind=kind_phys), dimension(:,:), intent(in) :: nwfa, save_tcp + real(kind=kind_phys), dimension(:,:), intent(in), optional :: nwfa + real(kind=kind_phys), dimension(:,:), intent(in) :: save_tcp real(kind=kind_phys), dimension(:,:), intent(in) :: spechum character(len=*), intent( out) :: errmsg @@ -290,4 +291,4 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, tracers_total, ntr end subroutine GFS_suite_interstitial_4_run - end module GFS_suite_interstitial_4 \ No newline at end of file + end module GFS_suite_interstitial_4 diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 index 53867f6cc..c2f5266fd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.F90 @@ -37,7 +37,7 @@ subroutine GFS_suite_stateout_update_run (im, levs, ntrac, dtp, tgrs, ugrs, vgrs type(ty_ozphys), intent(in) :: ozphys ! Outputs (optional) - real(kind=kind_phys), intent(inout), dimension(:,:) :: & + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: & do3_dt_prd, & ! Physics tendency: production and loss effect do3_dt_ozmx, & ! Physics tendency: ozone mixing ratio effect do3_dt_temp, & ! Physics tendency: temperature effect diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 index 7e8cfa753..8e3e0fdbf 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 @@ -66,14 +66,16 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplaqm, cplchm, cplwav, cpl real(kind=kind_phys), dimension(:), intent(in) :: ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, adjsfcdlw, adjsfcdsw, & adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd, adjsfculw, adjsfculw_wat, adjnirbmu, adjnirdfu, adjvisbmu, adjvisdfu, & - t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf, pah, ecan, etran, edir, & + t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf, pah, ecan, etran, edir + real(kind=kind_phys), dimension(:), intent(in), optional :: & waxy - real(kind=kind_phys), dimension(:), intent(inout) :: epi, gfluxi, t1, q1, u1, v1, dlwsfci_cpl, dswsfci_cpl, dlwsfc_cpl, & + real(kind=kind_phys), dimension(:), intent(inout) :: epi, gfluxi, t1, q1, u1, v1,gflux, evbsa, & + evcwa, transa, sbsnoa, snowca, snohfa, ep, tecan, tetran, tedir + real(kind=kind_phys), dimension(:), intent(inout), optional :: pahi, dlwsfci_cpl, dswsfci_cpl, dlwsfc_cpl, & dswsfc_cpl, dnirbmi_cpl, dnirdfi_cpl, dvisbmi_cpl, dvisdfi_cpl, dnirbm_cpl, dnirdf_cpl, dvisbm_cpl, dvisdf_cpl, & nlwsfci_cpl, nlwsfc_cpl, t2mi_cpl, q2mi_cpl, u10mi_cpl, v10mi_cpl, tsfci_cpl, psurfi_cpl, nnirbmi_cpl, nnirdfi_cpl, & - nvisbmi_cpl, nvisdfi_cpl, nswsfci_cpl, nswsfc_cpl, nnirbm_cpl, nnirdf_cpl, nvisbm_cpl, nvisdf_cpl, gflux, evbsa, & - evcwa, transa, sbsnoa, snowca, snohfa, ep, paha, tecan, tetran, tedir, twa, pahi + nvisbmi_cpl, nvisdfi_cpl, nswsfci_cpl, nswsfc_cpl, nnirbm_cpl, nnirdf_cpl, nvisbm_cpl, nvisdf_cpl, paha, twa real(kind=kind_phys), dimension(:), intent(inout) :: runoff, srunoff real(kind=kind_phys), dimension(:), intent(in) :: drain, runof diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.F90 index b85168a2d..8d9fe7de9 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.F90 @@ -87,9 +87,9 @@ subroutine GFS_surface_generic_pre_run (nthreads, im, levs, vfrac, islmsk, isot, ! Stochastic physics / surface perturbations integer, intent(in) :: lndp_type, n_var_lndp - character(len=3), dimension(:), intent(in) :: lndp_var_list - real(kind=kind_phys), dimension(:), intent(in) :: lndp_prt_list - real(kind=kind_phys), dimension(:,:), intent(in) :: sfc_wts + character(len=3), dimension(:), intent(in), optional :: lndp_var_list + real(kind=kind_phys), dimension(:), intent(in), optional :: lndp_prt_list + real(kind=kind_phys), dimension(:,:), intent(in), optional :: sfc_wts real(kind=kind_phys), dimension(:), intent(out) :: z01d real(kind=kind_phys), dimension(:), intent(out) :: zt1d real(kind=kind_phys), dimension(:), intent(out) :: bexp1d @@ -98,14 +98,14 @@ subroutine GFS_surface_generic_pre_run (nthreads, im, levs, vfrac, islmsk, isot, real(kind=kind_phys), intent(out) :: lndp_vgf logical, intent(in) :: cplflx - real(kind=kind_phys), dimension(:), intent(in) :: slimskin_cpl + real(kind=kind_phys), dimension(:), intent(in), optional :: slimskin_cpl logical, dimension(:), intent(inout) :: flag_cice integer, dimension(:), intent(out) :: islmsk_cice real(kind=kind_phys), dimension(:), intent(out) :: wind real(kind=kind_phys), dimension(:), intent(in ) :: u1, v1 ! surface wind enhancement due to convection - real(kind=kind_phys), dimension(:), intent(inout ) :: cnvwind + real(kind=kind_phys), dimension(:), intent(inout ), optional :: cnvwind ! real(kind=kind_phys), dimension(:), intent(out) :: smcwlt2, smcref2 diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f index 1e373ae12..b42352f32 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/dcyc2t3.f @@ -214,8 +214,9 @@ subroutine dcyc2t3_run & real(kind=kind_phys), dimension(:), intent(in) :: & & sinlat, coslat, xlon, coszen, tf, tsflw, sfcdlw, & - & sfcdsw, sfcnsw, sfculw, sfculw_med, tsfc, tsfc_radtime - + & sfcdsw, sfcnsw, sfculw, tsfc + real(kind=kind_phys), dimension(:), intent(in), optional :: & + & sfculw_med, tsfc_radtime real(kind=kind_phys), dimension(:), intent(in) :: & & tsfc_lnd, tsfc_ice, tsfc_wat, & & sfcemis_lnd, sfcemis_ice, sfcemis_wat @@ -227,7 +228,8 @@ subroutine dcyc2t3_run & real(kind=kind_phys), dimension(:,:), intent(in) :: swh, hlw, & & swhc, hlwc, p_lay, t_lay - real(kind=kind_phys), dimension(:,:), intent(in) :: p_lev, & + real(kind=kind_phys), dimension(:,:), intent(in) :: p_lev + real(kind=kind_phys), dimension(:,:), intent(in), optional :: & & flux2D_lwUP, flux2D_lwDOWN, fluxlwUP_jac real(kind_phys), intent(in ) :: con_g, con_cp, & @@ -237,8 +239,9 @@ subroutine dcyc2t3_run & ! --- input/output: - real(kind=kind_phys), dimension(:,:), intent(inout) :: dtdt, htrlw - real(kind=kind_phys), dimension(:,:), intent(inout) :: dtdtnp + real(kind=kind_phys), dimension(:,:), intent(inout) :: dtdt + real(kind=kind_phys), dimension(:,:), intent(inout), optional :: & + & dtdtnp, htrlw ! --- outputs: real(kind=kind_phys), dimension(:), intent(out) :: & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.F90 index 5ac28afe8..74ebcb709 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.F90 @@ -66,8 +66,9 @@ subroutine maximum_hourly_diagnostics_run(im, levs, reset, lradar, imp_physics, real(kind_phys), intent(in ) :: prsl(:,:) real(kind_phys), intent(inout) :: pratemax(:) - real(kind_phys), intent(in), dimension(:,:) :: prsi, qgraupel, qsnowwat, qicewat, wgrs - real(kind_phys), intent(inout), dimension(:) :: ltg1_max, ltg2_max, ltg3_max + real(kind_phys), intent(in), dimension(:,:) :: prsi, qgraupel, qsnowwat, qicewat + real(kind_phys), intent(in), dimension(:,:), optional :: wgrs + real(kind_phys), intent(inout), dimension(:), optional :: ltg1_max, ltg2_max, ltg3_max character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg From 5eb6f69da5a72af5b938234e65639eaa5ec6b3bd Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Wed, 24 Apr 2024 17:16:52 +0000 Subject: [PATCH 27/40] Some cleanup, after using Courtney's new scipt --- physics/GWD/drag_suite.F90 | 2 +- physics/GWD/ugwpv1_gsldrag.F90 | 10 ++++------ physics/GWD/ugwpv1_gsldrag_post.F90 | 3 ++- physics/GWD/unified_ugwp.F90 | 6 +++--- physics/MP/Zhao_Carr/zhaocarr_gscond.f | 4 ++-- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index 8f292cde7..fcad796a8 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -362,8 +362,8 @@ subroutine drag_suite_run( & ! added for small-scale orographic wave drag real(kind=kind_phys), dimension(im,km) :: utendwave,vtendwave,thx,thvx real(kind=kind_phys), intent(in) :: br1(:), & + & hpbl(:), & & slmsk(:) - real(kind=kind_phys), intent(in), optional :: hpbl(:) real(kind=kind_phys), dimension(im) :: govrth,xland !real(kind=kind_phys), dimension(im,km) :: dz2 real(kind=kind_phys) :: tauwavex0,tauwavey0, & diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 09eda6b1d..290cedd1b 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -82,7 +82,7 @@ subroutine ugwpv1_gsldrag_init ( & integer, intent (in) :: me integer, intent (in) :: master integer, intent (in) :: nlunit - character(len=*), intent (in), optional :: input_nml_file(:) + character(len=*), intent (in) :: input_nml_file(:) integer, intent (in) :: logunit integer, intent (in) :: jdat(:) integer, intent (in) :: lonr @@ -400,7 +400,7 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, real(kind=kind_phys), intent(in), dimension(:) :: rain real(kind=kind_phys), intent(in), dimension(:) :: br1, slmsk - real(kind=kind_phys), intent(in), dimension(:), optional :: hpbl + real(kind=kind_phys), intent(in), dimension(:) :: hpbl ! ! moved to GFS_phys_time_vary ! real(kind=kind_phys), intent(in), dimension(:) :: ddy_j1tau, ddy_j2tau @@ -423,10 +423,8 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, dudt_ogw, dvdt_ogw, dudt_obl, dvdt_obl, & dudt_oss, dvdt_oss, dudt_ofd, dvdt_ofd - real(kind=kind_phys), intent(out) , dimension(:,:), optional :: dudt_ngw, dvdt_ngw, kdis_ngw - real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_gw, dvdt_gw, kdis_gw - - real(kind=kind_phys), intent(out) , dimension(:,:) :: dtdt_ngw, dtdt_gw + real(kind=kind_phys), intent(out) , dimension(:,:), optional :: dudt_ngw, dvdt_ngw, kdis_ngw, dtdt_ngw + real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_gw, dvdt_gw, dtdt_gw, kdis_gw real(kind=kind_phys), intent(out) , dimension(:) :: zogw, zlwb, zobl, zngw ! diff --git a/physics/GWD/ugwpv1_gsldrag_post.F90 b/physics/GWD/ugwpv1_gsldrag_post.F90 index 1d3703001..2b1d3e018 100644 --- a/physics/GWD/ugwpv1_gsldrag_post.F90 +++ b/physics/GWD/ugwpv1_gsldrag_post.F90 @@ -35,7 +35,8 @@ subroutine ugwpv1_gsldrag_post_run ( im, levs, ldiag_ugwp, & logical, intent(in) :: ldiag_ugwp !< flag for CIRES UGWP Diagnostics real(kind=kind_phys), intent(in), dimension(:) :: zobl, zlwb, zogw - real(kind=kind_phys), intent(in), dimension(:) :: du_ofdcol, tau_ogw, du_oblcol, tau_ngw + real(kind=kind_phys), intent(in), dimension(:) :: tau_ogw, tau_ngw + real(kind=kind_phys), intent(in), dimension(:),optional :: du_ofdcol, du_oblcol real(kind=kind_phys), intent(inout), dimension(:) :: tot_mtb, tot_ogw, tot_tofd, tot_ngw real(kind=kind_phys), intent(inout), dimension(:) :: tot_zmtb, tot_zlwb, tot_zogw diff --git a/physics/GWD/unified_ugwp.F90 b/physics/GWD/unified_ugwp.F90 index 4f880573c..a169fd101 100644 --- a/physics/GWD/unified_ugwp.F90 +++ b/physics/GWD/unified_ugwp.F90 @@ -75,7 +75,7 @@ subroutine unified_ugwp_init (me, master, nlunit, input_nml_file, logunit, & integer, intent (in) :: me integer, intent (in) :: master integer, intent (in) :: nlunit - character(len=*), intent (in), optional :: input_nml_file(:) + character(len=*), intent (in) :: input_nml_file(:) integer, intent (in) :: logunit integer, intent (in) :: jdat(:) integer, intent (in) :: lonr @@ -304,8 +304,8 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt & dtaux2d_ss(:,:),dtauy2d_ss(:,:), & & dtaux2d_fd(:,:),dtauy2d_fd(:,:), & & dudt_ngw(:,:),dvdt_ngw(:,:),dtdt_ngw(:,:) - real(kind=kind_phys), intent(in), optional :: hpbl(:) - real(kind=kind_phys), intent(in) :: br1(:), & + real(kind=kind_phys), intent(in) :: hpbl(:), & + & br1(:), & & slmsk(:) real(kind=kind_phys), intent(out), dimension(:) :: dusfcg, dvsfcg diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.f b/physics/MP/Zhao_Carr/zhaocarr_gscond.f index 65091f59f..2f70aa2f0 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.f +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.f @@ -100,10 +100,10 @@ subroutine zhaocarr_gscond_run (im,km,dt,dtf,prsl,ps,q,clw1 & integer, intent(in) :: im, km, ipr real(kind=kind_phys), intent(in) :: dt, dtf real(kind=kind_phys), intent(in) :: prsl(:,:), ps(:) - real(kind=kind_phys), intent(inout) :: q(:,:) + real(kind=kind_phys), intent(inout) :: q(:,:), t(:,:) real(kind=kind_phys), intent(in) :: clw1(:,:), clw2(:,:) real(kind=kind_phys), intent(out) :: cwm(:,:) - real(kind=kind_phys), intent(inout), optional :: t(:,:) & + real(kind=kind_phys), intent(inout), optional :: & &, tp(:,:), qp(:,:), psp(:) & &, tp1(:,:), qp1(:,:), psp1(:) real(kind=kind_phys), intent(in) :: u(:,:) From 0df24f89b11720fabd6238279fd55de843e9afb1 Mon Sep 17 00:00:00 2001 From: Dustin Swales Date: Wed, 24 Apr 2024 17:28:32 +0000 Subject: [PATCH 28/40] Omission from previous commit --- physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 index 81d77588b..19d49427a 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 @@ -248,11 +248,10 @@ SUBROUTINE mynnedmf_wrapper_run( & real(kind_phys), dimension(:,:), intent(inout), optional :: & & dqdt_cloud_droplet_num_conc, dqdt_water_aer_num_conc, & & dqdt_ice_aer_num_conc - real(kind_phys), dimension(:,:), intent(inout) ::dqdt_cccn real(kind_phys), dimension(:,:), intent(inout), optional :: qke, & - & EL_PBL, Sh3D, Sm3D - real(kind_phys), dimension(:,:), intent(inout), optional :: & - & qke_adv, qc_bl, qi_bl, cldfra_bl + & EL_PBL, Sh3D, Sm3D, qc_bl, qi_bl, cldfra_bl, dqdt_cccn + real(kind_phys), dimension(:,:), intent(inout) :: & + & qke_adv !These 10 arrays are only allocated when bl_mynn_output > 0 real(kind_phys), dimension(:,:), intent(inout), optional :: & & edmf_a,edmf_w,edmf_qt, & @@ -262,11 +261,11 @@ SUBROUTINE mynnedmf_wrapper_run( & & t3d,qgrs_water_vapor,qgrs_liquid_cloud,qgrs_ice, & & qgrs_snow real(kind_phys), dimension(:,:), intent(in) :: & + & qgrs_cloud_ice_num_conc, & & u,v,omega, & & exner,prsl,prsi, & & qgrs_ozone real(kind_phys), dimension(:,:), intent(in), optional :: & - & qgrs_cloud_ice_num_conc, & & qgrs_water_aer_num_conc, & & qgrs_cloud_droplet_num_conc, & & qgrs_ice_aer_num_conc From e73d7c8e7189a1f5d64399d98a5272180b2fe78b Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 24 Apr 2024 16:40:25 -0600 Subject: [PATCH 29/40] Small bug fixes in physics/SFC_Models/Lake/Flake/flake_driver.F90 and physics/SFC_Models/Land/RUC/lsm_ruc.F90 --- physics/SFC_Models/Lake/Flake/flake_driver.F90 | 2 +- physics/SFC_Models/Land/RUC/lsm_ruc.F90 | 4 ++-- physics/TODO_DONE.txt | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 physics/TODO_DONE.txt diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.F90 b/physics/SFC_Models/Lake/Flake/flake_driver.F90 index f849c6f62..9092b1c36 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.F90 +++ b/physics/SFC_Models/Lake/Flake/flake_driver.F90 @@ -65,7 +65,7 @@ SUBROUTINE flake_driver_run ( & real (kind=kind_phys),dimension(:),intent(inout) :: & & snwdph, hice, tsurf, t_sfc, hflx, evap, fice, ustar, qsfc, & - & ch, cm, chh, cmm, tsurf_ice, lflx, gflx + & ch, cm, chh, cmm, T_ice, tsurf_ice, lflx, gflx real (kind=kind_phys),dimension(:),intent(inout), optional :: & & h_ML, t_wML, t_mnw, H_B, T_B, t_bot1, t_bot2, c_t, T_snow real (kind=kind_phys), intent(in) :: julian diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index 7c50a5bf7..8df8cca24 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -95,7 +95,7 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & real (kind_phys), dimension(:), intent(inout) :: semis_lnd real (kind_phys), dimension(:), intent(inout) :: semis_ice real (kind_phys), dimension(:), intent(inout) :: & - albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & + albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd real (kind_phys), dimension(:), intent(inout), optional :: & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, & sfcqv_lnd, sfcqv_ice @@ -446,7 +446,7 @@ subroutine lsm_ruc_run & ! inputs & tsice ! --- output: - real (kind_phys), dimension(:), intent(inout), optional :: + real (kind_phys), dimension(:), intent(inout), optional :: & & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, & & snowfallac_ice, rhosnf real (kind_phys), dimension(:), intent(inout) :: & diff --git a/physics/TODO_DONE.txt b/physics/TODO_DONE.txt new file mode 100644 index 000000000..2984e4be1 --- /dev/null +++ b/physics/TODO_DONE.txt @@ -0,0 +1,6 @@ +https://docs.google.com/document/d/1fa7kTJXCX0qFv4OTj2BtgIxPBj63vbi_Fa9B4M_InfM/edit#heading=h.rs78qntnlzly + +TODO + + +DONE From caaa77fd7bf964d50dbbdbf24d1b75ddf27d3118 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 26 Apr 2024 19:27:57 -0600 Subject: [PATCH 30/40] More bugfixes for optional arguments --- .../UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 | 1 - .../UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 | 4 +- .../Interstitials/UFS_SCM_NEPTUNE/gcycle.F90 | 9 ++- physics/MP/GFDL/fv_sat_adj.F90 | 18 +++-- physics/MP/GFDL/fv_sat_adj.meta | 76 +++++++++++++------ physics/Radiation/radiation_surface.f | 3 +- physics/photochem/module_ozphys.F90 | 2 +- 7 files changed, 75 insertions(+), 38 deletions(-) diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index 933d75bfe..6f05c93db 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -179,7 +179,6 @@ subroutine GFS_radiation_surface_run ( & call setalb (slmsk, lsm, lsm_noahmp, lsm_ruc, use_cice_alb, snodi, sncovr, sncovr_ice, & snoalb, zorl, coszen, tsfg, tsfa, hprime, frac_grid, lakefrac, & -! snoalb, zorl, coszen, tsfg, tsfa, hprime, frac_grid, min_seaice, & alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 index 69d723b8a..eadc041fd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.F90 @@ -143,11 +143,11 @@ subroutine GFS_rrtmg_pre_run (im, levs, lm, lmk, lmp, n_var_lndp, lextop,& slmsk, dx, si real(kind=kind_phys), dimension(:,:), intent(in) :: prsi, prsl, prslk, & - tgrs, sfc_wts + tgrs real(kind=kind_phys), dimension(:,:), intent(in), optional :: & mg_cld, effrr_in, & cnvw_in, cnvc_in, & - sppt_wts + sppt_wts, sfc_wts real(kind=kind_phys), dimension(:,:,:), intent(in) :: qgrs real(kind=kind_phys), dimension(:,:,:), intent(inout) :: aer_nm diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/gcycle.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/gcycle.F90 index f5eecbd18..c2949f9a4 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/gcycle.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/gcycle.F90 @@ -37,15 +37,16 @@ subroutine gcycle (me, nthrds, nx, ny, isc, jsc, nsst, tile_num, nlunit, fn_nml, real(kind=kind_phys), intent(in) :: fhcyc, phour, landfrac(:), lakefrac(:), & min_seaice, min_lakeice, & xlat_d(:), xlon_d(:) - real(kind=kind_phys), intent(inout) :: smc(:,:), & - slc(:,:), & - stc(:,:), & + real(kind=kind_phys), intent(inout), optional :: & smois(:,:), & sh2o(:,:), & tslb(:,:), & + tref(:) + real(kind=kind_phys), intent(inout) :: smc(:,:), & + slc(:,:), & + stc(:,:), & tiice(:,:), & tg3(:), & - tref(:), & tsfc(:), & tsfco(:), & tisfc(:), & diff --git a/physics/MP/GFDL/fv_sat_adj.F90 b/physics/MP/GFDL/fv_sat_adj.F90 index ad8e5af0e..22077b9bb 100644 --- a/physics/MP/GFDL/fv_sat_adj.F90 +++ b/physics/MP/GFDL/fv_sat_adj.F90 @@ -230,7 +230,7 @@ end subroutine fv_sat_adj_finalize !! \section arg_table_fv_sat_adj_run Argument Table !! \htmlinclude fv_sat_adj_run.html !! -subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz, js, je, jsd, jed, jsc, jec, & +subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc1, iec1, isc2, iec2, kmp, km, kmdelz, js, je, jsd, jed, jsc1, jec1, jsc2, jec2, & ng, hydrostatic, fast_mp_consv, te0_2d, te0, ngas, qvi, qv, ql, qi, qr, & qs, qg, hs, peln, delz, delp, pt, pkz, q_con, akap, cappa, area, dtdt, & out_dt, last_step, do_qa, qa, & @@ -245,8 +245,10 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz integer, intent(in) :: ie integer, intent(in) :: isd integer, intent(in) :: ied - integer, intent(in) :: isc - integer, intent(in) :: iec + integer, intent(in) :: isc1 + integer, intent(in) :: iec1 + integer, intent(in) :: isc2 + integer, intent(in) :: iec2 integer, intent(in) :: kmp integer, intent(in) :: km integer, intent(in) :: kmdelz @@ -254,8 +256,10 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz integer, intent(in) :: je integer, intent(in) :: jsd integer, intent(in) :: jed - integer, intent(in) :: jsc - integer, intent(in) :: jec + integer, intent(in) :: jsc1 + integer, intent(in) :: jec1 + integer, intent(in) :: jsc2 + integer, intent(in) :: jec2 integer, intent(in) :: ng logical, intent(in) :: hydrostatic logical, intent(in) :: fast_mp_consv @@ -263,7 +267,11 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc, iec, kmp, km, kmdelz real(kind=kind_dyn), intent( out) :: te0(isd:ied, jsd:jed, 1:km) ! If multi-gases physics are not used, ngas is one and qvi identical to qv integer, intent(in) :: ngas +#ifdef MULTI_GASES real(kind=kind_dyn), intent(inout), optional :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas) +#else + real(kind=kind_dyn), intent(inout), optional :: qvi(:,:,:,:) +#endif real(kind=kind_dyn), intent(inout) :: qv(isd:ied, jsd:jed, 1:km) real(kind=kind_dyn), intent(inout) :: ql(isd:ied, jsd:jed, 1:km) real(kind=kind_dyn), intent(inout) :: qi(isd:ied, jsd:jed, 1:km) diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index 5e129e2d9..304bd3ab3 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -137,15 +137,29 @@ dimensions = () type = integer intent = in -[isc] - standard_name = starting_x_direction_index_alloc +[isc1] + standard_name = starting_x_direction_index_alloc1 long_name = starting X direction index for allocation units = count dimensions = () type = integer intent = in -[iec] - standard_name = ending_x_direction_index_alloc +[iec1] + standard_name = ending_x_direction_index_alloc1 + long_name = ending X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[isc2] + standard_name = starting_x_direction_index_alloc2 + long_name = starting X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[iec2] + standard_name = ending_x_direction_index_alloc2 long_name = ending X direction index for allocation units = count dimensions = () @@ -214,15 +228,29 @@ dimensions = () type = integer intent = in -[jsc] - standard_name = starting_y_direction_index_alloc +[jsc1] + standard_name = starting_y_direction_index_alloc1 long_name = starting X direction index for allocation units = count dimensions = () type = integer intent = in -[jec] - standard_name = ending_y_direction_index_alloc +[jec1] + standard_name = ending_y_direction_index_alloc1 + long_name = ending X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[jsc2] + standard_name = starting_y_direction_index_alloc2 + long_name = starting X direction index for allocation + units = count + dimensions = () + type = integer + intent = in +[jec2] + standard_name = ending_y_direction_index_alloc2 long_name = ending X direction index for allocation units = count dimensions = () @@ -276,7 +304,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics,1:number_of_gases_for_multi_gases_physics) type = real kind = kind_dyn intent = inout @@ -285,7 +313,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -293,7 +321,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -301,7 +329,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -309,7 +337,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -317,7 +345,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -325,7 +353,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -333,7 +361,7 @@ standard_name = surface_geopotential_at_Lagrangian_surface long_name = surface geopotential at Lagrangian surface units = m2 s-2 - dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1) type = real kind = kind_dyn intent = in @@ -341,7 +369,7 @@ standard_name = log_pressure_at_Lagrangian_surface long_name = logarithm of pressure at Lagrangian surface units = Pa - dimensions = (starting_x_direction_index:ending_x_direction_index,1:vertical_dimension_for_fast_physics_plus_one,starting_y_direction_index:ending_y_direction_index) + 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) type = real kind = kind_dyn intent = in @@ -349,7 +377,7 @@ standard_name = thickness_at_Lagrangian_surface long_name = thickness at Lagrangian_surface units = m - dimensions = (starting_x_direction_index:ending_x_direction_index,starting_y_direction_index:ending_y_direction_index,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,1:vertical_dimension_for_thickness_at_Lagrangian_surface) type = real kind = kind_dyn intent = in @@ -357,7 +385,7 @@ standard_name = pressure_thickness_at_Lagrangian_surface long_name = pressure thickness at Lagrangian surface units = Pa - dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = in @@ -365,7 +393,7 @@ standard_name = virtual_temperature_at_Lagrangian_surface long_name = virtual temperature at Lagrangian surface units = K - dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -373,7 +401,7 @@ standard_name = finite_volume_mean_edge_pressure_raised_to_the_power_of_kappa long_name = finite-volume mean edge pressure in Pa raised to the power of kappa units = 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_alloc2:ending_x_direction_index_alloc2,starting_y_direction_index_alloc2:ending_y_direction_index_alloc2,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = inout @@ -381,7 +409,7 @@ 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_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_condensed_water_at_Lagrangian_surface) type = real kind = kind_dyn intent = inout @@ -405,7 +433,7 @@ standard_name = cell_area_for_fast_physics long_name = area of the grid cell for fast physics units = m2 - dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc) + dimensions = (starting_x_direction_index_alloc1:ending_x_direction_index_alloc1,starting_y_direction_index_alloc1:ending_y_direction_index_alloc1) type = real kind = kind_grid intent = in @@ -442,7 +470,7 @@ standard_name = cloud_fraction_at_Lagrangian_surface long_name = cloud fraction at Lagrangian surface units = none - dimensions = (starting_x_direction_index_alloc:ending_x_direction_index_alloc,starting_y_direction_index_alloc:ending_y_direction_index_alloc,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,1:vertical_dimension_for_fast_physics) type = real kind = kind_dyn intent = out diff --git a/physics/Radiation/radiation_surface.f b/physics/Radiation/radiation_surface.f index 7b7caf849..8bbfd6ed5 100644 --- a/physics/Radiation/radiation_surface.f +++ b/physics/Radiation/radiation_surface.f @@ -421,8 +421,9 @@ subroutine setalb & & lakefrac, & & slmsk, snodi, zorlf, coszf, tsknf, tairf, hprif, & & alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, & - & icealbdvis, icealbdnir, icealbivis, icealbinir, & & sncovr, sncovr_ice, snoalb, albPpert ! sfc-perts, mgehne + real (kind=kind_phys), dimension(:), intent(in), optional :: & + & icealbdvis, icealbdnir, icealbivis, icealbinir real (kind=kind_phys), intent(in) :: pertalb, con_ttp! sfc-perts, mgehne real (kind=kind_phys), dimension(:), intent(in) :: & & fracl, fraco, fraci diff --git a/physics/photochem/module_ozphys.F90 b/physics/photochem/module_ozphys.F90 index b66eb0a74..897458fdb 100644 --- a/physics/photochem/module_ozphys.F90 +++ b/physics/photochem/module_ozphys.F90 @@ -221,7 +221,7 @@ subroutine run_o3prog_2015(this, con_1ovg, dt, p, t, dp, ozpl, oz, do_diag, do3_ real(kind_phys), intent(inout), dimension(:,:) :: & oz ! Ozone concentration updated by physics logical, intent(in) :: do_diag - real(kind_phys), intent(inout), dimension(:,:) :: & + real(kind_phys), intent(inout), dimension(:,:), optional :: & do3_dt_prd, & ! Physics tendency: production and loss effect do3_dt_ozmx, & ! Physics tendency: ozone mixing ratio effect do3_dt_temp, & ! Physics tendency: temperature effect From 28182260aa4b36d4b1cf53840a1bdec45bc55c93 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 29 Apr 2024 08:33:51 -0600 Subject: [PATCH 31/40] Add optional attribute to several variables in mp_gt_driver --- physics/MP/Thompson/module_mp_thompson.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/physics/MP/Thompson/module_mp_thompson.F90 b/physics/MP/Thompson/module_mp_thompson.F90 index 62e2688c7..86d88dd27 100644 --- a/physics/MP/Thompson/module_mp_thompson.F90 +++ b/physics/MP/Thompson/module_mp_thompson.F90 @@ -1078,7 +1078,7 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & ! Extended diagnostics, array pointers only associated if ext_diag flag is .true. LOGICAL, INTENT (IN) :: ext_diag LOGICAL, OPTIONAL, INTENT(IN):: aero_ind_fdb - REAL, DIMENSION(:,:,:), INTENT(INOUT):: & + REAL, DIMENSION(:,:,:), INTENT(INOUT), OPTIONAL :: & !vts1, txri, txrc, & prw_vcdc, & prw_vcde, tpri_inu, tpri_ide_d, & @@ -1908,7 +1908,7 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, & LOGICAL, INTENT(IN) :: ext_diag LOGICAL, INTENT(IN) :: sedi_semi INTEGER, INTENT(IN) :: decfl - REAL, DIMENSION(:), INTENT(OUT):: & + REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: & !vtsk1, txri1, txrc1, & prw_vcdc1, & prw_vcde1, tpri_inu1, tpri_ide1_d, & From b9fd2d87355bd7811801ee49a52ba221025a5fe8 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 30 Apr 2024 15:59:28 -0600 Subject: [PATCH 32/40] Add missing OPTIONAL Fortran attribute in internal routines: physics/MP/Thompson/module_mp_thompson.F90 physics/PBL/MYNN_EDMF/module_bl_mynn.F90 physics/SFC_Layer/MYNN/module_sf_mynn.F90 --- physics/MP/Thompson/module_mp_thompson.F90 | 7 +++-- physics/PBL/MYNN_EDMF/module_bl_mynn.F90 | 31 +++++++++++--------- physics/SFC_Layer/MYNN/module_sf_mynn.F90 | 34 +++++++++++++--------- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/physics/MP/Thompson/module_mp_thompson.F90 b/physics/MP/Thompson/module_mp_thompson.F90 index 86d88dd27..78b0d360c 100644 --- a/physics/MP/Thompson/module_mp_thompson.F90 +++ b/physics/MP/Thompson/module_mp_thompson.F90 @@ -1046,9 +1046,10 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & re_cloud, re_ice, re_snow REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(INOUT):: pfils, pflls INTEGER, INTENT(IN) :: rand_perturb_on, kme_stoch, n_var_spp - REAL, DIMENSION(:,:), INTENT(IN) :: rand_pert - REAL, DIMENSION(:), INTENT(IN) :: spp_prt_list, spp_stddev_cutoff - CHARACTER(len=10), DIMENSION(:), INTENT(IN) :: spp_var_list + REAL, DIMENSION(:,:), INTENT(IN), OPTIONAL :: rand_pert + REAL, DIMENSION(:), INTENT(IN), OPTIONAL :: spp_prt_list + REAL, DIMENSION(:), INTENT(IN) :: spp_stddev_cutoff + CHARACTER(len=10), DIMENSION(:), INTENT(IN), OPTIONAL :: spp_var_list INTEGER, INTENT(IN):: has_reqc, has_reqi, has_reqs #if ( WRF_CHEM == 1 ) REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(INOUT):: & diff --git a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 index cc7a47ce6..4983fc796 100644 --- a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 +++ b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 @@ -466,8 +466,10 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(:,:), intent(in):: ozone real(kind_phys), dimension(:), intent(in):: ust, & &ch,qsfc,ps,wspd + real(kind_phys), dimension(:,:), intent(inout), optional :: & + &Qke,Tsq,Qsq,Cov real(kind_phys), dimension(:,:), intent(inout) :: & - &Qke,Tsq,Qsq,Cov,qke_adv + &qke_adv real(kind_phys), dimension(:,:), intent(inout) :: & &rublten,rvblten,rthblten,rqvblten,rqcblten, & &rqiblten,rqsblten,rqniblten,rqncblten, & @@ -475,12 +477,12 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(:,:), intent(inout) :: dozone real(kind_phys), dimension(:,:), intent(in) :: rthraten - real(kind_phys), dimension(:,:), intent(out) :: exch_h,exch_m + real(kind_phys), dimension(:,:), intent(out), optional :: exch_h,exch_m real(kind_phys), dimension(:), intent(in) :: xland, & &ts,znt,hfx,qfx,uoce,voce !These 10 arrays are only allocated when bl_mynn_output > 0 - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & & edmf_a,edmf_w,edmf_qt,edmf_thl,edmf_ent,edmf_qc, & & sub_thl3D,sub_sqv3D,det_thl3D,det_sqv3D @@ -493,32 +495,35 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(ims:ime) :: psig_bl,psig_shcu integer,dimension(:),intent(INOUT) :: & - &KPBL,ktop_plume + &KPBL + integer,dimension(:),intent(INOUT), optional :: & + &ktop_plume - real(kind_phys), dimension(:), intent(out) :: & + real(kind_phys), dimension(:), intent(out), optional :: & &maxmf,maxwidth,ztop_plume - real(kind_phys), dimension(:,:), intent(inout) :: el_pbl + real(kind_phys), dimension(:,:), intent(inout), optional :: el_pbl - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & &qWT,qSHEAR,qBUOY,qDISS,dqke ! 3D budget arrays are not allocated when tke_budget == 0 ! 1D (local) budget arrays are used for passing between subroutines. real(kind_phys), dimension(kts:kte) :: & &qwt1,qshear1,qbuoy1,qdiss1,dqke1,diss_heat - real(kind_phys), dimension(:,:), intent(out) :: Sh3D,Sm3D + real(kind_phys), dimension(:,:), intent(out), optional :: Sh3D,Sm3D - real(kind_phys), dimension(:,:), intent(inout) :: & + real(kind_phys), dimension(:,:), intent(inout), optional :: & &qc_bl,qi_bl,cldfra_bl real(kind_phys), dimension(kts:kte) :: qc_bl1D,qi_bl1D, & &cldfra_bl1D,qc_bl1D_old,qi_bl1D_old,cldfra_bl1D_old ! smoke/chemical arrays integer, intent(IN ) :: nchem, kdvel, ndvel - real(kind_phys), dimension(:,:,:), intent(INOUT) :: chem3d - real(kind_phys), dimension(:,:), intent(IN) :: vdep - real(kind_phys), dimension(:), intent(IN) :: frp,EMIS_ANT_NO + real(kind_phys), dimension(:,:,:), intent(INOUT), optional :: chem3d + real(kind_phys), dimension(:,:), intent(IN), optional :: vdep + real(kind_phys), dimension(:), intent(IN), optional :: frp + real(kind_phys), dimension(:), intent(IN) :: EMIS_ANT_NO !local real(kind_phys), dimension(kts:kte ,nchem) :: chem1 real(kind_phys), dimension(kts:kte+1,nchem) :: s_awchem1 @@ -575,7 +580,7 @@ SUBROUTINE mynn_bl_driver( & ! Stochastic fields integer, intent(IN) :: spp_pbl - real(kind_phys), dimension(:,:), intent(IN) :: pattern_spp_pbl + real(kind_phys), dimension(:,:), intent(IN), optional :: pattern_spp_pbl real(kind_phys), dimension(KTS:KTE) :: rstoch_col ! Substepping TKE diff --git a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 index 3d847348d..588cb0898 100644 --- a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 +++ b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 @@ -284,7 +284,7 @@ SUBROUTINE SFCLAY_mynn( & th3d,pi3d !GJF: This array must be assumed-shape since it is conditionally-allocated - REAL(kind_phys), DIMENSION( :,: ), & + REAL(kind_phys), DIMENSION( :,: ), OPTIONAL, & INTENT(IN) :: pattern_spp_sfc !=================================== ! 2D VARIABLES @@ -304,21 +304,23 @@ SUBROUTINE SFCLAY_mynn( & REAL(kind_phys), DIMENSION( ims:ime ) , & INTENT(INOUT) :: HFLX,HFX, & QFLX,QFX, & - LH, & - MOL,RMOL, & + RMOL, & QSFC, & QGH, & ZNT, & - ZOL, & - USTM, & CPM, & - CHS2, & - CQS2, & CHS, & CH, & FLHC,FLQC, & GZ1OZ0,WSPD, & - PSIM,PSIH, & + PSIM,PSIH + REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL , & + INTENT(INOUT) :: USTM, & + CHS2, & + CQS2, & + LH, & + ZOL, & + MOL, & WSTAR LOGICAL, DIMENSION( ims:ime ), INTENT(IN) :: & @@ -607,18 +609,20 @@ SUBROUTINE SFCLAY1D_mynn(flag_iter, & RMOL REAL(kind_phys), DIMENSION( ims:ime ), & INTENT(INOUT) :: HFLX,QFLX, & - LH,MOL, & QGH,QSFC, & ZNT, & - ZOL, & CPM, & - CHS2,CQS2, & CHS,CH, & FLHC,FLQC, & GZ1OZ0, & WSPD, & PSIM, & - PSIH, & + PSIH + REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL, & + INTENT(INOUT) :: MOL, & + ZOL, & + LH, & + CHS2,CQS2, & USTM LOGICAL, DIMENSION( ims:ime ), INTENT(IN) :: & @@ -656,8 +660,10 @@ SUBROUTINE SFCLAY1D_mynn(flag_iter, & !-------------------------------------------- !JOE-additinal output REAL(kind_phys), DIMENSION( ims:ime ), & - & INTENT(OUT) :: wstar, & - & qstar + & INTENT(OUT) :: qstar + REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL, & + & INTENT(OUT) :: wstar + !JOE-end ! CCPP error handling From 7b6a23e393ad33dc56f13362c789ca5e3911e733 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 1 May 2024 07:21:48 -0600 Subject: [PATCH 33/40] Add missing optional attributes in physics/CONV/Grell_Freitas/cu_gf_deep.F90 --- physics/CONV/Grell_Freitas/cu_gf_deep.F90 | 8 ++-- physics/CONV/Grell_Freitas/cu_gf_driver.F90 | 53 ++++++++++----------- 2 files changed, 30 insertions(+), 31 deletions(-) diff --git a/physics/CONV/Grell_Freitas/cu_gf_deep.F90 b/physics/CONV/Grell_Freitas/cu_gf_deep.F90 index 8a2c73600..bb5ff4b90 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_deep.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_deep.F90 @@ -158,7 +158,7 @@ subroutine cu_gf_deep_run( & !$acc declare copyin(rand_clos,rand_mom,rand_vmas) integer, intent(in) :: do_capsuppress - real(kind=kind_phys), intent(in), dimension(:) :: cap_suppress_j + real(kind=kind_phys), intent(in), dimension(:), optional :: cap_suppress_j !$acc declare create(cap_suppress_j) ! ! @@ -217,11 +217,11 @@ subroutine cu_gf_deep_run( & mconv,ccn !$acc declare copy(mconv,ccn) real(kind=kind_phys), dimension (:,:,:) & - ,intent (inout) :: & + ,intent (inout), optional :: & chem3d logical, intent (in) :: do_smoke_transport real(kind=kind_phys), dimension (:,:) & - , intent (out) :: wetdpc_deep + , intent (out), optional :: wetdpc_deep real(kind=kind_phys), intent (in) :: fscav(:) !$acc declare copy(chem3d) copyout(wetdpc_deep) copyin(fscav) @@ -376,7 +376,7 @@ subroutine cu_gf_deep_run( & !$acc ktopdby,kbconx,ierr2,ierr3,kbmax) integer, dimension (its:ite), intent(inout) :: ierr - integer, dimension (its:ite), intent(in) :: csum + integer, dimension (its:ite), intent(in), optional :: csum !$acc declare copy(ierr) copyin(csum) integer :: & iloop,nens3,ki,kk,i,k diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 index 9db7dcfd9..df5a196b1 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 @@ -816,33 +816,32 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& ,dx & ,mconv & ,omeg & - - ,cactiv & - ,cnvwt & - ,zu & - ,zd & - ,zdm & ! hli - ,edt & - ,edtm & ! hli - ,xmb & - ,xmbm & - ,xmbs & - ,pret & - ,outu & - ,outv & - ,outt & - ,outq & - ,outqc & - ,kbcon & - ,ktop & - ,cupclw & - ,frhd & - ,ierr & - ,ierrc & - ,nchem & - ,fscav & - ,chem3d & - ,wetdpc_deep & + ,cactiv & + ,cnvwt & + ,zu & + ,zd & + ,zdm & ! hli + ,edt & + ,edtm & ! hli + ,xmb & + ,xmbm & + ,xmbs & + ,pret & + ,outu & + ,outv & + ,outt & + ,outq & + ,outqc & + ,kbcon & + ,ktop & + ,cupclw & + ,frhd & + ,ierr & + ,ierrc & + ,nchem & + ,fscav & + ,chem3d & + ,wetdpc_deep & ,do_smoke_transport & ! the following should be set to zero if not available ,rand_mom & ! for stochastics mom, if temporal and spatial patterns exist From 55518990828cef94a050b8c8a4bc2dfc2520f516 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 May 2024 06:40:21 -0600 Subject: [PATCH 34/40] No opt flags for gcycle.F90 with Intel --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c56070123..a9f7bcac8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,7 +156,8 @@ endif() # No optimization for certain schemes when compiling with Intel in Release mode if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel") # Define a list of schemes that can't be optimized with Intel in Release mode - set(SCHEME_NAMES_NO_OPTIMIZATION GFS_typedefs.F90) + set(SCHEME_NAMES_NO_OPTIMIZATION GFS_typedefs.F90 + gcycle.F90) foreach(SCHEME_NAME IN LISTS SCHEME_NAMES_NO_OPTIMIZATION) set(SCHEMES_TMP ${SCHEMES}) # Need to determine the name of the scheme with its path From ef9b15ff614f573d4fa0fdcf51557756444f6cba Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 May 2024 06:43:16 -0600 Subject: [PATCH 35/40] Comment out block to nullify local pointers at the end of mp_thompson_run to avoid problems with Intel compiler? --- physics/MP/Thompson/mp_thompson.F90 | 89 +++++++++++++++-------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/physics/MP/Thompson/mp_thompson.F90 b/physics/MP/Thompson/mp_thompson.F90 index 4bb9964ba..71ac1ac20 100644 --- a/physics/MP/Thompson/mp_thompson.F90 +++ b/physics/MP/Thompson/mp_thompson.F90 @@ -819,48 +819,53 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & pfl_lsan(:,:) = pflls(:,:,1) end if - unset_extended_diagnostic_pointers: if (ext_diag) then - !vts1 => null() - !txri => null() - !txrc => null() - prw_vcdc => null() - prw_vcde => null() - tpri_inu => null() - tpri_ide_d => null() - tpri_ide_s => null() - tprs_ide => null() - tprs_sde_d => null() - tprs_sde_s => null() - tprg_gde_d => null() - tprg_gde_s => null() - tpri_iha => null() - tpri_wfz => null() - tpri_rfz => null() - tprg_rfz => null() - tprs_scw => null() - tprg_scw => null() - tprg_rcs => null() - tprs_rcs => null() - tprr_rci => null() - tprg_rcg => null() - tprw_vcd_c => null() - tprw_vcd_e => null() - tprr_sml => null() - tprr_gml => null() - tprr_rcg => null() - tprr_rcs => null() - tprv_rev => null() - tten3 => null() - qvten3 => null() - qrten3 => null() - qsten3 => null() - qgten3 => null() - qiten3 => null() - niten3 => null() - nrten3 => null() - ncten3 => null() - qcten3 => null() - end if unset_extended_diagnostic_pointers + ! DH* Not really needed because they go out of scope ... + ! But having them in here seems to cause problems with Intel? + ! It looked like this is also nullifying the pointers passed + ! from the CCPP caps. + !unset_extended_diagnostic_pointers: if (ext_diag) then + ! !vts1 => null() + ! !txri => null() + ! !txrc => null() + ! prw_vcdc => null() + ! prw_vcde => null() + ! tpri_inu => null() + ! tpri_ide_d => null() + ! tpri_ide_s => null() + ! tprs_ide => null() + ! tprs_sde_d => null() + ! tprs_sde_s => null() + ! tprg_gde_d => null() + ! tprg_gde_s => null() + ! tpri_iha => null() + ! tpri_wfz => null() + ! tpri_rfz => null() + ! tprg_rfz => null() + ! tprs_scw => null() + ! tprg_scw => null() + ! tprg_rcs => null() + ! tprs_rcs => null() + ! tprr_rci => null() + ! tprg_rcg => null() + ! tprw_vcd_c => null() + ! tprw_vcd_e => null() + ! tprr_sml => null() + ! tprr_gml => null() + ! tprr_rcg => null() + ! tprr_rcs => null() + ! tprv_rev => null() + ! tten3 => null() + ! qvten3 => null() + ! qrten3 => null() + ! qsten3 => null() + ! qgten3 => null() + ! qiten3 => null() + ! niten3 => null() + ! nrten3 => null() + ! ncten3 => null() + ! qcten3 => null() + !end if unset_extended_diagnostic_pointers + ! *DH end subroutine mp_thompson_run !>@} From cafda682f324c2086ec58930b47a6470e824cc58 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 May 2024 06:43:44 -0600 Subject: [PATCH 36/40] Remove mistakenly added physics/TODO_DONE.txt --- physics/TODO_DONE.txt | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 physics/TODO_DONE.txt diff --git a/physics/TODO_DONE.txt b/physics/TODO_DONE.txt deleted file mode 100644 index 2984e4be1..000000000 --- a/physics/TODO_DONE.txt +++ /dev/null @@ -1,6 +0,0 @@ -https://docs.google.com/document/d/1fa7kTJXCX0qFv4OTj2BtgIxPBj63vbi_Fa9B4M_InfM/edit#heading=h.rs78qntnlzly - -TODO - - -DONE From 67789c9f20d9fd9bb29ccf81e78b0deb908039f0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 7 May 2024 06:44:05 -0600 Subject: [PATCH 37/40] Add optional arguments to physics/CONV/C3/cu_c3* --- physics/CONV/C3/cu_c3_deep.F90 | 11 +++++--- physics/CONV/C3/cu_c3_driver.F90 | 47 ++++++++++++++++---------------- physics/CONV/C3/cu_c3_sh.F90 | 10 +++++-- 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/physics/CONV/C3/cu_c3_deep.F90 b/physics/CONV/C3/cu_c3_deep.F90 index b7cd5f62d..9bcbe5910 100644 --- a/physics/CONV/C3/cu_c3_deep.F90 +++ b/physics/CONV/C3/cu_c3_deep.F90 @@ -167,7 +167,7 @@ subroutine cu_c3_deep_run( & real(kind=kind_phys), dimension (its:) & ,intent (in ) :: rand_mom,rand_vmas !$acc declare copyin(rand_clos,rand_mom,rand_vmas) - real(kind=kind_phys), intent(in), dimension (its:) :: ca_deep(:) + real(kind=kind_phys), intent(in), dimension (its:), optional :: ca_deep(:) integer, intent(in) :: do_capsuppress real(kind=kind_phys), intent(in), dimension(:) :: cap_suppress_j !$acc declare create(cap_suppress_j) @@ -188,7 +188,10 @@ subroutine cu_c3_deep_run( & frh_out,rainevap real(kind=kind_phys), dimension (its:,kts:) & ,intent (in ) :: & - tmf, qmicro, sigmain, forceqv_spechum + tmf + real(kind=kind_phys), dimension (its:,kts:) & + ,intent (in ), optional :: & + qmicro, sigmain, forceqv_spechum real(kind=kind_phys), dimension (its:) & ,intent (inout ) :: & pre,xmb_out @@ -223,7 +226,7 @@ subroutine cu_c3_deep_run( & q,qo,zuo,zdo,zdm !$acc declare sigmaout real(kind=kind_phys), dimension (its:,kts:) & - ,intent (out) :: & + ,intent (out), optional :: & sigmaout real(kind=kind_phys), dimension (its:) & ,intent (in ) :: & @@ -376,7 +379,7 @@ subroutine cu_c3_deep_run( & !$acc ktopdby,kbconx,ierr2,ierr3,kbmax) integer, dimension (its:), intent(inout) :: ierr - integer, dimension (its:), intent(in) :: csum + integer, dimension (its:), intent(in), optional :: csum logical, intent(in) :: do_ca, progsigma logical, intent(in) :: flag_init, flag_restart !$acc declare copy(ierr) copyin(csum) diff --git a/physics/CONV/C3/cu_c3_driver.F90 b/physics/CONV/C3/cu_c3_driver.F90 index 8057ed030..a08d47463 100644 --- a/physics/CONV/C3/cu_c3_driver.F90 +++ b/physics/CONV/C3/cu_c3_driver.F90 @@ -846,30 +846,29 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,& ,ca_deep & ,mconv & ,omeg & - - ,cactiv & - ,cnvwt & - ,zu & - ,zd & - ,zdm & ! hli - ,edt & - ,edtm & ! hli - ,xmb & - ,xmbm & - ,xmbs & - ,pret & - ,outu & - ,outv & - ,outt & - ,outq & - ,outqc & - ,kbcon & - ,ktop & - ,cupclw & - ,frhd & - ,rainevap & - ,ierr & - ,ierrc & + ,cactiv & + ,cnvwt & + ,zu & + ,zd & + ,zdm & ! hli + ,edt & + ,edtm & ! hli + ,xmb & + ,xmbm & + ,xmbs & + ,pret & + ,outu & + ,outv & + ,outt & + ,outq & + ,outqc & + ,kbcon & + ,ktop & + ,cupclw & + ,frhd & + ,rainevap & + ,ierr & + ,ierrc & ! the following should be set to zero if not available ,rand_mom & ! for stochastics mom, if temporal and spatial patterns exist ,rand_vmas & ! for stochastics vertmass, if temporal and spatial patterns exist diff --git a/physics/CONV/C3/cu_c3_sh.F90 b/physics/CONV/C3/cu_c3_sh.F90 index 736292092..0625b2949 100644 --- a/physics/CONV/C3/cu_c3_sh.F90 +++ b/physics/CONV/C3/cu_c3_sh.F90 @@ -102,7 +102,11 @@ subroutine cu_c3_sh_run ( & !$acc declare copy(cnvwt,outt,outq,outqc,cupclw,zuo,outu,outv) real(kind=kind_phys), dimension (its:,kts:) & ,intent (in ) :: & - tmf, qmicro, sigmain, forceqv_spechum + tmf + real(kind=kind_phys), dimension (its:,kts:) & + ,intent (in ), optional :: & + qmicro, sigmain, forceqv_spechum + real(kind=kind_phys), dimension (its:) & ,intent (out ) :: & xmb_out @@ -133,9 +137,9 @@ subroutine cu_c3_sh_run ( & real(kind=kind_phys) & ,intent (in ) :: & dtime,tcrit,fv,r_d,betascu,betamcu,betadcu -!$acc declare sigmaout +!$acc declare sigmaout real(kind=kind_phys), dimension (its:,kts:) & - ,intent (out) :: & + ,intent (out), optional :: & sigmaout From 81793d13e38c99bc10e6232a2ecd0ebff38a3514 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 May 2024 08:51:30 -0600 Subject: [PATCH 38/40] Reduce optimization for mynnedmf_wrapper.F90 Use -O1 instead of -O0 for gcycle.F90 with Intel --- CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a9f7bcac8..715af8afe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -142,7 +142,9 @@ SET_PROPERTY(SOURCE ${SCHEMES} ${CAPS} # Lower optimization for certain schemes when compiling with Intel in Release mode if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel") # Define a list of schemes that need lower optimization with Intel in Release mode - set(SCHEME_NAMES_LOWER_OPTIMIZATION module_sf_mynn.F90) + set(SCHEME_NAMES_LOWER_OPTIMIZATION module_sf_mynn.F90 + mynnedmf_wrapper.F90 + gcycle.F90) foreach(SCHEME_NAME IN LISTS SCHEME_NAMES_LOWER_OPTIMIZATION) set(SCHEMES_TMP ${SCHEMES}) # Need to determine the name of the scheme with its path @@ -156,8 +158,7 @@ endif() # No optimization for certain schemes when compiling with Intel in Release mode if(CMAKE_BUILD_TYPE STREQUAL "Release" AND ${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel") # Define a list of schemes that can't be optimized with Intel in Release mode - set(SCHEME_NAMES_NO_OPTIMIZATION GFS_typedefs.F90 - gcycle.F90) + set(SCHEME_NAMES_NO_OPTIMIZATION GFS_typedefs.F90) foreach(SCHEME_NAME IN LISTS SCHEME_NAMES_NO_OPTIMIZATION) set(SCHEMES_TMP ${SCHEMES}) # Need to determine the name of the scheme with its path From e2c101076a3be15a9bdf34e3677628f3118c6e56 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 10 May 2024 08:53:03 -0600 Subject: [PATCH 39/40] Bug fix for merra2 aerosol setup in physics/MP/Thompson/mp_thompson.F90 --- physics/MP/Thompson/mp_thompson.F90 | 44 ++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/physics/MP/Thompson/mp_thompson.F90 b/physics/MP/Thompson/mp_thompson.F90 index 71ac1ac20..3b99deec1 100644 --- a/physics/MP/Thompson/mp_thompson.F90 +++ b/physics/MP/Thompson/mp_thompson.F90 @@ -690,7 +690,7 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & qcten3 => diag3d(:,:,37:37) end if set_extended_diagnostic_pointers !> - Call mp_gt_driver() with or without aerosols, with or without effective radii, ... - if (is_aerosol_aware .or. merra2_aerosol_aware) then + if (is_aerosol_aware) then call mp_gt_driver(qv=qv, qc=qc, qr=qr, qi=qi, qs=qs, qg=qg, ni=ni, nr=nr, & nc=nc, nwfa=nwfa, nifa=nifa, nwfa2d=nwfa2d, nifa2d=nifa2d, & tt=tgrs, p=prsl, w=w, dz=dz, dt_in=dtstep, dt_inner=dt_inner, & @@ -732,6 +732,48 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & qvten3=qvten3, qrten3=qrten3, qsten3=qsten3, qgten3=qgten3, & qiten3=qiten3, niten3=niten3, nrten3=nrten3, ncten3=ncten3, & qcten3=qcten3, pfils=pfils, pflls=pflls) + else if (merra2_aerosol_aware) then + call mp_gt_driver(qv=qv, qc=qc, qr=qr, qi=qi, qs=qs, qg=qg, ni=ni, nr=nr, & + nc=nc, nwfa=nwfa, nifa=nifa, & + tt=tgrs, p=prsl, w=w, dz=dz, dt_in=dtstep, dt_inner=dt_inner, & + sedi_semi=sedi_semi, decfl=decfl, lsm=islmsk, & + rainnc=rain_mp, rainncv=delta_rain_mp, & + snownc=snow_mp, snowncv=delta_snow_mp, & + icenc=ice_mp, icencv=delta_ice_mp, & + graupelnc=graupel_mp, graupelncv=delta_graupel_mp, sr=sr, & + refl_10cm=refl_10cm, & + diagflag=diagflag, do_radar_ref=do_radar_ref_mp, & + max_hail_diam_sfc=max_hail_diam_sfc, & + has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & + aero_ind_fdb=aero_ind_fdb, rand_perturb_on=spp_mp_opt, & + kme_stoch=kme_stoch, & + rand_pert=spp_wts_mp, spp_var_list=spp_var_list, & + spp_prt_list=spp_prt_list, n_var_spp=n_var_spp, & + spp_stddev_cutoff=spp_stddev_cutoff, & + ids=ids, ide=ide, jds=jds, jde=jde, kds=kds, kde=kde, & + ims=ims, ime=ime, jms=jms, jme=jme, kms=kms, kme=kme, & + its=its, ite=ite, jts=jts, jte=jte, kts=kts, kte=kte, & + fullradar_diag=fullradar_diag, istep=istep, nsteps=nsteps, & + first_time_step=first_time_step, errmsg=errmsg, errflg=errflg, & + ! Extended diagnostics + ext_diag=ext_diag, & + ! vts1=vts1, txri=txri, txrc=txrc, & + prw_vcdc=prw_vcdc, & + prw_vcde=prw_vcde, tpri_inu=tpri_inu, tpri_ide_d=tpri_ide_d, & + tpri_ide_s=tpri_ide_s, tprs_ide=tprs_ide, & + tprs_sde_d=tprs_sde_d, & + tprs_sde_s=tprs_sde_s, tprg_gde_d=tprg_gde_d, & + tprg_gde_s=tprg_gde_s, tpri_iha=tpri_iha, & + tpri_wfz=tpri_wfz, tpri_rfz=tpri_rfz, tprg_rfz=tprg_rfz, & + tprs_scw=tprs_scw, tprg_scw=tprg_scw, tprg_rcs=tprg_rcs, & + tprs_rcs=tprs_rcs, & + tprr_rci=tprr_rci, tprg_rcg=tprg_rcg, tprw_vcd_c=tprw_vcd_c, & + tprw_vcd_e=tprw_vcd_e, tprr_sml=tprr_sml, tprr_gml=tprr_gml, & + tprr_rcg=tprr_rcg, tprr_rcs=tprr_rcs, & + tprv_rev=tprv_rev, tten3=tten3, & + qvten3=qvten3, qrten3=qrten3, qsten3=qsten3, qgten3=qgten3, & + qiten3=qiten3, niten3=niten3, nrten3=nrten3, ncten3=ncten3, & + qcten3=qcten3, pfils=pfils, pflls=pflls) else call mp_gt_driver(qv=qv, qc=qc, qr=qr, qi=qi, qs=qs, qg=qg, ni=ni, nr=nr, & tt=tgrs, p=prsl, w=w, dz=dz, dt_in=dtstep, dt_inner=dt_inner, & From 7e59eba2835711f7046e0b7528dc846bd875f754 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 20 May 2024 10:40:13 -0600 Subject: [PATCH 40/40] Bug fixes in NoahMP LSM and Noah LSM: rca is an optional argument --- physics/SFC_Models/Land/Noah/lsm_noah.f | 5 ++--- physics/SFC_Models/Land/Noah/lsm_noah.meta | 1 + physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 | 2 +- physics/SFC_Models/Land/Noahmp/noahmpdrv.meta | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.f b/physics/SFC_Models/Land/Noah/lsm_noah.f index 6ac87fb76..139c978a0 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.f +++ b/physics/SFC_Models/Land/Noah/lsm_noah.f @@ -284,10 +284,9 @@ subroutine lsm_noah_run & ! --- output: real (kind=kind_phys), dimension(:), intent(inout) :: sncovr1, & & qsurf, gflux, drain, evap, hflx, ep, runoff, cmm, chh, & - & evbs, evcw, sbsno, snowc, stm, snohf, smcwlt2, smcref2, & - & rca + & evbs, evcw, sbsno, snowc, stm, snohf, smcwlt2, smcref2 real (kind=kind_phys), dimension(:), intent(inout), optional :: & - & wet1, lai + & wet1, lai, rca character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.meta b/physics/SFC_Models/Land/Noah/lsm_noah.meta index 0a58312c8..f26b075d9 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.meta +++ b/physics/SFC_Models/Land/Noah/lsm_noah.meta @@ -768,6 +768,7 @@ type = real kind = kind_phys intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index 1ee773b90..6234f46d9 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -400,7 +400,7 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(out), optional :: q2mp ! combined q2m from tiles real(kind=kind_phys), dimension(:) , intent(out) :: zvfun ! real(kind=kind_phys), dimension(:) , intent(out) :: ztmax ! thermal roughness length - real(kind=kind_phys), dimension(:) , intent(out) :: rca ! total canopy/stomatal resistance (s/m) + real(kind=kind_phys), dimension(:) , intent(out), optional :: rca ! total canopy/stomatal resistance (s/m) character(len=*) , intent(out) :: errmsg integer , intent(out) :: errflg diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 20f8b9069..753550016 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -1410,6 +1410,7 @@ type = real kind = kind_phys intent = out + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP