diff --git a/.gitmodules b/.gitmodules index 5bcc65869..75e5ea836 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "physics/rte-rrtmgp"] - path = physics/rte-rrtmgp - url = https://github.com/earth-system-radiation/rte-rrtmgp - branch = dtc/ccpp + path = physics/rte-rrtmgp + url = https://github.com/earth-system-radiation/rte-rrtmgp + branch = dtc/ccpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 5252802ed..4d5c8eae4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,25 +143,6 @@ set(SCHEMES_OPENMP_OFF ${LOCAL_CURRENT_SOURCE_DIR}/physics/rte-rrtmgp/rrtmgp/mo_ #------------------------------------------------------------------------------ if (${CMAKE_Fortran_COMPILER_ID} STREQUAL "GNU") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none") - - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_bfmicrophysics.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sflx.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sfc_diff.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sfc_diag.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_nst_model.f90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/calpreciptype.f90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/mersenne_twister.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_nst_water_prop.f90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/aer_cloud.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/wv_saturation.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/cldwat2m_micro.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/surface_perturbation.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_mp_thompson_make_number_concentrations.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_SF_JSFC.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_BL_MYJPBL.F90 - PROPERTIES COMPILE_FLAGS "-fdefault-real-8 -fdefault-double-8 ${OpenMP_Fortran_FLAGS}") - if (PROJECT STREQUAL "CCPP-FV3") # Set 32-bit floating point precision flags for certain files # that are executed in the dynamics (fast physics part) @@ -214,24 +195,6 @@ elseif (${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel") list(APPEND SCHEMES_SFX_OPT ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_sf_mynn.F90) endif() - if (${LOCAL_CURRENT_SOURCE_DIR}/physics/radiation_aerosols.f IN_LIST SCHEMES) - # Replace -xHost or -xCORE-AVX2 with -xCORE-AVX-I for certain files - set(CMAKE_Fortran_FLAGS_LOPT1 ${CMAKE_Fortran_FLAGS_OPT}) - string(REPLACE "-xHOST" "-xCORE-AVX-I" - CMAKE_Fortran_FLAGS_LOPT1 - "${CMAKE_Fortran_FLAGS_LOPT1}") - string(REPLACE "-xCORE-AVX2" "-xCORE-AVX-I" - CMAKE_Fortran_FLAGS_LOPT1 - "${CMAKE_Fortran_FLAGS_LOPT1}") - string(REPLACE "-axSSE4.2,CORE-AVX2" "-axSSE4.2,CORE-AVX-I" - CMAKE_Fortran_FLAGS_LOPT1 - "${CMAKE_Fortran_FLAGS_LOPT1}") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/radiation_aerosols.f - PROPERTIES COMPILE_FLAGS "${CMAKE_Fortran_FLAGS_LOPT1}") - # Add all of the above files to the list of schemes with special compiler flags - list(APPEND SCHEMES_SFX_OPT ${LOCAL_CURRENT_SOURCE_DIR}/physics/radiation_aerosols.f) - endif() - # Remove files with special compiler flags from list of files with standard compiler flags if (SCHEMES_SFX_OPT) list(REMOVE_ITEM SCHEMES ${SCHEMES_SFX_OPT}) @@ -274,35 +237,12 @@ elseif (${CMAKE_Fortran_COMPILER_ID} STREQUAL "Intel") SET_PROPERTY(SOURCE ${SCHEMES2} ${CAPS} APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_DEFAULT_PREC} ${OpenMP_Fortran_FLAGS} ") - else (PROJECT STREQUAL "CCPP-FV3") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_bfmicrophysics.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sflx.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sfc_diff.f - ${LOCAL_CURRENT_SOURCE_DIR}/physics/sfc_diag.f - PROPERTIES COMPILE_FLAGS "-r8 ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_nst_model.f90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/calpreciptype.f90 - PROPERTIES COMPILE_FLAGS "-r8 -free ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/mersenne_twister.f - PROPERTIES COMPILE_FLAGS "-r8 -ftz ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_nst_water_prop.f90 - PROPERTIES COMPILE_FLAGS "-extend-source 132 -r8 -free ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/aer_cloud.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/wv_saturation.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/cldwat2m_micro.F - ${LOCAL_CURRENT_SOURCE_DIR}/physics/surface_perturbation.F90 - PROPERTIES COMPILE_FLAGS "-r8 ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_mp_thompson_make_number_concentrations.F90 - PROPERTIES COMPILE_FLAGS "-r8 ${OpenMP_Fortran_FLAGS} ") - SET_SOURCE_FILES_PROPERTIES(${LOCAL_CURRENT_SOURCE_DIR}/physics/module_SF_JSFC.F90 - ${LOCAL_CURRENT_SOURCE_DIR}/physics/module_BL_MYJPBL.F90 - PROPERTIES COMPILE_FLAGS "-r8 ${OpenMP_Fortran_FLAGS} ") endif (PROJECT STREQUAL "CCPP-FV3") else() message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER}) message ("Fortran compiler: " ${CMAKE_Fortran_COMPILER_ID}) - message (FATAL_ERROR "This program has only been compiled with gfortran, pgf90 and ifort. If another compiler is needed, the appropriate flags must be added in ${GFS_PHYS_SRC}/CMakeLists.txt") + message (FATAL_ERROR "This program has only been compiled with gfortran and ifort. If another compiler is needed, the appropriate flags must be added in ${GFS_PHYS_SRC}/CMakeLists.txt") endif() #------------------------------------------------------------------------------ diff --git a/README.md b/README.md index 9000afccc..b4aaef36f 100644 --- a/README.md +++ b/README.md @@ -5,16 +5,24 @@ The Common Community Physics Package (CCPP) is designed to facilitate the implem Please see more information about the CCPP at the locations below. - [CCPP website hosted by the Developmental Testbed Center (DTC)](https://dtcenter.org/ccpp) -- [CCPP public release information](https://dtcenter.org/community-code/common-community-physics-package-ccpp/ccpp-scm-version-4-0) -- [CCPP Technical Documentation](https://ccpp-techdoc.readthedocs.io/en/latest/) -- [CCPP Scientific Documentation](https://dtcenter.org/GMTB/v4.0/sci_doc/) -- [CCPP Physics GutHub wiki](https://github.com/NCAR/ccpp-physics/wiki) +- [CCPP public release information](https://dtcenter.org/community-code/common-community-physics-package-ccpp/download) +- [CCPP Technical Documentation](https://ccpp-techdoc.readthedocs.io/en/latest) +- [CCPP Scientific Documentation](https://dtcenter.ucar.edu/GMTB/v5.0.0/sci_doc) +- [CCPP Physics GitHub wiki](https://github.com/NCAR/ccpp-physics/wiki) - [CCPP Framework GitHub wiki](https://github.com/NCAR/ccpp-framework/wiki) -For the use of CCPP with its Single Column Model, see the [Single Column Model User's Guide](https://dtcenter.org/GMTB/v4.0/scm-ccpp-guide-v4.0.pdf). +For the use of CCPP with its Single Column Model, see the [Single Column Model User's Guide](http://dtcenter.org/sites/default/files/paragraph/scm-ccpp-guide-v5.0.0.pdf). -For the use of CCPP with NOAA's Unified Forecast System (UFS), see the [UFS Medium-Range Application User's Guide](https://ufs-mrweather-app.readthedocs.io/en/latest/) and the [UFS Weather Model User's Guide](https://ufs-weather-model.readthedocs.io/en/latest/). +For the use of CCPP with NOAA's Unified Forecast System (UFS), see the [UFS Medium-Range Application User's Guide](https://ufs-mrweather-app.readthedocs.io/en/latest), the [UFS Short-Range Application User's Guide](https://ufs-srweather-app.readthedocs.io/en/latest) and the [UFS Weather Model User's Guide](https://ufs-weather-model.readthedocs.io/en/latest). + +Questions can be directed to the [CCPP User Support Forum](https://dtcenter.org/forum/ccpp-user-support) or posted in the [CCPP Physics GitHub discussions](https://github.com/NCAR/ccpp-physics/discussions) or [CCPP Framework GitHub discussions](https://github.com/NCAR/ccpp-framework/discussions). When using the CCPP with NOAA's UFS, questions can be posted in the [UFS Weather Model](https://forums.ufscommunity.org/forum/ufs-weather-model) section of the [UFS Forum](https://forums.ufscommunity.org). + +## Corresponding CCPP Standard Names dictionary + +This revision of the CCPP physics library is compliant with [version 0.1.1 of the CCPP Standard Names dictionary](https://github.com/ESCOMP/CCPPStandardNames/releases/tag/v0.1.1). + +## Licensing The Apache license will be in effect unless superseded by an existing license in specific files. -Questions can be directed to the [CCPP Help Desk](mailto:gmtb-help@ucar.edu). When using the CCPP with NOAA's UFS, questions can be posted in the [UFS Weather Model](https://forums.ufscommunity.org/forum/ufs-weather-model) section of the [UFS Forum](https://forums.ufscommunity.org/) +### Last updated by Dom Heinzeller, 11/04/2021 \ No newline at end of file diff --git a/physics/GFS_DCNV_generic.meta b/physics/GFS_DCNV_generic.meta index 7976b9f1d..335c5593b 100644 --- a/physics/GFS_DCNV_generic.meta +++ b/physics/GFS_DCNV_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [do_cnvgwd] standard_name = flag_for_convective_gravity_wave_drag long_name = flag for convective gravity wave drag (gwd) @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -63,7 +57,6 @@ type = real kind = kind_phys intent = in - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -72,7 +65,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -81,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -90,7 +81,6 @@ type = real kind = kind_phys intent = inout - optional = F [nsamftrac] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -98,7 +88,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -106,7 +95,6 @@ dimensions = () type = integer intent = in - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -115,7 +103,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -124,7 +111,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -133,7 +119,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -142,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -150,7 +134,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -158,7 +141,6 @@ dimensions = () type = integer intent = in - optional = F [cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -166,7 +148,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -174,7 +155,6 @@ dimensions = () type = logical intent = in - optional = F [trans_trac] standard_name = flag_for_convective_transport_of_tracers long_name = flag for convective transport of tracers @@ -182,7 +162,6 @@ dimensions = () type = logical intent = in - optional = F [ras] standard_name = flag_for_relaxed_arakawa_schubert_deep_convection long_name = flag for ras convection scheme @@ -190,7 +169,6 @@ dimensions = () type = logical intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -198,7 +176,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -206,7 +183,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -214,7 +190,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -222,7 +197,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -230,7 +204,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -238,7 +211,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -246,7 +218,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -254,7 +225,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -262,7 +232,6 @@ dimensions = () type = integer intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -271,7 +240,6 @@ type = real kind = kind_phys intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -279,7 +247,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -288,7 +255,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -296,7 +262,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -315,7 +280,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -323,7 +287,6 @@ dimensions = () type = integer intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -331,7 +294,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -339,7 +301,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -347,7 +308,6 @@ dimensions = () type = logical intent = in - optional = F [ras] standard_name = flag_for_relaxed_arakawa_schubert_deep_convection long_name = flag for ras convection scheme @@ -355,7 +315,6 @@ dimensions = () type = logical intent = in - optional = F [frain] standard_name = dynamics_to_physics_timestep_ratio long_name = ratio of dynamics timestep to physics timestep @@ -364,7 +323,6 @@ type = real kind = kind_phys intent = in - optional = F [rain1] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -373,7 +331,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -382,7 +339,6 @@ type = real kind = kind_phys intent = in - optional = F [cld1d] standard_name = cloud_work_function long_name = cloud work function @@ -391,7 +347,6 @@ type = real kind = kind_phys intent = in - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -400,7 +355,6 @@ type = real kind = kind_phys intent = in - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -409,7 +363,6 @@ type = real kind = kind_phys intent = in - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -418,7 +371,6 @@ type = real kind = kind_phys intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -427,7 +379,6 @@ type = real kind = kind_phys intent = in - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -436,7 +387,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -445,7 +395,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -454,7 +403,6 @@ type = real kind = kind_phys intent = in - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -463,7 +411,6 @@ type = real kind = kind_phys intent = in - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -472,7 +419,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -481,7 +427,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -489,7 +434,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -497,7 +441,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -505,7 +448,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -513,7 +455,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -521,7 +462,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -529,7 +469,6 @@ dimensions = () type = integer intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -538,7 +477,6 @@ type = real kind = kind_phys intent = in - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -547,7 +485,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -556,7 +493,6 @@ type = real kind = kind_phys intent = in - optional = F [npdf3d] standard_name = number_of_pdf_based_variables_in_xyz_dimensioned_restart_array long_name = number of 3d arrays associated with pdf based clouds/mp @@ -564,7 +500,6 @@ dimensions = () type = integer intent = in - optional = F [num_p3d] standard_name = number_of_microphysics_variables_in_xyz_dimensioned_restart_array long_name = number of 3D arrays needed for microphysics @@ -572,7 +507,6 @@ dimensions = () type = integer intent = in - optional = F [ncnvcld3d] standard_name = number_of_convective_cloud_variables_in_xyz_dimensioned_restart_array long_name = number of convective 3d clouds fields @@ -580,7 +514,6 @@ dimensions = () type = integer intent = in - optional = F [nsamftrac] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -588,7 +521,6 @@ dimensions = () type = integer intent = in - optional = F [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rain at this time step @@ -597,7 +529,6 @@ type = real kind = kind_phys intent = inout - optional = F [cldwrk] standard_name = cumulative_cloud_work_function long_name = cumulative cloud work function (valid only with sas) @@ -606,7 +537,6 @@ type = real kind = kind_phys intent = inout - optional = F [upd_mf] standard_name = cumulative_atmosphere_updraft_convective_mass_flux long_name = cumulative updraft mass flux @@ -615,7 +545,6 @@ type = real kind = kind_phys intent = inout - optional = F [dwn_mf] standard_name = cumulative_atmosphere_downdraft_convective_mass_flux long_name = cumulative downdraft mass flux @@ -624,7 +553,6 @@ type = real kind = kind_phys intent = inout - optional = F [det_mf] standard_name = cumulative_atmosphere_detrainment_convective_mass_flux long_name = cumulative detrainment mass flux @@ -633,7 +561,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -642,7 +569,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -651,7 +577,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvw_phy_f3d] standard_name = convective_cloud_condensate_mixing_ratio long_name = convective cloud water mixing ratio in the phy_f3d array @@ -660,7 +585,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc_phy_f3d] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -669,7 +593,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -677,7 +600,6 @@ dimensions = () type = logical intent = in - optional = F [cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -685,7 +607,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -693,7 +614,6 @@ dimensions = () type = logical intent = in - optional = F [trans_trac] standard_name = flag_for_convective_transport_of_tracers long_name = flag for convective transport of tracers @@ -701,7 +621,6 @@ dimensions = () type = logical intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -709,7 +628,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -717,7 +635,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -725,7 +642,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -733,7 +649,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -741,7 +656,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -749,7 +663,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -757,7 +670,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -765,7 +677,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -773,7 +684,6 @@ dimensions = () type = integer intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -782,7 +692,6 @@ type = real kind = kind_phys intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -790,7 +699,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -799,7 +707,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -807,4 +714,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_GWD_generic.meta b/physics/GFS_GWD_generic.meta index 17aa4f5fa..bd2bfbe87 100644 --- a/physics/GFS_GWD_generic.meta +++ b/physics/GFS_GWD_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of statistical measures of subgrid height_above_mean_sea_level @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [mntvar] standard_name = statistical_measures_of_subgrid_orography_collection_array long_name = array of statistical measures of subgrid height_above_mean_sea_level @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = out - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = out - optional = F [clx] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = out - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with_respect to east of maximum subgrid orographic variations @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = out - optional = F [varss] standard_name = standard_deviation_of_subgrid_orography_small_scale long_name = standard deviation of subgrid height_above_mean_sea_level small scale @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = out - optional = F [ocss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = F [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = out - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = out - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = out - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = out - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -146,7 +131,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -154,7 +138,6 @@ dimensions = () type = logical intent = in - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -163,7 +146,6 @@ type = real kind = kind_phys intent = in - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -172,7 +154,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -181,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -190,7 +170,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -198,7 +177,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -206,7 +184,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -214,7 +191,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -222,7 +198,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -230,7 +205,6 @@ dimensions = () type = integer intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -239,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_for_gwd_generic_tend] standard_name = flag_for_generic_tendency_due_to_gravity_wave_drag long_name = true if GFS_GWD_generic should calculate tendencies @@ -247,7 +220,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -256,7 +228,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -264,7 +235,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -283,7 +253,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for calculating 3-D diagnostic fields @@ -291,7 +260,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -300,7 +268,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfcg] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -309,7 +276,6 @@ type = real kind = kind_phys intent = in - optional = F [dvsfcg] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -318,7 +284,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -327,7 +292,6 @@ type = real kind = kind_phys intent = in - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -336,7 +300,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -345,7 +308,6 @@ type = real kind = kind_phys intent = in - optional = F [dugwd] standard_name = time_integral_of_x_stress_due_to_gravity_wave_drag long_name = integral over time of zonal stress due to gravity wave drag @@ -354,7 +316,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvgwd] standard_name = time_integral_of_y_stress_due_to_gravity_wave_drag long_name = integral over time of meridional stress due to gravity wave drag @@ -363,7 +324,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -372,7 +332,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -380,7 +339,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -388,7 +346,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -396,7 +353,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -404,7 +360,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -412,7 +367,6 @@ dimensions = () type = integer intent = in - optional = F [flag_for_gwd_generic_tend] standard_name = flag_for_generic_tendency_due_to_gravity_wave_drag long_name = true if GFS_GWD_generic should calculate tendencies @@ -420,7 +374,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -429,7 +382,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -437,4 +389,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_MP_generic.meta b/physics/GFS_MP_generic.meta index a06d7225b..ccb6ba6d3 100644 --- a/physics/GFS_MP_generic.meta +++ b/physics/GFS_MP_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = logical flag for 3D diagnostics @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = logical flag for 3D tracer diagnostics @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [do_aw] standard_name = flag_for_Arakawa_Wu_adjustment long_name = flag for Arakawa Wu scale-aware adjustment @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [nncl] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -79,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -88,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -97,7 +87,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -106,7 +95,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -115,7 +103,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -123,7 +110,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -142,7 +128,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -150,7 +135,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -158,7 +142,6 @@ dimensions = () type = integer intent = in - optional = F [rainmin] standard_name = lwe_thickness_of_minimum_rain_amount long_name = minimum rain amount @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [nrcm] standard_name = number_of_random_numbers long_name = second dimension of random number stream for RAS @@ -175,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [nncl] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -183,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -191,7 +171,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -199,7 +178,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -207,7 +185,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -215,7 +192,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -223,7 +199,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -231,7 +206,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -239,7 +213,6 @@ dimensions = () type = integer intent = in - optional = F [cal_pre] standard_name = flag_for_dominant_precipitation_type_partition long_name = flag controls precip type algorithm @@ -247,7 +220,6 @@ dimensions = () type = logical intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -255,7 +227,6 @@ dimensions = () type = logical intent = in - optional = F [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -263,7 +234,6 @@ dimensions = () type = logical intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -272,7 +242,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -281,7 +250,6 @@ type = real kind = kind_phys intent = in - optional = F [frain] standard_name = dynamics_to_physics_timestep_ratio long_name = ratio of dynamics timestep to physics timestep @@ -290,7 +258,6 @@ type = real kind = kind_phys intent = in - optional = F [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rain at this time step @@ -299,7 +266,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain1] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit rainfall amount on physics timestep @@ -308,7 +274,6 @@ type = real kind = kind_phys intent = in - optional = F [rann] standard_name = random_number long_name = random number array (0-1) @@ -317,7 +282,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -326,7 +290,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -335,7 +298,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -344,7 +306,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -353,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = layer mean pressure @@ -362,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = pressure at layer interface @@ -371,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -380,7 +338,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -389,7 +346,6 @@ type = real kind = kind_phys intent = in - optional = F [ice] standard_name = lwe_thickness_of_ice_amount_on_dynamics_timestep long_name = ice fall at this time step @@ -398,7 +354,6 @@ type = real kind = kind_phys intent = inout - optional = F [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -407,7 +362,6 @@ type = real kind = kind_phys intent = inout - optional = F [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -416,7 +370,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -425,7 +378,6 @@ type = real kind = kind_phys intent = in - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -434,7 +386,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain0] standard_name = lwe_thickness_of_explicit_rain_amount long_name = explicit rain on physics timestep @@ -443,7 +394,6 @@ type = real kind = kind_phys intent = in - optional = F [ice0] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -452,7 +402,6 @@ type = real kind = kind_phys intent = in - optional = F [snow0] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -461,7 +410,6 @@ type = real kind = kind_phys intent = in - optional = F [graupel0] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -470,7 +418,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -479,7 +426,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -488,7 +434,6 @@ type = real kind = kind_phys intent = inout - optional = F [domr_diag] standard_name = dominant_rain_type long_name = dominant rain type @@ -497,7 +442,6 @@ type = real kind = kind_phys intent = inout - optional = F [domzr_diag] standard_name = dominant_freezing_rain_type long_name = dominant freezing rain type @@ -506,7 +450,6 @@ type = real kind = kind_phys intent = inout - optional = F [domip_diag] standard_name = dominant_sleet_type long_name = dominant sleet type @@ -515,7 +458,6 @@ type = real kind = kind_phys intent = inout - optional = F [doms_diag] standard_name = dominant_snow_type long_name = dominant snow type @@ -524,7 +466,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step @@ -533,7 +474,6 @@ type = real kind = kind_phys intent = inout - optional = F [srflag] standard_name = precipitation_type long_name = snow/rain flag for precipitation @@ -542,7 +482,6 @@ type = real kind = kind_phys intent = inout - optional = F [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = snow ratio: ratio of snow to total precipitation @@ -551,7 +490,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvprcp] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount long_name = cumulative convective precipitation @@ -560,7 +498,6 @@ type = real kind = kind_phys intent = inout - optional = F [totprcp] standard_name = accumulated_lwe_thickness_of_precipitation_amount long_name = accumulated total precipitation @@ -569,7 +506,6 @@ type = real kind = kind_phys intent = inout - optional = F [totice] standard_name = accumulated_lwe_thickness_of_ice_amount long_name = accumulated ice precipitation @@ -578,7 +514,6 @@ type = real kind = kind_phys intent = inout - optional = F [totsnw] standard_name = accumulated_lwe_thickness_of_snow_amount long_name = accumulated snow precipitation @@ -587,7 +522,6 @@ type = real kind = kind_phys intent = inout - optional = F [totgrp] standard_name = accumulated_lwe_thickness_of_graupel_amount long_name = accumulated graupel precipitation @@ -596,7 +530,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket @@ -605,7 +538,6 @@ type = real kind = kind_phys intent = inout - optional = F [totprcpb] standard_name = accumulated_lwe_thickness_of_precipitation_amount_in_bucket long_name = accumulated total precipitation in bucket @@ -614,7 +546,6 @@ type = real kind = kind_phys intent = inout - optional = F [toticeb] standard_name = accumulated_lwe_thickness_of_ice_amount_in_bucket long_name = accumulated ice precipitation in bucket @@ -623,7 +554,6 @@ type = real kind = kind_phys intent = inout - optional = F [totsnwb] standard_name = accumulated_lwe_thickness_of_snow_amount_in_bucket long_name = accumulated snow precipitation in bucket @@ -632,7 +562,6 @@ type = real kind = kind_phys intent = inout - optional = F [totgrpb] standard_name = accumulated_lwe_thickness_of_graupel_amount_in_bucket long_name = accumulated graupel precipitation in bucket @@ -641,7 +570,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -650,7 +578,6 @@ type = real kind = kind_phys intent = inout - optional = F [rainc_cpl] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_for_coupling long_name = total convective precipitation @@ -659,7 +586,6 @@ type = real kind = kind_phys intent = inout - optional = F [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -668,7 +594,6 @@ type = real kind = kind_phys intent = inout - optional = F [pwat] standard_name = column_precipitable_water long_name = precipitable water @@ -677,7 +602,6 @@ type = real kind = kind_phys intent = inout - optional = F [drain_cpl] standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) @@ -686,7 +610,6 @@ type = real kind = kind_phys intent = inout - optional = F [dsnow_cpl] standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) @@ -695,7 +618,6 @@ type = real kind = kind_phys intent = inout - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -703,7 +625,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -711,7 +632,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -719,7 +639,6 @@ dimensions = () type = integer intent = in - optional = F [raincprv] standard_name = lwe_thickness_of_convective_precipitation_amount_on_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -728,7 +647,6 @@ type = real kind = kind_phys intent = inout - optional = F [rainncprv] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -737,7 +655,6 @@ type = real kind = kind_phys intent = inout - optional = F [iceprv] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -746,7 +663,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowprv] standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep @@ -755,7 +671,6 @@ type = real kind = kind_phys intent = inout - optional = F [graupelprv] standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep @@ -764,7 +679,6 @@ type = real kind = kind_phys intent = inout - optional = F [draincprv] standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep @@ -773,7 +687,6 @@ type = real kind = kind_phys intent = inout - optional = F [drainncprv] standard_name = explicit_precipitation_rate_on_previous_timestep long_name = explicit rainfall rate previous timestep @@ -782,7 +695,6 @@ type = real kind = kind_phys intent = inout - optional = F [diceprv] standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep @@ -791,7 +703,6 @@ type = real kind = kind_phys intent = inout - optional = F [dsnowprv] standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep @@ -800,7 +711,6 @@ type = real kind = kind_phys intent = inout - optional = F [dgraupelprv] standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep @@ -809,7 +719,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -818,7 +727,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -827,7 +735,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -835,7 +742,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -843,7 +749,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_mp] standard_name = index_of_microphysics_process_process_in_cumulative_change_index long_name = index of microphysics transport process in second dimension of array cumulative change index @@ -851,7 +756,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -859,7 +763,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = logical flag for 3D tracer diagnostics @@ -867,7 +770,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -875,7 +777,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -884,7 +785,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -892,5 +792,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_PBL_generic.meta b/physics/GFS_PBL_generic.meta index 6a84b964d..f267bf609 100644 --- a/physics/GFS_PBL_generic.meta +++ b/physics/GFS_PBL_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nvdiff] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [rtg_ozone_index] standard_name = vertically_diffused_tracer_index_of_ozone long_name = number of tracers @@ -46,7 +42,6 @@ dimensions = () type = integer intent = out - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -102,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -110,7 +98,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -118,7 +105,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -126,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -134,7 +119,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -142,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -150,7 +133,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -158,7 +140,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -166,7 +147,6 @@ dimensions = () type = integer intent = in - optional = F [ntkev] standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer long_name = index for turbulent kinetic energy in the vertically diffused tracer array @@ -174,7 +154,6 @@ dimensions = () type = integer intent = in - optional = F [nqrimef] standard_name = index_of_mass_weighted_rime_factor_in_tracer_concentration_array long_name = tracer index for mass weighted rime factor @@ -182,7 +161,6 @@ dimensions = () type = integer intent = in - optional = F [trans_aero] standard_name = flag_for_aerosol_convective_transport_and_PBL_diffusion long_name = flag for aerosol convective transport and PBL diffusion @@ -190,7 +168,6 @@ dimensions = () type = logical intent = in - optional = F [ntchs] standard_name = index_of_first_chemical_tracer_in_tracer_concentration_array long_name = tracer index for first chemical tracer @@ -198,7 +175,6 @@ dimensions = () type = integer intent = in - optional = F [ntchm] standard_name = number_of_chemical_tracers long_name = number of chemical tracers @@ -206,7 +182,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -214,7 +189,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -222,7 +196,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -230,7 +203,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -238,7 +210,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -246,7 +217,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -254,7 +224,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -262,7 +231,6 @@ dimensions = () type = integer intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -270,7 +238,6 @@ dimensions = () type = logical intent = in - optional = F [hybedmf] standard_name = flag_for_hybrid_edmf_pbl_scheme long_name = flag for hybrid edmf pbl scheme (moninedmf) @@ -278,7 +245,6 @@ dimensions = () type = logical intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -286,7 +252,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -294,7 +259,6 @@ dimensions = () type = logical intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -303,7 +267,6 @@ type = real kind = kind_phys intent = in - optional = F [vdftra] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -312,7 +275,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -321,7 +283,6 @@ type = real kind = kind_phys intent = out - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -330,7 +291,6 @@ type = real kind = kind_phys intent = out - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -339,7 +299,6 @@ type = real kind = kind_phys intent = out - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -348,7 +307,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -356,7 +314,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -364,7 +321,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -372,7 +328,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -380,7 +335,6 @@ dimensions = () type = logical intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -389,7 +343,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -398,7 +351,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -407,7 +359,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -416,7 +367,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -424,7 +374,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -443,7 +392,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -451,7 +399,6 @@ dimensions = () type = integer intent = in - optional = F [nvdiff] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -459,7 +406,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -467,7 +413,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -475,7 +420,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -483,7 +427,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -491,7 +434,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -499,7 +441,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -507,7 +448,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -515,7 +455,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -523,7 +462,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -531,7 +469,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -539,7 +476,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -547,7 +483,6 @@ dimensions = () type = integer intent = in - optional = F [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -555,7 +490,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -563,7 +497,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -571,7 +504,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -579,7 +511,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -587,7 +518,6 @@ dimensions = () type = integer intent = in - optional = F [ntkev] standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer long_name = index for turbulent kinetic energy in the vertically diffused tracer array @@ -595,7 +525,6 @@ dimensions = () type = integer intent = in - optional = F [nqrimef] standard_name = index_of_mass_weighted_rime_factor_in_tracer_concentration_array long_name = tracer index for mass weighted rime factor @@ -603,7 +532,6 @@ dimensions = () type = integer intent = in - optional = F [trans_aero] standard_name = flag_for_aerosol_convective_transport_and_PBL_diffusion long_name = flag for aerosol convective transport and PBL diffusion @@ -611,7 +539,6 @@ dimensions = () type = logical intent = in - optional = F [ntchs] standard_name = index_of_first_chemical_tracer_in_tracer_concentration_array long_name = tracer index for first chemical tracer @@ -619,7 +546,6 @@ dimensions = () type = integer intent = in - optional = F [ntchm] standard_name = number_of_chemical_tracers long_name = number of chemical tracers @@ -627,7 +553,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -635,7 +560,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -643,7 +567,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -651,7 +574,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -659,7 +581,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -667,7 +588,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -675,7 +595,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -683,7 +602,6 @@ dimensions = () type = integer intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -691,7 +609,6 @@ dimensions = () type = logical intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -699,7 +616,6 @@ dimensions = () type = logical intent = in - optional = F [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -707,7 +623,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -715,7 +630,6 @@ dimensions = () type = logical intent = in - optional = F [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 @@ -723,7 +637,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -731,7 +644,6 @@ dimensions = () type = logical intent = in - optional = F [lsidea] standard_name = flag_for_integrated_dynamics_through_earths_atmosphere long_name = flag for idealized physics @@ -739,7 +651,6 @@ dimensions = () type = logical intent = in - optional = F [hybedmf] standard_name = flag_for_hybrid_edmf_pbl_scheme long_name = flag for hybrid edmf pbl scheme (moninedmf) @@ -747,7 +658,6 @@ dimensions = () type = logical intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -755,7 +665,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -763,7 +672,6 @@ dimensions = () type = logical intent = in - optional = F [shinhong] standard_name = flag_for_scale_aware_Shinhong_PBL long_name = flag for scale-aware Shinhong PBL scheme @@ -771,7 +679,6 @@ dimensions = () type = logical intent = in - optional = F [do_ysu] standard_name = flag_for_ysu_pbl_scheme long_name = flag for YSU PBL scheme @@ -779,7 +686,6 @@ dimensions = () type = logical intent = in - optional = F [dvdftra] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -788,7 +694,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc1] standard_name = instantaneous_surface_x_momentum_flux long_name = surface momentum flux in the x-direction valid for current call @@ -797,7 +702,6 @@ type = real kind = kind_phys intent = in - optional = F [dvsfc1] standard_name = instantaneous_surface_y_momentum_flux long_name = surface momentum flux in the y-direction valid for current call @@ -806,7 +710,6 @@ type = real kind = kind_phys intent = in - optional = F [dtsfc1] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux valid for current call @@ -815,7 +718,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -824,7 +726,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -832,7 +733,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -840,7 +740,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -848,7 +747,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -856,7 +754,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -864,7 +761,6 @@ dimensions = () type = integer intent = in - optional = F [dqsfc1] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux valid for current call @@ -873,7 +769,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -882,7 +777,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -891,7 +785,6 @@ type = real kind = kind_phys intent = in - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -900,7 +793,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -909,7 +801,6 @@ type = real kind = kind_phys intent = in - optional = F [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -918,7 +809,6 @@ type = real kind = kind_phys intent = in - optional = F [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -927,7 +817,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -936,7 +825,6 @@ type = real kind = kind_phys intent = in - optional = F [dqdt] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers due to model physics @@ -945,7 +833,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc_cpl] standard_name = cumulative_surface_x_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc u momentum flux multiplied by timestep @@ -954,7 +841,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfc_cpl] standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc v momentum flux multiplied by timestep @@ -963,7 +849,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -972,7 +857,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -981,7 +865,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfci_cpl] standard_name = surface_x_momentum_flux_for_coupling long_name = instantaneous sfc u momentum flux @@ -990,7 +873,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfci_cpl] standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc v momentum flux @@ -999,7 +881,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtsfci_cpl] standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux @@ -1008,7 +889,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqsfci_cpl] standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux @@ -1017,7 +897,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc_diag] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -1026,7 +905,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfc_diag] standard_name = cumulative_surface_y_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep @@ -1035,7 +913,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtsfc_diag] standard_name = cumulative_surface_upward_sensible_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep @@ -1044,7 +921,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqsfc_diag] standard_name = cumulative_surface_upward_latent_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep @@ -1053,7 +929,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfci_diag] standard_name = instantaneous_surface_x_momentum_flux_for_diag long_name = instantaneous sfc x momentum flux multiplied by timestep @@ -1062,7 +937,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfci_diag] standard_name = instantaneous_surface_y_momentum_flux_for_diag long_name = instantaneous sfc y momentum flux multiplied by timestep @@ -1071,7 +945,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtsfci_diag] standard_name = instantaneous_surface_upward_sensible_heat_flux_for_diag long_name = instantaneous sfc sensible heat flux multiplied by timestep @@ -1080,7 +953,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqsfci_diag] standard_name = instantaneous_surface_upward_latent_heat_flux_for_diag long_name = instantaneous sfc latent heat flux multiplied by timestep @@ -1089,7 +961,6 @@ type = real kind = kind_phys intent = inout - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -1098,7 +969,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -1107,7 +977,6 @@ type = real kind = kind_phys intent = in - optional = F [fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -1116,7 +985,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -1125,7 +993,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_lowest_model_layer_for_diag long_name = layer 1 temperature for diag @@ -1134,7 +1001,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = water_vapor_specific_humidity_at_lowest_model_layer_for_diag long_name = layer 1 specific humidity for diag @@ -1143,7 +1009,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -1152,7 +1017,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux @@ -1161,7 +1025,6 @@ type = real kind = kind_phys intent = in - optional = F [ushfsfci] standard_name = surface_upward_sensible_heat_flux_for_chemistry_coupling long_name = instantaneous upward sensible heat flux for chemistry coupling @@ -1170,7 +1033,6 @@ type = real kind = kind_phys intent = out - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -1179,7 +1041,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -1187,7 +1048,6 @@ dimensions = () type = integer intent = in - optional = F [dusfc_cice] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -1196,7 +1056,6 @@ type = real kind = kind_phys intent = in - optional = F [dvsfc_cice] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -1205,7 +1064,6 @@ type = real kind = kind_phys intent = in - optional = F [dtsfc_cice] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -1214,7 +1072,6 @@ type = real kind = kind_phys intent = in - optional = F [dqsfc_cice] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux for coupling @@ -1223,7 +1080,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -1231,7 +1087,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -1239,7 +1094,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -1247,7 +1101,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -1256,7 +1109,6 @@ type = real kind = kind_phys intent = in - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -1265,7 +1117,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -1274,7 +1125,6 @@ type = real kind = kind_phys intent = in - optional = F [evap_wat] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -1283,7 +1133,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer @@ -1292,7 +1141,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs1] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer @@ -1301,7 +1149,6 @@ type = real kind = kind_phys intent = in - optional = F [hffac] standard_name = surface_upward_sensible_heat_flux_reduction_factor long_name = surface upward sensible heat flux reduction factor from canopy heat storage @@ -1310,7 +1157,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -1319,7 +1165,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -1328,7 +1173,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -1337,7 +1181,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -1346,7 +1189,6 @@ type = real kind = kind_phys intent = in - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -1355,7 +1197,6 @@ type = real kind = kind_phys intent = in - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -1364,7 +1205,6 @@ type = real kind = kind_phys intent = in - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -1373,7 +1213,6 @@ type = real kind = kind_phys intent = in - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -1382,7 +1221,6 @@ type = real kind = kind_phys intent = in - optional = F [huge] standard_name = netcdf_float_fillvalue long_name = definition of NetCDF float FillValue @@ -1391,7 +1229,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1400,7 +1237,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1408,4 +1244,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_SCNV_generic.F90 b/physics/GFS_SCNV_generic.F90 index 2440d9bc7..58447f6bf 100644 --- a/physics/GFS_SCNV_generic.F90 +++ b/physics/GFS_SCNV_generic.F90 @@ -117,7 +117,7 @@ subroutine GFS_SCNV_generic_post_run (im, levs, nn, lssav, ldiag3d, qdiag3d, & real(kind=kind_phys), intent(inout) :: 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(inout) :: clw + real(kind=kind_phys), dimension(:,:,:), intent(in) :: clw ! Post code for SAS/SAMF integer, intent(in) :: npdf3d, num_p3d, ncnvcld3d @@ -208,12 +208,6 @@ subroutine GFS_SCNV_generic_post_run (im, levs, nn, lssav, ldiag3d, qdiag3d, & endif endif endif -! - do k=1,levs - do i=1,im - if (clw(i,k,2) <= -999.0) clw(i,k,2) = 0.0 - enddo - enddo end subroutine GFS_SCNV_generic_post_run diff --git a/physics/GFS_SCNV_generic.meta b/physics/GFS_SCNV_generic.meta index c07dc7b44..8464ae9b8 100644 --- a/physics/GFS_SCNV_generic.meta +++ b/physics/GFS_SCNV_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -47,7 +43,6 @@ type = real kind = kind_phys intent = in - optional = F [gv0] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -56,7 +51,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -65,7 +59,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -74,7 +67,6 @@ type = real kind = kind_phys intent = in - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -83,7 +75,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -92,7 +83,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -101,7 +91,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -110,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -118,7 +106,6 @@ dimensions = () type = integer intent = in - optional = F [nsamftrac] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -126,7 +113,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -134,7 +120,6 @@ dimensions = () type = logical intent = in - optional = F [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 @@ -142,7 +127,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -150,7 +134,6 @@ dimensions = () type = integer intent = in - optional = F [cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -158,7 +141,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -166,7 +148,6 @@ dimensions = () type = logical intent = in - optional = F [trans_trac] standard_name = flag_for_convective_transport_of_tracers long_name = flag for convective transport of tracers @@ -174,7 +155,6 @@ dimensions = () type = logical intent = in - optional = F [ras] standard_name = flag_for_relaxed_arakawa_schubert_deep_convection long_name = flag for ras convection scheme @@ -182,7 +162,6 @@ dimensions = () type = logical intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -190,7 +169,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -198,7 +176,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -206,7 +183,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -214,7 +190,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -222,7 +197,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -230,7 +204,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -238,7 +211,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -246,7 +218,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -254,7 +225,6 @@ dimensions = () type = integer intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -263,7 +233,6 @@ type = real kind = kind_phys intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -271,7 +240,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -280,7 +248,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -288,7 +255,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -307,7 +273,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -315,7 +280,6 @@ dimensions = () type = integer intent = in - optional = F [nn] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport @@ -323,7 +287,6 @@ dimensions = () type = integer intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -331,7 +294,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -339,7 +301,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -347,7 +308,6 @@ dimensions = () type = logical intent = in - optional = F [frain] standard_name = dynamics_to_physics_timestep_ratio long_name = ratio of dynamics timestep to physics timestep @@ -356,7 +316,6 @@ type = real kind = kind_phys intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -365,7 +324,6 @@ type = real kind = kind_phys intent = in - optional = F [gv0] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -374,7 +332,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -383,7 +340,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -392,7 +348,6 @@ type = real kind = kind_phys intent = in - optional = F [save_u] standard_name = x_wind_save long_name = x-wind before entering a physics scheme @@ -401,7 +356,6 @@ type = real kind = kind_phys intent = in - optional = F [save_v] standard_name = y_wind_save long_name = y-wind before entering a physics scheme @@ -410,7 +364,6 @@ type = real kind = kind_phys intent = in - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -419,7 +372,6 @@ type = real kind = kind_phys intent = in - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -428,7 +380,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -437,7 +388,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -445,7 +395,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -453,7 +402,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -461,7 +409,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -469,7 +416,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -477,7 +423,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -485,7 +430,6 @@ dimensions = () type = integer intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -493,8 +437,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) type = real kind = kind_phys - intent = inout - optional = F + intent = in [shcnvcw] standard_name = flag_for_saving_shallow_convective_cloud_area_fraction long_name = flag for shallow convective cloud @@ -502,7 +445,6 @@ dimensions = () type = logical intent = in - optional = F [rain1] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep @@ -511,7 +453,6 @@ type = real kind = kind_phys intent = in - optional = F [npdf3d] standard_name = number_of_pdf_based_variables_in_xyz_dimensioned_restart_array long_name = number of 3d arrays associated with pdf based clouds/mp @@ -519,7 +460,6 @@ dimensions = () type = integer intent = in - optional = F [num_p3d] standard_name = number_of_microphysics_variables_in_xyz_dimensioned_restart_array long_name = number of 3D arrays needed for microphysics @@ -527,7 +467,6 @@ dimensions = () type = integer intent = in - optional = F [ncnvcld3d] standard_name = number_of_convective_cloud_variables_in_xyz_dimensioned_restart_array long_name = number of convective 3d clouds fields @@ -535,7 +474,6 @@ dimensions = () type = integer intent = in - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -544,7 +482,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -553,7 +490,6 @@ type = real kind = kind_phys intent = in - optional = F [nsamftrac] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -561,7 +497,6 @@ dimensions = () type = integer intent = in - optional = F [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rain at this time step @@ -570,7 +505,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvprcp] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount long_name = cumulative convective precipitation @@ -579,7 +513,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket @@ -588,7 +521,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvw_phy_f3d] standard_name = convective_cloud_condensate_mixing_ratio long_name = convective cloud water mixing ratio in the phy_f3d array @@ -597,7 +529,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc_phy_f3d] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -606,7 +537,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -614,7 +544,6 @@ dimensions = () type = logical intent = in - optional = F [imfshalcnv] standard_name = control_for_shallow_convection_scheme long_name = flag for mass-flux shallow convection scheme @@ -622,7 +551,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_sas] standard_name = identifier_for_simplified_arakawa_schubert_shallow_convection long_name = flag for SAS shallow convection scheme @@ -630,7 +558,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_samf] standard_name = identifier_for_scale_aware_mass_flux_shallow_convection long_name = flag for SAMF shallow convection scheme @@ -638,7 +565,6 @@ dimensions = () type = integer intent = in - optional = F [cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -646,7 +572,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -654,7 +579,6 @@ dimensions = () type = logical intent = in - optional = F [trans_trac] standard_name = flag_for_convective_transport_of_tracers long_name = flag for convective transport of tracers @@ -662,7 +586,6 @@ dimensions = () type = logical intent = in - optional = F [ras] standard_name = flag_for_relaxed_arakawa_schubert_deep_convection long_name = flag for ras convection scheme @@ -670,7 +593,6 @@ dimensions = () type = logical intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -678,7 +600,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -686,7 +607,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -694,7 +614,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -702,7 +621,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -710,7 +628,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -718,7 +635,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -726,7 +642,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -734,7 +649,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -742,7 +656,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -750,7 +663,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -759,7 +671,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -767,4 +678,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_cloud_diagnostics.meta b/physics/GFS_cloud_diagnostics.meta index 3b6d75212..986548b5a 100644 --- a/physics/GFS_cloud_diagnostics.meta +++ b/physics/GFS_cloud_diagnostics.meta @@ -13,7 +13,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -21,7 +20,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -29,7 +27,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -37,7 +34,6 @@ dimensions = () type = logical intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -46,7 +42,6 @@ type = real intent = in kind = kind_phys - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -55,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -64,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [deltaZ] standard_name = layer_thickness long_name = layer_thickness @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -126,7 +113,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = out - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -134,7 +120,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = out - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle, high, total and BL @@ -143,7 +128,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -152,7 +136,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -160,4 +143,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_debug.F90 b/physics/GFS_debug.F90 index 094037f5f..582c95718 100644 --- a/physics/GFS_debug.F90 +++ b/physics/GFS_debug.F90 @@ -695,14 +695,10 @@ subroutine GFS_diagtoscreen_run (Model, Statein, Stateout, Sfcprop, Coupling, call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%tdoms ', Diag%tdoms) ! CCPP/RUC only if (Model%lsm == Model%lsm_ruc) then - call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%wet1 ', Sfcprop%wetness) + call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Sfcprop%wetness ', Sfcprop%wetness) else call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%wet1 ', Diag%wet1) end if - !call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%skebu_wts ', Diag%skebu_wts) - !call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%skebv_wts ', Diag%skebv_wts) - !call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%sppt_wts ', Diag%sppt_wts) - !call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%shum_wts ', Diag%shum_wts) call print_var(mpirank, omprank, blkno, Grid%xlat_d, Grid%xlon_d, 'Diag%zmtnblck ', Diag%zmtnblck) if (Model%ldiag3d) then !do itracer=2,Model%ntracp100 @@ -1637,3 +1633,132 @@ subroutine GFS_checkland_run (me, master, blkno, im, kdt, iter, flag_iter, flag_ end subroutine GFS_checkland_run end module GFS_checkland + + module GFS_checktracers + + private + + public GFS_checktracers_init, GFS_checktracers_timestep_init, GFS_checktracers_run + + contains + +!> \section arg_table_GFS_checktracers_init Argument Table +!! \htmlinclude GFS_checktracers_init.html +!! + subroutine GFS_checktracers_init (me, master, im, levs, ntracer, kdt, qgrs, gq0, errmsg, errflg) + + use machine, only: kind_phys + + implicit none + + ! Interface variables + integer, intent(in ) :: me + integer, intent(in ) :: master + integer, intent(in ) :: im + integer, intent(in ) :: levs + integer, intent(in ) :: ntracer + integer, intent(in ) :: kdt + real(kind_phys), intent(in ) :: qgrs(:,:,:) + real(kind_phys), intent(in ) :: gq0(:,:,:) + character(len=*), intent( out) :: errmsg + integer, intent( out) :: errflg + + call GFS_checktracers_timestep_init (me, master, im, levs, ntracer, kdt, qgrs, gq0, errmsg, errflg) + + end subroutine GFS_checktracers_init + +!> \section arg_table_GFS_checktracers_timestep_init Argument Table +!! \htmlinclude GFS_checktracers_timestep_init.html +!! + subroutine GFS_checktracers_timestep_init (me, master, im, levs, ntracer, kdt, qgrs, gq0, errmsg, errflg) + + use machine, only: kind_phys + + implicit none + + ! Interface variables + integer, intent(in ) :: me + integer, intent(in ) :: master + integer, intent(in ) :: im + integer, intent(in ) :: levs + integer, intent(in ) :: ntracer + integer, intent(in ) :: kdt + real(kind_phys), intent(in ) :: qgrs(:,:,:) + real(kind_phys), intent(in ) :: gq0(:,:,:) + character(len=*), intent( out) :: errmsg + integer, intent( out) :: errflg + + ! Local variables + integer :: i, k, n + + errflg = 0 + errmsg = '' + + write(0,'(a,i5)') 'YYY: me :', me + write(0,'(a,i5)') 'YYY: master :', master + write(0,'(a,i5)') 'YYY: im :', im + write(0,'(a,i5)') 'YYY: levs :', levs + write(0,'(a,i5)') 'YYY: ntracer :', ntracer + write(0,'(a,i5)') 'YYY: kdt :', kdt + + do n=1,ntracer + do i=1,im + do k=1,levs + if (qgrs(i,k,n)<0 .or. gq0(i,k,n)<0) then + write(0,'(a,4i5,1x,2e16.7)') 'YYY: blk, n, i, k, qgrs, gq0 :', -999, n, i, k, qgrs(i,k,n), gq0(i,k,n) + end if + end do + end do + end do + + end subroutine GFS_checktracers_timestep_init + +!> \section arg_table_GFS_checktracers_run Argument Table +!! \htmlinclude GFS_checktracers_run.html +!! + subroutine GFS_checktracers_run (me, master, blkno, im, levs, ntracer, kdt, qgrs, gq0, errmsg, errflg) + + use machine, only: kind_phys + + implicit none + + ! Interface variables + integer, intent(in ) :: me + integer, intent(in ) :: master + integer, intent(in ) :: blkno + integer, intent(in ) :: im + integer, intent(in ) :: levs + integer, intent(in ) :: ntracer + integer, intent(in ) :: kdt + real(kind_phys), intent(in ) :: qgrs(:,:,:) + real(kind_phys), intent(in ) :: gq0(:,:,:) + character(len=*), intent( out) :: errmsg + integer, intent( out) :: errflg + + ! Local variables + integer :: i, k, n + + errflg = 0 + errmsg = '' + + write(0,'(a,i5)') 'YYY: me :', me + write(0,'(a,i5)') 'YYY: master :', master + write(0,'(a,i5)') 'YYY: blkno :', blkno + write(0,'(a,i5)') 'YYY: im :', im + write(0,'(a,i5)') 'YYY: levs :', levs + write(0,'(a,i5)') 'YYY: ntracer :', ntracer + write(0,'(a,i5)') 'YYY: kdt :', kdt + + do n=1,ntracer + do i=1,im + do k=1,levs + if (qgrs(i,k,n)<0 .or. gq0(i,k,n)<0) then + write(0,'(a,4i5,1x,2e16.7)') 'YYY: blk, n, i, k, qgrs, gq0 :', blkno, n, i, k, qgrs(i,k,n), gq0(i,k,n) + end if + end do + end do + end do + + end subroutine GFS_checktracers_run + + end module GFS_checktracers diff --git a/physics/GFS_debug.meta b/physics/GFS_debug.meta index fb77772eb..2071a18c1 100644 --- a/physics/GFS_debug.meta +++ b/physics/GFS_debug.meta @@ -14,7 +14,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Data] standard_name = GFS_data_type_instance_all_blocks long_name = instance of derived type GFS_data_type @@ -22,7 +21,6 @@ dimensions = (ccpp_block_count) type = GFS_data_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance_all_threads long_name = instance of derived type GFS_interstitial_type @@ -30,7 +28,6 @@ dimensions = (number_of_openmp_threads) type = GFS_interstitial_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -39,7 +36,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -47,7 +43,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -60,7 +55,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Data] standard_name = GFS_data_type_instance_all_blocks long_name = instance of derived type GFS_data_type @@ -68,7 +62,6 @@ dimensions = (ccpp_block_count) type = GFS_data_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance_all_threads long_name = instance of derived type GFS_interstitial_type @@ -76,7 +69,6 @@ dimensions = (number_of_openmp_threads) type = GFS_interstitial_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -85,7 +77,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -93,7 +84,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -106,7 +96,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Statein] standard_name = GFS_statein_type_instance long_name = instance of derived type GFS_statein_type in FV3 @@ -114,7 +103,6 @@ dimensions = () type = GFS_statein_type intent = in - optional = F [Stateout] standard_name = GFS_stateout_type_instance long_name = instance of derived type GFS_stateout_type @@ -122,7 +110,6 @@ dimensions = () type = GFS_stateout_type intent = in - optional = F [Sfcprop] standard_name = GFS_sfcprop_type_instance long_name = instance of type GFS_sfcprop_type in FV3 @@ -130,7 +117,6 @@ dimensions = () type = GFS_sfcprop_type intent = in - optional = F [Coupling] standard_name = GFS_coupling_type_instance long_name = instance of type GFS_coupling_type in FV3 @@ -138,7 +124,6 @@ dimensions = () type = GFS_coupling_type intent = in - optional = F [Grid] standard_name = GFS_grid_type_instance long_name = instance of type GFS_grid_type in FV3 @@ -146,7 +131,6 @@ dimensions = () type = GFS_grid_type intent = in - optional = F [Tbd] standard_name = GFS_tbd_type_instance long_name = instance of type GFS_tbd_type in FV3 @@ -154,7 +138,6 @@ dimensions = () type = GFS_tbd_type intent = in - optional = F [Cldprop] standard_name = GFS_cldprop_type_instance long_name = instance of type GFS_cldprop_type in FV3 @@ -162,7 +145,6 @@ dimensions = () type = GFS_cldprop_type intent = in - optional = F [Radtend] standard_name = GFS_radtend_type_instance long_name = instance of type GFS_radtend_type in FV3 @@ -170,7 +152,6 @@ dimensions = () type = GFS_radtend_type intent = in - optional = F [Diag] standard_name = GFS_diag_type_instance long_name = instance of type GFS_diag_type in FV3 @@ -178,7 +159,6 @@ dimensions = () type = GFS_diag_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance long_name = instance of type GFS_interstitial_type in FV3 @@ -186,7 +166,6 @@ dimensions = () type = GFS_interstitial_type intent = in - optional = F [nthreads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads or fast physics schemes @@ -194,7 +173,6 @@ dimensions = () type = integer intent = in - optional = F [blkno] standard_name = ccpp_block_number long_name = number of block for explicit data blocking in CCPP @@ -202,7 +180,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -211,7 +188,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -219,7 +195,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -238,7 +213,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Data] standard_name = GFS_data_type_instance_all_blocks long_name = instance of derived type GFS_data_type @@ -246,7 +220,6 @@ dimensions = (ccpp_block_count) type = GFS_data_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance_all_threads long_name = instance of derived type GFS_interstitial_type @@ -254,7 +227,6 @@ dimensions = (number_of_openmp_threads) type = GFS_interstitial_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -263,7 +235,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -271,7 +242,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -284,7 +254,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Data] standard_name = GFS_data_type_instance_all_blocks long_name = instance of derived type GFS_data_type @@ -292,7 +261,6 @@ dimensions = (ccpp_block_count) type = GFS_data_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance_all_threads long_name = instance of derived type GFS_interstitial_type @@ -300,7 +268,6 @@ dimensions = (number_of_openmp_threads) type = GFS_interstitial_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -309,7 +276,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -317,7 +283,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -330,7 +295,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [Statein] standard_name = GFS_statein_type_instance long_name = instance of derived type GFS_statein_type @@ -338,7 +302,6 @@ dimensions = () type = GFS_statein_type intent = in - optional = F [Stateout] standard_name = GFS_stateout_type_instance long_name = instance of derived type GFS_stateout_type @@ -346,7 +309,6 @@ dimensions = () type = GFS_stateout_type intent = in - optional = F [Sfcprop] standard_name = GFS_sfcprop_type_instance long_name = instance of derived type GFS_sfcprop_type @@ -354,7 +316,6 @@ dimensions = () type = GFS_sfcprop_type intent = in - optional = F [Coupling] standard_name = GFS_coupling_type_instance long_name = instance of derived type GFS_coupling_type @@ -362,7 +323,6 @@ dimensions = () type = GFS_coupling_type intent = in - optional = F [Grid] standard_name = GFS_grid_type_instance long_name = instance of derived type GFS_grid_type @@ -370,7 +330,6 @@ dimensions = () type = GFS_grid_type intent = in - optional = F [Tbd] standard_name = GFS_tbd_type_instance long_name = instance of derived type GFS_tbd_type @@ -378,7 +337,6 @@ dimensions = () type = GFS_tbd_type intent = in - optional = F [Cldprop] standard_name = GFS_cldprop_type_instance long_name = instance of derived type GFS_cldprop_type @@ -386,7 +344,6 @@ dimensions = () type = GFS_cldprop_type intent = in - optional = F [Radtend] standard_name = GFS_radtend_type_instance long_name = instance of derived type GFS_radtend_type @@ -394,7 +351,6 @@ dimensions = () type = GFS_radtend_type intent = in - optional = F [Diag] standard_name = GFS_diag_type_instance long_name = instance of derived type GFS_diag_type @@ -402,7 +358,6 @@ dimensions = () type = GFS_diag_type intent = in - optional = F [Interstitial] standard_name = GFS_interstitial_type_instance long_name = instance of derived type GFS_interstitial_type @@ -410,7 +365,6 @@ dimensions = () type = GFS_interstitial_type intent = in - optional = F [nthreads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads or fast physics schemes @@ -418,7 +372,6 @@ dimensions = () type = integer intent = in - optional = F [blkno] standard_name = ccpp_block_number long_name = number of block for explicit data blocking in CCPP @@ -426,7 +379,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -435,7 +387,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -443,7 +394,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -462,7 +412,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [blkno] standard_name = ccpp_block_number long_name = number of block for explicit data blocking in CCPP @@ -470,7 +419,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -479,7 +427,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -487,7 +434,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -506,7 +452,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -514,7 +459,6 @@ dimensions = () type = integer intent = in - optional = F [blkno] standard_name = ccpp_block_number long_name = number of block for explicit data blocking in CCPP @@ -522,7 +466,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -530,7 +473,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current number of time steps @@ -538,7 +480,6 @@ dimensions = () type = integer intent = in - optional = F [iter] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -546,7 +487,6 @@ dimensions = () type = integer intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -554,7 +494,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -562,7 +501,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -570,7 +508,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -578,7 +515,6 @@ dimensions = () type = logical intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -586,7 +522,6 @@ dimensions = () type = logical intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -594,7 +529,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -602,7 +536,6 @@ dimensions = () type = integer intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -610,7 +543,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -618,7 +550,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -626,7 +557,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating some land surface area fraction @@ -634,7 +564,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating some sea ice surface area fraction @@ -642,7 +571,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating some ocean or lake surface area fraction @@ -650,7 +578,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [lake] standard_name = flag_nonzero_lake_surface_fraction long_name = flag indicating some lake surface area fraction @@ -658,7 +585,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [ocean] standard_name = flag_nonzero_ocean_surface_fraction long_name = flag indicating some ocean surface area fraction @@ -666,7 +592,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -675,7 +600,6 @@ type = real kind = kind_phys intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -684,7 +608,6 @@ type = real kind = kind_phys intent = in - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -693,7 +616,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -702,7 +624,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -710,7 +631,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length @@ -719,7 +639,6 @@ type = real kind = kind_phys intent = in - optional = F [zorlw] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -728,7 +647,6 @@ type = real kind = kind_phys intent = in - optional = F [zorll] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land @@ -737,7 +655,6 @@ type = real kind = kind_phys intent = in - optional = F [zorli] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice @@ -746,7 +663,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -755,7 +671,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -764,7 +679,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -772,4 +686,250 @@ dimensions = () type = integer intent = out - optional = F + +######################################################################## +[ccpp-table-properties] + name = GFS_checktracers + type = scheme + dependencies = machine.F + +######################################################################## +[ccpp-arg-table] + name = GFS_checktracers_init + type = scheme +[me] + standard_name = mpi_rank + long_name = current MPI-rank + units = index + dimensions = () + type = integer + intent = in +[master] + standard_name = mpi_root + long_name = master MPI-rank + units = index + dimensions = () + type = integer + intent = in +[im] + standard_name = horizontal_dimension + long_name = horizontal dimension + units = count + dimensions = () + type = integer + intent = in +[levs] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count + dimensions = () + type = integer + intent = in +[ntracer] + standard_name = number_of_tracers + long_name = number of tracers + units = count + dimensions = () + type = integer + intent = in +[kdt] + standard_name = index_of_timestep + long_name = current number of time steps + units = index + dimensions = () + type = integer + intent = in +[qgrs] + standard_name = tracer_concentration + long_name = model layer mean tracer concentration + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[gq0] + standard_name = tracer_concentration_of_new_state + long_name = tracer concentration updated by physics + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[errmsg] + standard_name = ccpp_error_message + long_name = error message for error handling in CCPP + units = none + dimensions = () + type = character + kind = len=* + intent = out +[errflg] + standard_name = ccpp_error_flag + long_name = error flag for error handling in CCPP + units = flag + dimensions = () + type = integer + intent = out + +######################################################################## +[ccpp-arg-table] + name = GFS_checktracers_timestep_init + type = scheme +[me] + standard_name = mpi_rank + long_name = current MPI-rank + units = index + dimensions = () + type = integer + intent = in +[master] + standard_name = mpi_root + long_name = master MPI-rank + units = index + dimensions = () + type = integer + intent = in +[im] + standard_name = horizontal_dimension + long_name = horizontal dimension + units = count + dimensions = () + type = integer + intent = in +[levs] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count + dimensions = () + type = integer + intent = in +[ntracer] + standard_name = number_of_tracers + long_name = number of tracers + units = count + dimensions = () + type = integer + intent = in +[kdt] + standard_name = index_of_timestep + long_name = current number of time steps + units = index + dimensions = () + type = integer + intent = in +[qgrs] + standard_name = tracer_concentration + long_name = model layer mean tracer concentration + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[gq0] + standard_name = tracer_concentration_of_new_state + long_name = tracer concentration updated by physics + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[errmsg] + standard_name = ccpp_error_message + long_name = error message for error handling in CCPP + units = none + dimensions = () + type = character + kind = len=* + intent = out +[errflg] + standard_name = ccpp_error_flag + long_name = error flag for error handling in CCPP + units = flag + dimensions = () + type = integer + intent = out + +######################################################################## +[ccpp-arg-table] + name = GFS_checktracers_run + type = scheme +[me] + standard_name = mpi_rank + long_name = current MPI-rank + units = index + dimensions = () + type = integer + intent = in +[master] + standard_name = mpi_root + long_name = master MPI-rank + units = index + dimensions = () + type = integer + intent = in +[blkno] + standard_name = ccpp_block_number + long_name = number of block for explicit data blocking in CCPP + units = index + dimensions = () + type = integer + intent = in +[im] + standard_name = horizontal_loop_extent + long_name = horizontal loop extent + units = count + dimensions = () + type = integer + intent = in +[levs] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count + dimensions = () + type = integer + intent = in +[ntracer] + standard_name = number_of_tracers + long_name = number of tracers + units = count + dimensions = () + type = integer + intent = in +[kdt] + standard_name = index_of_timestep + long_name = current number of time steps + units = index + dimensions = () + type = integer + intent = in +[qgrs] + standard_name = tracer_concentration + long_name = model layer mean tracer concentration + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[gq0] + standard_name = tracer_concentration_of_new_state + long_name = tracer concentration updated by physics + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in +[errmsg] + standard_name = ccpp_error_message + long_name = error message for error handling in CCPP + units = none + dimensions = () + type = character + kind = len=* + intent = out +[errflg] + standard_name = ccpp_error_flag + long_name = error flag for error handling in CCPP + units = flag + dimensions = () + type = integer + intent = out diff --git a/physics/GFS_phys_time_vary.fv3.meta b/physics/GFS_phys_time_vary.fv3.meta index cade6205d..6c7f086dd 100644 --- a/physics/GFS_phys_time_vary.fv3.meta +++ b/physics/GFS_phys_time_vary.fv3.meta @@ -16,7 +16,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -24,7 +23,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -40,7 +37,6 @@ dimensions = () type = logical intent = in - optional = F [iaerclm] standard_name = flag_for_aerosol_input_MG_radiation long_name = flag for using aerosols in Morrison-Gettelman MP_radiation @@ -48,7 +44,6 @@ dimensions = () type = logical intent = in - optional = F [iccn] standard_name = control_for_ice_cloud_condensation_nuclei_forcing long_name = flag for IN and CCN forcing for morrison gettelman microphysics @@ -56,7 +51,6 @@ dimensions = () type = integer intent = in - optional = F [iflip] standard_name = control_for_vertical_index_direction long_name = iflip - is not the same as flipv @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [nx] standard_name = number_of_points_in_x_direction_for_this_MPI_rank long_name = number of points in x direction for this MPI rank @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [ny] standard_name = number_of_points_in_y_direction_for_this_MPI_rank long_name = number of points in y direction for this MPI rank @@ -88,7 +79,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -96,7 +86,6 @@ dimensions = (4) type = integer intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -105,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon_d] standard_name = longitude_in_degree long_name = longitude in degree east @@ -114,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_o3] standard_name = lower_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation low index for ozone @@ -122,7 +109,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -130,7 +116,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -139,7 +124,6 @@ type = real kind = kind_phys intent = inout - optional = F [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -148,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -156,7 +139,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -164,7 +146,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -173,7 +154,6 @@ type = real kind = kind_phys intent = inout - optional = F [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -182,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_aer] standard_name = lower_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the y direction @@ -190,7 +169,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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,7 +176,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -207,7 +184,6 @@ type = real kind = kind_phys intent = inout - optional = F [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -215,7 +191,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -223,7 +198,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -232,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = F [aer_nm] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -241,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_ci] standard_name = lower_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the y direction @@ -249,7 +221,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -257,7 +228,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -266,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -274,7 +243,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -282,7 +250,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -291,7 +258,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -299,7 +265,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -307,7 +272,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -315,7 +279,6 @@ dimensions = () type = logical intent = in - optional = F [jindx1_tau] standard_name = lower_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index1 for weight1 for tau NGWs @@ -323,7 +286,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -331,7 +293,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -340,7 +301,6 @@ type = real intent = inout kind = kind_phys - optional = F [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -349,7 +309,6 @@ type = real intent = inout kind = kind_phys - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -357,7 +316,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -365,7 +323,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -373,7 +330,6 @@ dimensions = () type = integer intent = in - optional = F [sncovr] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -382,7 +338,6 @@ type = real kind = kind_phys intent = inout - optional = F [sncovr_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice @@ -391,7 +346,6 @@ type = real kind = kind_phys intent = inout - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -399,7 +353,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -407,7 +360,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -415,7 +367,6 @@ dimensions = () type = integer intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -424,7 +375,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -433,7 +383,6 @@ type = real kind = kind_phys intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -442,7 +391,6 @@ type = real kind = kind_phys intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -450,7 +398,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -459,7 +406,6 @@ type = real kind = kind_phys intent = inout - optional = F [lsoil] standard_name = vertical_dimension_of_soil long_name = number of soil layers @@ -467,7 +413,6 @@ dimensions = () type = integer intent = in - optional = F [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -476,7 +421,6 @@ type = real kind = kind_phys intent = in - optional = F [dzs] standard_name = thickness_of_soil_layers_for_land_surface_model long_name = thickness of soil levels for land surface model @@ -485,7 +429,6 @@ type = real kind = kind_phys intent = in - optional = F [lsnow_lsm_lbound] standard_name = lower_bound_of_vertical_dimension_of_surface_snow long_name = lower bound of of snow-related arrays for land surface model @@ -493,7 +436,6 @@ dimensions = () type = integer intent = in - optional = F [lsnow_lsm_ubound] standard_name = upper_bound_of_vertical_dimension_of_surface_snow long_name = upper bound of of snow-related arrays for land surface model @@ -501,7 +443,6 @@ dimensions = () type = integer intent = in - optional = F [tvxy] standard_name = canopy_temperature long_name = vegetation temperature @@ -510,7 +451,6 @@ type = real kind = kind_phys intent = inout - optional = F [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -519,7 +459,6 @@ type = real kind = kind_phys intent = inout - optional = F [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -528,7 +467,6 @@ type = real kind = kind_phys intent = inout - optional = F [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -537,7 +475,6 @@ type = real kind = kind_phys intent = inout - optional = F [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -546,7 +483,6 @@ type = real kind = kind_phys intent = inout - optional = F [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -555,7 +491,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -564,7 +499,6 @@ type = real kind = kind_phys intent = inout - optional = F [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -573,7 +507,6 @@ type = real kind = kind_phys intent = inout - optional = F [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -582,7 +515,6 @@ type = real kind = kind_phys intent = inout - optional = F [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -591,7 +523,6 @@ type = real kind = kind_phys intent = inout - optional = F [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -600,7 +531,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -609,7 +539,6 @@ type = real kind = kind_phys intent = inout - optional = F [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -618,7 +547,6 @@ type = real kind = kind_phys intent = inout - optional = F [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -627,7 +555,6 @@ type = real kind = kind_phys intent = inout - optional = F [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -636,7 +563,6 @@ type = real kind = kind_phys intent = inout - optional = F [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -645,7 +571,6 @@ type = real kind = kind_phys intent = inout - optional = F [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -654,7 +579,6 @@ type = real kind = kind_phys intent = inout - optional = F [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -663,7 +587,6 @@ type = real kind = kind_phys intent = inout - optional = F [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -672,7 +595,6 @@ type = real kind = kind_phys intent = inout - optional = F [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -681,7 +603,6 @@ type = real kind = kind_phys intent = inout - optional = F [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -690,7 +611,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -699,7 +619,6 @@ type = real kind = kind_phys intent = inout - optional = F [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -708,7 +627,6 @@ type = real kind = kind_phys intent = inout - optional = F [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -717,7 +635,6 @@ type = real kind = kind_phys intent = inout - optional = F [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -726,7 +643,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -735,7 +651,6 @@ type = real kind = kind_phys intent = inout - optional = F [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -744,7 +659,6 @@ type = real kind = kind_phys intent = inout - optional = F [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -753,7 +667,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -762,7 +675,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -771,7 +683,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -780,7 +691,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -789,7 +699,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice @@ -798,7 +707,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -807,7 +715,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -816,7 +723,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -825,7 +731,6 @@ type = real kind = kind_phys intent = inout - optional = F [emiss_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -834,7 +739,6 @@ type = real kind = kind_phys intent = inout - optional = F [emiss_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -843,7 +747,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowxy] standard_name = number_of_snow_layers long_name = number of snow layers @@ -852,7 +755,6 @@ type = real kind = kind_phys intent = inout - optional = F [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice @@ -861,7 +763,6 @@ type = real kind = kind_phys intent = inout - optional = F [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -870,7 +771,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -879,7 +779,6 @@ type = real kind = kind_phys intent = inout - optional = F [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -888,7 +787,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -897,7 +795,6 @@ type = real kind = kind_phys intent = inout - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -906,7 +803,6 @@ type = real kind = kind_phys intent = inout - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -915,7 +811,6 @@ type = real kind = kind_phys intent = inout - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -924,7 +819,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -933,7 +827,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth @@ -942,7 +835,6 @@ type = real kind = kind_phys intent = in - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -951,7 +843,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -960,7 +851,6 @@ type = real kind = kind_phys intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -968,7 +858,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [con_t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -977,7 +866,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -985,7 +873,6 @@ dimensions = () type = logical intent = in - optional = F [nthrds] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -993,7 +880,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1002,7 +888,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1010,7 +895,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -1024,7 +908,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1032,7 +915,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -1045,7 +927,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -1053,7 +934,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1061,7 +941,6 @@ dimensions = () type = integer intent = in - optional = F [cny] standard_name = number_of_y_points_for_current_cubed_sphere_tile long_name = number of points in y direction for this cubed sphere face @@ -1069,7 +948,6 @@ dimensions = () type = integer intent = in - optional = F [isc] standard_name = starting_x_index_for_this_MPI_rank long_name = starting index in the x direction for this MPI rank @@ -1077,7 +955,6 @@ dimensions = () type = integer intent = in - optional = F [jsc] standard_name = starting_y_index_for_this_MPI_rank long_name = starting index in the y direction for this MPI rank @@ -1085,7 +962,6 @@ dimensions = () type = integer intent = in - optional = F [nrcm] standard_name = number_of_random_numbers long_name = second dimension of random number stream for RAS @@ -1093,7 +969,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -1101,7 +976,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -1109,7 +983,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -1117,7 +990,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -1125,7 +997,6 @@ dimensions = (4) type = integer intent = in - optional = F [nsswr] standard_name = number_of_timesteps_between_shortwave_radiation_calls long_name = number of timesteps between shortwave radiation calls @@ -1133,7 +1004,6 @@ dimensions = () type = integer intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -1142,7 +1012,6 @@ type = real kind = kind_phys intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -1150,7 +1019,6 @@ dimensions = () type = logical intent = in - optional = F [fhour] standard_name = forecast_time long_name = current forecast time @@ -1159,7 +1027,6 @@ type = real kind = kind_phys intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -1167,7 +1034,6 @@ dimensions = () type = integer intent = in - optional = F [cal_pre] standard_name = flag_for_dominant_precipitation_type_partition long_name = flag controls precip type algorithm @@ -1175,7 +1041,6 @@ dimensions = () type = logical intent = in - optional = F [random_clds] standard_name = flag_for_random_clouds_for_RAS long_name = flag for using random clouds with the RAS scheme @@ -1183,7 +1048,6 @@ dimensions = () type = logical intent = in - optional = F [nscyc] standard_name = number_of_timesteps_between_surface_cycling_calls long_name = number of timesteps between surface cycling calls @@ -1191,7 +1055,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -1199,7 +1062,6 @@ dimensions = () type = integer intent = in - optional = F [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -1207,7 +1069,6 @@ dimensions = () type = logical intent = in - optional = F [iaerclm] standard_name = flag_for_aerosol_input_MG_radiation long_name = flag for using aerosols in Morrison-Gettelman MP_radiation @@ -1215,7 +1076,6 @@ dimensions = () type = logical intent = in - optional = F [iccn] standard_name = control_for_ice_cloud_condensation_nuclei_forcing long_name = flag for IN and CCN forcing for morrison gettelman microphysics @@ -1223,7 +1083,6 @@ dimensions = () type = integer intent = in - optional = F [clstp] standard_name = control_for_convective_cloud_diagnostics long_name = index used by cnvc90 (for convective clouds) @@ -1232,7 +1091,6 @@ type = real kind = kind_phys intent = out - optional = F [jindx1_o3] standard_name = lower_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation low index for ozone @@ -1240,7 +1098,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -1248,7 +1105,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -1257,7 +1113,6 @@ type = real kind = kind_phys intent = in - optional = F [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -1266,7 +1121,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -1274,7 +1128,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -1282,7 +1135,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -1291,7 +1143,6 @@ type = real kind = kind_phys intent = in - optional = F [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -1300,7 +1151,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_aer] standard_name = lower_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the y direction @@ -1308,7 +1158,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -1316,7 +1165,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -1325,7 +1173,6 @@ type = real kind = kind_phys intent = in - optional = F [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -1333,7 +1180,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -1341,7 +1187,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -1350,7 +1195,6 @@ type = real kind = kind_phys intent = in - optional = F [aer_nm] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -1359,7 +1203,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_ci] standard_name = lower_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the y direction @@ -1367,7 +1210,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1375,7 +1217,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1384,7 +1225,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -1392,7 +1232,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1400,7 +1239,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1409,7 +1247,6 @@ type = real kind = kind_phys intent = in - optional = F [in_nm] standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP @@ -1418,7 +1255,6 @@ type = real kind = kind_phys intent = inout - optional = F [ccn_nm] standard_name = tendency_of_activated_cloud_condensation_nuclei_from_climatology long_name = tendency of ccn activated number @@ -1427,7 +1263,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1435,7 +1270,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -1443,7 +1277,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -1452,7 +1285,6 @@ type = real kind = kind_phys intent = in - optional = F [seed0] standard_name = seed_random_numbers_RAS long_name = random number seed for the RAS scheme @@ -1460,7 +1292,6 @@ dimensions = () type = integer intent = in - optional = F [rann] standard_name = random_number long_name = random number array (0-1) @@ -1469,7 +1300,6 @@ type = real kind = kind_phys intent = inout - optional = F [nthrds] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -1477,7 +1307,6 @@ dimensions = () type = integer intent = in - optional = F [nx] standard_name = number_of_points_in_x_direction_for_this_MPI_rank long_name = number of points in x direction for this MPI rank @@ -1485,7 +1314,6 @@ dimensions = () type = integer intent = in - optional = F [ny] standard_name = number_of_points_in_y_direction_for_this_MPI_rank long_name = number of points in y direction for this MPI rank @@ -1493,7 +1321,6 @@ dimensions = () type = integer intent = in - optional = F [nsst] standard_name = control_for_nsstm long_name = NSSTM flag: off/uncoupled/coupled=0/1/2 @@ -1501,7 +1328,6 @@ dimensions = () type = integer intent = in - optional = F [tile_num] standard_name = index_of_cubed_sphere_tile long_name = tile number @@ -1509,7 +1335,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -1517,7 +1342,6 @@ dimensions = () type = integer intent = in - optional = F [lsoil] standard_name = vertical_dimension_of_soil long_name = number of soil layers @@ -1525,7 +1349,6 @@ dimensions = () type = integer intent = in - optional = F [lsoil_lsm] standard_name = vertical_dimension_of_soil_internal_to_land_surface_scheme long_name = number of soil layers internal to land surface model @@ -1533,7 +1356,6 @@ dimensions = () type = integer intent = in - optional = F [kice] standard_name = vertical_dimension_of_sea_ice long_name = vertical loop extent for ice levels, start at 1 @@ -1541,7 +1363,6 @@ dimensions = () type = integer intent = in - optional = F [ialb] standard_name = control_for_surface_albedo long_name = flag for using climatology alb, based on sfc type @@ -1549,7 +1370,6 @@ dimensions = () type = integer intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -1557,7 +1377,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -1565,7 +1384,6 @@ dimensions = () type = integer intent = in - optional = F [input_nml_file] standard_name = filename_of_internal_namelist long_name = namelist filename for internal file reads @@ -1574,7 +1392,6 @@ type = character kind = len=256 intent = in - optional = F [use_ufo] standard_name = flag_for_gcycle_surface_option long_name = flag for gcycle surface option @@ -1582,7 +1399,6 @@ dimensions = () type = logical intent = in - optional = F [nst_anl] standard_name = flag_for_nsstm_analysis_in_gcycle long_name = flag for NSSTM analysis in gcycle/sfcsub @@ -1590,7 +1406,6 @@ dimensions = () type = logical intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -1598,7 +1413,6 @@ dimensions = () type = logical intent = in - optional = F [fhcyc] standard_name = frequency_for_surface_cycling_calls long_name = frequency for surface cycling calls @@ -1607,7 +1421,6 @@ type = real kind = kind_phys intent = in - optional = F [phour] standard_name = forecast_time_on_previous_timestep long_name = forecast time at the previous timestep @@ -1616,7 +1429,6 @@ type = real kind = kind_phys intent = in - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -1625,7 +1437,6 @@ type = real kind = kind_phys intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -1634,7 +1445,6 @@ type = real kind = kind_phys intent = in - optional = F [min_lakeice] standard_name = min_lake_ice_area_fraction long_name = minimum lake ice value @@ -1643,7 +1453,6 @@ type = real kind = kind_phys intent = in - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -1652,7 +1461,6 @@ type = real kind = kind_phys intent = inout - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -1661,7 +1469,6 @@ type = real kind = kind_phys intent = inout - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -1670,7 +1477,6 @@ type = real kind = kind_phys intent = inout - optional = F [smois] standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm @@ -1679,7 +1485,6 @@ type = real kind = kind_phys intent = inout - optional = F [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -1688,7 +1493,6 @@ type = real kind = kind_phys intent = inout - optional = F [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -1697,7 +1501,6 @@ type = real kind = kind_phys intent = inout - optional = F [tiice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1706,7 +1509,6 @@ type = real kind = kind_phys intent = inout - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -1715,7 +1517,6 @@ type = real kind = kind_phys intent = inout - optional = F [tref] standard_name = reference_sea_surface_temperature long_name = sea surface reference temperature @@ -1724,7 +1525,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -1733,7 +1533,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature @@ -1742,7 +1541,6 @@ type = real kind = kind_phys intent = inout - optional = F [tisfc] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -1751,7 +1549,6 @@ type = real kind = kind_phys intent = inout - optional = F [hice] standard_name = sea_ice_thickness long_name = sea ice thickness @@ -1760,7 +1557,6 @@ type = real kind = kind_phys intent = inout - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -1769,7 +1565,6 @@ type = real kind = kind_phys intent = inout - optional = F [facsf] standard_name =strong_cosz_area_fraction long_name = fractional coverage with strong cosz dependency @@ -1778,7 +1573,6 @@ type = real kind = kind_phys intent = inout - optional = F [facwf] standard_name = weak_cosz_area_fraction long_name = fractional coverage with weak cosz dependency @@ -1787,7 +1581,6 @@ type = real kind = kind_phys intent = inout - optional = F [alvsf] standard_name = vis_albedo_strong_cosz long_name = mean vis albedo with strong cosz dependency @@ -1796,7 +1589,6 @@ type = real kind = kind_phys intent = inout - optional = F [alvwf] standard_name = vis_albedo_weak_cosz long_name = mean vis albedo with weak cosz dependency @@ -1805,7 +1597,6 @@ type = real kind = kind_phys intent = inout - optional = F [alnsf] standard_name = nir_albedo_strong_cosz long_name = mean nir albedo with strong cosz dependency @@ -1814,7 +1605,6 @@ type = real kind = kind_phys intent = inout - optional = F [alnwf] standard_name = nir_albedo_weak_cosz long_name = mean nir albedo with weak cosz dependency @@ -1823,7 +1613,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorli] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice @@ -1832,7 +1621,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorll] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land @@ -1841,7 +1629,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorlo] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -1850,7 +1637,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -1859,7 +1645,6 @@ type = real kind = kind_phys intent = inout - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -1867,7 +1652,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -1876,7 +1660,6 @@ type = real kind = kind_phys intent = inout - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -1885,7 +1668,6 @@ type = real kind = kind_phys intent = inout - optional = F [vfrac] standard_name = vegetation_area_fraction long_name = areal fractional cover of green vegetation @@ -1894,7 +1676,6 @@ type = real kind = kind_phys intent = inout - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -1902,7 +1683,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -1910,7 +1690,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [shdmin] standard_name = min_vegetation_area_fraction long_name = min fractional coverage of green vegetation @@ -1919,7 +1698,6 @@ type = real kind = kind_phys intent = inout - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractional coverage of green vegetation @@ -1928,7 +1706,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth @@ -1937,7 +1714,6 @@ type = real kind = kind_phys intent = inout - optional = F [cv] standard_name = convective_cloud_area_fraction_between_sw_radiation_calls_from_cnvc90 long_name = fraction of convective cloud @@ -1946,7 +1722,6 @@ type = real kind = kind_phys intent = inout - optional = F [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud bottom pressure @@ -1955,7 +1730,6 @@ type = real kind = kind_phys intent = inout - optional = F [cvt] standard_name = pressure_at_convective_cloud_top_between_sw_radiation_calls_from_cnvc90 long_name = convective cloud top pressure @@ -1964,7 +1738,6 @@ type = real kind = kind_phys intent = inout - optional = F [oro] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level @@ -1973,7 +1746,6 @@ type = real kind = kind_phys intent = inout - optional = F [oro_uf] standard_name = unfiltered_height_above_mean_sea_level long_name = unfiltered height_above_mean_sea_level @@ -1982,7 +1754,6 @@ type = real kind = kind_phys intent = inout - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -1991,7 +1762,6 @@ type = real kind = kind_phys intent = inout - optional = F [xlon_d] standard_name = longitude_in_degree long_name = longitude in degree east @@ -2000,7 +1770,6 @@ type = real kind = kind_phys intent = inout - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -2009,7 +1778,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -2018,7 +1786,6 @@ type = real kind = kind_phys intent = inout - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -2026,7 +1793,6 @@ dimensions = () type = logical intent = in - optional = F [jindx1_tau] standard_name = lower_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index1 for weight1 for tau NGWs @@ -2034,7 +1800,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -2042,7 +1807,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -2051,7 +1815,6 @@ type = real intent = in kind = kind_phys - optional = F [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -2060,7 +1823,6 @@ type = real intent = in kind = kind_phys - optional = F [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux @@ -2069,7 +1831,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -2078,7 +1839,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -2086,7 +1846,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -2100,7 +1859,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -2108,4 +1866,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_phys_time_vary.scm.meta b/physics/GFS_phys_time_vary.scm.meta index a075e8d82..a7de26fe1 100644 --- a/physics/GFS_phys_time_vary.scm.meta +++ b/physics/GFS_phys_time_vary.scm.meta @@ -16,7 +16,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -24,7 +23,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -40,7 +37,6 @@ dimensions = () type = logical intent = in - optional = F [iaerclm] standard_name = flag_for_aerosol_input_MG_radiation long_name = flag for using aerosols in Morrison-Gettelman MP_radiation @@ -48,7 +44,6 @@ dimensions = () type = logical intent = in - optional = F [iccn] standard_name = control_for_ice_cloud_condensation_nuclei_forcing long_name = flag for IN and CCN forcing for morrison gettelman microphysics @@ -56,7 +51,6 @@ dimensions = () type = integer intent = in - optional = F [iflip] standard_name = control_for_vertical_index_direction long_name = iflip - is not the same as flipv @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [nx] standard_name = number_of_points_in_x_direction_for_this_MPI_rank long_name = number of points in x direction for this MPI rank @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [ny] standard_name = number_of_points_in_y_direction_for_this_MPI_rank long_name = number of points in y direction for this MPI rank @@ -88,7 +79,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -96,7 +86,6 @@ dimensions = (4) type = integer intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -105,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon_d] standard_name = longitude_in_degree long_name = longitude in degree east @@ -114,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_o3] standard_name = lower_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation low index for ozone @@ -122,7 +109,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -130,7 +116,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -139,7 +124,6 @@ type = real kind = kind_phys intent = inout - optional = F [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -148,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -156,7 +139,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -164,7 +146,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -173,7 +154,6 @@ type = real kind = kind_phys intent = inout - optional = F [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -182,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_aer] standard_name = lower_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the y direction @@ -190,7 +169,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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,7 +176,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -207,7 +184,6 @@ type = real kind = kind_phys intent = inout - optional = F [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -215,7 +191,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -223,7 +198,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -232,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = F [aer_nm] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -241,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [jindx1_ci] standard_name = lower_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the y direction @@ -249,7 +221,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -257,7 +228,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -266,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -274,7 +243,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -282,7 +250,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -291,7 +258,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -299,7 +265,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -307,7 +272,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -315,7 +279,6 @@ dimensions = () type = logical intent = in - optional = F [jindx1_tau] standard_name = lower_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index1 for weight1 for tau NGWs @@ -323,7 +286,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -331,7 +293,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -340,7 +301,6 @@ type = real intent = inout kind = kind_phys - optional = F [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -349,7 +309,6 @@ type = real intent = inout kind = kind_phys - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -357,7 +316,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -365,7 +323,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -373,7 +330,6 @@ dimensions = () type = integer intent = in - optional = F [sncovr] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -382,7 +338,6 @@ type = real kind = kind_phys intent = inout - optional = F [sncovr_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice @@ -391,7 +346,6 @@ type = real kind = kind_phys intent = inout - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -399,7 +353,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -407,7 +360,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -415,7 +367,6 @@ dimensions = () type = integer intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -424,7 +375,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -433,7 +383,6 @@ type = real kind = kind_phys intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -442,7 +391,6 @@ type = real kind = kind_phys intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -450,7 +398,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -459,7 +406,6 @@ type = real kind = kind_phys intent = inout - optional = F [lsoil] standard_name = vertical_dimension_of_soil long_name = number of soil layers @@ -467,7 +413,6 @@ dimensions = () type = integer intent = in - optional = F [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -476,7 +421,6 @@ type = real kind = kind_phys intent = in - optional = F [dzs] standard_name = thickness_of_soil_layers_for_land_surface_model long_name = thickness of soil levels for land surface model @@ -485,7 +429,6 @@ type = real kind = kind_phys intent = in - optional = F [lsnow_lsm_lbound] standard_name = lower_bound_of_vertical_dimension_of_surface_snow long_name = lower bound of of snow-related arrays for land surface model @@ -493,7 +436,6 @@ dimensions = () type = integer intent = in - optional = F [lsnow_lsm_ubound] standard_name = upper_bound_of_vertical_dimension_of_surface_snow long_name = upper bound of of snow-related arrays for land surface model @@ -501,7 +443,6 @@ dimensions = () type = integer intent = in - optional = F [tvxy] standard_name = canopy_temperature long_name = vegetation temperature @@ -510,7 +451,6 @@ type = real kind = kind_phys intent = inout - optional = F [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -519,7 +459,6 @@ type = real kind = kind_phys intent = inout - optional = F [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -528,7 +467,6 @@ type = real kind = kind_phys intent = inout - optional = F [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -537,7 +475,6 @@ type = real kind = kind_phys intent = inout - optional = F [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -546,7 +483,6 @@ type = real kind = kind_phys intent = inout - optional = F [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -555,7 +491,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -564,7 +499,6 @@ type = real kind = kind_phys intent = inout - optional = F [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -573,7 +507,6 @@ type = real kind = kind_phys intent = inout - optional = F [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -582,7 +515,6 @@ type = real kind = kind_phys intent = inout - optional = F [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -591,7 +523,6 @@ type = real kind = kind_phys intent = inout - optional = F [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -600,7 +531,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -609,7 +539,6 @@ type = real kind = kind_phys intent = inout - optional = F [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -618,7 +547,6 @@ type = real kind = kind_phys intent = inout - optional = F [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -627,7 +555,6 @@ type = real kind = kind_phys intent = inout - optional = F [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -636,7 +563,6 @@ type = real kind = kind_phys intent = inout - optional = F [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -645,7 +571,6 @@ type = real kind = kind_phys intent = inout - optional = F [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -654,7 +579,6 @@ type = real kind = kind_phys intent = inout - optional = F [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -663,7 +587,6 @@ type = real kind = kind_phys intent = inout - optional = F [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -672,7 +595,6 @@ type = real kind = kind_phys intent = inout - optional = F [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -681,7 +603,6 @@ type = real kind = kind_phys intent = inout - optional = F [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -690,7 +611,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -699,7 +619,6 @@ type = real kind = kind_phys intent = inout - optional = F [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -708,7 +627,6 @@ type = real kind = kind_phys intent = inout - optional = F [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -717,7 +635,6 @@ type = real kind = kind_phys intent = inout - optional = F [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -726,7 +643,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -735,7 +651,6 @@ type = real kind = kind_phys intent = inout - optional = F [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -744,7 +659,6 @@ type = real kind = kind_phys intent = inout - optional = F [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -753,7 +667,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -762,7 +675,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -771,7 +683,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -780,7 +691,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -789,7 +699,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice @@ -798,7 +707,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -807,7 +715,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -816,7 +723,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -825,7 +731,6 @@ type = real kind = kind_phys intent = inout - optional = F [emiss_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -834,7 +739,6 @@ type = real kind = kind_phys intent = inout - optional = F [emiss_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -843,7 +747,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowxy] standard_name = number_of_snow_layers long_name = number of snow layers @@ -852,7 +755,6 @@ type = real kind = kind_phys intent = inout - optional = F [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = snow layer ice @@ -861,7 +763,6 @@ type = real kind = kind_phys intent = inout - optional = F [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -870,7 +771,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -879,7 +779,6 @@ type = real kind = kind_phys intent = inout - optional = F [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -888,7 +787,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -897,7 +795,6 @@ type = real kind = kind_phys intent = inout - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -906,7 +803,6 @@ type = real kind = kind_phys intent = inout - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -915,7 +811,6 @@ type = real kind = kind_phys intent = inout - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -924,7 +819,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -933,7 +827,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth @@ -942,7 +835,6 @@ type = real kind = kind_phys intent = in - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -951,7 +843,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -960,7 +851,6 @@ type = real kind = kind_phys intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -968,7 +858,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [con_t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -977,7 +866,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -985,7 +873,6 @@ dimensions = () type = logical intent = in - optional = F [nthrds] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -993,7 +880,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1002,7 +888,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1010,7 +895,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -1024,7 +908,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1032,7 +915,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -1045,7 +927,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -1053,7 +934,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1061,7 +941,6 @@ dimensions = () type = integer intent = in - optional = F [cny] standard_name = number_of_y_points_for_current_cubed_sphere_tile long_name = number of points in y direction for this cubed sphere face @@ -1069,7 +948,6 @@ dimensions = () type = integer intent = in - optional = F [isc] standard_name = starting_x_index_for_this_MPI_rank long_name = starting index in the x direction for this MPI rank @@ -1077,7 +955,6 @@ dimensions = () type = integer intent = in - optional = F [jsc] standard_name = starting_y_index_for_this_MPI_rank long_name = starting index in the y direction for this MPI rank @@ -1085,7 +962,6 @@ dimensions = () type = integer intent = in - optional = F [nrcm] standard_name = number_of_random_numbers long_name = second dimension of random number stream for RAS @@ -1093,7 +969,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -1101,7 +976,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -1109,7 +983,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -1117,7 +990,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -1125,7 +997,6 @@ dimensions = (4) type = integer intent = in - optional = F [nsswr] standard_name = number_of_timesteps_between_shortwave_radiation_calls long_name = number of timesteps between shortwave radiation calls @@ -1133,7 +1004,6 @@ dimensions = () type = integer intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -1142,7 +1012,6 @@ type = real kind = kind_phys intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -1150,7 +1019,6 @@ dimensions = () type = logical intent = in - optional = F [fhour] standard_name = forecast_time long_name = current forecast time @@ -1159,7 +1027,6 @@ type = real kind = kind_phys intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -1167,7 +1034,6 @@ dimensions = () type = integer intent = in - optional = F [cal_pre] standard_name = flag_for_dominant_precipitation_type_partition long_name = flag controls precip type algorithm @@ -1175,7 +1041,6 @@ dimensions = () type = logical intent = in - optional = F [random_clds] standard_name = flag_for_random_clouds_for_RAS long_name = flag for using random clouds with the RAS scheme @@ -1183,7 +1048,6 @@ dimensions = () type = logical intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -1191,7 +1055,6 @@ dimensions = () type = integer intent = in - optional = F [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -1199,7 +1062,6 @@ dimensions = () type = logical intent = in - optional = F [iaerclm] standard_name = flag_for_aerosol_input_MG_radiation long_name = flag for using aerosols in Morrison-Gettelman MP_radiation @@ -1207,7 +1069,6 @@ dimensions = () type = logical intent = in - optional = F [iccn] standard_name = control_for_ice_cloud_condensation_nuclei_forcing long_name = flag for IN and CCN forcing for morrison gettelman microphysics @@ -1215,7 +1076,6 @@ dimensions = () type = integer intent = in - optional = F [clstp] standard_name = control_for_convective_cloud_diagnostics long_name = index used by cnvc90 (for convective clouds) @@ -1224,7 +1084,6 @@ type = real kind = kind_phys intent = out - optional = F [jindx1_o3] standard_name = lower_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation low index for ozone @@ -1232,7 +1091,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_o3] standard_name = upper_latitude_index_of_ozone_forcing_for_interpolation long_name = interpolation high index for ozone @@ -1240,7 +1098,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_o3] standard_name = latitude_interpolation_weight_for_ozone_forcing long_name = interpolation high index for ozone @@ -1249,7 +1106,6 @@ type = real kind = kind_phys intent = in - optional = F [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -1258,7 +1114,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_h] standard_name = lower_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation low index for stratospheric water vapor @@ -1266,7 +1121,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_h] standard_name = upper_latitude_index_of_stratospheric_water_vapor_forcing_for_interpolation long_name = interpolation high index for stratospheric water vapor @@ -1274,7 +1128,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_h] standard_name = latitude_interpolation_weight_for_stratospheric_water_vapor_forcing long_name = interpolation high index for stratospheric water vapor @@ -1283,7 +1136,6 @@ type = real kind = kind_phys intent = in - optional = F [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -1292,7 +1144,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_aer] standard_name = lower_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the y direction @@ -1300,7 +1151,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jindx2_aer] standard_name = upper_latitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the y direction @@ -1308,7 +1158,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddy_aer] standard_name = latitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the y direction @@ -1317,7 +1166,6 @@ type = real kind = kind_phys intent = in - optional = F [iindx1_aer] standard_name = lower_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation low index for prescribed aerosols in the x direction @@ -1325,7 +1173,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [iindx2_aer] standard_name = upper_longitude_index_of_aerosol_forcing_for_interpolation long_name = interpolation high index for prescribed aerosols in the x direction @@ -1333,7 +1180,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [ddx_aer] standard_name = longitude_interpolation_weight_for_aerosol_forcing long_name = interpolation high index for prescribed aerosols in the x direction @@ -1342,7 +1188,6 @@ type = real kind = kind_phys intent = in - optional = F [aer_nm] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -1351,7 +1196,6 @@ type = real kind = kind_phys intent = inout - optional = F [jindx1_ci] standard_name = lower_latitude_index_of_cloud_nuclei_forcing_for_interpolation long_name = interpolation low index for ice and cloud condensation nuclei in the y direction @@ -1359,7 +1203,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1367,7 +1210,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1376,7 +1218,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -1384,7 +1225,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1392,7 +1232,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1401,7 +1240,6 @@ type = real kind = kind_phys intent = in - optional = F [in_nm] standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP @@ -1410,7 +1248,6 @@ type = real kind = kind_phys intent = inout - optional = F [ccn_nm] standard_name = tendency_of_activated_cloud_condensation_nuclei_from_climatology long_name = tendency of ccn activated number @@ -1419,7 +1256,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1427,7 +1263,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -1435,7 +1270,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -1444,7 +1278,6 @@ type = real kind = kind_phys intent = in - optional = F [seed0] standard_name = seed_random_numbers_RAS long_name = random number seed for the RAS scheme @@ -1452,7 +1285,6 @@ dimensions = () type = integer intent = in - optional = F [rann] standard_name = random_number long_name = random number array (0-1) @@ -1461,7 +1293,6 @@ type = real kind = kind_phys intent = inout - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -1469,7 +1300,6 @@ dimensions = () type = logical intent = in - optional = F [jindx1_tau] standard_name = lower_latitude_index_of_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag_for_interpolation long_name = index1 for weight1 for tau NGWs @@ -1477,7 +1307,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1485,7 +1314,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [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 @@ -1494,7 +1322,6 @@ type = real intent = in kind = kind_phys - optional = F [ddy_j2tau] standard_name = latitude_interpolation_weight_for_absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = interpolation weight2 for tau NGWs @@ -1503,7 +1330,6 @@ type = real intent = in kind = kind_phys - optional = F [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux @@ -1512,7 +1338,6 @@ type = real kind = kind_phys intent = inout - optional = F [nthrds] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -1520,7 +1345,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1529,7 +1353,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1537,7 +1360,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -1551,7 +1373,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1559,4 +1380,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rad_time_vary.fv3.meta b/physics/GFS_rad_time_vary.fv3.meta index 6d0833fa7..8a4938667 100644 --- a/physics/GFS_rad_time_vary.fv3.meta +++ b/physics/GFS_rad_time_vary.fv3.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [isubc_lw] standard_name = flag_for_lw_clouds_sub_grid_approximation long_name = flag for lw clouds sub-grid approximation @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_sw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [icsdsw] standard_name = random_number_seed_for_mcica_shortwave long_name = random seeds for sub-column cloud generators sw @@ -46,7 +42,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [icsdlw] standard_name = random_number_seed_for_mcica_longwave long_name = random seeds for sub-column cloud generators lw @@ -54,7 +49,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [cny] standard_name = number_of_y_points_for_current_cubed_sphere_tile long_name = number of points in y direction for this cubed sphere face @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [isc] standard_name = starting_x_index_for_this_MPI_rank long_name = starting index in the x direction for this MPI rank @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [jsc] standard_name = starting_y_index_for_this_MPI_rank long_name = starting index in the y direction for this MPI rank @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -94,7 +84,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -102,7 +91,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [sec] standard_name = forecast_time_in_seconds long_name = seconds elapsed since model initialization @@ -111,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -119,7 +106,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -127,7 +113,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -135,7 +120,6 @@ dimensions = () type = integer intent = in - optional = F [ps_2delt] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -144,7 +128,6 @@ type = real kind = kind_phys intent = inout - optional = F [ps_1delt] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air pressure at previous timestep @@ -153,7 +136,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_2delt] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -162,7 +144,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_1delt] standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep @@ -171,7 +152,6 @@ type = real kind = kind_phys intent = inout - optional = F [qv_2delt] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -180,7 +160,6 @@ type = real kind = kind_phys intent = inout - optional = F [qv_1delt] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -189,7 +168,6 @@ type = real kind = kind_phys intent = inout - optional = F [t] standard_name = air_temperature long_name = model layer mean temperature @@ -198,7 +176,6 @@ type = real kind = kind_phys intent = in - optional = F [qv] standard_name = specific_humidity long_name = water vapor specific humidity @@ -207,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = air_pressure_at_lowest_model_interface long_name = air pressure at lowest model interface @@ -216,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -225,7 +200,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -233,5 +207,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rad_time_vary.scm.meta b/physics/GFS_rad_time_vary.scm.meta index 6d0833fa7..8a4938667 100644 --- a/physics/GFS_rad_time_vary.scm.meta +++ b/physics/GFS_rad_time_vary.scm.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [isubc_lw] standard_name = flag_for_lw_clouds_sub_grid_approximation long_name = flag for lw clouds sub-grid approximation @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_sw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [icsdsw] standard_name = random_number_seed_for_mcica_shortwave long_name = random seeds for sub-column cloud generators sw @@ -46,7 +42,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [icsdlw] standard_name = random_number_seed_for_mcica_longwave long_name = random seeds for sub-column cloud generators lw @@ -54,7 +49,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [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 @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [cny] standard_name = number_of_y_points_for_current_cubed_sphere_tile long_name = number of points in y direction for this cubed sphere face @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [isc] standard_name = starting_x_index_for_this_MPI_rank long_name = starting index in the x direction for this MPI rank @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [jsc] standard_name = starting_y_index_for_this_MPI_rank long_name = starting index in the y direction for this MPI rank @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -94,7 +84,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [jmap] standard_name = map_of_block_column_number_to_global_j_index long_name = map of local index ix to global index j for this block @@ -102,7 +91,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [sec] standard_name = forecast_time_in_seconds long_name = seconds elapsed since model initialization @@ -111,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -119,7 +106,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -127,7 +113,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -135,7 +120,6 @@ dimensions = () type = integer intent = in - optional = F [ps_2delt] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -144,7 +128,6 @@ type = real kind = kind_phys intent = inout - optional = F [ps_1delt] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air pressure at previous timestep @@ -153,7 +136,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_2delt] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -162,7 +144,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_1delt] standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep @@ -171,7 +152,6 @@ type = real kind = kind_phys intent = inout - optional = F [qv_2delt] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -180,7 +160,6 @@ type = real kind = kind_phys intent = inout - optional = F [qv_1delt] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -189,7 +168,6 @@ type = real kind = kind_phys intent = inout - optional = F [t] standard_name = air_temperature long_name = model layer mean temperature @@ -198,7 +176,6 @@ type = real kind = kind_phys intent = in - optional = F [qv] standard_name = specific_humidity long_name = water vapor specific humidity @@ -207,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = air_pressure_at_lowest_model_interface long_name = air pressure at lowest model interface @@ -216,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -225,7 +200,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -233,5 +207,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_radiation_surface.meta b/physics/GFS_radiation_surface.meta index d41a1ad19..268edbb54 100644 --- a/physics/GFS_radiation_surface.meta +++ b/physics/GFS_radiation_surface.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [ialb] standard_name = control_for_surface_albedo long_name = flag for using climatology alb, based on sfc type @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [iems] standard_name = control_for_surface_emissivity long_name = surface emissivity control flag, use fixed value of 1 @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -39,7 +36,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -47,7 +43,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -68,7 +62,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -76,7 +69,6 @@ dimensions = () type = logical intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -84,7 +76,6 @@ dimensions = () type = logical intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -92,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -100,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -108,7 +97,6 @@ dimensions = () type = integer intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -126,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -135,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [lndp_type] standard_name = control_for_stochastic_land_surface_perturbation long_name = index for stochastic land surface perturbations type @@ -143,7 +128,6 @@ dimensions = () type = integer intent = in - optional = F [n_var_lndp] standard_name = number_of_perturbed_land_surface_variables long_name = number of land surface variables perturbed @@ -151,7 +135,6 @@ dimensions = () type = integer intent = in - optional = F [sfc_alb_pert] standard_name = surface_albedo_perturbation long_name = surface albedo perturbation @@ -160,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [lndp_var_list] standard_name = land_surface_perturbation_variables long_name = variables to be perturbed for landperts @@ -169,7 +151,6 @@ type = character kind = len=3 intent = in - optional = F [lndp_prt_list] standard_name = land_surface_perturbation_magnitudes long_name = magnitude of perturbations for landperts @@ -178,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -187,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [snodl] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -196,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = F [snodi] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -205,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [sncovr] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -214,7 +191,6 @@ type = real kind = kind_phys intent = in - optional = F [sncovr_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice @@ -223,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -232,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length @@ -241,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [hprime] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -250,7 +223,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -259,7 +231,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -268,7 +239,6 @@ type = real kind = kind_phys intent = in - optional = F [tisfc] standard_name = surface_skin_temperature_over_ice long_name = surface_skin_temperature_over_ice @@ -277,7 +247,6 @@ type = real kind = kind_phys intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -286,7 +255,6 @@ type = real kind = kind_phys intent = in - optional = F [cplice] standard_name = flag_for_sea_ice_coupling long_name = flag controlling cplice collection (default on) @@ -294,7 +262,6 @@ dimensions = () type = logical intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -303,7 +270,6 @@ type = real kind = kind_phys intent = in - optional = F [min_lakeice] standard_name = min_lake_ice_area_fraction long_name = minimum lake ice value @@ -312,7 +278,6 @@ type = real kind = kind_phys intent = in - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -321,7 +286,6 @@ type = real kind = kind_phys intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -329,7 +293,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [alvsf] standard_name = vis_albedo_strong_cosz long_name = mean vis albedo with strong cosz dependency @@ -338,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [alnsf] standard_name = nir_albedo_strong_cosz long_name = mean nir albedo with strong cosz dependency @@ -347,7 +309,6 @@ type = real kind = kind_phys intent = in - optional = F [alvwf] standard_name = vis_albedo_weak_cosz long_name = mean vis albedo with weak cosz dependency @@ -356,7 +317,6 @@ type = real kind = kind_phys intent = in - optional = F [alnwf] standard_name = nir_albedo_weak_cosz long_name = mean nir albedo with weak cosz dependency @@ -365,7 +325,6 @@ type = real kind = kind_phys intent = in - optional = F [facsf] standard_name =strong_cosz_area_fraction long_name = fractional coverage with strong cosz dependency @@ -374,7 +333,6 @@ type = real kind = kind_phys intent = in - optional = F [facwf] standard_name = weak_cosz_area_fraction long_name = fractional coverage with weak cosz dependency @@ -383,7 +341,6 @@ type = real kind = kind_phys intent = in - optional = F [semis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -392,7 +349,6 @@ type = real kind = kind_phys intent = in - optional = F [semis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -401,7 +357,6 @@ type = real kind = kind_phys intent = in - optional = F [semis_wat] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water @@ -410,7 +365,6 @@ type = real kind = kind_phys intent = inout - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -419,7 +373,6 @@ type = real kind = kind_phys intent = in - optional = F [use_cice_alb] standard_name = flag_for_cice_albedo long_name = flag for using ice albedos form CICE when coupled (default on) @@ -427,7 +380,6 @@ dimensions = () type = logical intent = in - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -436,7 +388,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -445,7 +396,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -454,7 +404,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -463,7 +412,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice @@ -472,7 +420,6 @@ type = real kind = kind_phys intent = in - optional = F [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -481,7 +428,6 @@ type = real kind = kind_phys intent = in - optional = F [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -490,7 +436,6 @@ type = real kind = kind_phys intent = in - optional = F [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -499,7 +444,6 @@ type = real kind = kind_phys intent = in - optional = F [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction @@ -508,7 +452,6 @@ type = real kind = kind_phys intent = inout - optional = F [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -517,7 +460,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcalb] standard_name = surface_albedo_components long_name = surface albedo IR/UV/VIS components @@ -526,7 +468,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfc_alb_dif] standard_name = surface_albedo_for_diffused_shortwave_on_radiation_timestep long_name = mean surface diffused sw albedo @@ -535,7 +476,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -544,7 +484,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -552,4 +491,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmg_post.meta b/physics/GFS_rrtmg_post.meta index 6564f5025..0de8b7907 100644 --- a/physics/GFS_rrtmg_post.meta +++ b/physics/GFS_rrtmg_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [kmp1] standard_name = vertical_interface_dimension long_name = number of vertical levels plus one @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [lm] standard_name = vertical_dimension_for_radiation long_name = number of vertical layers for radiation calculation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [ltp] standard_name = extra_top_layer long_name = extra top layers @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [kt] standard_name = vertical_index_difference_between_layer_and_upper_bound long_name = vertical index difference between layer and upper bound @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [kb] standard_name = vertical_index_difference_between_layer_and_lower_bound long_name = vertical index difference between layer and lower bound @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [kd] standard_name = vertical_index_difference_between_inout_and_local long_name = vertical index difference between in/out and local @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [nspc1] standard_name = number_of_species_for_aerosol_optical_depth long_name = number of species for output aerosol optical depth plus total @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [nfxr] standard_name = number_of_diagnostics_variables_for_radiation long_name = number of variables stored in the fluxr array @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -102,7 +91,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -110,7 +98,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -118,7 +105,6 @@ dimensions = () type = logical intent = in - optional = F [fhlwr] standard_name = period_of_longwave_radiation_calls long_name = frequency for longwave radiation @@ -127,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -136,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -145,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -154,7 +137,6 @@ type = real kind = kind_phys intent = in - optional = F [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period @@ -163,7 +145,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -172,7 +153,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -181,7 +161,6 @@ type = real kind = kind_phys intent = in - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -190,7 +169,6 @@ type = real kind = kind_phys intent = in - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle, high, total and BL @@ -199,7 +177,6 @@ type = real kind = kind_phys intent = in - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -207,7 +184,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -215,7 +191,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [clouds1] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -224,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [cldtaulw] standard_name = cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth @@ -233,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth @@ -242,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcflw] standard_name = surface_lw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = lw radiation fluxes at sfc @@ -250,7 +222,6 @@ dimensions = (horizontal_loop_extent) type = sfcflw_type intent = in - optional = F [sfcfsw] standard_name = surface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = sw radiation fluxes at sfc @@ -258,7 +229,6 @@ dimensions = (horizontal_loop_extent) type = sfcfsw_type intent = in - optional = F [topflw] standard_name = lw_fluxes_top_atmosphere long_name = lw radiation fluxes at top @@ -266,7 +236,6 @@ dimensions = (horizontal_loop_extent) type = topflw_type intent = in - optional = F [topfsw] standard_name = sw_fluxes_top_atmosphere long_name = sw radiation fluxes at toa @@ -274,7 +243,6 @@ dimensions = (horizontal_loop_extent) type = topfsw_type intent = in - optional = F [scmpsw] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -282,7 +250,6 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = in - optional = F [fluxr] standard_name = cumulative_radiation_diagnostic long_name = time-accumulated 2D radiation-related diagnostic fields @@ -291,7 +258,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -300,7 +266,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -308,4 +273,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmg_pre.meta b/physics/GFS_rrtmg_pre.meta index 1973a81a8..9763efbd2 100644 --- a/physics/GFS_rrtmg_pre.meta +++ b/physics/GFS_rrtmg_pre.meta @@ -16,7 +16,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -24,7 +23,6 @@ dimensions = () type = integer intent = in - optional = F [lm] standard_name = vertical_dimension_for_radiation long_name = number of vertical layers for radiation calculation @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [lmk] standard_name = adjusted_vertical_layer_dimension_for_radiation long_name = number of vertical layers for radiation @@ -40,7 +37,6 @@ dimensions = () type = integer intent = in - optional = F [lmp] standard_name = adjusted_vertical_level_dimension_for_radiation long_name = number of vertical levels for radiation @@ -48,7 +44,6 @@ dimensions = () type = integer intent = in - optional = F [n_var_lndp] standard_name = number_of_perturbed_land_surface_variables long_name = number of land surface variables perturbed @@ -56,7 +51,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_gf] standard_name = identifier_for_grell_freitas_deep_convection long_name = flag for Grell-Freitas deep convection scheme @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [ncnd] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -88,7 +79,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -96,7 +86,6 @@ dimensions = () type = integer intent = in - optional = F [num_p3d] standard_name = number_of_microphysics_variables_in_xyz_dimensioned_restart_array long_name = number of 3D arrays needed for microphysics @@ -104,7 +93,6 @@ dimensions = () type = integer intent = in - optional = F [npdf3d] standard_name = number_of_pdf_based_variables_in_xyz_dimensioned_restart_array long_name = number of 3d arrays associated with pdf based clouds/mp @@ -112,7 +100,6 @@ dimensions = () type = integer intent = in - optional = F [ncnvcld3d] standard_name = number_of_convective_cloud_variables_in_xyz_dimensioned_restart_array long_name = number of convective 3d clouds fields @@ -120,7 +107,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -128,7 +114,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -136,7 +121,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -144,7 +128,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -152,7 +135,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -160,7 +142,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -168,7 +149,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -176,7 +156,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -184,7 +163,6 @@ dimensions = () type = integer intent = in - optional = F [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -192,7 +170,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -200,7 +177,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -208,7 +184,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -216,7 +191,6 @@ dimensions = () type = integer intent = in - optional = F [nieffr] standard_name = index_of_cloud_ice_effective_radius_in_xyz_dimensioned_restart_array long_name = the index of ice effective radius in phy_f3d @@ -224,7 +198,6 @@ dimensions = () type = integer intent = in - optional = F [nseffr] standard_name = index_of_snow_effective_radius_in_xyz_dimensioned_restart_array long_name = the index of snow effective radius in phy_f3d @@ -232,7 +205,6 @@ dimensions = () type = integer intent = in - optional = F [lndp_type] standard_name = control_for_stochastic_land_surface_perturbation long_name = index for stochastic land surface perturbations type @@ -240,7 +212,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -248,7 +219,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -256,7 +226,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -264,7 +233,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -272,7 +240,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -280,7 +247,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -288,7 +254,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -296,7 +261,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -304,7 +268,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -312,7 +275,6 @@ dimensions = () type = integer intent = in - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -321,7 +283,6 @@ type = real kind = kind_phys intent = in - optional = F [yearlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -329,7 +290,6 @@ dimensions = () type = integer intent = in - optional = F [lndp_var_list] standard_name = land_surface_perturbation_variables long_name = variables to be perturbed for landperts @@ -338,7 +298,6 @@ type = character kind = len=3 intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -346,7 +305,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -354,7 +312,6 @@ dimensions = () type = logical intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -362,7 +319,6 @@ dimensions = () type = logical intent = in - optional = F [lgfdlmprad] standard_name = flag_for_GFDL_microphysics_radiation_interaction long_name = flag for GFDL microphysics-radiation interaction @@ -370,7 +326,6 @@ dimensions = () type = logical intent = in - optional = F [uni_cld] standard_name = flag_for_shoc_cloud_area_fraction_for_radiation long_name = flag for uni_cld @@ -378,7 +333,6 @@ dimensions = () type = logical intent = in - optional = F [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics @@ -386,7 +340,6 @@ dimensions = () type = logical intent = in - optional = F [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -394,7 +347,6 @@ dimensions = () type = logical intent = in - optional = F [lmfshal] standard_name = flag_for_cloud_area_fraction_option_for_radiation long_name = flag for lmfshal @@ -402,7 +354,6 @@ dimensions = () type = logical intent = in - optional = F [lmfdeep2] standard_name = flag_for_scale_aware_mass_flux_deep_convection_for_radiation long_name = flag for some scale-aware mass-flux convection scheme active @@ -410,7 +361,6 @@ dimensions = () type = logical intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -419,7 +369,6 @@ type = real kind = kind_phys intent = in - optional = F [fhlwr] standard_name = period_of_longwave_radiation_calls long_name = frequency for longwave radiation @@ -428,7 +377,6 @@ type = real kind = kind_phys intent = in - optional = F [solhr] standard_name = forecast_utc_hour long_name = time in hours after 00z at the current timestep @@ -437,7 +385,6 @@ type = real kind = kind_phys intent = in - optional = F [sup] standard_name = tunable_parameter_for_ice_supersaturation long_name = ice supersaturation parameter for PDF clouds @@ -446,7 +393,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -455,7 +401,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -464,7 +409,6 @@ type = real kind = kind_phys intent = in - optional = F [fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -473,7 +417,6 @@ type = real kind = kind_phys intent = in - optional = F [rog] standard_name = ratio_of_gas_constant_dry_air_to_gravitational_acceleration long_name = (rd/g) @@ -482,7 +425,6 @@ type = real kind = kind_phys intent = in - optional = F [rocp] standard_name = ratio_of_gas_constant_dry_air_to_specific_heat_of_dry_air_at_constant_pressure long_name = (rd/cp) @@ -491,7 +433,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -500,7 +441,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -509,7 +449,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -518,7 +457,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -527,7 +465,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of latitude @@ -536,7 +473,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of latitude @@ -545,7 +481,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -554,7 +489,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -563,7 +497,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -572,7 +505,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -581,7 +513,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -590,7 +521,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -599,7 +529,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_wts] standard_name = surface_stochastic_weights_from_coupled_process long_name = weights for stochastic surface physics perturbation @@ -608,7 +537,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_cld] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -617,7 +545,6 @@ type = real kind = kind_phys intent = in - optional = F [effrr_in] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -626,7 +553,6 @@ type = real kind = kind_phys intent = in - optional = F [pert_clds] standard_name = flag_for_stochastic_cloud_fraction_perturbations long_name = flag for stochastic cloud fraction physics perturbations @@ -634,7 +560,6 @@ dimensions = () type = logical intent = in - optional = F [sppt_wts] standard_name = sppt_weights_from_coupled_process long_name = weights for stochastic sppt perturbation @@ -643,7 +568,6 @@ type = real kind = kind_phys intent = in - optional = F [sppt_amp] standard_name = total_amplitude_of_sppt_perturbation long_name = toal ampltidue of stochastic sppt perturbation @@ -652,7 +576,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvw_in] standard_name = convective_cloud_condensate_mixing_ratio long_name = convective cloud water mixing ratio in the phy_f3d array @@ -661,7 +584,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvc_in] standard_name = convective_cloud_area_fraction long_name = convective cloud cover in the phy_f3d array @@ -670,7 +592,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -679,7 +600,6 @@ type = real kind = kind_phys intent = in - optional = F [aer_nm] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -688,7 +608,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = relative dx for the grid cell @@ -697,7 +616,6 @@ type = real kind = kind_phys intent = in - optional = F [icloud] standard_name = control_for_cloud_area_fraction_option long_name = cloud effect to the optical depth and cloud fraction in radiation @@ -705,7 +623,6 @@ dimensions = () type = integer intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -714,7 +631,6 @@ type = real kind = kind_phys intent = inout - optional = F [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period @@ -723,7 +639,6 @@ type = real kind = kind_phys intent = inout - optional = F [effrl_inout] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -732,7 +647,6 @@ type = real kind = kind_phys intent = inout - optional = F [effri_inout] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -741,7 +655,6 @@ type = real kind = kind_phys intent = inout - optional = F [effrs_inout] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -750,7 +663,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds1] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -759,7 +671,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds2] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -768,7 +679,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds3] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -777,7 +687,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds4] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -786,7 +695,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds5] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -795,7 +703,6 @@ type = real kind = kind_phys intent = inout - optional = F [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -804,7 +711,6 @@ type = real kind = kind_phys intent = in - optional = F [kd] standard_name = vertical_index_difference_between_inout_and_local long_name = vertical index difference between in/out and local @@ -812,7 +718,6 @@ dimensions = () type = integer intent = out - optional = F [kt] standard_name = vertical_index_difference_between_layer_and_upper_bound long_name = vertical index difference between layer and upper bound @@ -820,7 +725,6 @@ dimensions = () type = integer intent = out - optional = F [kb] standard_name = vertical_index_difference_between_layer_and_lower_bound long_name = vertical index difference between layer and lower bound @@ -828,7 +732,6 @@ dimensions = () type = integer intent = out - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -836,7 +739,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = out - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -844,7 +746,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = out - optional = F [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -853,7 +754,6 @@ type = real kind = kind_phys intent = out - optional = F [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -862,7 +762,6 @@ type = real kind = kind_phys intent = out - optional = F [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -871,7 +770,6 @@ type = real kind = kind_phys intent = out - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -880,7 +778,6 @@ type = real kind = kind_phys intent = out - optional = F [alb1d] standard_name = surface_albedo_perturbation long_name = surface albedo perturbation @@ -889,7 +786,6 @@ type = real kind = kind_phys intent = out - optional = F [delp] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness on radiation levels @@ -898,7 +794,6 @@ type = real kind = kind_phys intent = out - optional = F [dz] standard_name = layer_thickness_for_radiation long_name = layer thickness on radiation levels @@ -907,7 +802,6 @@ type = real kind = kind_phys intent = out - optional = F [plvl] standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure at vertical interface for radiation calculation @@ -916,7 +810,6 @@ type = real kind = kind_phys intent = out - optional = F [plyr] standard_name = air_pressure_at_layer_for_radiation_in_hPa long_name = air pressure at vertical layer for radiation calculation @@ -925,7 +818,6 @@ type = real kind = kind_phys intent = out - optional = F [tlvl] standard_name = air_temperature_at_interface_for_radiation long_name = air temperature at vertical interface for radiation calculation @@ -934,7 +826,6 @@ type = real kind = kind_phys intent = out - optional = F [tlyr] standard_name = air_temperature_at_layer_for_radiation long_name = air temperature at vertical layer for radiation calculation @@ -943,7 +834,6 @@ type = real kind = kind_phys intent = out - optional = F [qlyr] standard_name = water_vapor_specific_humidity_at_layer_for_radiation long_name = water vapor specific humidity at vertical layer for radiation calculation @@ -952,7 +842,6 @@ type = real kind = kind_phys intent = out - optional = F [olyr] standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration @@ -961,7 +850,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_co2] standard_name = volume_mixing_ratio_of_co2 long_name = CO2 volume mixing ratio @@ -970,7 +858,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_n2o] standard_name = volume_mixing_ratio_of_n2o long_name = N2O volume mixing ratio @@ -979,7 +866,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_ch4] standard_name = volume_mixing_ratio_of_ch4 long_name = CH4 volume mixing ratio @@ -988,7 +874,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_o2] standard_name = volume_mixing_ratio_of_o2 long_name = O2 volume mixing ratio @@ -997,7 +882,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_co] standard_name = volume_mixing_ratio_of_co long_name = CO volume mixing ratio @@ -1006,7 +890,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_cfc11] standard_name = volume_mixing_ratio_of_cfc11 long_name = CFC11 volume mixing ratio @@ -1015,7 +898,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_cfc12] standard_name = volume_mixing_ratio_of_cfc12 long_name = CFC12 volume mixing ratio @@ -1024,7 +906,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_cfc22] standard_name = volume_mixing_ratio_of_cfc22 long_name = CFC22 volume mixing ratio @@ -1033,7 +914,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_ccl4] standard_name = volume_mixing_ratio_of_ccl4 long_name = CCL4 volume mixing ratio @@ -1042,7 +922,6 @@ type = real kind = kind_phys intent = out - optional = F [gasvmr_cfc113] standard_name = volume_mixing_ratio_of_cfc113 long_name = CFC113 volume mixing ratio @@ -1051,7 +930,6 @@ type = real kind = kind_phys intent = out - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -1060,7 +938,6 @@ type = real kind = kind_phys intent = out - optional = F [clouds6] standard_name = cloud_rain_water_path long_name = cloud rain water path @@ -1069,7 +946,6 @@ type = real kind = kind_phys intent = out - optional = F [clouds7] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop @@ -1078,7 +954,6 @@ type = real kind = kind_phys intent = out - optional = F [clouds8] standard_name = cloud_snow_water_path long_name = cloud snow water path @@ -1087,7 +962,6 @@ type = real kind = kind_phys intent = out - optional = F [clouds9] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake @@ -1096,7 +970,6 @@ type = real kind = kind_phys intent = out - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle,high, total and BL @@ -1105,7 +978,6 @@ type = real kind = kind_phys intent = out - optional = F [cldfra] standard_name = instantaneous_3d_cloud_fraction long_name = instantaneous 3D cloud fraction for all MPs @@ -1114,7 +986,6 @@ type = real kind = kind_phys intent = out - optional = F [faersw1] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -1123,7 +994,6 @@ type = real kind = kind_phys intent = out - optional = F [faersw2] standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16 long_name = aerosol single scattering albedo for shortwave bands 01-16 @@ -1132,7 +1002,6 @@ type = real kind = kind_phys intent = out - optional = F [faersw3] standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16 long_name = aerosol asymmetry parameter for shortwave bands 01-16 @@ -1141,7 +1010,6 @@ type = real kind = kind_phys intent = out - optional = F [faerlw1] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -1150,7 +1018,6 @@ type = real kind = kind_phys intent = out - optional = F [faerlw2] standard_name = aerosol_single_scattering_albedo_for_longwave_bands_01_16 long_name = aerosol single scattering albedo for longwave bands 01-16 @@ -1159,7 +1026,6 @@ type = real kind = kind_phys intent = out - optional = F [faerlw3] standard_name = aerosol_asymmetry_parameter_for_longwave_bands_01_16 long_name = aerosol asymmetry parameter for longwave bands 01-16 @@ -1168,7 +1034,6 @@ type = real kind = kind_phys intent = out - optional = F [alpha] standard_name = cloud_overlap_decorrelation_parameter long_name = cloud overlap decorrelation parameter @@ -1177,7 +1042,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1186,7 +1050,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1194,4 +1057,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmg_setup.meta b/physics/GFS_rrtmg_setup.meta index 732390b68..ecd849c48 100644 --- a/physics/GFS_rrtmg_setup.meta +++ b/physics/GFS_rrtmg_setup.meta @@ -16,7 +16,6 @@ type = real kind = kind_phys intent = in - optional = F [levr] standard_name = vertical_dimension_for_radiation long_name = number of vertical levels for radiation calculations @@ -24,7 +23,6 @@ dimensions = () type = integer intent = in - optional = F [ictm] standard_name = flag_for_initial_time_date_control long_name = flag for initial conditions and forcing @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [isol] standard_name = control_for_solar_constant long_name = use prescribed solar constant @@ -40,7 +37,6 @@ dimensions = () type = integer intent = in - optional = F [ico2] standard_name = control_for_co2 long_name = prescribed global mean value (old opernl) @@ -48,7 +44,6 @@ dimensions = () type = integer intent = in - optional = F [iaer] standard_name = control_for_shortwave_radiation_aerosols long_name = default aerosol effect in sw only @@ -56,7 +51,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [num_p3d] standard_name = number_of_microphysics_variables_in_xyz_dimensioned_restart_array long_name = number of 3D arrays needed for microphysics @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [npdf3d] standard_name = number_of_pdf_based_variables_in_xyz_dimensioned_restart_array long_name = number of 3d arrays associated with pdf based clouds/mp @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -88,7 +79,6 @@ dimensions = () type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -96,7 +86,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_sw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -104,7 +93,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_lw] standard_name = flag_for_lw_clouds_sub_grid_approximation long_name = flag for lw clouds sub-grid approximation @@ -112,7 +100,6 @@ dimensions = () type = integer intent = in - optional = F [icliq_sw] standard_name = control_for_shortwave_radiation_liquid_clouds long_name = sw optical property for liquid clouds @@ -120,7 +107,6 @@ dimensions = () type = integer intent = in - optional = F [crick_proof] standard_name = flag_for_CRICK_proof_cloud_water long_name = flag for CRICK-Proof cloud water @@ -128,7 +114,6 @@ dimensions = () type = logical intent = in - optional = F [ccnorm] standard_name = flag_for_in_cloud_condensate long_name = flag for cloud condensate normalized by cloud cover @@ -136,7 +121,6 @@ dimensions = () type = logical intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -144,7 +128,6 @@ dimensions = () type = integer intent = in - optional = F [norad_precip] standard_name = flag_for_turning_off_precipitation_radiative_effect long_name = radiation precip flag for Ferrier/Moorthi @@ -152,7 +135,6 @@ dimensions = () type = logical intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initialization date and time @@ -160,7 +142,6 @@ dimensions = (4) type = integer intent = in - optional = F [iflip] standard_name = control_for_vertical_index_direction long_name = flag for vertical index direction control @@ -168,7 +149,6 @@ dimensions = () type = integer intent = in - optional = F [do_RRTMGP] standard_name = flag_for_rrtmgp_radiation_scheme long_name = flag for RRTMGP scheme @@ -176,7 +156,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -184,7 +163,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -193,7 +171,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -201,7 +178,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -214,7 +190,6 @@ dimensions = (8) type = integer intent = in - optional = F [jdate] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -222,7 +197,6 @@ dimensions = (8) type = integer intent = in - optional = F [deltsw] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -231,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [deltim] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -240,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -248,7 +220,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -256,7 +227,6 @@ dimensions = () type = integer intent = in - optional = F [slag] standard_name = equation_of_time long_name = equation of time (radian) @@ -265,7 +235,6 @@ type = real kind = kind_phys intent = out - optional = F [sdec] standard_name = sine_of_solar_declination_angle long_name = sin of the solar declination angle @@ -274,7 +243,6 @@ type = real kind = kind_phys intent = out - optional = F [cdec] standard_name = cosine_of_solar_declination_angle long_name = cos of the solar declination angle @@ -283,7 +251,6 @@ type = real kind = kind_phys intent = out - optional = F [solcon] standard_name = solar_constant long_name = solar constant (sun-earth distant adjusted) @@ -292,7 +259,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -301,7 +267,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -309,7 +274,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -323,7 +287,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -331,4 +294,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_cloud_overlap_pre.meta b/physics/GFS_rrtmgp_cloud_overlap_pre.meta index 24dbeab8e..5a143f1ac 100644 --- a/physics/GFS_rrtmgp_cloud_overlap_pre.meta +++ b/physics/GFS_rrtmgp_cloud_overlap_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [yearlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [doLWrad] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -55,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -64,7 +58,6 @@ type = real intent = in kind = kind_phys - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsq] standard_name = minimum_value_of_specific_humidity long_name = floor value for specific humidity @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [dcorr_con] standard_name = decorrelation_length_used_by_overlap_method long_name = decorrelation length (default) used by cloud overlap method (iovr) @@ -136,7 +122,6 @@ type = real intent = in kind = kind_phys - optional = F [idcor] standard_name = flag_for_decorrelation_length_method long_name = flag for decorrelation length method used in cloud overlap method (iovr) @@ -144,7 +129,6 @@ dimensions = () type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = flag for cloud overlap method @@ -152,7 +136,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -160,7 +143,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exp] standard_name = flag_for_exponential_cloud_overlap_method long_name = choice of exponential cloud overlap method @@ -168,7 +150,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exprand] standard_name = flag_for_exponential_random_cloud_overlap_method long_name = choice of exponential-random cloud overlap method @@ -176,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [idcor_con] standard_name = flag_for_constant_decorrelation_length_method long_name = choice of decorrelation length computation (costant) @@ -184,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [idcor_hogan] standard_name = flag_for_hogan_decorrelation_length_method long_name = choice of decorrelation length computation (hogan) @@ -192,7 +171,6 @@ dimensions = () type = integer intent = in - optional = F [idcor_oreopoulos] standard_name = flag_for_oreopoulos_decorrelation_length_method long_name = choice of decorrelation length computation (oreopoulos) @@ -200,7 +178,6 @@ dimensions = () type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -209,7 +186,6 @@ type = real kind = kind_phys intent = in - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -218,7 +194,6 @@ type = real kind = kind_phys intent = out - optional = F [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -227,7 +202,6 @@ type = real kind = kind_phys intent = out - optional = F [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -236,7 +210,6 @@ type = real kind = kind_phys intent = out - optional = F [deltaZc] standard_name = layer_thickness long_name = layer_thickness @@ -245,7 +218,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -254,7 +226,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -262,4 +233,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_gfdlmp_pre.meta b/physics/GFS_rrtmgp_gfdlmp_pre.meta index 6ce429504..1f0a7745b 100644 --- a/physics/GFS_rrtmgp_gfdlmp_pre.meta +++ b/physics/GFS_rrtmgp_gfdlmp_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nTracers] standard_name = number_of_tracers long_name = number of tracers @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ncnd] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldliq] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldice] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldrain] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldsnow] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldgrpl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldtot] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -94,7 +84,6 @@ dimensions = () type = logical intent = in - optional = F [doLWrad] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -102,7 +91,6 @@ dimensions = () type = logical intent = in - optional = F [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics @@ -110,7 +98,6 @@ dimensions = () type = logical intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -118,7 +105,6 @@ dimensions = () type = integer intent = in - optional = F [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -126,7 +112,6 @@ dimensions = () type = logical intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -135,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -144,7 +128,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -153,7 +136,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldliq] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -162,7 +144,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldice] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -171,7 +152,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldrain] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -180,7 +160,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldsnow] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -189,7 +168,6 @@ type = real kind = kind_phys intent = in - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -198,7 +176,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -207,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -216,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -224,7 +199,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -232,7 +206,6 @@ dimensions = () type = logical intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -241,7 +214,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_lwp] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -250,7 +222,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_reliq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -259,7 +230,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_iwp] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -268,7 +238,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_reice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -277,7 +246,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_swp] standard_name = cloud_snow_water_path long_name = layer cloud snow water path @@ -286,7 +254,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_resnow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud @@ -295,7 +262,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_rwp] standard_name = cloud_rain_water_path long_name = layer cloud rain water path @@ -304,7 +270,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_rerain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud @@ -313,7 +278,6 @@ type = real kind = kind_phys intent = inout - optional = F [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -322,7 +286,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -331,7 +294,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -339,4 +301,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_lw_post.meta b/physics/GFS_rrtmgp_lw_post.meta index 5fb4d57bb..ebcf8350c 100644 --- a/physics/GFS_rrtmgp_lw_post.meta +++ b/physics/GFS_rrtmgp_lw_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [do_lw_clrsky_hr] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output lw heating rate @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [save_diag] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [fhlwr] standard_name = period_of_longwave_radiation_calls long_name = frequency for longwave radiation @@ -55,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -64,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxlwDOWN_allsky] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxlwDOWN_clrsky] standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle, high, total and BL @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = in - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -153,7 +137,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -161,7 +144,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -170,7 +152,6 @@ type = real kind = kind_phys intent = in - optional = F [cldtaulw] standard_name = cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth @@ -179,7 +160,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxr] standard_name = cumulative_radiation_diagnostic long_name = time-accumulated 2D radiation-related diagnostic fields @@ -188,7 +168,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcdlw] standard_name = surface_downwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc downward lw flux @@ -197,7 +176,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfculw] standard_name = surface_upwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc upward lw flux @@ -206,7 +184,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcflw] standard_name = surface_lw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = lw radiation fluxes at sfc @@ -214,7 +191,6 @@ dimensions = (horizontal_loop_extent) type = sfcflw_type intent = inout - optional = F [tsflw] standard_name = air_temperature_at_surface_adjacent_layer_on_radiation_timestep long_name = surface air temp during lw calculation @@ -223,7 +199,6 @@ type = real kind = kind_phys intent = inout - optional = F [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -232,7 +207,6 @@ type = real kind = kind_phys intent = inout - optional = F [topflw] standard_name = lw_fluxes_top_atmosphere long_name = lw radiation fluxes at top @@ -240,15 +214,6 @@ dimensions = (horizontal_loop_extent) type = topflw_type intent = out - optional = F -[flxprf_lw] - standard_name = RRTMGP_lw_fluxes - long_name = lw fluxes total sky / csk and up / down at levels - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = proflw_type - intent = inout - optional = T [htrlwc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_timestep long_name = longwave clear sky heating rate @@ -257,7 +222,6 @@ type = real kind = kind_phys intent = inout - optional = T [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -266,7 +230,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -274,4 +237,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_pre.meta b/physics/GFS_rrtmgp_pre.meta index 92c06c45c..bd578e2ad 100644 --- a/physics/GFS_rrtmgp_pre.meta +++ b/physics/GFS_rrtmgp_pre.meta @@ -15,7 +15,6 @@ dimensions = () type = integer intent = in - optional = F [active_gases] standard_name = active_gases_used_by_RRTMGP long_name = active gases used by RRTMGP @@ -24,16 +23,14 @@ type = character kind = len=128 intent = in - optional = F [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP units = none - dimensions = (number_of_active_gases_used_by_RRTMGP) + dimensions = (number_of_active_gases_used_by_RRTMGP) type = character kind = len=128 intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -42,7 +39,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -50,7 +46,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -63,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -71,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [nTracers] standard_name = number_of_tracers long_name = number of tracers @@ -79,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -87,7 +79,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -95,7 +86,6 @@ dimensions = () type = logical intent = in - optional = F [i_o3] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -103,7 +93,6 @@ dimensions = () type = integer intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [fhlwr] standard_name = period_of_longwave_radiation_calls long_name = frequency for longwave radiation @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -193,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -202,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsqs] standard_name = minimum_value_of_saturation_mixing_ratio long_name = floor value for saturation mixing ratio @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [minGPpres] standard_name = minimum_pressure_in_RRTMGP long_name = minimum pressure allowed in RRTMGP @@ -238,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [maxGPpres] standard_name = maximum_pressure_in_RRTMGP long_name = maximum pressure allowed in RRTMGP @@ -247,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [minGPtemp] standard_name = minimum_temperature_in_RRTMGP long_name = minimum temperature allowed in RRTMGP @@ -256,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [maxGPtemp] standard_name = maximum_temperature_in_RRTMGP long_name = maximum temperature allowed in RRTMGP @@ -265,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -274,7 +245,6 @@ type = real kind = kind_phys intent = inout - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -283,7 +253,6 @@ type = real kind = kind_phys intent = inout - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -292,7 +261,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -301,7 +269,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -310,7 +277,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc_radtime] standard_name = surface_skin_temperature_on_radiation_timestep long_name = surface skin temperature on radiation timestep @@ -319,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -328,7 +293,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -337,7 +301,6 @@ type = real kind = kind_phys intent = inout - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -346,7 +309,6 @@ type = real kind = kind_phys intent = inout - optional = F [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -355,7 +317,6 @@ type = real kind = kind_phys intent = inout - optional = F [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure @@ -364,7 +325,6 @@ type = real kind = kind_phys intent = inout - optional = F [q_lay] standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio @@ -373,7 +333,6 @@ type = real kind = kind_phys intent = inout - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -382,7 +341,6 @@ type = real kind = kind_phys intent = inout - optional = F [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP @@ -391,7 +349,6 @@ type = character kind = len=* intent = in - optional = F [gas_concentrations] standard_name = Gas_concentrations_for_RRTMGP_suite long_name = DDT containing gas concentrations for RRTMGP radiation scheme @@ -399,7 +356,6 @@ dimensions = () type = ty_gas_concs intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -408,7 +364,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -416,4 +371,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_setup.meta b/physics/GFS_rrtmgp_setup.meta index 4abf0a2b1..4043392a9 100644 --- a/physics/GFS_rrtmgp_setup.meta +++ b/physics/GFS_rrtmgp_setup.meta @@ -15,7 +15,6 @@ dimensions = () type = logical intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -23,7 +22,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -47,17 +43,14 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] intent = in - optional = F standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme units = flag dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -65,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -73,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -81,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [si] standard_name = sigma_pressure_hybrid_vertical_coordinate long_name = vertical sigma coordinate for radiation initialization @@ -90,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [levr] standard_name = vertical_dimension_for_radiation long_name = number of vertical levels for radiation calculations @@ -98,7 +87,6 @@ dimensions = () type = integer intent = in - optional = F [ictm] standard_name = flag_for_initial_time_date_control long_name = flag for initial conditions and forcing @@ -106,7 +94,6 @@ dimensions = () type = integer intent = in - optional = F [isol] standard_name = control_for_solar_constant long_name = use prescribed solar constant @@ -114,7 +101,6 @@ dimensions = () type = integer intent = in - optional = F [ico2] standard_name = control_for_co2 long_name = prescribed global mean value (old opernl) @@ -122,7 +108,6 @@ dimensions = () type = integer intent = in - optional = F [iaer] standard_name = control_for_shortwave_radiation_aerosols long_name = default aerosol effect in sw only @@ -130,7 +115,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -138,7 +122,6 @@ dimensions = () type = integer intent = in - optional = F [num_p3d] standard_name = number_of_microphysics_variables_in_xyz_dimensioned_restart_array long_name = number of 3D arrays needed for microphysics @@ -146,7 +129,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -154,7 +136,6 @@ dimensions = () type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -162,7 +143,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_sw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -170,7 +150,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_lw] standard_name = flag_for_lw_clouds_sub_grid_approximation long_name = flag for lw clouds sub-grid approximation @@ -178,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [icliq_sw] standard_name = control_for_shortwave_radiation_liquid_clouds long_name = sw optical property for liquid clouds @@ -186,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [crick_proof] standard_name = flag_for_CRICK_proof_cloud_water long_name = flag for CRICK-Proof cloud water @@ -194,7 +171,6 @@ dimensions = () type = logical intent = in - optional = F [ccnorm] standard_name = flag_for_in_cloud_condensate long_name = flag for cloud condensate normalized by cloud cover @@ -202,7 +178,6 @@ dimensions = () type = logical intent = in - optional = F [norad_precip] standard_name = flag_for_turning_off_precipitation_radiative_effect long_name = radiation precip flag for Ferrier/Moorthi @@ -210,7 +185,6 @@ dimensions = () type = logical intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initialization date and time @@ -218,7 +192,6 @@ dimensions = (4) type = integer intent = in - optional = F [iflip] standard_name = control_for_vertical_index_direction long_name = flag for vertical index direction control @@ -226,7 +199,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -234,7 +206,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -243,7 +214,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -251,7 +221,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -264,7 +233,6 @@ dimensions = (8) type = integer intent = in - optional = F [jdate] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -272,7 +240,6 @@ dimensions = (8) type = integer intent = in - optional = F [deltsw] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -281,7 +248,6 @@ type = real kind = kind_phys intent = in - optional = F [deltim] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -290,7 +256,6 @@ type = real kind = kind_phys intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -298,7 +263,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -306,7 +270,6 @@ dimensions = () type = integer intent = in - optional = F [slag] standard_name = equation_of_time long_name = equation of time (radian) @@ -315,7 +278,6 @@ type = real kind = kind_phys intent = out - optional = F [sdec] standard_name = sine_of_solar_declination_angle long_name = sin of the solar declination angle @@ -324,7 +286,6 @@ type = real kind = kind_phys intent = out - optional = F [cdec] standard_name = cosine_of_solar_declination_angle long_name = cos of the solar declination angle @@ -333,7 +294,6 @@ type = real kind = kind_phys intent = out - optional = F [solcon] standard_name = solar_constant long_name = solar constant (sun-earth distant adjusted) @@ -342,7 +302,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -351,7 +310,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -359,7 +317,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -373,7 +330,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -381,4 +337,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_sw_post.meta b/physics/GFS_rrtmgp_sw_post.meta index d9bdc47cd..d3d026989 100644 --- a/physics/GFS_rrtmgp_sw_post.meta +++ b/physics/GFS_rrtmgp_sw_post.meta @@ -15,7 +15,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -23,7 +22,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -39,7 +36,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -47,7 +43,6 @@ dimensions = () type = logical intent = in - optional = F [do_sw_clrsky_hr] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output sw heating rate @@ -55,7 +50,6 @@ dimensions = () type = logical intent = in - optional = F [save_diag] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -63,7 +57,6 @@ dimensions = () type = logical intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -72,7 +65,6 @@ type = real kind = kind_phys intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -81,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period @@ -90,7 +81,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -99,7 +89,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -108,7 +97,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_nir_dir] standard_name = surface_albedo_nearIR_direct long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir) @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_nir_dif] standard_name = surface_albedo_nearIR_diffuse long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif) @@ -126,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_uvvis_dir] standard_name = surface_albedo_uvvis_dir long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir) @@ -135,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_uvvis_dif] standard_name = surface_albedo_uvvis_dif long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif) @@ -144,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxswUP_allsky] standard_name = RRTMGP_sw_flux_profile_upward_allsky long_name = RRTMGP upward shortwave all-sky flux profile @@ -153,7 +137,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxswDOWN_allsky] standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile @@ -162,7 +145,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxswUP_clrsky] standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile @@ -171,7 +153,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxswDOWN_clrsky] standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile @@ -180,7 +161,6 @@ type = real kind = kind_phys intent = in - optional = F [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -189,7 +169,6 @@ type = real kind = kind_phys intent = in - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -198,7 +177,6 @@ type = real kind = kind_phys intent = in - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle, high, total and BL @@ -207,7 +185,6 @@ type = real kind = kind_phys intent = in - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -215,7 +192,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -223,7 +199,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -232,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth @@ -241,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxr] standard_name = cumulative_radiation_diagnostic long_name = time-accumulated 2D radiation-related diagnostic fields @@ -250,7 +223,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirbmdi] standard_name = surface_downwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw downward flux @@ -259,7 +231,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirdfdi] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw downward flux @@ -268,7 +239,6 @@ type = real kind = kind_phys intent = inout - optional = F [visbmdi] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw downward flux @@ -277,7 +247,6 @@ type = real kind = kind_phys intent = inout - optional = F [visdfdi] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw downward flux @@ -286,7 +255,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirbmui] standard_name = surface_upwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw upward flux @@ -295,7 +263,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirdfui] standard_name = surface_upwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw upward flux @@ -304,7 +271,6 @@ type = real kind = kind_phys intent = inout - optional = F [visbmui] standard_name = surface_upwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw upward flux @@ -313,7 +279,6 @@ type = real kind = kind_phys intent = inout - optional = F [visdfui] standard_name = surface_upwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw upward flux @@ -322,7 +287,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc netsw flx into ground @@ -331,7 +295,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcdsw] standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc downward sw flux @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = inout - optional = F [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcfsw] standard_name = surface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = sw radiation fluxes at sfc @@ -357,7 +318,6 @@ dimensions = (horizontal_loop_extent) type = sfcfsw_type intent = inout - optional = F [topfsw] standard_name = sw_fluxes_top_atmosphere long_name = sw radiation fluxes at toa @@ -365,7 +325,6 @@ dimensions = (horizontal_loop_extent) type = topfsw_type intent = inout - optional = F [htrswc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky sw heating rates @@ -374,15 +333,6 @@ type = real kind = kind_phys intent = inout - optional = T -[flxprf_sw] - standard_name = RRTMGP_sw_fluxes - long_name = sw fluxes total sky / csk and up / down at levels - units = W m-2 - dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_plus_one) - type = profsw_type - intent = inout - optional = T [scmpsw] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -390,7 +340,6 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = inout - optional = T [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -399,7 +348,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -407,4 +355,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_sw_pre.meta b/physics/GFS_rrtmgp_sw_pre.meta index 53831b42a..3df699a9c 100644 --- a/physics/GFS_rrtmgp_sw_pre.meta +++ b/physics/GFS_rrtmgp_sw_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [solhr] standard_name = forecast_utc_hour long_name = time in hours after 00z at the current timestep @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [lon] standard_name = longitude long_name = longitude @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of latitude @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of latitude @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -74,7 +67,6 @@ dimensions = () type = integer intent = out - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -82,7 +74,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = inout - optional = F [coszdg] standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep long_name = daytime mean cosz over rad call period @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcalb] standard_name = surface_albedo_components long_name = surface albedo IR/UV/VIS components @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_nir_dir] standard_name = surface_albedo_nearIR_direct long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir) @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = out - optional = F [sfc_alb_nir_dif] standard_name = surface_albedo_nearIR_diffuse long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif) @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = out - optional = F [sfc_alb_uvvis_dir] standard_name = surface_albedo_uvvis_dir long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir) @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = out - optional = F [sfc_alb_uvvis_dif] standard_name = surface_albedo_uvvis_dif long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif) @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -154,7 +138,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -162,4 +145,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_thompsonmp_pre.meta b/physics/GFS_rrtmgp_thompsonmp_pre.meta index 9bf5c95dd..f8fdc0e4f 100644 --- a/physics/GFS_rrtmgp_thompsonmp_pre.meta +++ b/physics/GFS_rrtmgp_thompsonmp_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nTracers] standard_name = number_of_tracers long_name = number of tracers @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ncnd] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [doLWrad] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [i_cldliq] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldice] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldrain] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldsnow] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldgrpl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldtot] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -102,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldliq_nc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -110,7 +98,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldice_nc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -118,7 +105,6 @@ dimensions = () type = integer intent = in - optional = F [i_twa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -126,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics @@ -134,7 +119,6 @@ dimensions = () type = logical intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -143,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -152,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -161,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -170,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldliq] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -179,7 +159,6 @@ type = real kind = kind_phys intent = inout - optional = F [effrin_cldice] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -188,7 +167,6 @@ type = real kind = kind_phys intent = inout - optional = F [effrin_cldsnow] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -197,7 +175,6 @@ type = real kind = kind_phys intent = inout - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -206,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure @@ -215,7 +191,6 @@ type = real kind = kind_phys intent = in - optional = F [q_lay] standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio @@ -224,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -233,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -242,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -251,7 +223,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -260,7 +231,6 @@ type = real kind = kind_phys intent = in - optional = F [lmfshal] standard_name = flag_for_cloud_area_fraction_option_for_radiation long_name = flag for lmfshal @@ -268,7 +238,6 @@ dimensions = () type = logical intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -276,7 +245,6 @@ dimensions = () type = logical intent = in - optional = F [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -284,7 +252,6 @@ dimensions = () type = logical intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -292,7 +259,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_gf] standard_name = identifier_for_grell_freitas_deep_convection long_name = flag for Grell-Freitas deep convection scheme @@ -300,7 +266,6 @@ dimensions = () type = integer intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -308,7 +273,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -316,7 +280,6 @@ dimensions = () type = logical intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -325,7 +288,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_lwp] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -334,7 +296,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_reliq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -343,7 +304,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_iwp] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -352,7 +312,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_reice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -361,7 +320,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_swp] standard_name = cloud_snow_water_path long_name = layer cloud snow water path @@ -370,7 +328,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_resnow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud @@ -379,7 +336,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_rwp] standard_name = cloud_rain_water_path long_name = layer cloud rain water path @@ -388,7 +344,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_rerain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud @@ -397,7 +352,6 @@ type = real kind = kind_phys intent = inout - optional = F [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -406,7 +360,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -415,7 +368,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -423,4 +375,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_rrtmgp_zhaocarr_pre.meta b/physics/GFS_rrtmgp_zhaocarr_pre.meta index 7f7184531..861b1144d 100644 --- a/physics/GFS_rrtmgp_zhaocarr_pre.meta +++ b/physics/GFS_rrtmgp_zhaocarr_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ncnd] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [nTracers] standard_name = number_of_tracers long_name = number of tracers @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [i_cldliq] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -62,7 +56,6 @@ dimensions = () type = logical intent = in - optional = F [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics @@ -70,7 +63,6 @@ dimensions = () type = logical intent = in - optional = F [uni_cld] standard_name = flag_for_shoc_cloud_area_fraction_for_radiation long_name = flag for uni_cld @@ -78,7 +70,6 @@ dimensions = () type = logical intent = in - optional = F [lmfshal] standard_name = flag_for_cloud_area_fraction_option_for_radiation long_name = flag for lmfshal @@ -86,7 +77,6 @@ dimensions = () type = logical intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldliq] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldice] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldrain] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [effrin_cldsnow] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [shoc_sgs_cldfrac] standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme @@ -193,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [cncvw] standard_name = convective_cloud_condensate_mixing_ratio long_name = convective cloud water mixing ratio in the phy_f3d array @@ -202,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [con_ttp] standard_name = triple_point_temperature_of_water long_name = triple point temperature of water @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsq] standard_name = minimum_value_of_specific_humidity long_name = floor value for specific humidity @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsqs] standard_name = minimum_value_of_saturation_mixing_ratio long_name = floor value for saturation mixing ratio @@ -238,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -247,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -256,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -265,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -274,7 +245,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -283,7 +253,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -292,7 +261,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_lwp] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -301,7 +269,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_reliq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -310,7 +277,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_iwp] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -319,7 +285,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_reice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -328,7 +293,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_swp] standard_name = cloud_snow_water_path long_name = layer cloud snow water path @@ -337,7 +301,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_resnow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud @@ -346,7 +309,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_rwp] standard_name = cloud_rain_water_path long_name = layer cloud rain water path @@ -355,7 +317,6 @@ type = real kind = kind_phys intent = out - optional = F [cld_rerain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud @@ -364,7 +325,6 @@ type = real kind = kind_phys intent = out - optional = F [deltaZ] standard_name = layer_thickness long_name = layer_thickness @@ -373,7 +333,6 @@ type = real kind = kind_phys intent = out - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -382,7 +341,6 @@ type = real kind = kind_phys intent = out - optional = F [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -391,7 +349,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -400,7 +357,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -408,4 +364,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_stochastics.meta b/physics/GFS_stochastics.meta index b5574d569..0b2c1da2f 100644 --- a/physics/GFS_stochastics.meta +++ b/physics/GFS_stochastics.meta @@ -13,7 +13,6 @@ dimensions = () type = integer intent = in - optional = F [do_ca] standard_name = flag_for_cellular_automata long_name = cellular automata main switch @@ -21,7 +20,6 @@ dimensions = () type = logical intent = in - optional = F [ca_global] standard_name = flag_for_global_cellular_automata long_name = switch for global ca @@ -29,7 +27,6 @@ dimensions = () type = logical intent = in - optional = F [si] standard_name = sigma_pressure_hybrid_vertical_coordinate long_name = vertical sigma coordinate for radiation initialization @@ -38,7 +35,6 @@ type = real kind = kind_phys intent = in - optional = F [vfact_ca] standard_name = cellular_automata_vertical_weight long_name = vertical weight for ca @@ -47,7 +43,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -56,7 +51,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -64,7 +58,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] name = GFS_stochastics_run @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -84,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -92,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = physics timestep @@ -101,7 +91,6 @@ type = real kind = kind_phys intent = in - optional = F [do_sppt] standard_name = flag_for_stochastic_physics_perturbations long_name = flag for stochastic physics perturbations @@ -109,7 +98,6 @@ dimensions = () type = logical intent = in - optional = F [pert_mp] standard_name = flag_for_stochastic_microphysics_perturbations long_name = flag for stochastic microphysics physics perturbations @@ -117,7 +105,6 @@ dimensions = () type = logical intent = in - optional = F [use_zmtnblck] standard_name = flag_for_mountain_blocking_for_sppt long_name = flag for mountain blocking @@ -125,7 +112,6 @@ dimensions = () type = logical intent = in - optional = F [do_shum] standard_name = flag_for_stochastic_shum_option long_name = flag for stochastic shum option @@ -133,7 +119,6 @@ dimensions = () type = logical intent = in - optional = F [do_skeb] standard_name = flag_for_stochastic_skeb_option long_name = flag for stochastic skeb option @@ -141,7 +126,6 @@ dimensions = () type = logical intent = in - optional = F [do_ca] standard_name = flag_for_cellular_automata long_name = cellular automata main switch @@ -149,7 +133,6 @@ dimensions = () type = logical intent = in - optional = F [ca_global] standard_name = flag_for_global_cellular_automata long_name = switch for global ca @@ -157,7 +140,6 @@ dimensions = () type = logical intent = in - optional = F [ca1] standard_name = cellular_automata_global_pattern_from_coupled_process long_name = cellular automata global pattern @@ -166,7 +148,6 @@ type = real kind = kind_phys intent = in - optional = F [vfact_ca] standard_name = cellular_automata_vertical_weight long_name = vertical weight for ca @@ -175,7 +156,6 @@ type = real kind = kind_phys intent = in - optional = F [zmtnblck] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -184,7 +164,6 @@ type = real kind = kind_phys intent = in - optional = F [sppt_wts] standard_name = sppt_weights_from_coupled_process long_name = weights for stochastic sppt perturbation @@ -193,7 +172,6 @@ type = real kind = kind_phys intent = inout - optional = F [skebu_wts] standard_name = skeb_x_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of x wind @@ -202,7 +180,6 @@ type = real kind = kind_phys intent = in - optional = F [skebv_wts] standard_name = skeb_y_wind_weights_from_coupled_process long_name = weights for stochastic skeb perturbation of y wind @@ -211,7 +188,6 @@ type = real kind = kind_phys intent = in - optional = F [shum_wts] standard_name = shum_weights_from_coupled_process long_name = weights for stochastic shum perturbation @@ -220,7 +196,6 @@ type = real kind = kind_phys intent = in - optional = F [diss_est] standard_name = dissipation_estimate_of_air_temperature_at_model_layers long_name = dissipation estimate model layer mean temperature @@ -229,7 +204,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -238,7 +212,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -247,7 +220,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -256,7 +228,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_wv] standard_name = specific_humidity long_name = water vapor specific humidity @@ -265,7 +236,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_cw] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -274,7 +244,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_rw] standard_name = rain_mixing_ratio long_name = moist mixing ratio of rain @@ -283,7 +252,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_sw] standard_name = snow_mixing_ratio long_name = moist mixing ratio of snow @@ -292,7 +260,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_iw] standard_name = cloud_ice_mixing_ratio long_name = moist mixing ratio of cloud ice @@ -301,7 +268,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_gl] standard_name = graupel_mixing_ratio long_name = moist ratio of mass of graupel to mass of dry air plus vapor (without condensates) @@ -310,7 +276,6 @@ type = real kind = kind_phys intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -319,7 +284,6 @@ type = real kind = kind_phys intent = inout - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -328,7 +292,6 @@ type = real kind = kind_phys intent = inout - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -337,7 +300,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_wv] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -346,7 +308,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdtnp] standard_name = tendency_of_air_temperature_to_withold_from_sppt long_name = temp. change from physics that should not be perturbed by sppt @@ -355,7 +316,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_cw] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = cloud condensed water mixing ratio updated by physics @@ -364,7 +324,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_rw] standard_name = rain_mixing_ratio_of_new_state long_name = moist mixing ratio of rain updated by physics @@ -373,7 +332,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_sw] standard_name = snow_mixing_ratio_of_new_state long_name = moist mixing ratio of snow updated by physics @@ -382,7 +340,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_iw] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = moist mixing ratio of cloud ice updated by physics @@ -391,7 +348,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_gl] standard_name = graupel_mixing_ratio_of_new_state long_name = moist ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physics @@ -400,7 +356,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -409,7 +364,6 @@ type = real kind = kind_phys intent = in - optional = F [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rain at this time step @@ -418,7 +372,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step @@ -427,7 +380,6 @@ type = real kind = kind_phys intent = inout - optional = F [totprcp] standard_name = accumulated_lwe_thickness_of_precipitation_amount long_name = accumulated total precipitation @@ -436,7 +388,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvprcp] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount long_name = cumulative convective precipitation @@ -445,7 +396,6 @@ type = real kind = kind_phys intent = inout - optional = F [totprcpb] standard_name = accumulated_lwe_thickness_of_precipitation_amount_in_bucket long_name = accumulated total precipitation in bucket @@ -454,7 +404,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvprcpb] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_in_bucket long_name = cumulative convective precipitation in bucket @@ -463,7 +412,6 @@ type = real kind = kind_phys intent = inout - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -471,7 +419,6 @@ dimensions = () type = logical intent = in - optional = F [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -480,7 +427,6 @@ type = real kind = kind_phys intent = inout - optional = F [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -489,7 +435,6 @@ type = real kind = kind_phys intent = inout - optional = F [drain_cpl] standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) @@ -498,7 +443,6 @@ type = real kind = kind_phys intent = in - optional = F [dsnow_cpl] standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) @@ -507,7 +451,6 @@ type = real kind = kind_phys intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -515,7 +458,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -523,7 +465,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -531,14 +472,12 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water units = index dimensions = () intent = in - optional = F type = integer [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array @@ -547,7 +486,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -556,7 +494,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -564,4 +501,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_suite_interstitial.F90 b/physics/GFS_suite_interstitial.F90 index 386164b8f..6963e94c3 100644 --- a/physics/GFS_suite_interstitial.F90 +++ b/physics/GFS_suite_interstitial.F90 @@ -752,6 +752,20 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, tracers_total, ntr errmsg = '' errflg = 0 + ! This code was previously in GFS_SCNV_generic_post, but it really belongs + ! here, because it fixes the convective transportable_tracers mess for Zhao-Carr + ! and GFDL MP from GFS_suite_interstitial_3. This whole code around clw(:,:,2) + ! being set to -999 for Zhao-Carr MP (which doesn't have cloud ice) and GFDL-MP + ! (which does have cloud ice, but for some reason it was decided to code it up + ! in the same way as for Zhao-Carr, nowadays unnecessary and confusing) needs + ! to be cleaned up. The convection schemes doing something different internally + ! based on clw(i,k,2) being -999.0 or not is not a good idea. + do k=1,levs + do i=1,im + if (clw(i,k,2) <= -999.0) clw(i,k,2) = 0.0 + enddo + enddo + if(ldiag3d) then if(ntk>0 .and. ntk<=size(clw,3)) then idtend=dtidx(100+ntke,index_of_process_conv_trans) diff --git a/physics/GFS_suite_interstitial.meta b/physics/GFS_suite_interstitial.meta index 8b610c179..7afae62d2 100644 --- a/physics/GFS_suite_interstitial.meta +++ b/physics/GFS_suite_interstitial.meta @@ -14,7 +14,6 @@ dimensions = () type = GFS_interstitial_type intent = inout - optional = F [Model] standard_name = GFS_control_type_instance long_name = Fortran DDT containing FV3-GFS model control parameters @@ -22,7 +21,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -31,7 +29,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -58,7 +54,6 @@ dimensions = () type = GFS_interstitial_type intent = inout - optional = F [Model] standard_name = GFS_control_type_instance long_name = Fortran DDT containing FV3-GFS model control parameters @@ -66,7 +61,6 @@ dimensions = () type = GFS_control_type intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -75,7 +69,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -83,7 +76,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -102,7 +94,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -110,7 +101,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -118,7 +108,6 @@ dimensions = () type = integer intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -127,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -136,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -145,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -154,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [dxmin] standard_name = min_grid_scale long_name = minimum scaling factor for critical relative humidity @@ -163,7 +148,6 @@ type = real kind = kind_phys intent = in - optional = F [dxinv] standard_name = reciprocal_of_grid_scale_range long_name = inverse scaling factor for critical relative humidity @@ -172,7 +156,6 @@ type = real kind = kind_phys intent = in - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -181,7 +164,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -189,7 +171,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -198,7 +179,6 @@ type = real kind = kind_phys intent = out - optional = F [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 @@ -207,7 +187,6 @@ type = real kind = kind_phys intent = out - optional = F [psurf] standard_name = surface_air_pressure_diag long_name = surface air pressure diagnostic @@ -216,7 +195,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -225,7 +203,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -234,7 +211,6 @@ type = real kind = kind_phys intent = out - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -243,7 +219,6 @@ type = real kind = kind_phys intent = out - optional = F [dqdt] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers @@ -252,7 +227,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -261,7 +235,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -269,7 +242,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -288,7 +260,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -296,7 +267,6 @@ dimensions = () type = integer intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -304,7 +274,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -312,7 +281,6 @@ dimensions = () type = logical intent = in - optional = F [lsidea] standard_name = flag_for_integrated_dynamics_through_earths_atmosphere long_name = flag for idealized physics @@ -320,7 +288,6 @@ dimensions = () type = logical intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -328,7 +295,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [shal_cnv] standard_name = flag_for_simplified_arakawa_schubert_shallow_convection long_name = flag for calling shallow convection @@ -336,7 +302,6 @@ dimensions = () type = logical intent = in - optional = F [old_monin] standard_name = flag_for_old_PBL_scheme long_name = flag for using old PBL schemes @@ -344,7 +309,6 @@ dimensions = () type = logical intent = in - optional = F [mstrat] standard_name = flag_for_moorthi_stratus long_name = flag for moorthi approach for stratus @@ -352,7 +316,6 @@ dimensions = () type = logical intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -360,7 +323,6 @@ dimensions = () type = logical intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -368,7 +330,6 @@ dimensions = () type = logical intent = in - optional = F [imfshalcnv] standard_name = control_for_shallow_convection_scheme long_name = flag for mass-flux shallow convection scheme @@ -376,7 +337,6 @@ dimensions = () type = integer intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -385,7 +345,6 @@ type = real kind = kind_phys intent = in - optional = F [xcosz] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time @@ -394,7 +353,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -403,7 +361,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcdlw] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -412,7 +369,6 @@ type = real kind = kind_phys intent = in - optional = F [cice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -421,7 +377,6 @@ type = real kind = kind_phys intent = in - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -430,7 +385,6 @@ type = real kind = kind_phys intent = in - optional = F [ulwsfc_cice] standard_name = surface_upwelling_longwave_flux_from_coupled_process long_name = surface upwelling longwave flux for coupling @@ -439,7 +393,6 @@ type = real kind = kind_phys intent = in - optional = F [lwhd] standard_name = tendency_of_air_temperature_due_to_integrated_dynamics_through_earths_atmosphere long_name = idea sky lw heating rates @@ -448,7 +401,6 @@ type = real kind = kind_phys intent = in - optional = F [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -457,7 +409,6 @@ type = real kind = kind_phys intent = in - optional = F [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -466,7 +417,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave fluxes @@ -475,7 +425,6 @@ type = real kind = kind_phys intent = in - optional = F [ctei_rm] standard_name = tunable_parameter_for_critical_cloud_top_entrainment_instability_criteria long_name = critical cloud top entrainment instability criteria @@ -484,7 +433,6 @@ type = real kind = kind_phys intent = in - optional = F [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -493,7 +441,6 @@ type = real kind = kind_phys intent = in - optional = F [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 @@ -502,7 +449,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -511,7 +457,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -520,7 +465,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -529,7 +473,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_water_vapor] standard_name = specific_humidity long_name = water vapor specific humidity @@ -538,7 +481,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_cloud_water] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -547,7 +489,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -556,7 +497,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -565,7 +505,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -574,7 +513,6 @@ type = real kind = kind_phys intent = in - optional = F [suntim] standard_name = duration_of_sunshine long_name = sunshine duration time @@ -583,7 +521,6 @@ type = real kind = kind_phys intent = inout - optional = F [use_LW_jacobian] standard_name = flag_to_calc_RRTMGP_LW_jacobian long_name = logical flag to control RRTMGP LW calculation @@ -591,7 +528,6 @@ dimensions = () type = logical intent = in - optional = F [htrlwu] 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 @@ -600,7 +536,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfculw] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time @@ -609,7 +544,6 @@ type = real kind = kind_phys intent = inout - optional = F [adjsfculw_lnd] standard_name = surface_upwelling_longwave_flux_over_land long_name = surface upwelling longwave flux at current time over land @@ -618,7 +552,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfculw_ice] standard_name = surface_upwelling_longwave_flux_over_ice long_name = surface upwelling longwave flux at current time over ice @@ -627,7 +560,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfculw_wat] standard_name = surface_upwelling_longwave_flux_over_water long_name = surface upwelling longwave flux at current time over water @@ -636,7 +568,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwsfc] standard_name = cumulative_surface_downwelling_longwave_flux_multiplied_by_timestep long_name = cumulative surface downwelling LW flux multiplied by timestep @@ -645,7 +576,6 @@ type = real kind = kind_phys intent = inout - optional = F [ulwsfc] standard_name = cumulative_surface_upwelling_longwave_flux_multiplied_by_timestep long_name = cumulative surface upwelling LW flux multiplied by timestep @@ -654,7 +584,6 @@ type = real kind = kind_phys intent = inout - optional = F [psmean] standard_name = cumulative_surface_pressure_multiplied_by_timestep long_name = cumulative surface pressure multiplied by timestep @@ -663,7 +592,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -672,7 +600,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -680,7 +607,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -688,7 +614,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_shortwave] standard_name = index_of_shortwave_heating_process_in_cumulative_change_index long_name = index of shortwave heating process in second dimension of array cumulative change index @@ -696,7 +621,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -704,7 +628,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -712,7 +635,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -720,7 +642,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_mp] standard_name = index_of_microphysics_process_process_in_cumulative_change_index long_name = index of microphysics transport process in second dimension of array cumulative change index @@ -728,7 +649,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -736,7 +656,6 @@ dimensions = () type = integer intent = in - optional = F [ctei_rml] standard_name = grid_sensitive_critical_cloud_top_entrainment_instability_criteria long_name = grid sensitive critical cloud top entrainment instability criteria @@ -745,7 +664,6 @@ type = real kind = kind_phys intent = inout - optional = F [ctei_r] standard_name = cloud_top_entrainment_instability_value long_name = cloud top entrainment instability value @@ -754,7 +672,6 @@ type = real kind = kind_phys intent = inout - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -762,7 +679,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -770,7 +686,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -778,7 +693,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -786,7 +700,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -795,7 +708,6 @@ type = real kind = kind_phys intent = in - optional = F [huge] standard_name = netcdf_float_fillvalue long_name = definition of NetCDF float FillValue @@ -804,7 +716,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -813,7 +724,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -821,7 +731,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -840,7 +749,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -848,7 +756,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -856,7 +763,6 @@ dimensions = () type = integer intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -865,7 +771,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -874,7 +779,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -883,7 +787,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -892,7 +795,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -901,7 +803,6 @@ type = real kind = kind_phys intent = out - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -910,7 +811,6 @@ type = real kind = kind_phys intent = out - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -919,7 +819,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -928,7 +827,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -937,7 +835,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -945,7 +842,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -964,7 +860,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -972,7 +867,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -980,7 +874,6 @@ dimensions = () type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -989,7 +882,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -998,7 +890,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -1007,7 +898,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -1016,7 +906,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -1025,7 +914,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -1034,7 +922,6 @@ type = real kind = kind_phys intent = in - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -1043,7 +930,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -1052,7 +938,6 @@ type = real kind = kind_phys intent = in - optional = F [dqdt] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers @@ -1061,7 +946,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -1070,7 +954,6 @@ type = real kind = kind_phys intent = out - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -1079,7 +962,6 @@ type = real kind = kind_phys intent = out - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -1088,7 +970,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -1097,7 +978,6 @@ type = real kind = kind_phys intent = out - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -1105,7 +985,6 @@ dimensions = () type = integer intent = in - optional = F [nqrimef] standard_name = index_of_mass_weighted_rime_factor_in_tracer_concentration_array long_name = tracer index for mass weighted rime factor @@ -1113,7 +992,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -1121,7 +999,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -1129,7 +1006,6 @@ dimensions = () type = integer intent = in - optional = F [epsq] standard_name = minimum_value_of_specific_humidity long_name = floor value for specific humidity @@ -1138,7 +1014,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1147,7 +1022,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1155,7 +1029,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -1174,7 +1047,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -1182,7 +1054,6 @@ dimensions = () type = integer intent = in - optional = F [nn] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport @@ -1190,7 +1061,6 @@ dimensions = () type = integer intent = in - optional = F [cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -1198,7 +1068,6 @@ dimensions = () type = logical intent = in - optional = F [satmedmf] standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL long_name = flag for scale-aware TKE moist EDMF PBL scheme @@ -1206,7 +1075,6 @@ dimensions = () type = logical intent = in - optional = F [trans_trac] standard_name = flag_for_convective_transport_of_tracers long_name = flag for convective transport of tracers @@ -1214,7 +1082,6 @@ dimensions = () type = logical intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -1222,7 +1089,6 @@ dimensions = () type = logical intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -1230,7 +1096,6 @@ dimensions = () type = logical intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -1238,7 +1103,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -1246,7 +1110,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -1254,7 +1117,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -1262,7 +1124,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -1270,7 +1131,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -1278,7 +1138,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -1286,7 +1145,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -1294,7 +1152,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -1302,7 +1159,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -1310,7 +1166,6 @@ dimensions = () type = integer intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -1319,7 +1174,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -1328,7 +1182,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -1337,7 +1190,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -1346,7 +1198,6 @@ type = real kind = kind_phys intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -1354,7 +1205,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -1362,7 +1212,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -1370,7 +1219,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -1378,7 +1226,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -1386,7 +1233,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -1394,7 +1240,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -1402,7 +1247,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -1410,7 +1254,6 @@ dimensions = () type = integer intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -1419,7 +1262,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -1428,7 +1270,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -1437,7 +1278,6 @@ type = real kind = kind_phys intent = in - optional = F [rhcbot] standard_name = critical_relative_humidity_at_surface long_name = critical relative humidity at the surface @@ -1446,7 +1286,6 @@ type = real kind = kind_phys intent = in - optional = F [rhcpbl] standard_name = critical_relative_humidity_at_PBL_top long_name = critical relative humidity at the PBL top @@ -1455,7 +1294,6 @@ type = real kind = kind_phys intent = in - optional = F [rhctop] standard_name = critical_relative_humidity_at_toa long_name = critical relative humidity at the top of atmosphere @@ -1464,7 +1302,6 @@ type = real kind = kind_phys intent = in - optional = F [rhcmax] standard_name = max_critical_relative_humidity long_name = maximum critical relative humidity @@ -1473,7 +1310,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -1481,7 +1317,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -1490,7 +1325,6 @@ type = real kind = kind_phys intent = in - optional = F [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 @@ -1499,7 +1333,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -1507,7 +1340,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -1515,7 +1347,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [ras] standard_name = flag_for_relaxed_arakawa_schubert_deep_convection long_name = flag for ras convection scheme @@ -1523,7 +1354,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -1531,7 +1361,6 @@ dimensions = () type = integer intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -1540,7 +1369,6 @@ type = real kind = kind_phys intent = inout - optional = F [rhc] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -1549,7 +1377,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1558,7 +1385,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_qi] standard_name = ice_water_mixing_ratio_save long_name = cloud ice water mixing ratio before entering a physics scheme @@ -1567,7 +1393,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_tcp] standard_name = air_temperature_save_from_convective_parameterization long_name = air temperature after cumulus parameterization @@ -1576,7 +1401,6 @@ type = real kind = kind_phys intent = inout - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -1584,7 +1408,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -1592,7 +1415,6 @@ dimensions = () type = logical intent = in - optional = F [index_of_process_conv_trans] standard_name = index_of_convective_transport_process_in_cumulative_change_index long_name = index of convective transport process in second dimension of array cumulative change index @@ -1600,7 +1422,6 @@ dimensions = () type = integer intent = in - optional = F [save_lnc] standard_name = liquid_cloud_number_concentration_save long_name = liquid cloud number concentration before entering a physics scheme @@ -1609,7 +1430,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_inc] standard_name = ice_cloud_number_concentration_save long_name = ice cloud number concentration before entering a physics scheme @@ -1618,7 +1438,6 @@ type = real kind = kind_phys intent = inout - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -1626,7 +1445,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -1634,7 +1452,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1642,7 +1459,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1651,7 +1467,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1659,7 +1474,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -1678,7 +1492,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -1686,7 +1499,6 @@ dimensions = () type = integer intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -1694,7 +1506,6 @@ dimensions = () type = logical intent = in - optional = F [tracers_total] standard_name = number_of_total_tracers long_name = total number of tracers @@ -1702,7 +1513,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -1710,7 +1520,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -1718,7 +1527,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -1726,7 +1534,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -1734,7 +1541,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -1742,7 +1548,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -1750,7 +1555,6 @@ dimensions = () type = integer intent = in - optional = F [ntrnc] standard_name = index_of_mass_number_concentration_of_rain_in_tracer_concentration_array long_name = tracer index for rain number concentration @@ -1758,7 +1562,6 @@ dimensions = () type = integer intent = in - optional = F [ntsnc] standard_name = index_of_mass_number_concentration_of_snow_in_tracer_concentration_array long_name = tracer index for snow number concentration @@ -1766,7 +1569,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -1774,7 +1576,6 @@ dimensions = () type = integer intent = in - optional = F [ntgnc] standard_name = index_of_mass_number_concentration_of_graupel_in_tracer_concentration_array long_name = tracer index for graupel number concentration @@ -1782,7 +1583,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -1790,7 +1590,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -1798,7 +1597,6 @@ dimensions = () type = integer intent = in - optional = F [nn] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport @@ -1806,7 +1604,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -1814,7 +1611,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -1822,7 +1618,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -1830,7 +1625,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -1838,7 +1632,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -1846,7 +1639,6 @@ dimensions = () type = integer intent = in - optional = F [convert_dry_rho] standard_name = flag_for_converting_hydrometeors_from_moist_to_dry_air long_name = flag for converting hydrometeors from moist to dry air @@ -1854,7 +1646,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -1863,7 +1654,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -1872,7 +1662,6 @@ type = real kind = kind_phys intent = in - optional = F [save_qi] standard_name = ice_water_mixing_ratio_save long_name = cloud ice water mixing ratio before entering a physics scheme @@ -1881,7 +1670,6 @@ type = real kind = kind_phys intent = in - optional = F [save_lnc] standard_name = liquid_cloud_number_concentration_save long_name = liquid cloud number concentration before entering a physics scheme @@ -1890,7 +1678,6 @@ type = real kind = kind_phys intent = in - optional = F [save_inc] standard_name = ice_cloud_number_concentration_save long_name = ice cloud number concentration before entering a physics scheme @@ -1899,7 +1686,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -1908,7 +1694,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -1917,7 +1702,6 @@ type = real kind = kind_phys intent = inout - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -1926,7 +1710,6 @@ type = real kind = kind_phys intent = inout - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -1935,7 +1718,6 @@ type = real kind = kind_phys intent = in - optional = F [save_tcp] standard_name = air_temperature_save_from_convective_parameterization long_name = air temperature after cumulus parameterization @@ -1944,7 +1726,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -1953,7 +1734,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -1962,7 +1742,6 @@ type = real kind = kind_phys intent = in - optional = F [nwfa] standard_name = mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols @@ -1971,7 +1750,6 @@ type = real kind = kind_phys intent = in - optional = F [spechum] standard_name = specific_humidity long_name = water vapor specific humidity @@ -1980,7 +1758,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1988,7 +1765,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -1997,7 +1773,6 @@ type = real kind = kind_phys intent = inout - optional = F [ntk] standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer long_name = index for turbulent kinetic energy in the convectively transported tracer array @@ -2005,7 +1780,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -2013,7 +1787,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -2021,7 +1794,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -2029,7 +1801,6 @@ dimensions = () type = logical intent = in - optional = F [index_of_process_conv_trans] standard_name = index_of_convective_transport_process_in_cumulative_change_index long_name = index of convective transport process in second dimension of array cumulative change index @@ -2037,7 +1808,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -2046,7 +1816,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -2054,7 +1823,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -2073,7 +1841,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -2081,7 +1848,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -2089,7 +1855,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -2097,7 +1862,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -2105,7 +1869,6 @@ dimensions = () type = integer intent = in - optional = F [nn] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport @@ -2113,7 +1876,6 @@ dimensions = () type = integer intent = in - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -2122,7 +1884,6 @@ type = real kind = kind_phys intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -2131,7 +1892,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -2140,7 +1900,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -2148,4 +1907,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_surface_composites.meta b/physics/GFS_surface_composites.meta index 06678f1cb..fde52ed23 100644 --- a/physics/GFS_surface_composites.meta +++ b/physics/GFS_surface_composites.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [lkm] standard_name = control_for_lake_surface_scheme long_name = flag for lake surface model @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -54,7 +49,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -62,7 +56,6 @@ dimensions = () type = logical intent = in - optional = F [cplice] standard_name = flag_for_sea_ice_coupling long_name = flag controlling cplice collection (default on) @@ -70,7 +63,6 @@ dimensions = () type = logical intent = in - optional = F [cplwav2atm] standard_name = flag_for_one_way_ocean_wave_coupling_to_atmosphere long_name = flag controlling ocean wave coupling to the atmosphere (default off) @@ -78,7 +70,6 @@ dimensions = () type = logical intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -87,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -96,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [lakedepth] standard_name = lake_depth long_name = lake depth @@ -105,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -114,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -123,7 +110,6 @@ type = real kind = kind_phys intent = out - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -131,7 +117,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -139,7 +124,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [lake] standard_name = flag_nonzero_lake_surface_fraction long_name = flag indicating presence of some lake surface area fraction @@ -147,7 +131,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -155,7 +138,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -163,7 +145,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [hice] standard_name = sea_ice_thickness long_name = sea ice thickness @@ -172,7 +153,6 @@ type = real kind = kind_phys intent = inout - optional = F [cice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -181,7 +161,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorlo] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -190,7 +169,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorll] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land @@ -199,7 +177,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorli] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice @@ -208,7 +185,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth @@ -217,7 +193,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd_lnd] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -226,7 +201,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowd_ice] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -235,7 +209,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step @@ -244,7 +217,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp_wat] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water long_name = total precipitation amount in each time step over water @@ -253,7 +225,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp_lnd] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land long_name = total precipitation amount in each time step over land @@ -262,7 +233,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp_ice] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice long_name = total precipitation amount in each time step over ice @@ -271,7 +241,6 @@ type = real kind = kind_phys intent = inout - optional = F [uustar] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -280,7 +249,6 @@ type = real kind = kind_phys intent = in - optional = F [uustar_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -289,7 +257,6 @@ type = real kind = kind_phys intent = inout - optional = F [uustar_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -298,7 +265,6 @@ type = real kind = kind_phys intent = inout - optional = F [uustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -307,7 +273,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -316,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd_lnd] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land @@ -325,7 +289,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd_ice] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -334,7 +297,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -343,7 +305,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -352,7 +313,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature @@ -361,7 +321,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -370,7 +329,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -379,7 +337,6 @@ type = real kind = kind_phys intent = inout - optional = F [tisfc] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -388,7 +345,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -397,7 +353,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -406,7 +361,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -415,7 +369,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflx_ice] standard_name = upward_heat_flux_in_soil_over_ice long_name = soil heat flux over ice @@ -424,7 +377,6 @@ type = real kind = kind_phys intent = inout - optional = F [tgice] standard_name = freezing_point_temperature_of_seawater long_name = freezing point temperature of seawater @@ -433,7 +385,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -441,7 +392,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [islmsk_cice] standard_name = sea_land_ice_mask_cice long_name = sea/land/ice mask cice (=0/1/2) @@ -449,7 +399,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -458,7 +407,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -467,7 +415,6 @@ type = real kind = kind_phys intent = in - optional = F [qss_wat] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -476,7 +423,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -485,7 +431,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -494,7 +439,6 @@ type = real kind = kind_phys intent = inout - optional = F [min_lakeice] standard_name = min_lake_ice_area_fraction long_name = minimum lake ice value @@ -503,7 +447,6 @@ type = real kind = kind_phys intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -512,7 +455,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -520,7 +462,6 @@ dimensions = () type = integer intent = in - optional = F [huge] standard_name = netcdf_float_fillvalue long_name = definition of NetCDF float FillValue @@ -529,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -538,7 +478,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -546,7 +485,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -565,7 +503,6 @@ dimensions = () type = integer intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -573,7 +510,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -581,7 +517,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -589,7 +524,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [semis_wat] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water @@ -598,7 +532,6 @@ type = real kind = kind_phys intent = in - optional = F [semis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -607,7 +540,6 @@ type = real kind = kind_phys intent = in - optional = F [semis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -616,7 +548,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcdlw] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -625,7 +556,6 @@ type = real kind = kind_phys intent = in - optional = F [gabsbdlw_lnd] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land long_name = total sky surface downward longwave flux absorbed by the ground over land @@ -634,7 +564,6 @@ type = real kind = kind_phys intent = inout - optional = F [gabsbdlw_ice] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_ice long_name = total sky surface downward longwave flux absorbed by the ground over ice @@ -643,7 +572,6 @@ type = real kind = kind_phys intent = inout - optional = F [gabsbdlw_wat] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water long_name = total sky surface downward longwave flux absorbed by the ground over water @@ -652,7 +580,6 @@ type = real kind = kind_phys intent = inout - optional = F [adjsfcusw] standard_name = surface_upwelling_shortwave_flux long_name = surface upwelling shortwave flux at current time @@ -661,7 +588,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -670,7 +596,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcnsw] standard_name = surface_net_downwelling_shortwave_flux long_name = surface net downwelling shortwave flux at current time @@ -679,7 +604,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -688,7 +612,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -696,7 +619,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -715,7 +637,6 @@ dimensions = () type = integer intent = in - optional = F [kice] standard_name = vertical_dimension_of_sea_ice long_name = vertical loop extent for ice levels, start at 1 @@ -723,7 +644,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -731,7 +651,6 @@ dimensions = () type = integer intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -740,7 +659,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -749,7 +667,6 @@ type = real kind = kind_phys intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -757,7 +674,6 @@ dimensions = () type = logical intent = in - optional = F [cplwav2atm] standard_name = flag_for_one_way_ocean_wave_coupling_to_atmosphere long_name = flag controlling ocean wave coupling to the atmosphere (default off) @@ -765,7 +681,6 @@ dimensions = () type = logical intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -773,7 +688,6 @@ dimensions = () type = logical intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -781,7 +695,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [thsfc_loc] standard_name = flag_for_reference_pressure_theta long_name = flag for reference pressure in theta calculation @@ -789,7 +702,6 @@ dimensions = () type = logical intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -797,7 +709,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -805,7 +716,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -813,7 +723,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -821,7 +730,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -830,7 +738,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = surface layer mean temperature @@ -839,7 +746,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = surface layer mean specific humidity @@ -848,7 +754,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = surface layer mean pressure @@ -857,7 +762,6 @@ type = real kind = kind_phys intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -866,7 +770,6 @@ type = real kind = kind_phys intent = in - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -875,7 +778,6 @@ type = real kind = kind_phys intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -884,7 +786,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length @@ -893,7 +794,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorlo] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -902,7 +802,6 @@ type = real kind = kind_phys intent = in - optional = F [zorll] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land @@ -911,7 +810,6 @@ type = real kind = kind_phys intent = in - optional = F [zorli] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice @@ -920,7 +818,6 @@ type = real kind = kind_phys intent = in - optional = F [cd] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -929,7 +826,6 @@ type = real kind = kind_phys intent = inout - optional = F [cd_wat] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -938,7 +834,6 @@ type = real kind = kind_phys intent = in - optional = F [cd_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -947,7 +842,6 @@ type = real kind = kind_phys intent = in - optional = F [cd_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -956,7 +850,6 @@ type = real kind = kind_phys intent = in - optional = F [cdq] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture @@ -965,7 +858,6 @@ type = real kind = kind_phys intent = inout - optional = F [cdq_wat] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -974,7 +866,6 @@ type = real kind = kind_phys intent = in - optional = F [cdq_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -983,7 +874,6 @@ type = real kind = kind_phys intent = in - optional = F [cdq_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -992,7 +882,6 @@ type = real kind = kind_phys intent = in - optional = F [rb] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -1001,7 +890,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_wat] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water @@ -1010,7 +898,6 @@ type = real kind = kind_phys intent = in - optional = F [rb_lnd] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land @@ -1019,7 +906,6 @@ type = real kind = kind_phys intent = in - optional = F [rb_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice @@ -1028,7 +914,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -1037,7 +922,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -1046,7 +930,6 @@ type = real kind = kind_phys intent = in - optional = F [stress_lnd] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land @@ -1055,7 +938,6 @@ type = real kind = kind_phys intent = in - optional = F [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -1064,7 +946,6 @@ type = real kind = kind_phys intent = in - optional = F [ffmm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -1073,7 +954,6 @@ type = real kind = kind_phys intent = inout - optional = F [ffmm_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -1082,7 +962,6 @@ type = real kind = kind_phys intent = in - optional = F [ffmm_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity function for momentum over land @@ -1091,7 +970,6 @@ type = real kind = kind_phys intent = in - optional = F [ffmm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity function for momentum over ice @@ -1100,7 +978,6 @@ type = real kind = kind_phys intent = in - optional = F [ffhh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -1109,7 +986,6 @@ type = real kind = kind_phys intent = inout - optional = F [ffhh_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water @@ -1118,7 +994,6 @@ type = real kind = kind_phys intent = in - optional = F [ffhh_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land @@ -1127,7 +1002,6 @@ type = real kind = kind_phys intent = in - optional = F [ffhh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice @@ -1136,7 +1010,6 @@ type = real kind = kind_phys intent = in - optional = F [uustar] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -1145,7 +1018,6 @@ type = real kind = kind_phys intent = inout - optional = F [uustar_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -1154,7 +1026,6 @@ type = real kind = kind_phys intent = in - optional = F [uustar_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -1163,7 +1034,6 @@ type = real kind = kind_phys intent = in - optional = F [uustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -1172,7 +1042,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m long_name = Monin-Obukhov similarity parameter for momentum at 10m @@ -1181,7 +1050,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -1190,7 +1058,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov similarity parameter for momentum at 10m over land @@ -1199,7 +1066,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice @@ -1208,7 +1074,6 @@ type = real kind = kind_phys intent = in - optional = F [fh2] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m long_name = Monin-Obukhov similarity parameter for heat at 2m @@ -1217,7 +1082,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov similarity parameter for heat at 2m over water @@ -1226,7 +1090,6 @@ type = real kind = kind_phys intent = in - optional = F [fh2_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov similarity parameter for heat at 2m over land @@ -1235,7 +1098,6 @@ type = real kind = kind_phys intent = in - optional = F [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov similarity parameter for heat at 2m over ice @@ -1244,7 +1106,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -1253,7 +1114,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -1262,7 +1122,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -1271,7 +1130,6 @@ type = real kind = kind_phys intent = in - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air long_name = momentum exchange coefficient @@ -1280,7 +1138,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm_wat] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water @@ -1289,7 +1146,6 @@ type = real kind = kind_phys intent = in - optional = F [cmm_lnd] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land long_name = momentum exchange coefficient over land @@ -1298,7 +1154,6 @@ type = real kind = kind_phys intent = in - optional = F [cmm_ice] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice long_name = momentum exchange coefficient over ice @@ -1307,7 +1162,6 @@ type = real kind = kind_phys intent = in - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air long_name = thermal exchange coefficient @@ -1316,7 +1170,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh_wat] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water long_name = thermal exchange coefficient over water @@ -1325,7 +1178,6 @@ type = real kind = kind_phys intent = in - optional = F [chh_lnd] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land long_name = thermal exchange coefficient over land @@ -1334,7 +1186,6 @@ type = real kind = kind_phys intent = in - optional = F [chh_ice] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice long_name = thermal exchange coefficient over ice @@ -1343,7 +1194,6 @@ type = real kind = kind_phys intent = in - optional = F [gflx] standard_name = upward_heat_flux_in_soil long_name = soil heat flux @@ -1352,7 +1202,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflx_wat] standard_name = upward_heat_flux_in_soil_over_water long_name = soil heat flux over water @@ -1361,7 +1210,6 @@ type = real kind = kind_phys intent = in - optional = F [gflx_lnd] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land @@ -1370,7 +1218,6 @@ type = real kind = kind_phys intent = in - optional = F [gflx_ice] standard_name = upward_heat_flux_in_soil_over_ice long_name = soil heat flux over ice @@ -1379,7 +1226,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1d] standard_name = surface_upward_potential_latent_heat_flux long_name = surface upward potential latent heat flux @@ -1388,7 +1234,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep1d_wat] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water @@ -1397,7 +1242,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1d_lnd] standard_name = surface_upward_potential_latent_heat_flux_over_land long_name = surface upward potential latent heat flux over land @@ -1406,7 +1250,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -1415,7 +1258,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -1424,7 +1266,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd_lnd] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land @@ -1433,7 +1274,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd_ice] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -1442,7 +1282,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth @@ -1451,7 +1290,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowd_lnd] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -1460,7 +1298,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd_ice] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -1469,7 +1306,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step @@ -1478,7 +1314,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp_wat] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water long_name = total precipitation amount in each time step over water @@ -1487,7 +1322,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp_lnd] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land long_name = total precipitation amount in each time step over land @@ -1496,7 +1330,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp_ice] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice long_name = total precipitation amount in each time step over ice @@ -1505,7 +1338,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -1514,7 +1346,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap_wat] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -1523,7 +1354,6 @@ type = real kind = kind_phys intent = in - optional = F [evap_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -1532,7 +1362,6 @@ type = real kind = kind_phys intent = in - optional = F [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -1541,7 +1370,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux @@ -1550,7 +1378,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -1559,7 +1386,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx_lnd] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1568,7 +1394,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx_ice] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -1577,7 +1402,6 @@ type = real kind = kind_phys intent = in - optional = F [qss] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -1586,7 +1410,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_wat] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -1595,7 +1418,6 @@ type = real kind = kind_phys intent = in - optional = F [qss_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -1604,7 +1426,6 @@ type = real kind = kind_phys intent = in - optional = F [qss_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -1613,7 +1434,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -1622,7 +1442,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature @@ -1631,7 +1450,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfcl] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -1640,7 +1458,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -1649,7 +1466,6 @@ type = real kind = kind_phys intent = in - optional = F [tisfc] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -1658,7 +1474,6 @@ type = real kind = kind_phys intent = inout - optional = F [hice] standard_name = sea_ice_thickness long_name = sea ice thickness @@ -1667,7 +1482,6 @@ type = real kind = kind_phys intent = inout - optional = F [cice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -1676,7 +1490,6 @@ type = real kind = kind_phys intent = inout - optional = F [tiice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1685,7 +1498,6 @@ type = real kind = kind_phys intent = in - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -1694,7 +1506,6 @@ type = real kind = kind_phys intent = inout - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -1703,7 +1514,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the ground surface @@ -1712,7 +1522,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at the lowest model layer @@ -1721,7 +1530,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -1730,7 +1538,6 @@ type = real kind = kind_phys intent = in - optional = F [z1] standard_name = height_above_ground_at_lowest_model_layer long_name = height above ground at 1st model layer @@ -1739,7 +1546,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of the grid cell @@ -1748,7 +1554,6 @@ type = real kind = kind_phys intent = in - optional = F [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -1757,7 +1562,6 @@ type = real kind = kind_phys intent = inout - optional = F [lheatstrg] standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme long_name = flag for canopy heat storage parameterization @@ -1765,7 +1569,6 @@ dimensions = () type = logical intent = in - optional = F [h0facu] standard_name = multiplicative_tuning_parameter_for_reduced_surface_heat_fluxes_due_to_canopy_heat_storage long_name = canopy heat storage factor for sensible heat flux in unstable surface layer @@ -1774,7 +1577,6 @@ type = real kind = kind_phys intent = in - optional = F [h0facs] standard_name = multiplicative_tuning_parameter_for_reduced_latent_heat_flux_due_to_canopy_heat_storage long_name = canopy heat storage factor for sensible heat flux in stable surface layer @@ -1783,7 +1585,6 @@ type = real kind = kind_phys intent = in - optional = F [hflxq] standard_name = kinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetation long_name = kinematic surface upward sensible heat flux reduced by surface roughness and vegetation @@ -1792,7 +1593,6 @@ type = real kind = kind_phys intent = inout - optional = F [hffac] standard_name = surface_upward_sensible_heat_flux_reduction_factor long_name = surface upward sensible heat flux reduction factor from canopy heat storage @@ -1801,7 +1601,6 @@ type = real kind = kind_phys intent = inout - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -1810,7 +1609,6 @@ type = real kind = kind_phys intent = inout - optional = F [ztmax_wat] standard_name = bounded_surface_roughness_length_for_heat_over_water long_name = bounded surface roughness length for heat over water @@ -1819,7 +1617,6 @@ type = real kind = kind_phys intent = in - optional = F [ztmax_lnd] standard_name = bounded_surface_roughness_length_for_heat_over_land long_name = bounded surface roughness length for heat over land @@ -1828,7 +1625,6 @@ type = real kind = kind_phys intent = in - optional = F [ztmax_ice] standard_name = bounded_surface_roughness_length_for_heat_over_ice long_name = bounded surface roughness length for heat over ice @@ -1837,7 +1633,6 @@ type = real kind = kind_phys intent = in - optional = F [huge] standard_name = netcdf_float_fillvalue long_name = definition of NetCDF float FillValue @@ -1846,7 +1641,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1855,7 +1649,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1863,4 +1656,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_surface_generic.meta b/physics/GFS_surface_generic.meta index 69f38177d..5a87d1bd4 100644 --- a/physics/GFS_surface_generic.meta +++ b/physics/GFS_surface_generic.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -55,7 +50,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -63,7 +57,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -71,7 +64,6 @@ dimensions = (horizontal_dimension) type = integer intent = inout - optional = F [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save @@ -79,7 +71,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [vtype_save] standard_name = vegetation_type_classification_save long_name = vegetation type for lsm save @@ -87,7 +78,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save @@ -95,7 +85,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -104,7 +93,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -112,7 +100,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -125,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -133,7 +119,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -141,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [vfrac] standard_name = vegetation_area_fraction long_name = areal fractional cover of green vegetation @@ -150,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -158,7 +141,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -166,7 +148,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -174,7 +155,6 @@ dimensions = () type = integer intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -182,7 +162,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -190,7 +169,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -198,7 +176,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [vtype_save] standard_name = vegetation_type_classification_save long_name = vegetation type for lsm save @@ -206,7 +183,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save @@ -214,7 +190,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save @@ -222,7 +197,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [prsik_1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at lowest model interface @@ -231,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk_1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at lowest model layer @@ -240,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -249,7 +221,6 @@ type = real kind = kind_phys intent = inout - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -258,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -267,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -276,7 +245,6 @@ type = real kind = kind_phys intent = inout - optional = F [work3] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -285,7 +253,6 @@ type = real kind = kind_phys intent = inout - optional = F [zlvl] standard_name = height_above_ground_at_lowest_model_layer long_name = layer 1 height above ground (not MSL) @@ -294,7 +261,6 @@ type = real kind = kind_phys intent = inout - optional = F [drain_cpl] standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) @@ -303,7 +269,6 @@ type = real kind = kind_phys intent = out - optional = F [dsnow_cpl] standard_name = tendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_coupling long_name = change in show_cpl (coupling_type) @@ -312,7 +277,6 @@ type = real kind = kind_phys intent = out - optional = F [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -321,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [snow_cpl] standard_name = cumulative_lwe_thickness_of_snow_amount_for_coupling long_name = total snow precipitation @@ -330,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [lndp_type] standard_name = control_for_stochastic_land_surface_perturbation long_name = index for stochastic land surface perturbations type @@ -338,7 +300,6 @@ dimensions = () type = integer intent = in - optional = F [n_var_lndp] standard_name = number_of_perturbed_land_surface_variables long_name = number of land surface variables perturbed @@ -346,7 +307,6 @@ dimensions = () type = integer intent = in - optional = F [sfc_wts] standard_name = surface_stochastic_weights_from_coupled_process long_name = weights for stochastic surface physics perturbation @@ -355,7 +315,6 @@ type = real kind = kind_phys intent = in - optional = F [lndp_var_list] standard_name = land_surface_perturbation_variables long_name = variables to be perturbed for landperts @@ -364,7 +323,6 @@ type = character kind = len=3 intent = in - optional = F [lndp_prt_list] standard_name =land_surface_perturbation_magnitudes long_name = magnitude of perturbations for landperts @@ -373,7 +331,6 @@ type = real kind = kind_phys intent = in - optional = F [z01d] standard_name = perturbation_of_momentum_roughness_length long_name = perturbation of momentum roughness length @@ -382,7 +339,6 @@ type = real kind = kind_phys intent = out - optional = F [zt1d] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio @@ -391,7 +347,6 @@ type = real kind = kind_phys intent = out - optional = F [bexp1d] standard_name = perturbation_of_soil_type_b_parameter long_name = perturbation of soil type "b" parameter @@ -400,7 +355,6 @@ type = real kind = kind_phys intent = out - optional = F [xlai1d] standard_name = perturbation_of_leaf_area_index long_name = perturbation of leaf area index @@ -409,7 +363,6 @@ type = real kind = kind_phys intent = out - optional = F [vegf1d] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction @@ -418,7 +371,6 @@ type = real kind = kind_phys intent = out - optional = F [lndp_vgf] standard_name = magnitude_of_perturbation_of_vegetation_fraction long_name = magnitude of perturbation of vegetation fraction @@ -427,7 +379,6 @@ type = real kind = kind_phys intent = out - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -435,7 +386,6 @@ dimensions = () type = logical intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -443,7 +393,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [islmsk_cice] standard_name = sea_land_ice_mask_cice long_name = sea/land/ice mask cice (=0/1/2) @@ -451,7 +400,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [slimskin_cpl] standard_name = area_type_from_coupled_process long_name = sea/land/ice mask input (=0/1/2) @@ -460,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -469,7 +416,6 @@ type = real kind = kind_phys intent = out - optional = F [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer @@ -478,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer @@ -487,7 +432,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvwind] standard_name = enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection long_name = surface wind enhancement due to convection @@ -496,7 +440,6 @@ type = real kind = kind_phys intent = inout - optional = F [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = wilting point (volumetric) @@ -505,7 +448,6 @@ type = real kind = kind_phys intent = out - optional = F [smcref2] standard_name = threshold_volume_fraction_of_condensed_water_in_soil long_name = soil moisture threshold (volumetric) @@ -514,7 +456,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -523,7 +464,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -531,7 +471,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -550,7 +489,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -558,7 +496,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -566,7 +503,6 @@ dimensions = (horizontal_dimension) type = integer intent = out - optional = F [vtype_save] standard_name = vegetation_type_classification_save long_name = vegetation type for lsm save @@ -574,7 +510,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save @@ -582,7 +517,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save @@ -590,7 +524,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -599,7 +532,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -607,7 +539,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -620,7 +551,6 @@ dimensions = () type = integer intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -628,7 +558,6 @@ dimensions = () type = logical intent = in - optional = F [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -636,7 +565,6 @@ dimensions = () type = logical intent = in - optional = F [cplwav] standard_name = flag_for_ocean_wave_coupling long_name = flag controlling cplwav collection (default off) @@ -644,7 +572,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -652,7 +579,6 @@ dimensions = () type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -660,7 +586,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -668,7 +593,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -676,7 +600,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -685,7 +608,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1d] standard_name = surface_upward_potential_latent_heat_flux long_name = surface upward potential latent heat flux @@ -694,7 +616,6 @@ type = real kind = kind_phys intent = in - optional = F [gflx] standard_name = upward_heat_flux_in_soil long_name = upward soil heat flux @@ -703,7 +624,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs_1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer @@ -712,7 +632,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = specific humidity at lowest model layer @@ -721,7 +640,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs_1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer @@ -730,7 +648,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs_1] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer @@ -739,7 +656,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcdlw] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -748,7 +664,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -757,7 +672,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirbmd] standard_name = surface_downwelling_direct_near_infrared_shortwave_flux long_name = surface downwelling beam near-infrared shortwave flux at current time @@ -766,7 +680,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirdfd] standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux long_name = surface downwelling diffuse near-infrared shortwave flux at current time @@ -775,7 +688,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisbmd] standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time @@ -784,7 +696,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisdfd] standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time @@ -793,7 +704,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfculw] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time @@ -802,7 +712,6 @@ type = real kind = kind_phys intent = in - optional = F [adjsfculw_wat] standard_name = surface_upwelling_longwave_flux_over_water long_name = surface upwelling longwave flux at current time over water @@ -811,7 +720,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirbmu] standard_name = surface_upwelling_direct_near_infrared_shortwave_flux long_name = surface upwelling beam near-infrared shortwave flux at current time @@ -820,7 +728,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirdfu] standard_name = surface_upwelling_diffuse_near_infrared_shortwave_flux long_name = surface upwelling diffuse near-infrared shortwave flux at current time @@ -829,7 +736,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisbmu] standard_name = surface_upwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling beam ultraviolet plus visible shortwave flux at current time @@ -838,7 +744,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisdfu] standard_name = surface_upwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling diffuse ultraviolet plus visible shortwave flux at current time @@ -847,7 +752,6 @@ type = real kind = kind_phys intent = in - optional = F [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -856,7 +760,6 @@ type = real kind = kind_phys intent = in - optional = F [q2m] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity @@ -865,7 +768,6 @@ type = real kind = kind_phys intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -874,7 +776,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -883,7 +784,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -892,7 +792,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -901,7 +800,6 @@ type = real kind = kind_phys intent = in - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -910,7 +808,6 @@ type = real kind = kind_phys intent = in - optional = F [xcosz] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time @@ -919,7 +816,6 @@ type = real kind = kind_phys intent = in - optional = F [evbs] standard_name = soil_upward_latent_heat_flux long_name = soil upward latent heat flux @@ -928,7 +824,6 @@ type = real kind = kind_phys intent = in - optional = F [evcw] standard_name = canopy_upward_latent_heat_flux long_name = canopy upward latent heat flux @@ -937,7 +832,6 @@ type = real kind = kind_phys intent = in - optional = F [trans] standard_name = transpiration_flux long_name = total plant transpiration rate @@ -946,7 +840,6 @@ type = real kind = kind_phys intent = in - optional = F [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -955,7 +848,6 @@ type = real kind = kind_phys intent = in - optional = F [snowc] standard_name = surface_snow_area_fraction long_name = surface snow area fraction @@ -964,7 +856,6 @@ type = real kind = kind_phys intent = in - optional = F [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -973,7 +864,6 @@ type = real kind = kind_phys intent = in - optional = F [epi] standard_name = instantaneous_surface_potential_evaporation long_name = instantaneous sfc potential evaporation @@ -982,7 +872,6 @@ type = real kind = kind_phys intent = inout - optional = F [gfluxi] standard_name = instantaneous_surface_ground_heat_flux long_name = instantaneous sfc ground heat flux @@ -991,7 +880,6 @@ type = real kind = kind_phys intent = inout - optional = F [t1] standard_name = air_temperature_at_lowest_model_layer_for_diag long_name = layer 1 temperature for diag @@ -1000,7 +888,6 @@ type = real kind = kind_phys intent = inout - optional = F [q1] standard_name = water_vapor_specific_humidity_at_lowest_model_layer_for_diag long_name = layer 1 specific humidity for diag @@ -1009,7 +896,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind_at_lowest_model_layer_for_diag long_name = layer 1 x wind for diag @@ -1018,7 +904,6 @@ type = real kind = kind_phys intent = inout - optional = F [v1] standard_name = y_wind_at_lowest_model_layer_for_diag long_name = layer 1 y wind for diag @@ -1027,7 +912,6 @@ type = real kind = kind_phys intent = inout - optional = F [dlwsfci_cpl] standard_name = surface_downwelling_longwave_flux_for_coupling long_name = instantaneous sfc downward lw flux @@ -1036,7 +920,6 @@ type = real kind = kind_phys intent = inout - optional = F [dswsfci_cpl] standard_name = surface_downwelling_shortwave_flux_for_coupling long_name = instantaneous sfc downward sw flux @@ -1045,7 +928,6 @@ type = real kind = kind_phys intent = inout - optional = F [dlwsfc_cpl] standard_name = cumulative_surface_downwelling_longwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward lw flux mulitplied by timestep @@ -1054,7 +936,6 @@ type = real kind = kind_phys intent = inout - optional = F [dswsfc_cpl] standard_name = cumulative_surface_downwelling_shortwave_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc downward sw flux multiplied by timestep @@ -1063,7 +944,6 @@ type = real kind = kind_phys intent = inout - optional = F [dnirbmi_cpl] standard_name = surface_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir beam downward sw flux @@ -1072,7 +952,6 @@ type = real kind = kind_phys intent = inout - optional = F [dnirdfi_cpl] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous sfc nir diff downward sw flux @@ -1081,7 +960,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvisbmi_cpl] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis beam downward sw flux @@ -1090,7 +968,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvisdfi_cpl] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_for_coupling long_name = instantaneous sfc uv+vis diff downward sw flux @@ -1099,7 +976,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1108,7 +984,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1117,7 +992,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1126,7 +1000,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1135,7 +1008,6 @@ type = real kind = kind_phys intent = inout - optional = F [nlwsfci_cpl] standard_name = surface_net_downwelling_longwave_flux_for_coupling long_name = instantaneous net sfc downward lw flux @@ -1144,7 +1016,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1153,7 +1024,6 @@ type = real kind = kind_phys intent = inout - optional = F [t2mi_cpl] standard_name = temperature_at_2m_for_coupling long_name = instantaneous T2m @@ -1162,7 +1032,6 @@ type = real kind = kind_phys intent = inout - optional = F [q2mi_cpl] standard_name = specific_humidity_at_2m_for_coupling long_name = instantaneous Q2m @@ -1171,7 +1040,6 @@ type = real kind = kind_phys intent = inout - optional = F [u10mi_cpl] standard_name = x_wind_at_10m_for_coupling long_name = instantaneous U10m @@ -1180,7 +1048,6 @@ type = real kind = kind_phys intent = inout - optional = F [v10mi_cpl] standard_name = y_wind_at_10m_for_coupling long_name = instantaneous V10m @@ -1189,7 +1056,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfci_cpl] standard_name = surface_skin_temperature_for_coupling long_name = instantaneous sfc temperature @@ -1198,7 +1064,6 @@ type = real kind = kind_phys intent = inout - optional = F [psurfi_cpl] standard_name = surface_air_pressure_for_coupling long_name = instantaneous sfc pressure @@ -1207,7 +1072,6 @@ type = real kind = kind_phys intent = inout - optional = F [nnirbmi_cpl] standard_name = surface_net_downwelling_direct_nir_shortwave_flux_for_coupling long_name = instantaneous net nir beam sfc downward sw flux @@ -1216,7 +1080,6 @@ type = real kind = kind_phys intent = inout - optional = F [nnirdfi_cpl] standard_name = surface_net_downwelling_diffuse_nir_shortwave_flux_for_coupling long_name = instantaneous net nir diff sfc downward sw flux @@ -1225,7 +1088,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1234,7 +1096,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1243,7 +1104,6 @@ type = real kind = kind_phys intent = inout - optional = F [nswsfci_cpl] standard_name = surface_net_downwelling_shortwave_flux_for_coupling long_name = instantaneous net sfc downward sw flux @@ -1252,7 +1112,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1261,7 +1120,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1270,7 +1128,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1279,7 +1136,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1288,7 +1144,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1297,7 +1152,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux] standard_name = cumulative_surface_ground_heat_flux_multiplied_by_timestep long_name = cumulative groud conductive heat flux multiplied by timestep @@ -1306,7 +1160,6 @@ type = real kind = kind_phys intent = inout - optional = F [evbsa] standard_name = cumulative_soil_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative soil upward latent heat flux multiplied by timestep @@ -1315,7 +1168,6 @@ type = real kind = kind_phys intent = inout - optional = F [evcwa] standard_name = cumulative_canopy_upward_latent_heat_flu_multiplied_by_timestep long_name = cumulative canopy upward latent heat flux multiplied by timestep @@ -1324,7 +1176,6 @@ type = real kind = kind_phys intent = inout - optional = F [transa] standard_name = cumulative_transpiration_flux_multiplied_by_timestep long_name = cumulative total plant transpiration rate multiplied by timestep @@ -1333,7 +1184,6 @@ type = real kind = kind_phys intent = inout - optional = F [sbsnoa] standard_name = cumulative_snow_deposition_sublimation_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative latent heat flux from snow depo/subl multiplied by timestep @@ -1342,7 +1192,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowca] standard_name = cumulative_surface_snow_area_fraction_multiplied_by_timestep long_name = cumulative surface snow area fraction multiplied by timestep @@ -1351,7 +1200,6 @@ type = real kind = kind_phys intent = inout - optional = F [snohfa] standard_name = cumulative_snow_freezing_rain_upward_latent_heat_flux_multiplied_by_timestep long_name = cumulative latent heat flux due to snow and frz rain multiplied by timestep @@ -1360,7 +1208,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1369,7 +1216,6 @@ type = real kind = kind_phys intent = inout - optional = F [runoff] standard_name = total_runoff long_name = total water runoff @@ -1378,7 +1224,6 @@ type = real kind = kind_phys intent = inout - optional = F [srunoff] standard_name = surface_runoff long_name = surface water runoff (from lsm) @@ -1387,7 +1232,6 @@ type = real kind = kind_phys intent = inout - optional = F [runof] standard_name = surface_runoff_flux long_name = surface runoff flux @@ -1396,7 +1240,6 @@ type = real kind = kind_phys intent = in - optional = F [drain] standard_name = subsurface_runoff_flux long_name = subsurface runoff flux @@ -1405,7 +1248,6 @@ type = real kind = kind_phys intent = in - optional = F [lheatstrg] standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme long_name = flag for canopy heat storage parameterization @@ -1413,7 +1255,6 @@ dimensions = () type = logical intent = in - optional = F [h0facu] standard_name = multiplicative_tuning_parameter_for_reduced_surface_heat_fluxes_due_to_canopy_heat_storage long_name = canopy heat storage factor for sensible heat flux in unstable surface layer @@ -1422,7 +1263,6 @@ type = real kind = kind_phys intent = in - optional = F [h0facs] standard_name = multiplicative_tuning_parameter_for_reduced_latent_heat_flux_due_to_canopy_heat_storage long_name = canopy heat storage factor for sensible heat flux in stable surface layer @@ -1431,7 +1271,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux @@ -1440,7 +1279,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -1449,7 +1287,6 @@ type = real kind = kind_phys intent = in - optional = F [hflxq] standard_name = kinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetation long_name = kinematic surface upward sensible heat flux reduced by surface roughness and vegetation @@ -1458,7 +1295,6 @@ type = real kind = kind_phys intent = out - optional = F [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -1467,7 +1303,6 @@ type = real kind = kind_phys intent = in - optional = F [hffac] standard_name = surface_upward_sensible_heat_flux_reduction_factor long_name = surface upward sensible heat flux reduction factor from canopy heat storage @@ -1476,7 +1311,6 @@ type = real kind = kind_phys intent = out - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -1484,7 +1318,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -1492,7 +1325,6 @@ dimensions = () type = integer intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -1500,7 +1332,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -1508,7 +1339,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -1516,7 +1346,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [slope] standard_name = surface_slope_classification long_name = sfc slope type for lsm @@ -1524,7 +1353,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [vtype_save] standard_name = vegetation_type_classification_save long_name = vegetation type for lsm save @@ -1532,7 +1360,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save @@ -1540,7 +1367,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save @@ -1548,7 +1374,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1557,7 +1382,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1565,4 +1389,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_surface_loop_control.meta b/physics/GFS_surface_loop_control.meta index 47ab14280..048c836da 100644 --- a/physics/GFS_surface_loop_control.meta +++ b/physics/GFS_surface_loop_control.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [iter] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -39,7 +36,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -48,7 +44,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -56,7 +51,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -75,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [iter] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -83,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -92,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -100,7 +91,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -108,7 +98,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = inout - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -116,7 +105,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -124,7 +112,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -132,7 +119,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [nstf_name1] standard_name = control_for_nsstm long_name = NSSTM flag: off/uncoupled/coupled=0/1/2 @@ -140,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -149,7 +134,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -157,4 +141,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_time_vary_pre.fv3.meta b/physics/GFS_time_vary_pre.fv3.meta index fed14822b..4cd736667 100644 --- a/physics/GFS_time_vary_pre.fv3.meta +++ b/physics/GFS_time_vary_pre.fv3.meta @@ -15,7 +15,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -23,7 +22,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -37,7 +35,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -45,7 +42,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -58,7 +54,6 @@ dimensions = (8) type = integer intent = in - optional = F [idat] standard_name = date_and_time_at_model_initialization_in_iso_order long_name = initialization date and time @@ -66,7 +61,6 @@ dimensions = (8) type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -75,7 +69,6 @@ type = real kind = kind_phys intent = in - optional = F [nsswr] standard_name = number_of_timesteps_between_shortwave_radiation_calls long_name = number of timesteps between shortwave radiation calls @@ -83,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [nslwr] standard_name = number_of_timesteps_between_longwave_radiation_calls long_name = number of timesteps between longwave radiation calls @@ -91,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [nhfrad] standard_name = number_of_timesteps_for_concurrent_radiation_and_remainder_physics_calls_after_model_initialization long_name = number of timesteps for radiation calls on physics timestep (coldstarts only) @@ -99,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -107,7 +97,6 @@ dimensions = (4) type = integer intent = in - optional = F [debug] standard_name = flag_for_debug_output long_name = control flag for debug @@ -115,7 +104,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -123,7 +111,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -131,7 +118,6 @@ dimensions = () type = integer intent = in - optional = F [nscyc] standard_name = number_of_timesteps_between_surface_cycling_calls long_name = number of timesteps between surface cycling calls @@ -139,7 +125,6 @@ dimensions = () type = integer intent = in - optional = F [sec] standard_name = forecast_time_in_seconds long_name = seconds elapsed since model initialization @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = out - optional = F [phour] standard_name = forecast_time_on_previous_timestep long_name = forecast time at the previous timestep @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = out - optional = F [zhour] standard_name = time_elapsed_since_diagnostics_reset long_name = time since diagnostics variables have been zeroed @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = out - optional = F [fhour] standard_name = forecast_time long_name = current forecast time @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = out - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -183,7 +164,6 @@ dimensions = () type = integer intent = out - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = out - optional = F [yearlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -200,7 +179,6 @@ dimensions = () type = integer intent = out - optional = F [ipt] standard_name = index_of_horizontal_gridpoint_for_debug_output long_name = horizontal index for point used for diagnostic printout @@ -208,7 +186,6 @@ dimensions = () type = integer intent = out - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -216,7 +193,6 @@ dimensions = () type = logical intent = out - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -224,7 +200,6 @@ dimensions = () type = logical intent = out - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -232,7 +207,6 @@ dimensions = () type = logical intent = out - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -240,7 +214,6 @@ dimensions = () type = logical intent = out - optional = F [solhr] standard_name = forecast_utc_hour long_name = time in hours after 00z at the current timestep @@ -249,7 +222,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -258,7 +230,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -266,4 +237,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/GFS_time_vary_pre.scm.meta b/physics/GFS_time_vary_pre.scm.meta index 32793d31a..908d636b0 100644 --- a/physics/GFS_time_vary_pre.scm.meta +++ b/physics/GFS_time_vary_pre.scm.meta @@ -15,7 +15,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -23,7 +22,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -37,7 +35,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -45,7 +42,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -58,7 +54,6 @@ dimensions = (8) type = integer intent = in - optional = F [idat] standard_name = date_and_time_at_model_initialization_in_iso_order long_name = initialization date and time @@ -66,7 +61,6 @@ dimensions = (8) type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -75,7 +69,6 @@ type = real kind = kind_phys intent = in - optional = F [nsswr] standard_name = number_of_timesteps_between_shortwave_radiation_calls long_name = number of timesteps between shortwave radiation calls @@ -83,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [nslwr] standard_name = number_of_timesteps_between_longwave_radiation_calls long_name = number of timesteps between longwave radiation calls @@ -91,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [idate] standard_name = date_and_time_at_model_initialization_in_united_states_order long_name = initial date with different size and ordering @@ -99,7 +90,6 @@ dimensions = (4) type = integer intent = in - optional = F [debug] standard_name = flag_for_debug_output long_name = control flag for debug @@ -107,7 +97,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -115,7 +104,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -123,7 +111,6 @@ dimensions = () type = integer intent = in - optional = F [nscyc] standard_name = number_of_timesteps_between_surface_cycling_calls long_name = number of timesteps between surface cycling calls @@ -131,7 +118,6 @@ dimensions = () type = integer intent = in - optional = F [sec] standard_name = forecast_time_in_seconds long_name = seconds elapsed since model initialization @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = out - optional = F [phour] standard_name = forecast_time_on_previous_timestep long_name = forecast time at the previous timestep @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = out - optional = F [zhour] standard_name = time_elapsed_since_diagnostics_reset long_name = time since diagnostics variables have been zeroed @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = out - optional = F [fhour] standard_name = forecast_time long_name = current forecast time @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = out - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -175,7 +157,6 @@ dimensions = () type = integer intent = out - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = out - optional = F [yearlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -192,7 +172,6 @@ dimensions = () type = integer intent = out - optional = F [ipt] standard_name = index_of_horizontal_gridpoint_for_debug_output long_name = horizontal index for point used for diagnostic printout @@ -200,7 +179,6 @@ dimensions = () type = integer intent = out - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -208,7 +186,6 @@ dimensions = () type = logical intent = out - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -216,7 +193,6 @@ dimensions = () type = logical intent = out - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -224,7 +200,6 @@ dimensions = () type = logical intent = out - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -232,7 +207,6 @@ dimensions = () type = logical intent = out - optional = F [solhr] standard_name = forecast_utc_hour long_name = time in hours after 00z at the current timestep @@ -241,7 +215,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -250,7 +223,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -258,4 +230,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/aerclm_def.F b/physics/aerclm_def.F index 157c7b961..e66825278 100644 --- a/physics/aerclm_def.F +++ b/physics/aerclm_def.F @@ -1,5 +1,5 @@ module aerclm_def - use machine , only : kind_phys + use machine , only : kind_phys, kind_io4 implicit none integer, parameter :: levsaer=72, ntrcaerm=15, timeaer=12 @@ -10,13 +10,13 @@ module aerclm_def real (kind=kind_phys), allocatable, dimension(:) :: aer_lat real (kind=kind_phys), allocatable, dimension(:) :: aer_lon - real (kind=kind_phys), allocatable, dimension(:,:,:,:) :: aer_pres - real (kind=kind_phys), allocatable, dimension(:,:,:,:,:) :: aerin + real (kind=kind_io4), allocatable, dimension(:,:,:,:) :: aer_pres + real (kind=kind_io4), allocatable, dimension(:,:,:,:,:) :: aerin data aer_time/15.5, 45., 74.5, 105., 135.5, 166., 196.5, & 227.5, 258., 288.5, 319., 349.5, 380.5/ - data specname /'DU001','DU002','DU003','DU004','DU005', + data specname /'DU001','DU002','DU003','DU004','DU005', & 'SS001','SS002','SS003','SS004','SS005','SO4', & 'BCPHOBIC','BCPHILIC','OCPHOBIC','OCPHILIC'/ diff --git a/physics/aerinterp.F90 b/physics/aerinterp.F90 index dbcf73603..4b3232ab1 100644 --- a/physics/aerinterp.F90 +++ b/physics/aerinterp.F90 @@ -181,7 +181,7 @@ SUBROUTINE read_aerdataf (iamin, iamax, jamin, jamax, & endif do i = iamin, iamax aerin(i,j,k,ii,imon) = 1.d0*buffx(i,j,klev,1) - if(aerin(i,j,k,ii,imon) < 0 .or. aerin(i,j,k,ii,imon) > 1.) then + if(aerin(i,j,k,ii,imon) < 0. .or. aerin(i,j,k,ii,imon) > 1.) then aerin(i,j,k,ii,imon) = 1.e-15 endif enddo !i-loop (lon) diff --git a/physics/cires_ugwp.meta b/physics/cires_ugwp.meta index 3c634e0ef..fe0e82390 100644 --- a/physics/cires_ugwp.meta +++ b/physics/cires_ugwp.meta @@ -16,7 +16,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -24,7 +23,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for opening namelist file @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [input_nml_file] standard_name = filename_of_internal_namelist long_name = character string to store full namelist contents @@ -41,7 +38,6 @@ type = character kind = len=* intent = in - optional = F [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -49,7 +45,6 @@ dimensions = () type = integer intent = in - optional = F [fn_nml2] standard_name = filename_of_namelist long_name = namelist filename for ugwp @@ -58,7 +53,6 @@ type = character kind = len=* intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -66,7 +60,6 @@ dimensions = () type = integer intent = in - optional = F [latr] standard_name = number_of_latitude_points long_name = number of global points in y-dir (j) along the meridian @@ -74,7 +67,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -82,7 +74,6 @@ dimensions = () type = integer intent = in - optional = F [ak] standard_name = sigma_pressure_hybrid_coordinate_a_coefficient long_name = a parameter for sigma pressure level calculations @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [bk] standard_name = sigma_pressure_hybrid_coordinate_b_coefficient long_name = b parameter for sigma pressure level calculations @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplication factors for cdmb and gwd @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [cgwf] standard_name = tunable_parameters_for_convective_gravity_wave_drag long_name = multiplication factor for convective GWD @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [pa_rf_in] standard_name = air_pressure_at_bottom_extent_of_rayleigh_damping long_name = pressure level from which Rayleigh Damping is applied @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_rf_in] standard_name = timescale_for_rayleigh_damping long_name = time scale for Rayleigh damping in days @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = in - optional = F [con_p0] standard_name = standard_atmospheric_pressure long_name = standard atmospheric pressure @@ -154,7 +138,6 @@ type = real kind = kind_phys intent = in - optional = F [gwd_opt] standard_name = control_for_drag_suite_gravity_wave_drag long_name = flag to choose gwd scheme @@ -162,7 +145,6 @@ dimensions = () type = integer intent = in - optional = F [do_ugwp] standard_name = flag_for_unified_gravity_wave_physics_gravity_wave_drag_scheme long_name = flag to activate CIRES UGWP @@ -170,7 +152,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -179,7 +160,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -187,7 +167,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -201,7 +180,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -209,7 +187,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -222,7 +199,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = MPI rank of current process @@ -230,7 +206,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -238,7 +213,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal @@ -246,7 +220,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -254,7 +227,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -262,7 +234,6 @@ dimensions = () type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -271,7 +242,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -279,7 +249,6 @@ dimensions = () type = integer intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -287,7 +256,6 @@ dimensions = () type = integer intent = in - optional = F [oro] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level @@ -296,7 +264,6 @@ type = real kind = kind_phys intent = in - optional = F [oro_uf] standard_name = unfiltered_height_above_mean_sea_level long_name = unfiltered height_above_mean_sea_level @@ -305,7 +272,6 @@ type = real kind = kind_phys intent = in - optional = F [hprime] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -314,7 +280,6 @@ type = real kind = kind_phys intent = in - optional = F [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of topographic variables in GWD @@ -322,7 +287,6 @@ dimensions = () type = integer intent = in - optional = F [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -331,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with_respect to east of maximum subgrid orographic variations @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -358,7 +319,6 @@ type = real kind = kind_phys intent = in - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -367,7 +327,6 @@ type = real kind = kind_phys intent = inout - optional = F [clx] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -376,7 +335,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -385,7 +343,6 @@ type = real kind = kind_phys intent = in - optional = F [do_tofd] standard_name = flag_for_turbulent_orographic_form_drag_in_unified_gravity_wave_physics_gravitiy_wave_drag_scheme long_name = flag for turbulent orographic form drag @@ -393,7 +350,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag_ugwp] standard_name = flag_for_unified_gravity_wave_physics_diagnostics long_name = flag for CIRES UGWP Diagnostics @@ -401,7 +357,6 @@ dimensions = () type = logical intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplication factors for cdmb and gwd @@ -410,7 +365,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = grid latitude @@ -419,7 +373,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -428,7 +381,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of the grid latitude @@ -437,7 +389,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of the grid latitude @@ -446,7 +397,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -455,7 +405,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -464,7 +413,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -473,7 +421,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -482,7 +429,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -491,7 +437,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -500,7 +445,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -509,7 +453,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -518,7 +461,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -527,7 +469,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -536,7 +477,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -545,7 +485,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -553,7 +492,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dusfcg] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -562,7 +500,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfcg] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -571,7 +508,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_dudt] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to UGWP @@ -580,7 +516,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_dvdt] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to UGWP @@ -589,7 +524,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_dtdt] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to UGWP @@ -598,7 +532,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_kdis] standard_name = atmosphere_momentum_diffusivity_due_to_gravity_wave_drag long_name = eddy mixing due to UGWP @@ -607,7 +540,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_tofd] standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag long_name = momentum flux or stress due to TOFD @@ -616,7 +548,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_mtb] standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag long_name = momentum flux or stress due to mountain blocking drag @@ -625,7 +556,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -634,7 +564,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -643,7 +572,6 @@ type = real kind = kind_phys intent = out - optional = F [zmtb] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag @@ -652,7 +580,6 @@ type = real kind = kind_phys intent = out - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking @@ -661,7 +588,6 @@ type = real kind = kind_phys intent = out - optional = F [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity wave @@ -670,7 +596,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -679,7 +604,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -688,7 +612,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -697,7 +620,6 @@ type = real kind = kind_phys intent = out - optional = F [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag @@ -706,7 +628,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -715,7 +636,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -724,7 +644,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -733,7 +652,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -742,7 +660,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -751,7 +668,6 @@ type = real kind = kind_phys intent = inout - optional = F [rdxzb] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -760,7 +676,6 @@ type = real kind = kind_phys intent = out - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -769,7 +684,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -778,7 +692,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat !of dry air at constant pressure @@ -787,7 +700,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -796,7 +708,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -805,7 +716,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -814,7 +724,6 @@ type = real kind = kind_phys intent = in - optional = F [con_omega] standard_name = angular_velocity_of_earth long_name = angular velocity of earth @@ -823,7 +732,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -832,7 +740,6 @@ type = real kind = kind_phys intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -840,7 +747,6 @@ dimensions = () type = integer intent = in - optional = F [q_tke] standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy @@ -849,7 +755,6 @@ type = real kind = kind_phys intent = in - optional = F [dqdt_tke] standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy long_name = turbulent kinetic energy tendency due to model physics @@ -858,7 +763,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -866,7 +770,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -874,7 +777,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -884,7 +786,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -892,7 +793,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -900,7 +800,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -908,7 +807,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -916,7 +814,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -924,7 +821,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_nonorographic_gwd] standard_name = index_of_nonorographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of nonorographic gravity wave drag process in second dimension of array cumulative change index @@ -932,7 +828,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -940,7 +835,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -948,7 +842,6 @@ dimensions = () type = logical intent = in - optional = F [flag_for_gwd_generic_tend] standard_name = flag_for_generic_tendency_due_to_gravity_wave_drag long_name = true if GFS_GWD_generic should calculate tendencies @@ -956,7 +849,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -965,7 +857,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -973,4 +864,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cires_ugwp_post.meta b/physics/cires_ugwp_post.meta index d72052d34..0faca669f 100644 --- a/physics/cires_ugwp_post.meta +++ b/physics/cires_ugwp_post.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [gw_dtdt] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to UGWP @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [gw_dudt] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to UGWP @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [gw_dvdt] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to UGWP @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_tofd] standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag long_name = momentum flux or stress due to TOFD @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_mtb] standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag long_name = momentum flux or stress due to mountain blocking drag @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = in - optional = F [zmtb] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = in - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = in - optional = F [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity wave @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -147,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -156,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [tot_zmtb] standard_name = time_integral_of_height_of_mountain_blocking long_name = time integral of height of mountain blocking drag @@ -165,7 +148,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zlwb] standard_name = time_integral_of_height_of_low_level_wave_breaking long_name = time integral of height of drag due to low level wave breaking @@ -174,7 +156,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zogw] standard_name = time_integral_of_height_of_launch_level_of_orographic_gravity_wave long_name = time integral of height of launch level of orographic gravity wave @@ -183,7 +164,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_tofd] standard_name = time_integral_of_momentum_flux_due_to_turbulent_orographic_form_drag long_name = time integral of momentum flux due to TOFD @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_mtb] standard_name = time_integral_of_momentum_flux_due_to_mountain_blocking_drag long_name = time integral of momentum flux due to mountain blocking drag @@ -201,7 +180,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ogw] standard_name = time_integral_of_momentum_flux_due_to_orographic_gravity_wave_drag long_name = time integral of momentum flux due to orographic gravity wave drag @@ -210,7 +188,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ngw] standard_name = time_integral_of_momentum_flux_due_to_nonstationary_gravity_wave long_name = time integral of momentum flux due to nonstationary gravity waves @@ -219,7 +196,6 @@ type = real kind = kind_phys intent = inout - optional = F [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag @@ -228,7 +204,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -237,7 +212,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -246,7 +220,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -255,7 +228,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -264,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -273,7 +244,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -282,7 +252,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -291,7 +260,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -300,7 +268,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -308,5 +275,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cnvc90.meta b/physics/cnvc90.meta index 1e5a7c132..9c2a626fa 100644 --- a/physics/cnvc90.meta +++ b/physics/cnvc90.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -23,7 +22,6 @@ dimensions = () type = integer intent = in - optional = F [rn] standard_name = lwe_thickness_of_convective_precipitation_amount_on_dynamics_timestep long_name = convective rainfall amount on dynamics timestep @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base @@ -40,7 +37,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = vertical index at cloud top @@ -48,7 +44,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -56,7 +51,6 @@ dimensions = () type = integer intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = interface pressure @@ -65,7 +59,6 @@ type = real kind = kind_phys intent = in - optional = F [acv] standard_name = cumulative_lwe_thickness_of_convective_precipitation_amount_between_sw_radiation_calls long_name = accumulated convective rainfall amount for cnvc90 only @@ -74,7 +67,6 @@ type = real kind = kind_phys intent = inout - optional = F [acvb] standard_name = cumulative_min_vertical_index_at_cloud_base_between_sw_radiation_calls long_name = smallest cloud base vertical index encountered thus far @@ -83,7 +75,6 @@ type = real kind = kind_phys intent = inout - optional = F [acvt] standard_name = cumulative_max_vertical_index_at_cloud_base_between_sw_radiation_calls long_name = largest cloud top vertical index encountered thus far @@ -92,7 +83,6 @@ type = real kind = kind_phys intent = inout - optional = F [cv] standard_name = convective_cloud_area_fraction_between_sw_radiation_calls_from_cnvc90 long_name = fraction of convective cloud @@ -101,7 +91,6 @@ type = real kind = kind_phys intent = inout - optional = F [cvb] standard_name = pressure_at_convective_cloud_base_between_sw_radiation_calls_from_cnvc90 long_name = pressure at bottom of convective cloud @@ -110,7 +99,6 @@ type = real kind = kind_phys intent = inout - optional = F [cvt] standard_name = pressure_at_convective_cloud_top_between_sw_radiation_calls_from_cnvc90 long_name = pressure at top of convective cloud @@ -119,7 +107,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -128,7 +115,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -136,5 +122,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cs_conv.meta b/physics/cs_conv.meta index be27f8360..68189d776 100644 --- a/physics/cs_conv.meta +++ b/physics/cs_conv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of veritcal levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [clw1] 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 @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [clw2] 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 @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [cs_parm1] standard_name = updraft_velocity_tunable_parameter_1_CS long_name = tunable parameter 1 for Chikira-Sugiyama convection @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [cs_parm2] standard_name = updraft_velocity_tunable_parameter_2_CS long_name = tunable parameter 2 for Chikira-Sugiyama convection @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [wcbmax] standard_name = maximum_updraft_velocity_at_cloud_base long_name = maximum updraft velocity at cloud base @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = F [fswtr] standard_name = fraction_of_cloud_top_water_scavenged long_name = fraction of the tracer (cloud top water) that is scavenged by convection @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = out - optional = F [fscav] standard_name = fraction_of_tracer_scavenged long_name = fraction of the tracer (aerosols) that is scavenged by convection @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = out - optional = F [save_q1] standard_name = water_vapor_specific_humidity_save long_name = water vapor specific humidity before entering a physics scheme @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = out - optional = F [save_q2] 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 @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = out - optional = F [save_q3] standard_name = ice_water_mixing_ratio_save long_name = cloud ice water mixing ratio before entering a physics scheme @@ -147,7 +132,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -156,7 +140,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -164,7 +147,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -183,7 +165,6 @@ dimensions = () type = integer intent = in - optional = F [kmax] standard_name = vertical_layer_dimension long_name = number of veritcal levels @@ -191,7 +172,6 @@ dimensions = () type = integer intent = in - optional = F [do_aw] standard_name = flag_for_Arakawa_Wu_adjustment long_name = flag for Arakawa Wu scale-aware adjustment @@ -199,7 +179,6 @@ dimensions = () type = logical intent = in - optional = F [sigmatot] standard_name = convective_updraft_area_fraction_at_model_interfaces long_name = convective updraft area fraction at model interfaces @@ -208,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [sigmafrac] standard_name = convective_updraft_area_fraction long_name = convective updraft area fraction @@ -217,7 +195,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -226,7 +203,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -234,7 +210,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -253,7 +228,6 @@ dimensions = () type = integer intent = in - optional = F [kmax] standard_name = vertical_layer_dimension long_name = number of veritcal levels @@ -261,7 +235,6 @@ dimensions = () type = integer intent = in - optional = F [ntracp1] standard_name = number_of_tracers_plus_one long_name = number of tracers plus one @@ -269,7 +242,6 @@ dimensions = () type = integer intent = in - optional = F [nn] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport (used to dimension clw) @@ -277,7 +249,6 @@ dimensions = () type = integer intent = in - optional = F [ntr] standard_name = number_of_tracers_for_CS long_name = number of convectively transported tracers in Chikira-Sugiyama deep conv. scheme @@ -285,7 +256,6 @@ dimensions = () type = integer intent = in - optional = F [nctp] standard_name = number_of_cloud_types_CS long_name = number of cloud types in Chikira-Sugiyama scheme @@ -293,7 +263,6 @@ dimensions = () type = integer intent = in - optional = F [otspt] standard_name = flag_convective_tracer_transport long_name = flag to enable tracer transport by updrafts/downdrafts[(:,1)] or subsidence [(:,2)] @@ -301,7 +270,6 @@ dimensions = (number_of_tracers_plus_one,2) type = logical intent = in - optional = F [lat] standard_name = latitude_index_in_debug_printouts long_name = latitude index in debug printouts @@ -309,7 +277,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -317,7 +284,6 @@ dimensions = () type = integer intent = in - optional = F [t] standard_name = air_temperature_of_new_state long_name = mid-layer temperature @@ -326,7 +292,6 @@ type = real kind = kind_phys intent = inout - optional = F [q] standard_name = specific_humidity_of_new_state long_name = mid-layer specific humidity of water vapor @@ -335,7 +300,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain1] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -344,7 +308,6 @@ type = real kind = kind_phys intent = out - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -353,7 +316,6 @@ type = real kind = kind_phys intent = inout - optional = F [zm] standard_name = geopotential long_name = mid-layer geopotential @@ -362,7 +324,6 @@ type = real kind = kind_phys intent = in - optional = F [zi] standard_name = geopotential_at_interface long_name = interface geopotential @@ -371,7 +332,6 @@ type = real kind = kind_phys intent = in - optional = F [pap] standard_name = air_pressure long_name = mid-layer pressure @@ -380,7 +340,6 @@ type = real kind = kind_phys intent = in - optional = F [paph] standard_name = air_pressure_at_interface long_name = interface pressure @@ -389,7 +348,6 @@ type = real kind = kind_phys intent = in - optional = F [delta] standard_name = timestep_for_physics long_name = physics time step @@ -398,7 +356,6 @@ type = real kind = kind_phys intent = in - optional = F [delti] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -407,7 +364,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -416,7 +372,6 @@ type = real kind = kind_phys intent = inout - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -425,7 +380,6 @@ type = real kind = kind_phys intent = inout - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -434,7 +388,6 @@ type = real kind = kind_phys intent = inout - optional = F [u] standard_name = x_wind_of_new_state long_name = mid-layer zonal wind @@ -443,7 +396,6 @@ type = real kind = kind_phys intent = inout - optional = F [v] standard_name = y_wind_of_new_state long_name = mid-layer meridional wind @@ -452,7 +404,6 @@ type = real kind = kind_phys intent = inout - optional = F [fscav] standard_name = fraction_of_tracer_scavenged long_name = fraction of the tracer (aerosols) that is scavenged by convection @@ -461,7 +412,6 @@ type = real kind = kind_phys intent = in - optional = F [fswtr] standard_name = fraction_of_cloud_top_water_scavenged long_name = fraction of the tracer (cloud top water) that is scavenged by convection @@ -470,7 +420,6 @@ type = real kind = kind_phys intent = in - optional = F [cbmfx] standard_name = atmosphere_updraft_convective_mass_flux_at_cloud_base_by_cloud_type long_name = cloud base mass flux @@ -479,7 +428,6 @@ type = real kind = kind_phys intent = inout - optional = F [mype] standard_name = mpi_rank long_name = current MPI rank @@ -487,7 +435,6 @@ dimensions = () type = integer intent = in - optional = F [wcbmaxm] standard_name = maximum_updraft_velocity_at_cloud_base long_name = maximum updraft velocity at cloud base @@ -496,7 +443,6 @@ type = real kind = kind_phys intent = in - optional = F [precz0in] standard_name = detrainment_and_precipitation_tunable_parameter_3_CS long_name = partition water between detrainment and precipitation (decrease for more precipitation) @@ -505,7 +451,6 @@ type = real kind = kind_phys intent = in - optional = F [preczhin] standard_name = detrainment_and_precipitation_tunable_parameter_4_CS long_name = partition water between detrainment and precipitation (decrease for more precipitation) @@ -514,7 +459,6 @@ type = real kind = kind_phys intent = in - optional = F [clmdin] standard_name = entrainment_efficiency_tunable_parameter_9_CS long_name = entrainment efficiency @@ -523,7 +467,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = convective_updraft_area_fraction_at_model_interfaces long_name = convective updraft area fraction at model interfaces @@ -532,7 +475,6 @@ type = real kind = kind_phys intent = out - optional = F [do_aw] standard_name = flag_for_Arakawa_Wu_adjustment long_name = flag for Arakawa Wu scale-aware adjustment @@ -540,7 +482,6 @@ dimensions = () type = logical intent = in - optional = F [do_awdd] standard_name = flag_for_arakawa_wu_downdrafts_for_deep_convection long_name = flag to enable treating convective tendencies following Arakwaw-Wu for downdrafts (2013) @@ -548,7 +489,6 @@ dimensions = () type = logical intent = in - optional = F [flx_form] standard_name = flag_flux_form_CS long_name = flag to enable using the flux form of the equations in CS scheme @@ -556,7 +496,6 @@ dimensions = () type = logical intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -564,7 +503,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -572,7 +510,6 @@ dimensions = () type = integer intent = in - optional = F [kcnv] standard_name = flag_deep_convection long_name = flag indicating whether convection occurs in column @@ -580,7 +517,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -589,7 +525,6 @@ type = real kind = kind_phys intent = out - optional = F [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -598,7 +533,6 @@ type = real kind = kind_phys intent = out - optional = F [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -607,7 +541,6 @@ type = real kind = kind_phys intent = out - optional = F [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -616,7 +549,6 @@ type = real kind = kind_phys intent = out - optional = F [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -625,7 +557,6 @@ type = real kind = kind_phys intent = out - optional = F [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -634,7 +565,6 @@ type = real kind = kind_phys intent = out - optional = F [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -643,7 +573,6 @@ type = real kind = kind_phys intent = out - optional = F [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -652,7 +581,6 @@ type = real kind = kind_phys intent = out - optional = F [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -661,7 +589,6 @@ type = real kind = kind_phys intent = out - optional = F [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -670,7 +597,6 @@ type = real kind = kind_phys intent = out - optional = F [mp_phys] standard_name = control_for_microphysics_scheme long_name = flag for microphysics scheme @@ -678,7 +604,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -687,7 +612,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -695,4 +619,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cs_conv_aw_adj.meta b/physics/cs_conv_aw_adj.meta index d1e87ecd4..f3c205772 100644 --- a/physics/cs_conv_aw_adj.meta +++ b/physics/cs_conv_aw_adj.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of veritcal levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [do_cscnv] standard_name = flag_for_Chikira_Sugiyama_deep_convection long_name = flag for Chikira-Sugiyama convection @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [do_aw] standard_name = flag_for_Arakawa_Wu_adjustment long_name = flag for Arakawa Wu scale-aware adjustment @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [nncl] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -87,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [sigmafrac] standard_name = convective_updraft_area_fraction long_name = convective updraft area fraction @@ -96,7 +86,6 @@ type = real kind = kind_phys intent = inout - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -105,7 +94,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -114,7 +102,6 @@ type = real kind = kind_phys intent = inout - optional = F [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -123,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [save_q] standard_name = tracer_concentration_save long_name = tracer concentration before entering a physics scheme @@ -132,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -141,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [cldfrac] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -150,7 +134,6 @@ type = real kind = kind_phys intent = inout - optional = F [subcldfrac] standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme @@ -159,7 +142,6 @@ type = real kind = kind_phys intent = inout - optional = F [prcp] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep @@ -168,7 +150,6 @@ type = real kind = kind_phys intent = inout - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -176,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -184,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -193,7 +172,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -201,4 +179,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_gf_driver.meta b/physics/cu_gf_driver.meta index e3fb25b43..7ff2bc313 100644 --- a/physics/cu_gf_driver.meta +++ b/physics/cu_gf_driver.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_gf] standard_name = identifier_for_grell_freitas_shallow_convection long_name = flag for Grell-Freitas shallow convection scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_gf] standard_name = identifier_for_grell_freitas_deep_convection long_name = flag for Grell-Freitas deep convection scheme @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -63,7 +57,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -71,7 +64,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -84,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [garea] standard_name = cell_area long_name = grid cell area @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -101,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -109,7 +98,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -126,7 +113,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -134,7 +120,6 @@ dimensions = () type = logical intent = in - optional = F [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -142,7 +127,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = mid-level cloud convective activity memory @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat !of dry air at constant pressure @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [xlv] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [r_v] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [forceqv_spechum] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = layer geopotential @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [raincv] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = out - optional = F [qv_spechum] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = F [t] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld1d] standard_name = cloud_work_function long_name = cloud work function @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = out - optional = F [us] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = inout - optional = F [vs] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = inout - optional = F [t2di] standard_name = air_temperature long_name = mid-layer temperature @@ -275,7 +246,6 @@ type = real kind = kind_phys intent = in - optional = F [w] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -284,7 +254,6 @@ type = real kind = kind_phys intent = in - optional = F [qv2di_spechum] standard_name = specific_humidity long_name = water vapor specific humidity @@ -293,7 +262,6 @@ type = real kind = kind_phys intent = in - optional = F [p2di] standard_name = air_pressure long_name = mean layer pressure @@ -302,7 +270,6 @@ type = real kind = kind_phys intent = in - optional = F [psuri] standard_name = surface_air_pressure long_name = surface pressure @@ -311,7 +278,6 @@ type = real kind = kind_phys intent = in - optional = F [hbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -319,7 +285,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [htop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -327,7 +292,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -335,7 +299,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [xland] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -343,7 +306,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [hfx2] 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 @@ -352,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [qfx2] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -361,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [aod_gf] standard_name = aod_gf_deep long_name = aerosol optical depth used in Grell-Freitas Convective Parameterization @@ -370,7 +330,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -379,7 +338,6 @@ type = real kind = kind_phys intent = inout - optional = F [clcw] 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 @@ -388,7 +346,6 @@ type = real kind = kind_phys intent = inout - optional = F [pbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -397,7 +354,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -406,7 +362,6 @@ type = real kind = kind_phys intent = out - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -415,7 +370,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -424,7 +378,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw_moist] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -433,7 +386,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -442,7 +394,6 @@ type = real kind = kind_phys intent = out - optional = F [imfshalcnv] standard_name = control_for_shallow_convection_scheme long_name = flag for mass-flux shallow convection scheme @@ -450,7 +401,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -458,7 +408,6 @@ dimensions = () type = logical intent = in - optional = F [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 @@ -466,7 +415,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -475,7 +423,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -483,7 +430,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -491,7 +437,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -499,7 +444,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -507,7 +451,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -515,7 +458,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -523,7 +465,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -531,7 +472,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -539,7 +479,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -547,7 +486,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -555,7 +493,6 @@ dimensions = () type = logical intent = in - optional = F [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -564,7 +501,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -573,7 +509,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -581,4 +516,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_gf_driver_post.meta b/physics/cu_gf_driver_post.meta index 26aeade5d..c3d3e897c 100644 --- a/physics/cu_gf_driver_post.meta +++ b/physics/cu_gf_driver_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [t] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [prevst] standard_name = air_temperature_on_previous_timestep long_name = temperature from previous time step @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = out - optional = F [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = out - optional = F [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -58,7 +53,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -66,7 +60,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = out - optional = F [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -93,7 +84,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -101,4 +91,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_gf_driver_pre.meta b/physics/cu_gf_driver_pre.meta index f3a0e977d..c587939bd 100644 --- a/physics/cu_gf_driver_pre.meta +++ b/physics/cu_gf_driver_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [fhour] standard_name = forecast_time long_name = curent forecast time @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [t] standard_name = air_temperature long_name = model layer mean temperature @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity long_name = water vapor specific humidity @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [prevst] standard_name = air_temperature_on_previous_timestep long_name = temperature from previous time step @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = F [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = F [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -110,7 +99,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -118,7 +106,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -145,7 +130,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -153,4 +137,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_ntiedtke.meta b/physics/cu_ntiedtke.meta index c7477d925..68a9827c8 100644 --- a/physics/cu_ntiedtke.meta +++ b/physics/cu_ntiedtke.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_ntiedtke] standard_name = identifier_for_new_tiedtke_shallow_convection long_name = flag for new Tiedtke shallow convection scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_ntiedtke] standard_name = identifier_for_new_tiedtke_deep_convection long_name = flag for new Tiedtke deep convection scheme @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -63,7 +57,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -71,7 +64,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = inout - optional = F [pv] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = inout - optional = F [pt] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = inout - optional = F [pqv] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = inout - optional = F [tdi] standard_name = air_temperature long_name = mid-layer temperature @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [qvdi] standard_name = specific_humidity long_name = water vapor specific humidity @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [pqvf] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [ptf] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other tracers @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = inout - optional = F [poz] standard_name = geopotential long_name = geopotential at model layer centers @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [pzz] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -193,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [pomg] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -202,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [hfx] 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 @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [zprecc] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = out - optional = F [lmask] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -237,7 +212,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [lq] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -245,7 +219,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -253,7 +226,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -262,7 +234,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -271,7 +242,6 @@ type = real kind = kind_phys intent = in - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -279,7 +249,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -287,7 +256,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -295,7 +263,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [ktrac] standard_name = number_of_tracers_for_convective_transport long_name = number of tracers for convective transport @@ -303,7 +270,6 @@ dimensions = () type = integer intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -312,7 +278,6 @@ type = real kind = kind_phys intent = out - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -321,7 +286,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -330,7 +294,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = convective cloud water @@ -339,7 +302,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -348,7 +310,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -357,7 +318,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -365,4 +325,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_ntiedtke_post.meta b/physics/cu_ntiedtke_post.meta index 65240f184..4d83bf57c 100644 --- a/physics/cu_ntiedtke_post.meta +++ b/physics/cu_ntiedtke_post.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -24,7 +23,6 @@ type = real kind = kind_phys intent = in - optional = F [prevst] standard_name = air_temperature_on_previous_timestep long_name = temperature from previous time step @@ -33,7 +31,6 @@ type = real kind = kind_phys intent = out - optional = F [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -42,7 +39,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -51,7 +47,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -59,4 +54,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/cu_ntiedtke_pre.meta b/physics/cu_ntiedtke_pre.meta index 1d9254074..5b162041a 100644 --- a/physics/cu_ntiedtke_pre.meta +++ b/physics/cu_ntiedtke_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [fhour] standard_name = forecast_time long_name = curent forecast time @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [t] standard_name = air_temperature long_name = model layer mean temperature @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity long_name = water vapor specific humidity @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [prevst] standard_name = air_temperature_on_previous_timestep long_name = temperature from previous time step @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = F [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -111,7 +100,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -119,4 +107,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/dcyc2.meta b/physics/dcyc2.meta index da9476e84..1d6821d0a 100644 --- a/physics/dcyc2.meta +++ b/physics/dcyc2.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [slag] standard_name = equation_of_time long_name = equation of time @@ -24,7 +23,6 @@ type = real kind = kind_phys intent = in - optional = F [sdec] standard_name = sine_of_solar_declination_angle long_name = sine of solar declination angle @@ -33,7 +31,6 @@ type = real kind = kind_phys intent = in - optional = F [cdec] standard_name = cosine_of_solar_declination_angle long_name = cosine of solar declination angle @@ -42,7 +39,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of latitude @@ -51,7 +47,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of latitude @@ -60,7 +55,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [con_sbc] standard_name = stefan_boltzmann_constant long_name = Stefan-Boltzmann constant @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude of grid box @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = average of cosine of zenith angle over daytime shortwave call time interval @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -123,7 +111,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [tf] standard_name = air_temperature_at_surface_adjacent_layer long_name = air temperature at lowest model layer @@ -150,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [tsflw] standard_name = air_temperature_at_surface_adjacent_layer_on_radiation_timestep long_name = surface (first layer) air temperature saved in longwave radiation call @@ -159,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -168,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -177,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -186,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis_wat] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water @@ -195,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcdsw] standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky surface downwelling shortwave flux on radiation time step @@ -204,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky surface net downwelling shortwave flux on radiation time step @@ -213,7 +191,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcdlw] standard_name = surface_downwelling_longwave_flux_on_radiation_timestep long_name = total sky surface downwelling longwave flux on radiation time step @@ -222,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate on radiation time step @@ -231,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [swhc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky shortwave heating rate on radiation time step @@ -240,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [hlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky longwave heating rate on radiation time step @@ -249,7 +223,6 @@ type = real kind = kind_phys intent = in - optional = F [hlwc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky longwave heating rate on radiation time step @@ -258,7 +231,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnirbmu] standard_name = surface_upwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = total sky surface upwelling beam near-infrared shortwave flux on radiation time step @@ -267,7 +239,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnirdfu] standard_name = surface_upwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = total sky surface upwelling diffuse near-infrared shortwave flux on radiation time step @@ -276,7 +247,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcvisbmu] standard_name = surface_upwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = total sky surface upwelling beam ultraviolet plus visible shortwave flux on radiation time step @@ -285,7 +255,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcvisdfu] standard_name = surface_upwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = total sky surface upwelling diffuse ultraviolet plus visible shortwave flux on radiation time step @@ -294,7 +263,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnirbmd] standard_name = surface_downwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = total sky surface downwelling beam near-infrared shortwave flux on radiation time step @@ -303,7 +271,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnirdfd] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = total sky surface downwelling diffuse near-infrared shortwave flux on radiation time step @@ -312,7 +279,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcvisbmd] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = total sky surface downwelling beam ultraviolet plus visible shortwave flux on radiation time step @@ -321,7 +287,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcvisdfd] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = total sky surface downwelling diffuse ultraviolet plus visible shortwave flux on radiation time step @@ -330,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -338,7 +302,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -346,7 +309,6 @@ dimensions = () type = integer intent = in - optional = F [deltim] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -355,7 +317,6 @@ type = real kind = kind_phys intent = in - optional = F [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -364,7 +325,6 @@ type = real kind = kind_phys intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -372,7 +332,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -380,7 +339,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -388,7 +346,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [damp_LW_fluxadj] standard_name = flag_to_damp_RRTMGP_LW_jacobian_flux_adjustment long_name = logical flag to control RRTMGP LW calculation @@ -396,7 +353,6 @@ dimensions = () type = logical intent = in - optional = F [lfnc_k] standard_name = transition_pressure_length_scale_for_flux_damping long_name = depth of transition layer in logistic function for LW flux adjustment damping @@ -405,7 +361,6 @@ type = real kind = kind_phys intent = in - optional = F [lfnc_p0] standard_name = transition_pressure_for_flux_damping long_name = transition pressure for LW flux adjustment damping @@ -414,7 +369,6 @@ type = real kind = kind_phys intent = in - optional = F [use_LW_jacobian] standard_name = flag_to_calc_RRTMGP_LW_jacobian long_name = logical flag to control RRTMGP LW calculation @@ -422,7 +376,6 @@ dimensions = () type = logical intent = in - optional = F [sfculw] standard_name = surface_upwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc upward lw flux @@ -431,7 +384,6 @@ type = real kind = kind_phys intent = in - optional = F [fluxlwUP_jac] standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile @@ -440,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_of_new_state long_name = model layer mean temperature updated by physics @@ -449,7 +400,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure long_name = mean layer pressure @@ -458,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -467,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [flux2D_lwUP] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -476,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [flux2D_lwDOWN] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -485,7 +432,6 @@ type = real kind = kind_phys intent = in - optional = F [pert_radtend] standard_name = flag_for_stochastic_radiative_heating_perturbations long_name = flag for stochastic radiative heating perturbations @@ -493,7 +439,6 @@ dimensions = () type = logical intent = in - optional = F [do_sppt] standard_name = flag_for_stochastic_physics_perturbations long_name = flag for stochastic physics perturbations @@ -501,7 +446,6 @@ dimensions = () type = logical intent = in - optional = F [ca_global] standard_name = flag_for_global_cellular_automata long_name = switch for global ca @@ -509,7 +453,6 @@ dimensions = () type = logical intent = in - optional = F [tsfc_radtime] standard_name = surface_skin_temperature_on_radiation_timestep long_name = surface skin temperature on radiation timestep @@ -518,7 +461,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = total radiative heating rate at current time @@ -527,7 +469,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdtnp] standard_name = tendency_of_air_temperature_to_withold_from_sppt long_name = temp. change from physics that should not be perturbed by sppt @@ -536,7 +477,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -545,7 +485,6 @@ type = real kind = kind_phys intent = inout - optional = F [adjsfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -554,7 +493,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfcnsw] standard_name = surface_net_downwelling_shortwave_flux long_name = surface net downwelling shortwave flux at current time @@ -563,7 +501,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfcdlw] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -572,7 +509,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfculw] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time @@ -581,7 +517,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfculw_lnd] standard_name = surface_upwelling_longwave_flux_over_land long_name = surface upwelling longwave flux at current time over land @@ -590,7 +525,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfculw_ice] standard_name = surface_upwelling_longwave_flux_over_ice long_name = surface upwelling longwave flux at current time over ice @@ -599,7 +533,6 @@ type = real kind = kind_phys intent = out - optional = F [adjsfculw_wat] standard_name = surface_upwelling_longwave_flux_over_water long_name = surface upwelling longwave flux at current time over water @@ -608,7 +541,6 @@ type = real kind = kind_phys intent = out - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave fluxes @@ -617,7 +549,6 @@ type = real kind = kind_phys intent = out - optional = F [xcosz] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time @@ -626,7 +557,6 @@ type = real kind = kind_phys intent = out - optional = F [adjnirbmu] standard_name = surface_upwelling_direct_near_infrared_shortwave_flux long_name = surface upwelling beam near-infrared shortwave flux at current time @@ -635,7 +565,6 @@ type = real kind = kind_phys intent = out - optional = F [adjnirdfu] standard_name = surface_upwelling_diffuse_near_infrared_shortwave_flux long_name = surface upwelling diffuse near-infrared shortwave flux at current time @@ -644,7 +573,6 @@ type = real kind = kind_phys intent = out - optional = F [adjvisbmu] standard_name = surface_upwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling beam ultraviolet plus visible shortwave flux at current time @@ -653,7 +581,6 @@ type = real kind = kind_phys intent = out - optional = F [adjvisdfu] standard_name = surface_upwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface upwelling diffuse ultraviolet plus visible shortwave flux at current time @@ -662,7 +589,6 @@ type = real kind = kind_phys intent = out - optional = F [adjnirbmd] standard_name = surface_downwelling_direct_near_infrared_shortwave_flux long_name = surface downwelling beam near-infrared shortwave flux at current time @@ -671,7 +597,6 @@ type = real kind = kind_phys intent = out - optional = F [adjnirdfd] standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux long_name = surface downwelling diffuse near-infrared shortwave flux at current time @@ -680,7 +605,6 @@ type = real kind = kind_phys intent = out - optional = F [adjvisbmd] standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time @@ -689,7 +613,6 @@ type = real kind = kind_phys intent = out - optional = F [adjvisdfd] standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time @@ -698,7 +621,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -707,7 +629,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -715,4 +636,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/drag_suite.meta b/physics/drag_suite.meta index 0511aa073..c168167a3 100644 --- a/physics/drag_suite.meta +++ b/physics/drag_suite.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -61,7 +56,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -70,7 +64,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -79,7 +72,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = zonal wind @@ -88,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = meridional wind @@ -97,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = mid-layer temperature @@ -106,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -115,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -123,7 +111,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = interface pressure @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -150,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = mid-layer Exner function @@ -159,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = interface geopotential @@ -168,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = mid-layer geopotential @@ -177,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [deltim] standard_name = timestep_for_physics long_name = physics time step @@ -186,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -194,7 +174,6 @@ dimensions = () type = integer intent = in - optional = F [var] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [oc1] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [ol4] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [varss] standard_name = standard_deviation_of_subgrid_orography_small_scale long_name = standard deviation of subgrid height_above_mean_sea_level small scale @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = in - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with respect to east of maximum subgrid orographic variations @@ -275,7 +246,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -284,7 +254,6 @@ type = real kind = kind_phys intent = in - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -293,7 +262,6 @@ type = real kind = kind_phys intent = in - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -302,7 +270,6 @@ type = real kind = kind_phys intent = in - optional = F [dtaux2d_ls] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = x momentum tendency from large scale gwd @@ -311,7 +278,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_ls] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y momentum tendency from large scale gwd @@ -320,7 +286,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_bl] standard_name = tendency_of_x_momentum_due_to_blocking_drag long_name = x momentum tendency from blocking drag @@ -329,7 +294,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_bl] standard_name = tendency_of_y_momentum_due_to_blocking_drag long_name = y momentum tendency from blocking drag @@ -338,7 +302,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_ss] standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag long_name = x momentum tendency from small scale gwd @@ -347,7 +310,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_ss] standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag long_name = y momentum tendency from small scale gwd @@ -356,7 +318,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_fd] standard_name = tendency_of_x_momentum_due_to_form_drag long_name = x momentum tendency from form drag @@ -365,7 +326,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_fd] standard_name = tendency_of_y_momentum_due_to_form_drag long_name = y momentum tendency from form drag @@ -374,7 +334,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -383,7 +342,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -392,7 +350,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc_ls] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from large scale gwd @@ -401,7 +358,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_ls] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from large scale gwd @@ -410,7 +366,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -419,7 +374,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -428,7 +382,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -437,7 +390,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -446,7 +398,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc_fd] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -455,7 +406,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_fd] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -464,7 +414,6 @@ type = real kind = kind_phys intent = out - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -473,7 +422,6 @@ type = real kind = kind_phys intent = in - optional = F [br1] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -482,7 +430,6 @@ type = real kind = kind_phys intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -491,7 +438,6 @@ type = real kind = kind_phys intent = in - optional = F [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -500,7 +446,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -509,7 +454,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -518,7 +462,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -527,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -536,7 +478,6 @@ type = real kind = kind_phys intent = in - optional = F [pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -545,7 +486,6 @@ type = real kind = kind_phys intent = in - optional = F [imx] standard_name = number_of_equatorial_longitude_points long_name = number of longitude points along the equator @@ -553,7 +493,6 @@ dimensions = () type = integer intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplic. factors for (1) mountain blocking drag coeff. and (2) ref. level orographic gravity wave drag @@ -562,7 +501,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = rank of the current MPI task @@ -570,7 +508,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -578,7 +515,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for debugging printouts @@ -586,7 +522,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of column used in debugging printouts @@ -594,7 +529,6 @@ dimensions = () type = integer intent = in - optional = F [rdxzb] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -603,7 +537,6 @@ type = real kind = kind_phys intent = out - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -612,7 +545,6 @@ type = real kind = kind_phys intent = in - optional = F [gwd_opt] standard_name = control_for_drag_suite_gravity_wave_drag long_name = flag to choose gwd scheme @@ -620,7 +552,6 @@ dimensions = () type = integer intent = in - optional = F [do_gsl_drag_ls_bl] standard_name = flag_for_gsl_drag_suite_large_scale_orographic_and_blocking_drag long_name = flag to activate GSL drag suite - large-scale GWD and blocking @@ -628,7 +559,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ss] standard_name = flag_for_gsl_drag_suite_small_scale_orographic_drag long_name = flag to activate GSL drag suite - small-scale GWD @@ -636,7 +566,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_tofd] standard_name = flag_for_gsl_drag_suite_turbulent_orographic_form_drag long_name = flag to activate GSL drag suite - turb orog form drag @@ -644,7 +573,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -654,7 +582,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -662,7 +589,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -670,7 +596,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -678,7 +603,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -686,7 +610,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -694,7 +617,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -702,7 +624,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -711,7 +632,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -719,4 +639,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/flake_driver.meta b/physics/flake_driver.meta index 6671ee03d..2855aa026 100644 --- a/physics/flake_driver.meta +++ b/physics/flake_driver.meta @@ -15,7 +15,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -23,7 +22,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -37,7 +35,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -45,7 +42,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -58,7 +54,6 @@ dimensions = () type = integer intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -67,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer @@ -76,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer @@ -85,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -94,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water long_name = total sky surface downward longwave flux absorbed by the ground over water @@ -103,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [dswsfc] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -112,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -121,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [lakedepth] standard_name = lake_depth long_name = lake depth @@ -130,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -138,7 +125,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -147,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -156,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [zlvl] standard_name = height_above_ground_at_lowest_model_layer long_name = layer 1 height above ground (not MSL) @@ -165,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [elev] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level @@ -174,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -182,7 +164,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -190,7 +171,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [yearlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -198,7 +178,6 @@ dimensions = () type = integer intent = in - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -207,7 +186,6 @@ type = real kind = kind_phys intent = in - optional = F [imon] standard_name = forecast_month long_name = current forecast month @@ -215,7 +193,6 @@ dimensions = () type = integer intent = in - optional = F [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -224,7 +201,6 @@ type = real kind = kind_phys intent = inout - optional = F [hice] standard_name = sea_ice_thickness long_name = sea ice thickness @@ -233,7 +209,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -242,7 +217,6 @@ type = real kind = kind_phys intent = inout - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -251,7 +225,6 @@ type = real kind = kind_phys intent = inout - optional = F [t_sfc] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -260,7 +233,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -269,7 +241,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -278,7 +249,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -287,7 +257,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -296,7 +265,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -305,7 +273,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -314,7 +281,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water long_name = thermal exchange coefficient over water @@ -323,7 +289,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water @@ -332,7 +297,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -341,7 +305,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -349,4 +312,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gcm_shoc.meta b/physics/gcm_shoc.meta index 8ebd8fd05..d22e51e6a 100644 --- a/physics/gcm_shoc.meta +++ b/physics/gcm_shoc.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [nzm] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [tcr] standard_name = cloud_phase_transition_threshold_temperature long_name = threshold temperature below which cloud starts to freeze @@ -61,7 +56,6 @@ type = real kind = kind_phys intent = in - optional = F [tcrf] standard_name = reciprocal_of_cloud_phase_transition_temperature_range long_name = denominator in cloud phase transition = 1/(tcr-tf) @@ -70,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -79,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -88,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -97,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -106,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -115,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -124,7 +112,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -133,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -142,7 +128,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -151,7 +136,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = time step for physics @@ -160,7 +144,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -169,7 +152,6 @@ type = real kind = kind_phys intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -178,7 +160,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -187,7 +168,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -196,7 +176,6 @@ type = real kind = kind_phys intent = in - optional = F [u] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -205,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [v] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -214,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [omega] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -223,7 +200,6 @@ type = real kind = kind_phys intent = in - optional = F [rhc] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -232,7 +208,6 @@ type = real kind = kind_phys intent = in - optional = F [supice] standard_name = tunable_parameter_for_ice_supersaturation long_name = ice supersaturation parameter for PDF clouds @@ -241,7 +216,6 @@ type = real kind = kind_phys intent = in - optional = F [pcrit] standard_name = pressure_threshold_for_increased_tke_dissipation long_name = pressure below which extra TKE diss. is applied in SHOC @@ -250,7 +224,6 @@ type = real kind = kind_phys intent = in - optional = F [cefac] standard_name = multiplicative_tunable_parameter_for_tke_dissipation long_name = mult. tuning parameter for TKE diss. in SHOC @@ -259,7 +232,6 @@ type = real kind = kind_phys intent = in - optional = F [cesfac] standard_name = multiplicative_tunable_parameter_for_tke_dissipation_at_surface_adjacent_layer long_name = mult. tuning parameter for TKE diss. at surface in SHOC @@ -268,7 +240,6 @@ type = real kind = kind_phys intent = in - optional = F [tkef1] standard_name = shoc_implicit_TKE_integration_uncentering_term long_name = uncentering term for TKE integration in SHOC @@ -277,7 +248,6 @@ type = real kind = kind_phys intent = in - optional = F [dis_opt] standard_name = shoc_flag_for_optional_surface_TKE_dissipation long_name = flag for alt. TKE diss. near surface in SHOC (>0 = ON) @@ -286,7 +256,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx] 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 @@ -295,7 +264,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -304,7 +272,6 @@ type = real kind = kind_phys intent = in - optional = F [prnum] standard_name = prandtl_number long_name = turbulent Prandtl number @@ -313,7 +280,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -322,7 +288,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -331,7 +296,6 @@ type = real kind = kind_phys intent = inout - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -339,7 +303,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -347,7 +310,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -355,7 +317,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -363,7 +324,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -371,7 +331,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -379,7 +338,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -387,7 +345,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -395,7 +352,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -403,7 +359,6 @@ dimensions = () type = integer intent = in - optional = F [cld_sgs] standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme @@ -412,7 +367,6 @@ type = real kind = kind_phys intent = inout - optional = F [tke] standard_name = turbulent_kinetic_energy_convective_transport_tracer long_name = turbulent kinetic energy in the convectively transported tracer array @@ -421,7 +375,6 @@ type = real kind = kind_phys intent = inout - optional = F [tkh] standard_name = atmosphere_heat_diffusivity_from_shoc long_name = diffusivity for heat from the SHOC scheme @@ -430,7 +383,6 @@ type = real kind = kind_phys intent = inout - optional = F [wthv_sec] standard_name = upward_virtual_potential_temperature_flux long_name = upward kinematic buoyancy flux from the SHOC scheme @@ -439,7 +391,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -448,7 +399,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -456,4 +406,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/get_prs_fv3.meta b/physics/get_prs_fv3.meta index aa690573a..90630a255 100644 --- a/physics/get_prs_fv3.meta +++ b/physics/get_prs_fv3.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = interface geopotential @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = interface pressure @@ -49,7 +45,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = mid-layer temperature @@ -58,7 +53,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -67,7 +61,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -76,7 +69,6 @@ type = real kind = kind_phys intent = out - optional = F [del_gz] standard_name = geopotential_difference_between_midlayers_divided_by_midlayer_virtual_temperature long_name = difference between mid-layer geopotentials divided by mid-layer virtual temperature @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -94,7 +85,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -102,7 +92,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -121,7 +110,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -129,7 +117,6 @@ dimensions = () type = integer intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -138,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = updated air temperature @@ -147,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [gq01] standard_name = specific_humidity_of_new_state long_name = mid-layer specific humidity of water vapor @@ -156,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [del_gz] standard_name = geopotential_difference_between_midlayers_divided_by_midlayer_virtual_temperature long_name = difference between mid-layer geopotentials divided by mid-layer virtual temperature @@ -165,7 +149,6 @@ type = real kind = kind_phys intent = inout - optional = F [phii] standard_name = geopotential_at_interface long_name = interface geopotential @@ -174,7 +157,6 @@ type = real kind = kind_phys intent = out - optional = F [phil] standard_name = geopotential long_name = mid-layer geopotential @@ -183,7 +165,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -192,7 +173,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -200,5 +180,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gfdl_cloud_microphys.meta b/physics/gfdl_cloud_microphys.meta index f18754703..6f6b1d47f 100644 --- a/physics/gfdl_cloud_microphys.meta +++ b/physics/gfdl_cloud_microphys.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for opening nameliust file @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [input_nml_file] standard_name = filename_of_internal_namelist long_name = character string to store full namelist contents @@ -39,7 +36,6 @@ type = character kind = len=* intent = in - optional = F [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [fn_nml] standard_name = filename_of_namelist long_name = namelist filename @@ -56,7 +51,6 @@ type = character kind = len=* intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag to indicate use of SHOC @@ -80,7 +72,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -89,7 +80,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -97,7 +87,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -111,7 +100,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -119,7 +107,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -132,7 +119,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -140,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [rainmin] standard_name = lwe_thickness_of_minimum_rain_amount long_name = minimum rain amount @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of grid cell @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -211,7 +189,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [gq0] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntcw] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = cloud condensed water mixing ratio updated by physics @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntrw] standard_name = rain_mixing_ratio_of_new_state long_name = moist mixing ratio of rain updated by physics @@ -238,7 +213,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntiw] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = moist mixing ratio of cloud ice updated by physics @@ -247,7 +221,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntsw] standard_name = snow_mixing_ratio_of_new_state long_name = moist mixing ratio of snow updated by physics @@ -256,7 +229,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntgl] standard_name = graupel_mixing_ratio_of_new_state long_name = moist ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physics @@ -265,7 +237,6 @@ type = real kind = kind_phys intent = inout - optional = F [gq0_ntclamt] standard_name = cloud_area_fraction_in_atmosphere_layer_of_new_state long_name = cloud fraction updated by physics @@ -274,7 +245,6 @@ type = real kind = kind_phys intent = inout - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = air temperature updated by physics @@ -283,7 +253,6 @@ type = real kind = kind_phys intent = inout - optional = F [gu0] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -292,7 +261,6 @@ type = real kind = kind_phys intent = inout - optional = F [gv0] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -301,7 +269,6 @@ type = real kind = kind_phys intent = inout - optional = F [vvl] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -310,7 +277,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -319,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -328,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between mid-layers @@ -337,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [rain0] standard_name = lwe_thickness_of_explicit_rain_amount long_name = explicit rain on physics timestep @@ -346,7 +309,6 @@ type = real kind = kind_phys intent = out - optional = F [ice0] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -355,7 +317,6 @@ type = real kind = kind_phys intent = out - optional = F [snow0] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -364,7 +325,6 @@ type = real kind = kind_phys intent = out - optional = F [graupel0] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -373,7 +333,6 @@ type = real kind = kind_phys intent = out - optional = F [prcp0] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel) on physics timestep @@ -382,7 +341,6 @@ type = real kind = kind_phys intent = out - optional = F [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = snow ratio: ratio of snow to total precipitation @@ -391,7 +349,6 @@ type = real kind = kind_phys intent = out - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -400,7 +357,6 @@ type = real kind = kind_phys intent = in - optional = F [hydrostatic] standard_name = flag_for_hydrostatic_solver long_name = flag indicating hydrostatic solver @@ -408,7 +364,6 @@ dimensions = () type = logical intent = in - optional = F [phys_hydrostatic] standard_name = flag_for_hydrostatic_heating_from_physics long_name = flag indicating hydrostatic heating from physics @@ -416,7 +371,6 @@ dimensions = () type = logical intent = in - optional = F [lradar] standard_name = flag_for_radar_reflectivity long_name = flag for radar reflectivity @@ -424,7 +378,6 @@ dimensions = () type = logical intent = in - optional = F [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -433,7 +386,6 @@ type = real kind = kind_phys intent = inout - optional = F [reset] standard_name = flag_reset_maximum_hourly_fields long_name = flag for resetting maximum hourly fields @@ -441,7 +393,6 @@ dimensions = () type = logical intent = in - optional = F [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics @@ -449,7 +400,6 @@ dimensions = () type = logical intent = in - optional = F [rew] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -458,7 +408,6 @@ type = real kind = kind_phys intent = inout - optional = F [rei] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = eff. radius of cloud ice water particle in micrometer @@ -467,7 +416,6 @@ type = real kind = kind_phys intent = inout - optional = F [rer] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -476,7 +424,6 @@ type = real kind = kind_phys intent = inout - optional = F [res] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -485,7 +432,6 @@ type = real kind = kind_phys intent = inout - optional = F [reg] standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = eff. radius of cloud graupel particle in micrometer @@ -494,7 +440,6 @@ type = real kind = kind_phys intent = inout - optional = F [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) @@ -502,7 +447,6 @@ dimensions = () type = logical intent = in - optional = F [pfi_lsan] standard_name = ice_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of ice from nonconvective precipitation @@ -511,7 +455,6 @@ type = real kind = kind_phys intent = inout - optional = F [pfl_lsan] standard_name = liquid_flux_due_to_large_scale_precipitation long_name = instantaneous 3D flux of liquid water from nonconvective precipitation @@ -520,7 +463,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -529,7 +471,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -537,4 +478,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gfdl_fv_sat_adj.meta b/physics/gfdl_fv_sat_adj.meta index d54baf1bb..fc22ecd9e 100644 --- a/physics/gfdl_fv_sat_adj.meta +++ b/physics/gfdl_fv_sat_adj.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [kmp] standard_name = top_layer_index_for_fast_physics long_name = top_layer_inder_for_gfdl_mp @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nwat] standard_name = number_of_water_species long_name = number of water species @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ngas] standard_name = number_of_gases_for_multi_gases_physics long_name = number of gases for multi gases physics @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [rilist] standard_name = gas_constants_for_multi_gases_physics long_name = gas constants for multi gases physics @@ -47,7 +43,6 @@ type = real kind = kind_dyn intent = in - optional = F [cpilist] standard_name = specific_heat_capacities_for_multi_gases_physics long_name = specific heat capacities for multi gases physics @@ -56,7 +51,6 @@ type = real kind = kind_dyn intent = in - optional = F [mpirank] standard_name = mpi_rank_for_fast_physics long_name = current MPI-rank for fast physics schemes @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root_for_fast_physics long_name = master MPI-rank for fast physics schemes @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -81,7 +73,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -89,7 +80,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -103,7 +93,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -111,7 +100,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -125,7 +113,6 @@ type = real kind = kind_dyn intent = in - optional = F [zvir] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one_default_kind long_name = zvir=rv/rd-1.0 @@ -134,7 +121,6 @@ type = real kind = kind_dyn intent = in - optional = F [is] standard_name = starting_x_direction_index long_name = starting X direction index @@ -142,7 +128,6 @@ dimensions = () type = integer intent = in - optional = F [ie] standard_name = ending_x_direction_index long_name = ending X direction index @@ -150,7 +135,6 @@ dimensions = () type = integer intent = in - optional = F [isd] standard_name = starting_x_direction_index_domain long_name = starting X direction index for domain @@ -158,7 +142,6 @@ dimensions = () type = integer intent = in - optional = F [ied] standard_name = ending_x_direction_index_domain long_name = ending X direction index for domain @@ -166,7 +149,6 @@ dimensions = () type = integer intent = in - optional = F [kmp] standard_name = top_layer_index_for_fast_physics long_name = top layer index for GFDL mp @@ -174,7 +156,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_dimension_for_fast_physics long_name = number of vertical levels @@ -182,7 +163,6 @@ dimensions = () type = integer intent = in - optional = F [kmdelz] standard_name = vertical_dimension_for_thickness_at_Lagrangian_surface long_name = vertical dimension for thickness at Lagrangian surface @@ -190,7 +170,6 @@ dimensions = () type = integer intent = in - optional = F [js] standard_name = starting_y_direction_index long_name = starting Y direction index @@ -198,7 +177,6 @@ dimensions = () type = integer intent = in - optional = F [je] standard_name = ending_y_direction_index long_name = ending Y direction index @@ -206,7 +184,6 @@ dimensions = () type = integer intent = in - optional = F [jsd] standard_name = starting_y_direction_index_domain long_name = starting X direction index for domain @@ -214,7 +191,6 @@ dimensions = () type = integer intent = in - optional = F [jed] standard_name = ending_y_direction_index_domain long_name = ending X direction index for domain @@ -222,7 +198,6 @@ dimensions = () type = integer intent = in - optional = F [ng] standard_name = number_of_ghost_zones long_name = number of ghost zones defined in fv_mp @@ -230,7 +205,6 @@ dimensions = () type = integer intent = in - optional = F [hydrostatic] standard_name = flag_for_hydrostatic_solver_for_fast_physics long_name = flag for use the hydrostatic or nonhydrostatic solver @@ -238,7 +212,6 @@ dimensions = () type = logical intent = in - optional = F [fast_mp_consv] standard_name = flag_for_fast_microphysics_energy_conservation long_name = flag for fast microphysics energy conservation @@ -246,7 +219,6 @@ dimensions = () type = logical intent = in - optional = F [te0_2d] standard_name = atmosphere_energy_content_in_column long_name = atmosphere total energy in columns @@ -255,7 +227,6 @@ type = real kind = kind_dyn intent = inout - optional = F [te0] standard_name = atmosphere_energy_content_at_Lagrangian_surface long_name = atmosphere total energy at Lagrangian surface @@ -264,7 +235,6 @@ type = real kind = kind_dyn intent = out - optional = F [ngas] standard_name = number_of_gases_for_multi_gases_physics long_name = number of gases for multi gases physics @@ -272,7 +242,6 @@ dimensions = () type = integer intent = in - optional = F [qvi] standard_name = gas_tracers_for_multi_gas_physics_at_Lagrangian_surface long_name = gas tracers for multi gas physics at Lagrangian surface @@ -281,7 +250,6 @@ type = real kind = kind_dyn intent = inout - optional = F [qv] standard_name = water_vapor_specific_humidity_at_Lagrangian_surface long_name = water vapor specific humidity updated by fast physics at Lagrangian surface @@ -290,7 +258,6 @@ type = real kind = kind_dyn intent = inout - optional = F [ql] standard_name = cloud_liquid_water_specific_humidity_at_Lagrangian_surface long_name = cloud liquid water specific humidity updated by fast physics at Lagrangian surface @@ -299,7 +266,6 @@ type = real kind = kind_dyn intent = inout - optional = F [qi] standard_name = cloud_ice_specific_humidity_at_Lagrangian_surface long_name = cloud ice specific humidity updated by fast physics at Lagrangian surface @@ -308,7 +274,6 @@ type = real kind = kind_dyn intent = inout - optional = F [qr] standard_name = cloud_rain_specific_humidity_at_Lagrangian_surface long_name = cloud rain specific humidity updated by fast physics at Lagrangian surface @@ -317,7 +282,6 @@ type = real kind = kind_dyn intent = inout - optional = F [qs] standard_name = cloud_snow_specific_humidity_at_Lagrangian_surface long_name = cloud snow specific humidity updated by fast physics at Lagrangian surface @@ -326,7 +290,6 @@ type = real kind = kind_dyn intent = inout - optional = F [qg] standard_name = cloud_graupel_specific_humidity_at_Lagrangian_surface long_name = cloud graupel specific humidity updated by fast physics at Lagrangian surface @@ -335,7 +298,6 @@ type = real kind = kind_dyn intent = inout - optional = F [hs] standard_name = surface_geopotential_at_Lagrangian_surface long_name = surface geopotential at Lagrangian surface @@ -344,7 +306,6 @@ type = real kind = kind_dyn intent = in - optional = F [peln] standard_name = log_pressure_at_Lagrangian_surface long_name = logarithm of pressure at Lagrangian surface @@ -353,7 +314,6 @@ type = real kind = kind_dyn intent = in - optional = F [delz] standard_name = thickness_at_Lagrangian_surface long_name = thickness at Lagrangian_surface @@ -362,7 +322,6 @@ type = real kind = kind_dyn intent = in - optional = F [delp] standard_name = pressure_thickness_at_Lagrangian_surface long_name = pressure thickness at Lagrangian surface @@ -371,7 +330,6 @@ type = real kind = kind_dyn intent = in - optional = F [pt] standard_name = virtual_temperature_at_Lagrangian_surface long_name = virtual temperature at Lagrangian surface @@ -380,7 +338,6 @@ type = real kind = kind_dyn intent = inout - optional = F [pkz] standard_name = finite_volume_mean_edge_pressure_raised_to_the_power_of_kappa long_name = finite-volume mean edge pressure raised to the power of kappa @@ -389,7 +346,6 @@ type = real kind = kind_dyn intent = inout - optional = F [q_con] standard_name = cloud_condensed_water_specific_humidity_at_Lagrangian_surface long_name = cloud condensed water specific humidity updated by fast physics at Lagrangian surface @@ -398,7 +354,6 @@ type = real kind = kind_dyn intent = inout - optional = F [akap] standard_name = kappa_dry_for_fast_physics long_name = modified kappa for dry air, fast physics @@ -407,7 +362,6 @@ type = real kind = kind_dyn intent = in - optional = F [cappa] standard_name = cappa_moist_gas_constant_at_Lagrangian_surface long_name = cappa(i,j,k) = rdgas / ( rdgas + cvm(i)/(1.+r_vir*q(i,j,k,sphum)) ) @@ -416,7 +370,6 @@ type = real kind = kind_dyn intent = inout - optional = F [area] standard_name = cell_area_for_fast_physics long_name = area of the grid cell for fast physics @@ -425,7 +378,6 @@ type = real kind = kind_grid intent = in - optional = F [dtdt] standard_name = tendency_of_air_temperature_at_Lagrangian_surface long_name = air temperature tendency due to fast physics at Lagrangian surface @@ -434,7 +386,6 @@ type = real kind = kind_dyn intent = inout - optional = F [out_dt] standard_name = flag_for_tendency_of_air_temperature_at_Lagrangian_surface long_name = flag for calculating tendency of air temperature due to fast physics @@ -442,7 +393,6 @@ dimensions = () type = logical intent = in - optional = F [last_step] standard_name = flag_for_the_last_step_of_k_split_remapping long_name = flag for the last step of k-split remapping @@ -450,7 +400,6 @@ dimensions = () type = logical intent = in - optional = F [do_qa] standard_name = flag_for_inline_cloud_fraction_calculation long_name = flag for the inline cloud fraction calculation @@ -458,7 +407,6 @@ dimensions = () type = logical intent = in - optional = F [qa] standard_name = cloud_fraction_at_Lagrangian_surface long_name = cloud fraction at Lagrangian surface @@ -467,7 +415,6 @@ type = real kind = kind_dyn intent = out - optional = F [nthreads] standard_name = omp_threads_for_fast_physics long_name = number of OpenMP threads available for fast physics schemes @@ -475,7 +422,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -484,7 +430,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -492,4 +437,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gfdl_sfc_layer.F90 b/physics/gfdl_sfc_layer.F90 index a9dc3fe98..379c9c856 100644 --- a/physics/gfdl_sfc_layer.F90 +++ b/physics/gfdl_sfc_layer.F90 @@ -100,7 +100,7 @@ end subroutine gfdl_sfc_layer_finalize !! \htmlinclude gfdl_sfc_layer_run.html !! subroutine gfdl_sfc_layer_run (im, nsoil, km, xlat, xlon, flag_iter, lsm, & - lsm_noah, lsm_noahmp, lsm_ruc, lsm_noah_wrfv4, icoef_sf, cplwav, karman,& + lsm_noah, lsm_noahmp, lsm_ruc, icoef_sf, cplwav, karman, & cplwav2atm, lcurr_sf, pert_Cd, ntsflg, sfenth, z1, shdmax, ivegsrc, & vegtype, sigmaf, dt, wet, dry, icy, isltyp, rd, grav, ep1, ep2, smois, & psfc, prsl1, q1, t1, u1, v1, wspd, u10, v10, gsw, glw, tsurf_wat, & @@ -118,15 +118,13 @@ subroutine gfdl_sfc_layer_run (im, nsoil, km, xlat, xlon, flag_iter, lsm, & use namelist_soilveg, only: maxsmc_noah => maxsmc, drysmc_noah => drysmc use namelist_soilveg_ruc, only: maxsmc_ruc => maxsmc, drysmc_ruc => drysmc use noahmp_tables, only: maxsmc_noahmp => smcmax_table, drysmc_noahmp => smcdry_table - use module_sf_noahlsm, only: maxsmc_noah_wrfv4 => maxsmc, drysmc_noah_wrfv4 => drysmc !################################################################################################ implicit none integer, intent(in) :: im, nsoil, km, ivegsrc integer, intent(in) :: lsm, lsm_noah, lsm_noahmp, & - lsm_ruc, lsm_noah_wrfv4, icoef_sf,& - ntsflg + lsm_ruc, icoef_sf, ntsflg logical, intent(in) :: cplwav, cplwav2atm !GJF: this scheme has not been tested with these on logical, intent(in) :: lcurr_sf !GJF: this scheme has not been tested with this option turned on; the variables scurx and scury need to be input in order to use this logical, intent(in) :: pert_Cd !GJF: this scheme has not been tested with this option turned on; the variables ens_random_seed and ens_Cdamp need to be input in order to use this @@ -195,9 +193,6 @@ subroutine gfdl_sfc_layer_run (im, nsoil, km, xlat, xlon, flag_iter, lsm, & else if (lsm == lsm_ruc) then maxsmc = maxsmc_ruc drysmc = drysmc_ruc - else if (lsm == lsm_noah_wrfv4) then - maxsmc = maxsmc_noah_wrfv4 - drysmc = drysmc_noah_wrfv4 else !GJF: These data were from the original GFDL surface layer scheme, but ! rather than being hard-coded here, they should be shared with the diff --git a/physics/gfdl_sfc_layer.meta b/physics/gfdl_sfc_layer.meta index 653860705..228ab4bca 100644 --- a/physics/gfdl_sfc_layer.meta +++ b/physics/gfdl_sfc_layer.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [cplwav] standard_name = flag_for_ocean_wave_coupling long_name = flag controlling cplwav collection (default off) @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [cplwav2atm] standard_name = flag_for_one_way_ocean_wave_coupling_to_atmosphere long_name = flag controlling ocean wave coupling to the atmosphere (default off) @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [lcurr_sf] standard_name = flag_for_surface_layer_scheme_ocean_currents long_name = flag for taking ocean currents into account in surface layer scheme @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [pert_cd] standard_name = flag_for_surface_layer_scheme_surface_drag_coefficient_for_momentum_in_air_perturbations long_name = flag for perturbing the surface drag coefficient for momentum in surface layer scheme @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [ntsflg] standard_name = control_for_surface_layer_scheme_skin_temperature_update long_name = flag for updating skin temperature in the surface layer scheme @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -63,7 +57,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -71,7 +64,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -84,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [nsoil] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -92,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -100,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [karman] standard_name = von_karman_constant long_name = von karman constant @@ -108,7 +97,6 @@ dimensions = () type = real intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -126,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -134,7 +120,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -142,7 +127,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noah] standard_name = identifier_for_noah_land_surface_scheme long_name = flag for NOAH land surface model @@ -150,7 +134,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -158,7 +141,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -166,15 +148,6 @@ dimensions = () type = integer intent = in - optional = F -[lsm_noah_wrfv4] - standard_name = identifier_for_noah_wrfv4_land_surface_scheme - long_name = flag for NOAH WRFv4 land surface model - units = flag - dimensions = () - type = integer - intent = in - optional = F [icoef_sf] standard_name = flag_for_surface_roughness_option_over_water long_name = surface roughness options over water @@ -182,7 +155,6 @@ dimensions = () type = integer intent = in - optional = F [cplwav] standard_name = flag_for_ocean_wave_coupling long_name = flag controlling cplwav collection (default off) @@ -190,7 +162,6 @@ dimensions = () type = logical intent = in - optional = F [cplwav2atm] standard_name = flag_for_one_way_ocean_wave_coupling_to_atmosphere long_name = flag controlling ocean wave coupling to the atmosphere (default off) @@ -198,7 +169,6 @@ dimensions = () type = logical intent = in - optional = F [lcurr_sf] standard_name = flag_for_surface_layer_scheme_ocean_currents long_name = flag for taking ocean currents into account in surface layer scheme @@ -206,7 +176,6 @@ dimensions = () type = logical intent = in - optional = F [pert_Cd] standard_name = flag_for_surface_layer_scheme_surface_drag_coefficient_for_momentum_in_air_perturbations long_name = flag for perturbing the surface drag coefficient for momentum in surface layer scheme @@ -214,7 +183,6 @@ dimensions = () type = logical intent = in - optional = F [ntsflg] standard_name = control_for_surface_layer_scheme_skin_temperature_update long_name = flag for updating skin temperature in the surface layer scheme @@ -222,7 +190,6 @@ dimensions = () type = integer intent = in - optional = F [sfenth] standard_name = surface_layer_scheme_enthalpy_flux_factor long_name = enthalpy flux factor used in surface layer scheme @@ -231,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [z1] standard_name = height_above_ground_at_lowest_model_layer long_name = height above ground at 1st model layer @@ -240,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractnl cover of green veg @@ -249,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -257,7 +221,6 @@ dimensions = () type = integer intent = in - optional = F [vegtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -265,7 +228,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -274,7 +236,6 @@ type = real kind = kind_phys intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics timestep @@ -283,7 +244,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -291,7 +251,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -299,7 +258,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -307,7 +265,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [isltyp] standard_name = soil_type_classification long_name = soil type at each grid cell @@ -315,7 +272,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -324,7 +280,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -333,7 +288,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -342,7 +296,6 @@ type = real kind = kind_phys intent = in - optional = F [ep2] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -351,7 +304,6 @@ type = real kind = kind_phys intent = in - optional = F [smois] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -360,7 +312,6 @@ type = real kind = kind_phys intent = in - optional = F [psfc] standard_name = surface_air_pressure long_name = surface pressure @@ -369,7 +320,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -378,7 +328,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer @@ -387,7 +336,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -396,7 +344,6 @@ type = real kind = kind_phys intent = in - optional = F [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer @@ -405,7 +352,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer @@ -414,7 +360,6 @@ type = real kind = kind_phys intent = in - optional = F [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -423,7 +368,6 @@ type = real kind = kind_phys intent = in - optional = F [u10] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -432,7 +376,6 @@ type = real kind = kind_phys intent = in - optional = F [v10] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -441,7 +384,6 @@ type = real kind = kind_phys intent = in - optional = F [gsw] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -450,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [glw] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -459,7 +400,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -468,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -477,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -486,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -495,7 +432,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -504,7 +440,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -513,7 +448,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -522,7 +456,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -531,7 +464,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -540,7 +472,6 @@ type = real kind = kind_phys intent = inout - optional = F [znt_wat] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water (temporary use as interstitial) @@ -549,7 +480,6 @@ type = real kind = kind_phys intent = inout - optional = F [znt_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -558,7 +488,6 @@ type = real kind = kind_phys intent = inout - optional = F [znt_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -567,7 +496,6 @@ type = real kind = kind_phys intent = inout - optional = F [cdm_wat] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -576,7 +504,6 @@ type = real kind = kind_phys intent = inout - optional = F [cdm_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -585,7 +512,6 @@ type = real kind = kind_phys intent = inout - optional = F [cdm_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -594,7 +520,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -603,7 +528,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_lnd] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land @@ -612,7 +536,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -621,7 +544,6 @@ type = real kind = kind_phys intent = inout - optional = F [rib_wat] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water @@ -630,7 +552,6 @@ type = real kind = kind_phys intent = inout - optional = F [rib_lnd] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land @@ -639,7 +560,6 @@ type = real kind = kind_phys intent = inout - optional = F [rib_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice @@ -648,7 +568,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -657,7 +576,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity function for momentum over land @@ -666,7 +584,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity function for momentum over ice @@ -675,7 +592,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water @@ -684,7 +600,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land @@ -693,7 +608,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice @@ -702,7 +616,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov similarity parameter for heat at 2m over water @@ -711,7 +624,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov similarity parameter for heat at 2m over land @@ -720,7 +632,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov similarity parameter for heat at 2m over ice @@ -729,7 +640,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_wat] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -738,7 +648,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -747,7 +656,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -756,7 +664,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -765,7 +672,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov similarity parameter for momentum at 10m over land @@ -774,7 +680,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice @@ -783,7 +688,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_wat] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -792,7 +696,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -801,7 +704,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -810,7 +712,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -819,7 +720,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -827,4 +727,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gfs_phy_tracer_config.F b/physics/gfs_phy_tracer_config.F index 0e1185a50..647919a23 100644 --- a/physics/gfs_phy_tracer_config.F +++ b/physics/gfs_phy_tracer_config.F @@ -1,4 +1,3 @@ -#undef MULTI_GASES ! !! ! Module: gfs_phy_tracer_config @@ -123,7 +122,6 @@ subroutine tracer_config_init (ntrac,ntoz,ntcw,ncld, !--- fill in met tracers gfs_phy_tracer%vname(1) = 'spfh' - if(ntoz > 0) gfs_phy_tracer%vname(ntoz) = 'o3mr' if(ntcw > 0) gfs_phy_tracer%vname(ntcw) = 'clwmr' if(ntiw > 0) gfs_phy_tracer%vname(ntiw) = 'climr' if(ntlnc > 0) gfs_phy_tracer%vname(ntlnc) = 'lnc' @@ -134,10 +132,12 @@ subroutine tracer_config_init (ntrac,ntoz,ntcw,ncld, if(ntsnc > 0) gfs_phy_tracer%vname(ntsnc) = 'snc' if(ntke > 0) gfs_phy_tracer%vname(ntke) = 'tke' #ifdef MULTI_GASES - print *,' ++++ nto nto2 ',nto,nto2 - if(nto > 0) gfs_phy_tracer%vname(nto) = 'spfo' - if(nto2 > 0) gfs_phy_tracer%vname(nto2) = 'spfo2' + print *,' ++++ ntoz nto nto2 ',ntoz,nto,nto2 + if(ntoz > 0) gfs_phy_tracer%vname(ntoz) = 'spo3' + if(nto > 0) gfs_phy_tracer%vname(nto) = 'spo' + if(nto2 > 0) gfs_phy_tracer%vname(nto2) = 'spo2' #else + if(ntoz > 0) gfs_phy_tracer%vname(ntoz) = 'o3mr' if(nto > 0) gfs_phy_tracer%vname(nto) = 'o' if(nto2 > 0) gfs_phy_tracer%vname(nto2) = 'o2' #endif diff --git a/physics/gscond.meta b/physics/gscond.meta index 202097825..e46b73618 100644 --- a/physics/gscond.meta +++ b/physics/gscond.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -39,7 +36,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -47,7 +43,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -65,7 +60,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -73,7 +67,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -82,7 +75,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -91,7 +83,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = layer mean air pressure @@ -100,7 +91,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -109,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity @@ -118,7 +107,6 @@ type = real kind = kind_phys intent = inout - optional = F [clw1] 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 @@ -127,7 +115,6 @@ type = real kind = kind_phys intent = in - optional = F [clw2] 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 @@ -136,7 +123,6 @@ type = real kind = kind_phys intent = in - optional = F [cwm] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = moist cloud condensed water mixing ratio @@ -145,7 +131,6 @@ type = real kind = kind_phys intent = out - optional = F [t] standard_name = air_temperature_of_new_state long_name = layer mean air temperature @@ -154,7 +139,6 @@ type = real kind = kind_phys intent = inout - optional = F [tp] standard_name = air_temperature_two_timesteps_back long_name = air temperature two timesteps back @@ -163,7 +147,6 @@ type = real kind = kind_phys intent = inout - optional = F [qp] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -172,7 +155,6 @@ type = real kind = kind_phys intent = inout - optional = F [psp] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -181,7 +163,6 @@ type = real kind = kind_phys intent = inout - optional = F [psat] standard_name = saturation_pressure_at_triple_point_of_water long_name = saturation pressure at triple point of water @@ -190,7 +171,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -199,7 +179,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -208,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -217,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [ttp] standard_name = triple_point_temperature_of_water long_name = triple point temperature of water @@ -226,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -235,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -244,7 +219,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -253,7 +227,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -262,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -271,7 +243,6 @@ type = real kind = kind_phys intent = in - optional = F [tp1] standard_name = air_temperature_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = air temperature at previous timestep @@ -280,7 +251,6 @@ type = real kind = kind_phys intent = inout - optional = F [qp1] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -289,7 +259,6 @@ type = real kind = kind_phys intent = inout - optional = F [psp1] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air surface pressure at previous timestep @@ -298,7 +267,6 @@ type = real kind = kind_phys intent = inout - optional = F [u] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -307,7 +275,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output @@ -315,7 +282,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -323,7 +289,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -332,7 +297,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -340,4 +304,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gwdc.meta b/physics/gwdc.meta index 75bbc946e..3d4d7b385 100644 --- a/physics/gwdc.meta +++ b/physics/gwdc.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [cgwf] standard_name = tunable_parameters_for_convective_gravity_wave_drag long_name = multiplication factors for convective gravity wave drag @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = grid size in zonal direction @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [work1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [work2] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement long_name = complement to work1 @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [dlength] standard_name = characteristic_grid_length_scale long_name = representative horizontal length scale of grid box @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = out - optional = F [cldf] standard_name = cloud_area_fraction long_name = fraction of grid box area in which updrafts occur @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = out - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base @@ -84,7 +76,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = vertical index at cloud top @@ -92,7 +83,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics time step @@ -101,7 +91,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = updated air temperature @@ -110,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0_init] standard_name = air_temperature_save long_name = air temperature before entering convection scheme @@ -119,7 +107,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -128,7 +115,6 @@ type = real kind = kind_phys intent = in - optional = F [cumabs] standard_name = maximum_column_heating_rate long_name = maximum heating rate in column @@ -137,7 +123,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -146,7 +131,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -154,7 +138,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -173,7 +156,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -182,7 +164,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -190,7 +171,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -203,7 +183,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -211,7 +190,6 @@ dimensions = () type = integer intent = in - optional = F [lat] standard_name = latitude_index_in_debug_printouts long_name = latitude index in debug printouts @@ -219,7 +197,6 @@ dimensions = () type = integer intent = in - optional = F [u1] standard_name = x_wind long_name = zonal wind @@ -228,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = meridional wind @@ -237,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = mid-layer temperature @@ -246,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -255,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [deltim] standard_name = timestep_for_physics long_name = physics time step @@ -264,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [pmid1] standard_name = air_pressure long_name = mid-layer pressure @@ -273,7 +245,6 @@ type = real kind = kind_phys intent = in - optional = F [pint1] standard_name = air_pressure_at_interface long_name = interface pressure @@ -282,7 +253,6 @@ type = real kind = kind_phys intent = in - optional = F [dpmid1] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -291,7 +261,6 @@ type = real kind = kind_phys intent = in - optional = F [qmax] standard_name = maximum_column_heating_rate long_name = maximum heating rate in column @@ -300,7 +269,6 @@ type = real kind = kind_phys intent = in - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = vertical index at cloud top @@ -308,7 +276,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base @@ -316,7 +283,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [kcnv] standard_name = flag_deep_convection long_name = flag indicating whether convection occurs in column (0 or 1) @@ -324,7 +290,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [cldf] standard_name = cloud_area_fraction long_name = fraction of grid box area in which updrafts occur @@ -333,7 +298,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -342,7 +306,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -351,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -360,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -369,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -378,7 +338,6 @@ type = real kind = kind_phys intent = in - optional = F [dlength] standard_name = characteristic_grid_length_scale long_name = representative horizontal length scale of grid box @@ -387,7 +346,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for debugging printouts @@ -395,7 +353,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of column used in debugging printouts @@ -403,7 +360,6 @@ dimensions = () type = integer intent = in - optional = F [fhour] standard_name = forecast_time long_name = forecast hour @@ -412,7 +368,6 @@ type = real kind = kind_phys intent = in - optional = F [utgwc] standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag long_name = zonal wind tendency due to convective gravity wave drag @@ -421,7 +376,6 @@ type = real kind = kind_phys intent = out - optional = F [vtgwc] standard_name = tendency_of_y_wind_due_to_convective_gravity_wave_drag long_name = meridional wind tendency due to convective gravity wave drag @@ -430,7 +384,6 @@ type = real kind = kind_phys intent = out - optional = F [tauctx] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal stress at cloud top due to convective gravity wave drag @@ -439,7 +392,6 @@ type = real kind = kind_phys intent = out - optional = F [taucty] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional stress at cloud top due to convective gravity wave drag @@ -448,7 +400,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -457,7 +408,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -465,7 +415,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -484,7 +433,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -492,7 +440,6 @@ dimensions = () type = integer intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = flag for calculating diagnostic fields @@ -500,7 +447,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for calculating 3-D diagnostic fields @@ -508,7 +454,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -517,7 +462,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics time step @@ -526,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -535,7 +478,6 @@ type = real kind = kind_phys intent = in - optional = F [tauctx] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal stress at cloud top due to convective gravity wave drag @@ -544,7 +486,6 @@ type = real kind = kind_phys intent = in - optional = F [taucty] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional stress at cloud top due to convective gravity wave drag @@ -553,7 +494,6 @@ type = real kind = kind_phys intent = in - optional = F [gwdcu] standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag long_name = zonal wind tendency due to convective gravity wave drag @@ -562,7 +502,6 @@ type = real kind = kind_phys intent = in - optional = F [gwdcv] standard_name = tendency_of_y_wind_due_to_convective_gravity_wave_drag long_name = meridional wind tendency due to convective gravity wave drag @@ -571,7 +510,6 @@ type = real kind = kind_phys intent = in - optional = F [dugwd] standard_name = time_integral_of_x_stress_due_to_gravity_wave_drag long_name = integral over time of zonal stress due to gravity wave drag @@ -580,7 +518,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvgwd] standard_name = time_integral_of_y_stress_due_to_gravity_wave_drag long_name = integral over time of meridional stress due to gravity wave drag @@ -589,7 +526,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -599,7 +535,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -607,7 +542,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -615,7 +549,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -623,7 +556,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_nonorographic_gwd] standard_name = index_of_nonorographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of nonorographic gravity wave drag process in second dimension of array cumulative change index @@ -631,7 +563,6 @@ dimensions = () type = integer intent = in - optional = F [gu0] standard_name = x_wind_of_new_state long_name = updated zonal wind @@ -640,7 +571,6 @@ type = real kind = kind_phys intent = inout - optional = F [gv0] standard_name = y_wind_of_new_state long_name = updated meridional wind @@ -649,7 +579,6 @@ type = real kind = kind_phys intent = inout - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = updated air temperature @@ -658,7 +587,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -667,7 +595,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -675,4 +602,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/gwdps.meta b/physics/gwdps.meta index 4aecc48b8..e483354df 100644 --- a/physics/gwdps.meta +++ b/physics/gwdps.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [A] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = inout - optional = F [B] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = inout - optional = F [C] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -49,7 +45,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = zonal wind @@ -58,7 +53,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = meridional wind @@ -67,7 +61,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = mid-layer temperature @@ -76,7 +69,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -93,7 +84,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = interface pressure @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = mid-layer Exner function @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = interface geopotential @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = mid-layer geopotential @@ -147,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [deltim] standard_name = timestep_for_physics long_name = physics time step @@ -156,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -164,7 +147,6 @@ dimensions = () type = integer intent = in - optional = F [hprime] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -173,7 +155,6 @@ type = real kind = kind_phys intent = in - optional = F [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -182,7 +163,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -191,7 +171,6 @@ type = real kind = kind_phys intent = in - optional = F [clx4] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -200,7 +179,6 @@ type = real kind = kind_phys intent = in - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with respect to east of maximum subgrid orographic variations @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -218,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = out - optional = F [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -263,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -272,7 +243,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -281,7 +251,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -290,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [imx] standard_name = number_of_equatorial_longitude_points long_name = number of longitude points along the equator @@ -298,7 +266,6 @@ dimensions = () type = integer intent = in - optional = F [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of statistical measures of subgrid height_above_mean_sea_level @@ -306,7 +273,6 @@ dimensions = () type = integer intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplic. factors for (1) mountain blocking drag coeff. and (2) ref. level orographic gravity wave drag @@ -315,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = rank of the current MPI task @@ -323,7 +288,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for debugging printouts @@ -331,7 +295,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of column used in debugging printouts @@ -339,7 +302,6 @@ dimensions = () type = integer intent = in - optional = F [rdxzb] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -348,7 +310,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -357,7 +318,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -365,5 +325,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/h2ophys.meta b/physics/h2ophys.meta index 95822fbfb..702da0193 100644 --- a/physics/h2ophys.meta +++ b/physics/h2ophys.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [kh2o] standard_name = vertical_dimension_of_h2o_forcing_data long_name = number of vertical layers in h2o forcing data @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [h2o] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = inout - optional = F [ph2o] standard_name = natural_log_of_h2o_forcing_data_pressure_levels long_name = natural log of h2o forcing data pressure levels @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [h2opltc] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [h2o_coeff] standard_name = number_of_coefficients_in_h2o_forcing_data long_name = number of coefficients in h2o forcing data @@ -113,7 +102,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = rank of the current MPI task @@ -121,7 +109,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -130,7 +117,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -138,5 +124,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/m_micro.meta b/physics/m_micro.meta index 8a51a6ec6..43654a26c 100644 --- a/physics/m_micro.meta +++ b/physics/m_micro.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [fprcp] standard_name = number_of_frozen_precipitation_species long_name = number of frozen precipitation species @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [gravit] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [rair] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [rh2o] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [cpair] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [eps_in] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1_in] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [tmelt] standard_name = triple_point_temperature_of_water long_name = triple point temperature of water @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [latvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = in - optional = F [latice] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = in - optional = F [pi_in] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = in - optional = F [tice_in] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [VIREPS_in] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_dcs] standard_name = autoconverion_to_snow_size_threshold long_name = autoconversion size threshold for cloud ice to snow for MG microphysics @@ -147,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_qcvar] standard_name = relative_variance_of_subgrid_cloud_condensate_distribution long_name = cloud water relative variance for MG microphysics @@ -156,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_ts_auto_ice] standard_name = timescale_for_autoconversion_to_snow long_name = autoconversion time scale for ice for MG microphysics @@ -165,7 +148,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_rhmini] standard_name = relative_humidity_threshold_for_ice_nucleation long_name = relative humidity threshold parameter for nucleating ice for MG microphysics @@ -174,7 +156,6 @@ type = real kind = kind_phys intent = in - optional = F [microp_uniform] standard_name = flag_for_uniform_subcolumns long_name = flag for uniform subcolumns for MG microphysics @@ -182,7 +163,6 @@ dimensions = () type = logical intent = in - optional = F [do_cldice] standard_name = flag_for_cloud_ice_processes long_name = flag for cloud ice processes for MG microphysics @@ -190,7 +170,6 @@ dimensions = () type = logical intent = in - optional = F [hetfrz_classnuc] standard_name = flag_for_heterogeneous_nucleation long_name = flag for heterogeneous freezing for MG microphysics @@ -198,7 +177,6 @@ dimensions = () type = logical intent = in - optional = F [mg_precip_frac_method] standard_name = control_for_precipitation_area_fraction_method long_name = type of precip fraction method for MG microphysics (in_cloud or max_overlap) @@ -207,7 +185,6 @@ type = character kind = len=16 intent = in - optional = F [mg_berg_eff_factor] standard_name = bergeron_findeisen_process_efficiency_factor long_name = bergeron efficiency factor for MG microphysics @@ -216,7 +193,6 @@ type = real kind = kind_phys intent = in - optional = F [sed_supersat] standard_name = flag_for_allowance_of_supersaturation_after_sedimentation long_name = allow supersaturation after sedimentation for MG microphysics @@ -224,7 +200,6 @@ dimensions = () type = logical intent = in - optional = F [do_sb_physics] standard_name = flag_for_seifert_and_beheng_2001_autoconversion long_name = flag for SB 2001 autoconversion or accretion for MG microphysics @@ -232,7 +207,6 @@ dimensions = () type = logical intent = in - optional = F [mg_do_hail] standard_name = flag_for_hail_instead_of_graupel long_name = flag for hail for MG microphysics (graupel possible if false) @@ -240,7 +214,6 @@ dimensions = () type = logical intent = in - optional = F [mg_do_graupel] standard_name = flag_for_graupel_instead_of_hail long_name = flag for graupel for MG microphysics (hail possible if false) @@ -248,7 +221,6 @@ dimensions = () type = logical intent = in - optional = F [mg_nccons] standard_name = flag_for_prescribed_cloud_droplet_number_concentration long_name = flag for constant droplet concentration for MG microphysics @@ -256,7 +228,6 @@ dimensions = () type = logical intent = in - optional = F [mg_nicons] standard_name = flag_for_prescribed_cloud_ice_number_concentration long_name = flag for constant ice concentration for MG microphysics @@ -264,7 +235,6 @@ dimensions = () type = logical intent = in - optional = F [mg_ngcons] standard_name = flag_for_prescribed_graupel_number_concentration long_name = flag for constant graupel concentration for MG microphysics @@ -272,7 +242,6 @@ dimensions = () type = logical intent = in - optional = F [mg_ncnst] standard_name = prescribed_cloud_droplet_number_concentration long_name = droplet concentration constant for MG microphysics @@ -281,7 +250,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_ninst] standard_name = prescribed_cloud_ice_number_concentration long_name = ice concentration constant for MG microphysics @@ -290,7 +258,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_ngnst] standard_name = prescribed_graupel_number_concentration long_name = graupel concentration constant for MG microphysics @@ -299,7 +266,6 @@ type = real kind = kind_phys intent = in - optional = F [mg_do_ice_gmao] standard_name = flag_for_gmao_autoconversion_to_snow long_name = flag for gmao ice formulation @@ -307,7 +273,6 @@ dimensions = () type = logical intent = in - optional = F [mg_do_liq_liu] standard_name = flag_for_liu_autoconversion_to_rain long_name = flag for liu liquid treatment @@ -315,7 +280,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -324,7 +288,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -332,7 +295,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -345,7 +307,6 @@ dimensions = () type = integer intent = in - optional = F [lm] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -353,7 +314,6 @@ dimensions = () type = integer intent = in - optional = F [rainmin] standard_name = lwe_thickness_of_minimum_rain_amount long_name = minimum rain amount @@ -362,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [flipv] standard_name = flag_flip long_name = vertical flip logical @@ -370,7 +329,6 @@ dimensions = () type = logical intent = in - optional = F [dt_i] standard_name = timestep_for_physics long_name = physics time step @@ -379,7 +337,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl_i] standard_name = air_pressure long_name = layer mean pressure @@ -388,7 +345,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi_i] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -397,7 +353,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -406,7 +361,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -415,7 +369,6 @@ type = real kind = kind_phys intent = in - optional = F [omega_i] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -424,7 +377,6 @@ type = real kind = kind_phys intent = in - optional = F [qlls_i] 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 @@ -433,7 +385,6 @@ type = real kind = kind_phys intent = in - optional = F [qlcn_i] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -442,7 +393,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -451,7 +401,6 @@ type = real kind = kind_phys intent = in - optional = F [qicn_i] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -460,7 +409,6 @@ type = real kind = kind_phys intent = in - optional = F [lwheat_i] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -469,7 +417,6 @@ type = real kind = kind_phys intent = in - optional = F [swheat_i] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -478,7 +425,6 @@ type = real kind = kind_phys intent = in - optional = F [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -487,7 +433,6 @@ type = real kind = kind_phys intent = in - optional = F [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -496,7 +441,6 @@ type = real kind = kind_phys intent = in - optional = F [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -505,7 +449,6 @@ type = real kind = kind_phys intent = in - optional = F [zpbl] standard_name = atmosphere_boundary_layer_thickness long_name = pbl height @@ -514,7 +457,6 @@ type = real kind = kind_phys intent = in - optional = F [cnv_mfd_i] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -523,7 +465,6 @@ type = real kind = kind_phys intent = in - optional = F [cnv_dqldt_i] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -532,7 +473,6 @@ type = real kind = kind_phys intent = in - optional = F [clcn_i] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -541,7 +481,6 @@ type = real kind = kind_phys intent = in - optional = F [u_i] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -550,7 +489,6 @@ type = real kind = kind_phys intent = in - optional = F [v_i] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -559,7 +497,6 @@ type = real kind = kind_phys intent = in - optional = F [taugwx] standard_name = cumulative_surface_x_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc x momentum flux multiplied by timestep @@ -568,7 +505,6 @@ type = real kind = kind_phys intent = in - optional = F [taugwy] standard_name = cumulative_surface_y_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep @@ -577,7 +513,6 @@ type = real kind = kind_phys intent = in - optional = F [tauorox] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -586,7 +521,6 @@ type = real kind = kind_phys intent = in - optional = F [tauoroy] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -595,7 +529,6 @@ type = real kind = kind_phys intent = in - optional = F [cnv_fice_i] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -604,7 +537,6 @@ type = real kind = kind_phys intent = in - optional = F [cnv_ndrop_i] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -613,7 +545,6 @@ type = real kind = kind_phys intent = in - optional = F [cnv_nice_i] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -622,7 +553,6 @@ type = real kind = kind_phys intent = in - optional = F [q_io] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -631,7 +561,6 @@ type = real kind = kind_phys intent = inout - optional = F [lwm_o] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) updated by physics @@ -640,7 +569,6 @@ type = real kind = kind_phys intent = out - optional = F [qi_o] 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 @@ -649,7 +577,6 @@ type = real kind = kind_phys intent = out - optional = F [t_io] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -658,7 +585,6 @@ type = real kind = kind_phys intent = inout - optional = F [rn_o] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep @@ -667,7 +593,6 @@ type = real kind = kind_phys intent = out - optional = F [sr_o] standard_name = ratio_of_snowfall_to_rainfall long_name = snow ratio: ratio of snow to total precipitation @@ -676,7 +601,6 @@ type = real kind = kind_phys intent = out - optional = F [ncpl_io] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_state long_name = number concentration of cloud droplets updated by physics @@ -685,7 +609,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -694,7 +617,6 @@ type = real kind = kind_phys intent = inout - optional = F [fprcp] standard_name = number_of_frozen_precipitation_species long_name = number of frozen precipitation species @@ -702,7 +624,6 @@ dimensions = () type = integer intent = in - optional = F [rnw_io] 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 @@ -711,7 +632,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -720,7 +640,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -729,7 +648,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncpr_io] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -738,7 +656,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncps_io] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -747,7 +664,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncgl_io] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -756,7 +672,6 @@ type = real kind = kind_phys intent = inout - optional = F [clls_io] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -765,7 +680,6 @@ type = real kind = kind_phys intent = inout - optional = F [kcbl] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base @@ -773,7 +687,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [cldreffl] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = effective radius of cloud liquid water particle in micrometer @@ -782,7 +695,6 @@ type = real kind = kind_phys intent = out - optional = F [cldreffi] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = effective radius of cloud ice water particle in micrometers @@ -791,7 +703,6 @@ type = real kind = kind_phys intent = out - optional = F [cldreffr] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -800,7 +711,6 @@ type = real kind = kind_phys intent = out - optional = F [cldreffs] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -809,7 +719,6 @@ type = real kind = kind_phys intent = out - optional = F [cldreffg] standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = effective radius of cloud graupel particle in micrometers @@ -818,7 +727,6 @@ type = real kind = kind_phys intent = out - optional = F [ntrcaer] standard_name = number_of_aerosol_tracers_MG long_name = number of aerosol tracers for Morrison Gettelman MP @@ -826,7 +734,6 @@ dimensions = () type = integer intent = in - optional = F [aerfld_i] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -835,7 +742,6 @@ type = real kind = kind_phys intent = in - optional = F [naai_i] standard_name = ice_nucleation_number_from_climatology long_name = ice nucleation number in MG MP @@ -844,7 +750,6 @@ type = real kind = kind_phys intent = in - optional = F [npccn_i] standard_name = tendency_of_activated_cloud_condensation_nuclei_from_climatology long_name = tendency of ccn activated number @@ -853,7 +758,6 @@ type = real kind = kind_phys intent = in - optional = F [iccn] standard_name = control_for_ice_cloud_condensation_nuclei_forcing long_name = flag for IN and CCN forcing for morrison gettelman microphysics @@ -861,7 +765,6 @@ dimensions = () type = integer intent = in - optional = F [skip_macro] standard_name = flag_skip_macro long_name = flag to skip cloud macrophysics in Morrison scheme @@ -869,7 +772,6 @@ dimensions = () type = logical intent = in - optional = F [alf_fac] standard_name = alpha_tuning_coefficient_for_morrison_gettelman_microphysics_scheme long_name = tuning factor for alphas (alpha = 1 - critical relative humidity) @@ -878,7 +780,6 @@ type = real kind = kind_phys intent = in - optional = F [qc_min] standard_name = minimum_cloud_condensate_mixing_ratio_threshold long_name = minimum cloud condensed water and ice mixing ratio in MG macro clouds @@ -887,7 +788,6 @@ type = real kind = kind_phys intent = in - optional = F [pdfflag] standard_name = control_for_pdf_shape_for_microphysics long_name = pdf flag for MG macrophysics @@ -895,7 +795,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -903,7 +802,6 @@ dimensions = () type = integer intent = in - optional = F [xlat] standard_name = latitude long_name = latitude @@ -912,7 +810,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -921,7 +818,6 @@ type = real kind = kind_phys intent = in - optional = F [rhc_i] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -930,7 +826,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -939,7 +834,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -947,4 +841,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/m_micro_interstitial.meta b/physics/m_micro_interstitial.meta index 7894c3d52..031ebbe5a 100644 --- a/physics/m_micro_interstitial.meta +++ b/physics/m_micro_interstitial.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [do_shoc] standard_name = flag_for_shoc long_name = flag for SHOC @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [skip_macro] standard_name = flag_skip_macro long_name = flag to skip cloud macrophysics in Morrison scheme @@ -38,7 +35,6 @@ dimensions = () type = logical intent = inout - optional = F [fprcp] standard_name = number_of_frozen_precipitation_species long_name = number of frozen precipitation species @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [mg3_as_mg2] standard_name = flag_mg3_as_mg2 long_name = flag for controlling prep for Morrison-Gettelman microphysics @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [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 @@ -63,7 +57,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_water] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) updated by physics @@ -72,7 +65,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_rain] standard_name = rain_mixing_ratio_of_new_state long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) updated by physics @@ -81,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_snow] standard_name = snow_mixing_ratio_of_new_state long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) updated by physics @@ -90,7 +81,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_graupel] standard_name = graupel_mixing_ratio_of_new_state long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physics @@ -99,7 +89,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_rain_nc] standard_name = mass_number_concentration_of_rain_of_new_state long_name = number concentration of rain updated by physics @@ -108,7 +97,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_snow_nc] standard_name = mass_number_concentration_of_snow_of_new_state long_name = number concentration of snow updated by physics @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_graupel_nc] standard_name = mass_number_concentration_of_graupel_of_new_state long_name = number concentration of graupel updated by physics @@ -126,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_shoc] standard_name = subgrid_scale_cloud_fraction_from_shoc long_name = subgrid-scale cloud fraction from the SHOC scheme @@ -135,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -144,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -153,7 +137,6 @@ type = real kind = kind_phys intent = in - optional = F [tcr] standard_name = cloud_phase_transition_threshold_temperature long_name = threshold temperature below which cloud starts to freeze @@ -162,7 +145,6 @@ type = real kind = kind_phys intent = in - optional = F [tcrf] standard_name = reciprocal_of_cloud_phase_transition_temperature_range long_name = denominator in cloud phase transition = 1/(tcr-tf) @@ -171,7 +153,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -180,7 +161,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -189,7 +169,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -198,7 +177,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -207,7 +185,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncpr] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -216,7 +193,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -225,7 +201,6 @@ type = real kind = kind_phys intent = inout - optional = F [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -234,7 +209,6 @@ type = real kind = kind_phys intent = inout - optional = F [cld_frc_MG] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -243,7 +217,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -252,7 +225,6 @@ type = real kind = kind_phys intent = out - optional = F [clw_ice] 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 @@ -261,7 +233,6 @@ type = real kind = kind_phys intent = out - optional = F [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -270,7 +241,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -279,7 +249,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -287,7 +256,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -306,7 +274,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -314,7 +281,6 @@ dimensions = () type = integer intent = in - optional = F [fprcp] standard_name = number_of_frozen_precipitation_species long_name = number of frozen precipitation species @@ -322,7 +288,6 @@ dimensions = () type = integer intent = in - optional = F [mg3_as_mg2] standard_name = flag_mg3_as_mg2 long_name = flag for controlling prep for Morrison-Gettelman microphysics @@ -330,7 +295,6 @@ dimensions = () type = logical intent = in - optional = F [ncpr] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -339,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = F [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -348,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -357,7 +319,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -366,7 +327,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -375,7 +335,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -384,7 +343,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -393,7 +351,6 @@ type = real kind = kind_phys intent = in - optional = F [gq0_rain] standard_name = rain_mixing_ratio_of_new_state long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) updated by physics @@ -402,7 +359,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0_snow] standard_name = snow_mixing_ratio_of_new_state long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) updated by physics @@ -411,7 +367,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0_graupel] standard_name = graupel_mixing_ratio_of_new_state long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physics @@ -420,7 +375,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0_rain_nc] standard_name = mass_number_concentration_of_rain_of_new_state long_name = number concentration of rain updated by physics @@ -429,7 +383,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0_snow_nc] standard_name = mass_number_concentration_of_snow_of_new_state long_name = number concentration of snow updated by physics @@ -438,7 +391,6 @@ type = real kind = kind_phys intent = out - optional = F [gq0_graupel_nc] standard_name = mass_number_concentration_of_graupel_of_new_state long_name = number concentration of graupel updated by physics @@ -447,7 +399,6 @@ type = real kind = kind_phys intent = out - optional = F [ice] standard_name = lwe_thickness_of_ice_amount_on_dynamics_timestep long_name = ice fall at this time step @@ -456,7 +407,6 @@ type = real kind = kind_phys intent = out - optional = F [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -465,7 +415,6 @@ type = real kind = kind_phys intent = out - optional = F [graupel] standard_name = lwe_thickness_of_graupel_amount_on_dynamics_timestep long_name = graupel fall at this time step @@ -474,7 +423,6 @@ type = real kind = kind_phys intent = out - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -483,7 +431,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -492,7 +439,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -500,5 +446,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/maximum_hourly_diagnostics.meta b/physics/maximum_hourly_diagnostics.meta index 140c6390a..6ce746daa 100644 --- a/physics/maximum_hourly_diagnostics.meta +++ b/physics/maximum_hourly_diagnostics.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [reset] standard_name = flag_reset_maximum_hourly_fields long_name = flag for resetting maximum hourly fields @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [lradar] standard_name = flag_for_radar_reflectivity long_name = flag for radar reflectivity @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -79,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -88,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -97,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -106,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [refdmax] standard_name = maximum_reflectivity_at_1km_agl_over_maximum_hourly_time_interval long_name = maximum reflectivity at 1km agl over maximum hourly time interval @@ -115,7 +103,6 @@ type = real kind = kind_phys intent = inout - optional = F [refdmax263k] standard_name = maximum_reflectivity_at_minus10c_over_maximum_hourly_time_interval long_name = maximum reflectivity at minus10c over maximum hourly time interval @@ -124,7 +111,6 @@ type = real kind = kind_phys intent = inout - optional = F [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -133,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -142,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [u10max] standard_name = maximum_u_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum u wind at 10m over maximum hourly time interval @@ -151,7 +135,6 @@ type = real kind = kind_phys intent = inout - optional = F [v10max] standard_name = maximum_v_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum v wind at 10m over maximum hourly time interval @@ -160,7 +143,6 @@ type = real kind = kind_phys intent = inout - optional = F [spd10max] standard_name = maximum_wind_at_10m_over_maximum_hourly_time_interval long_name = maximum wind at 10m over maximum hourly time interval @@ -169,7 +151,6 @@ type = real kind = kind_phys intent = inout - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -178,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -187,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [q2m] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity @@ -196,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = F [t02max] standard_name = maximum_temperature_at_2m_over_maximum_hourly_time_interval long_name = maximum temperature at 2m over maximum hourly time interval @@ -205,7 +183,6 @@ type = real kind = kind_phys intent = inout - optional = F [t02min] standard_name = minimum_temperature_at_2m_over_maximum_hourly_time_interval long_name = minumum temperature at 2m over maximum hourly time interval @@ -214,7 +191,6 @@ type = real kind = kind_phys intent = inout - optional = F [rh02max] standard_name = maximum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = maximum relative humidity at 2m over maximum hourly time interval @@ -223,7 +199,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -232,7 +207,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -241,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -250,7 +223,6 @@ type = real kind = kind_phys intent = inout - optional = F [pratemax] standard_name = maximum_precipitation_rate_over_maximum_hourly_time_interval long_name = maximum precipitation rate over maximum hourly time interval @@ -259,7 +231,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -268,7 +239,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -276,4 +246,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_MYJPBL_wrapper.meta b/physics/module_MYJPBL_wrapper.meta index 7b7a1fbaf..cc3673958 100644 --- a/physics/module_MYJPBL_wrapper.meta +++ b/physics/module_MYJPBL_wrapper.meta @@ -8,13 +8,12 @@ name = myjpbl_wrapper_init type = scheme [do_myjpbl] - standard_name = flag_for_mellor_yamada_janic_pbl_scheme + standard_name = flag_for_mellor_yamada_janjic_pbl_scheme long_name = flag to activate MYJ PBL scheme units = flag dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,15 +41,13 @@ dimensions = () type = logical intent = in - optional = F [do_myjsfc] - standard_name = flag_for_mellor_yamada_janic_surface_layer_scheme + standard_name = flag_for_mellor_yamada_janjic_surface_layer_scheme long_name = flag for MYJ surface layer scheme units = flag dimensions = () type = logical intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [dt_phs] standard_name = timestep_for_physics long_name = time step for physics @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -85,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -93,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -101,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = cloud condensate index in tracer array @@ -109,7 +98,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -117,7 +105,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -125,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -133,7 +119,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -141,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [ugrs] standard_name = x_wind long_name = x component of layer wind @@ -150,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = y component of layer wind @@ -159,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = layer mean air temperature @@ -168,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -177,7 +158,6 @@ type = real kind = kind_phys intent = inout - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -186,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -195,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -204,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [hprime1] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -213,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik_1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at lowest model interface @@ -222,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk_1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at lowest model layer @@ -231,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -240,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface temperature @@ -249,7 +222,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -258,7 +230,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_qsfc] standard_name = surface_specific_humidity_for_MYJ_schemes long_name = surface air saturation specific humidity for MYJ schem @@ -267,7 +238,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_thz0] standard_name = air_potential_temperature_at_top_of_viscous_sublayer long_name = potential temperat at viscous sublayer top over water @@ -276,7 +246,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_qz0] standard_name = specific_humidity_at_top_of_viscous_sublayer long_name = specific humidity at_viscous sublayer top over water @@ -285,7 +254,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_uz0] standard_name = x_wind_at_top_of_viscous_sublayer long_name = u wind component at viscous sublayer top over water @@ -294,7 +262,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_vz0] standard_name = y_wind_at_top_of_viscous_sublayer long_name = v wind component at viscous sublayer top over water @@ -303,7 +270,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_z0base] standard_name = baseline_surface_roughness_length long_name = baseline surface roughness length for momentum in mete @@ -312,7 +278,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_akhs] standard_name = heat_exchange_coefficient_for_MYJ_schemes long_name = surface heat exchange_coefficient for MYJ schemes @@ -321,7 +286,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_akms] standard_name = momentum_exchange_coefficient_for_MYJ_schemes long_name = surface momentum exchange_coefficient for MYJ schemes @@ -330,7 +294,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_chkqlm] standard_name = control_for_surface_layer_evaporation long_name = surface layer evaporation switch @@ -339,16 +302,14 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_elflx] - standard_name = surface_upward_specific_humidity_flux_for_mellor_yamada_janic_surface_layer_scheme + standard_name = surface_upward_specific_humidity_flux_for_mellor_yamada_janjic_surface_layer_scheme long_name = kinematic surface latent heat flux units = m s-1 kg kg-1 dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1u] standard_name = weight_for_momentum_at_top_of_viscous_sublayer long_name = Weight for momentum at viscous layer top @@ -357,7 +318,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1t] standard_name = weight_for_potental_temperature_at_top_of_viscous_sublayer long_name = Weight for potental temperature at viscous layer top @@ -366,7 +326,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1q] standard_name = weight_for_specific_humidity_at_top_of_viscous_sublayer long_name = Weight for Specfic Humidity at viscous layer top @@ -375,7 +334,6 @@ type = real kind = kind_phys intent = inout - optional = F [pblh] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -384,7 +342,6 @@ type = real kind = kind_phys intent = out - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -392,7 +349,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -400,7 +356,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -409,7 +364,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of the grid cell @@ -418,7 +372,6 @@ type = real kind = kind_phys intent = in - optional = F [ustar] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -427,7 +380,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -436,7 +388,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture @@ -445,7 +396,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -454,7 +404,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd] standard_name = lwe_surface_snow long_name = water equivalent snow depth over land @@ -463,7 +412,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -472,7 +420,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -481,7 +428,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx] 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 @@ -490,7 +436,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -499,7 +444,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -508,7 +452,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -517,7 +460,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers PBL vertical diff @@ -526,7 +468,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -535,7 +476,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -544,7 +484,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -553,7 +492,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -562,7 +500,6 @@ type = real kind = kind_phys intent = out - optional = F [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -571,7 +508,6 @@ type = real kind = kind_phys intent = out - optional = F [xkzm_m] standard_name = atmosphere_momentum_diffusivity_due_to_background long_name = background value of momentum diffusivity @@ -580,7 +516,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_h] standard_name = atmosphere_heat_diffusivity_due_to_background long_name = background value of heat diffusivity @@ -589,7 +524,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_s] standard_name = sigma_pressure_threshold_at_upper_extent_of_background_diffusion long_name = sigma level threshold for background diffusivity @@ -598,7 +532,6 @@ type = real kind = kind_phys intent = in - optional = F [gamt] standard_name = countergradient_mixing_term_for_temperature long_name = countergradient mixing term for temperature @@ -607,7 +540,6 @@ type = real kind = kind_phys intent = out - optional = F [gamq] standard_name = countergradient_mixing_term_for_water_vapor long_name = countergradient mixing term for water vapor @@ -616,7 +548,6 @@ type = real kind = kind_phys intent = out - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -625,7 +556,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -634,7 +564,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -643,7 +572,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -651,7 +579,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -659,7 +586,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -668,7 +594,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -676,7 +601,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -684,7 +608,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -692,7 +615,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -700,7 +622,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -708,7 +629,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -716,7 +636,6 @@ dimensions = () type = integer intent = in - optional = F [gen_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies @@ -739,7 +658,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -747,4 +665,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_MYJSFC_wrapper.meta b/physics/module_MYJSFC_wrapper.meta index 4f909ef91..1201fd56b 100644 --- a/physics/module_MYJSFC_wrapper.meta +++ b/physics/module_MYJSFC_wrapper.meta @@ -8,13 +8,12 @@ name = myjsfc_wrapper_init type = scheme [do_myjsfc] - standard_name = flag_for_mellor_yamada_janic_surface_layer_scheme + standard_name = flag_for_mellor_yamada_janjic_surface_layer_scheme long_name = flag to activate MYJ surface layer scheme units = flag dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = logical intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -84,7 +76,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = cloud condensate index in tracer array @@ -92,7 +83,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -100,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -108,7 +97,6 @@ dimensions = () type = integer intent = in - optional = F [ntsw] standard_name = index_of_snow_mixing_ratio_in_tracer_concentration_array long_name = tracer index for snow water @@ -116,7 +104,6 @@ dimensions = () type = integer intent = in - optional = F [ntgl] standard_name = index_of_graupel_mixing_ratio_in_tracer_concentration_array long_name = tracer index for graupel @@ -124,7 +111,6 @@ dimensions = () type = integer intent = in - optional = F [iter] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -132,7 +118,6 @@ dimensions = () type = integer intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -140,7 +125,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [ugrs] standard_name = x_wind long_name = x component of layer wind @@ -149,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = y component of layer wind @@ -158,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = layer mean air temperature @@ -167,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -176,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -185,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -194,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -203,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik_1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at lowest model interface @@ -212,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk_1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at lowest model layer @@ -221,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc] standard_name = surface_skin_temperature long_name = surface temperature @@ -230,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -239,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [phy_myj_qsfc] standard_name = surface_specific_humidity_for_MYJ_schemes long_name = surface air saturation specific humidity for MYJ schem @@ -248,7 +221,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_thz0] standard_name = air_potential_temperature_at_top_of_viscous_sublayer long_name = potential temperat at viscous sublayer top over water @@ -257,7 +229,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_qz0] standard_name = specific_humidity_at_top_of_viscous_sublayer long_name = specific humidity at_viscous sublayer top over water @@ -266,7 +237,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_uz0] standard_name = x_wind_at_top_of_viscous_sublayer long_name = u wind component at viscous sublayer top over water @@ -275,7 +245,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_vz0] standard_name = y_wind_at_top_of_viscous_sublayer long_name = v wind component at viscous sublayer top over water @@ -284,7 +253,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_z0base] standard_name = baseline_surface_roughness_length long_name = baseline surface roughness length for momentum in mete @@ -293,7 +261,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_akhs] standard_name = heat_exchange_coefficient_for_MYJ_schemes long_name = surface heat exchange_coefficient for MYJ schemes @@ -302,7 +269,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_akms] standard_name = momentum_exchange_coefficient_for_MYJ_schemes long_name = surface momentum exchange_coefficient for MYJ schemes @@ -311,7 +277,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_chkqlm] standard_name = control_for_surface_layer_evaporation long_name = surface layer evaporation switch @@ -320,16 +285,14 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_elflx] - standard_name = surface_upward_specific_humidity_flux_for_mellor_yamada_janic_surface_layer_scheme + standard_name = surface_upward_specific_humidity_flux_for_mellor_yamada_janjic_surface_layer_scheme long_name = kinematic surface latent heat flux units = m s-1 kg kg-1 dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1u] standard_name = weight_for_momentum_at_top_of_viscous_sublayer long_name = Weight for momentum at viscous layer top @@ -338,7 +301,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1t] standard_name = weight_for_potental_temperature_at_top_of_viscous_sublayer long_name = Weight for potental temperature at viscous layer top @@ -347,7 +309,6 @@ type = real kind = kind_phys intent = inout - optional = F [phy_myj_a1q] standard_name = weight_for_specific_humidity_at_top_of_viscous_sublayer long_name = Weight for Specfic Humidity at viscous layer top @@ -356,7 +317,6 @@ type = real kind = kind_phys intent = inout - optional = F [pblh] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -365,7 +325,6 @@ type = real kind = kind_phys intent = inout - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -374,7 +333,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length @@ -383,7 +341,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -392,7 +349,6 @@ type = real kind = kind_phys intent = inout - optional = F [rib] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -401,7 +357,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -410,7 +365,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture @@ -419,7 +373,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -428,7 +381,6 @@ type = real kind = kind_phys intent = inout - optional = F [ffm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin_Obukhov similarity function for momentum @@ -437,7 +389,6 @@ type = real kind = kind_phys intent = inout - optional = F [ffh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin_Obukhov similarity function for heat @@ -446,7 +397,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m long_name = Monin_Obukhov similarity parameter for momentum at 10m @@ -455,7 +405,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m long_name = Monin_Obukhov similarity parameter for heat at 2m @@ -464,7 +413,6 @@ type = real kind = kind_phys intent = inout - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -473,7 +421,6 @@ type = real kind = kind_phys intent = inout - optional = F [lakefrac] standard_name = lake_area_fraction long_name = fraction of horizontal grid area occupied by lake @@ -482,7 +429,6 @@ type = real kind = kind_phys intent = inout - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -491,7 +437,6 @@ type = real kind = kind_phys intent = inout - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -500,7 +445,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_wat] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water (interstitial) @@ -509,7 +453,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (interstitial) @@ -518,7 +461,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (interstitial) @@ -527,7 +469,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -536,7 +477,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -545,7 +485,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -554,7 +493,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_wat] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -563,7 +501,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -572,7 +509,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -581,7 +517,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_wat] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -590,7 +525,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -599,7 +533,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -608,7 +541,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_wat] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water @@ -617,7 +549,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_lnd] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land @@ -626,7 +557,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice @@ -635,7 +565,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -644,7 +573,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_lnd] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land @@ -653,7 +581,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -662,7 +589,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity funct for momentum over water @@ -671,7 +597,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity funct for momentum over land @@ -680,7 +605,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity funct for momentum over ice @@ -689,7 +613,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water @@ -698,7 +621,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land @@ -707,7 +629,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice @@ -716,7 +637,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov parameter for momentum at 10m over water @@ -725,7 +645,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov parameter for momentum at 10m over land @@ -734,7 +653,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov parameter for momentum at 10m over ice @@ -743,7 +661,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov parameter for heat at 2m over water @@ -752,7 +669,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov parameter for heat at 2m over land @@ -761,7 +677,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov parameter for heat at 2m over ice @@ -770,7 +685,6 @@ type = real kind = kind_phys intent = inout - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -779,7 +693,6 @@ type = real kind = kind_phys intent = inout - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -788,7 +701,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -797,7 +709,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -806,7 +717,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -814,7 +724,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -822,7 +731,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -831,7 +739,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -839,4 +746,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_MYNNPBL_wrapper.meta b/physics/module_MYNNPBL_wrapper.meta index 6cc80a9b3..6f0c2b072 100644 --- a/physics/module_MYNNPBL_wrapper.meta +++ b/physics/module_MYNNPBL_wrapper.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [lheatstrg] standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme long_name = flag for canopy heat storage parameterization @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -31,7 +29,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F ##################################################################### [ccpp-arg-table] @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -68,7 +62,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -76,7 +69,6 @@ dimensions = () type = logical intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = in - optional = F [r_d] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [r_v] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [cpv] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [Cice] standard_name = specific_heat_of_ice_at_constant_pressure long_name = specific heat of ice at constant pressure @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [rcp] standard_name = ratio_of_gas_constant_dry_air_to_specific_heat_of_dry_air_at_constant_pressure long_name = (rd/cp) @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [XLV] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [XLF] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [EP_1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [EP_2] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -192,7 +172,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -200,7 +179,6 @@ dimensions = () type = logical intent = in - optional = F [qdiag3d] standard_name = flag_for_tracer_diagnostics_3D long_name = flag for 3d tracer diagnostic fields @@ -208,7 +186,6 @@ dimensions = () type = logical intent = in - optional = F [lsidea] standard_name = flag_for_integrated_dynamics_through_earths_atmosphere long_name = flag for idealized physics @@ -216,7 +193,6 @@ dimensions = () type = logical intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -224,7 +200,6 @@ dimensions = () type = logical intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -233,7 +208,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -242,7 +216,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -251,7 +224,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -260,7 +232,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -269,7 +240,6 @@ type = real kind = kind_phys intent = in - optional = F [U] standard_name = x_wind long_name = x component of layer wind @@ -278,7 +248,6 @@ type = real kind = kind_phys intent = in - optional = F [V] standard_name = y_wind long_name = y component of layer wind @@ -287,7 +256,6 @@ type = real kind = kind_phys intent = in - optional = F [omega] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -296,7 +264,6 @@ type = real kind = kind_phys intent = in - optional = F [T3D] standard_name = air_temperature long_name = layer mean air temperature @@ -305,7 +272,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_water_vapor] standard_name = specific_humidity long_name = water vapor specific humidity @@ -314,7 +280,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_liquid_cloud] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -323,7 +288,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_ice_cloud] standard_name = cloud_ice_mixing_ratio long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) @@ -332,7 +296,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_cloud_droplet_num_conc] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air long_name = number concentration of cloud droplets (liquid) @@ -341,7 +304,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_cloud_ice_num_conc] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = number concentration of ice @@ -350,7 +312,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_ozone] standard_name = ozone_mixing_ratio long_name = ozone mixing ratio @@ -359,7 +320,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_water_aer_num_conc] standard_name = mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols @@ -368,7 +328,6 @@ type = real kind = kind_phys intent = in - optional = F [qgrs_ice_aer_num_conc] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols @@ -377,7 +336,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -386,7 +344,6 @@ type = real kind = kind_phys intent = in - optional = F [exner] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -395,7 +352,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -404,7 +360,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf] standard_name = surface_skin_temperature long_name = surface temperature @@ -413,7 +368,6 @@ type = real kind = kind_phys intent = in - optional = F [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -422,7 +376,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -431,7 +384,6 @@ type = real kind = kind_phys intent = in - optional = F [ust] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -440,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_wind_speed_for_momentum_in_air long_name = momentum exchange coefficient @@ -449,7 +400,6 @@ type = real kind = kind_phys intent = out - optional = F [hflx] 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 @@ -458,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [qflx] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -467,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -476,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [rb] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -485,7 +432,6 @@ type = real kind = kind_phys intent = in - optional = F [dtsfc1] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux valid for current call @@ -494,7 +440,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc1] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux valid for current call @@ -503,7 +448,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc1] standard_name = instantaneous_surface_x_momentum_flux long_name = surface momentum flux in the x-direction valid for current call @@ -512,7 +456,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc1] standard_name = instantaneous_surface_y_momentum_flux long_name = surface momentum flux in the y-direction valid for current call @@ -521,7 +464,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfci_diag] standard_name = instantaneous_surface_x_momentum_flux_for_diag long_name = instantaneous sfc x momentum flux multiplied by timestep @@ -530,7 +472,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfci_diag] standard_name = instantaneous_surface_y_momentum_flux_for_diag long_name = instantaneous sfc y momentum flux multiplied by timestep @@ -539,7 +480,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfci_diag] standard_name = instantaneous_surface_upward_sensible_heat_flux_for_diag long_name = instantaneous sfc sensible heat flux multiplied by timestep @@ -548,7 +488,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfci_diag] standard_name = instantaneous_surface_upward_latent_heat_flux_for_diag long_name = instantaneous sfc latent heat flux multiplied by timestep @@ -557,7 +496,6 @@ type = real kind = kind_phys intent = out - optional = F [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 +504,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfc_diag] standard_name = cumulative_surface_y_momentum_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc y momentum flux multiplied by timestep @@ -575,7 +512,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtsfc_diag] standard_name = cumulative_surface_upward_sensible_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc sensible heat flux multiplied by timestep @@ -584,7 +520,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqsfc_diag] standard_name = cumulative_surface_upward_latent_heat_flux_for_diag_multiplied_by_timestep long_name = cumulative sfc latent heat flux multiplied by timestep @@ -593,7 +528,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc_cice] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -602,7 +536,6 @@ type = real kind = kind_phys intent = in - optional = F [dvsfc_cice] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -611,7 +544,6 @@ type = real kind = kind_phys intent = in - optional = F [dtsfc_cice] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -620,7 +552,6 @@ type = real kind = kind_phys intent = in - optional = F [dqsfc_cice] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux for coupling @@ -629,7 +560,6 @@ type = real kind = kind_phys intent = in - optional = F [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -638,7 +568,6 @@ type = real kind = kind_phys intent = in - optional = F [qflx_wat] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -647,7 +576,6 @@ type = real kind = kind_phys intent = in - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -656,7 +584,6 @@ type = real kind = kind_phys intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -665,7 +592,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -674,7 +600,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -682,7 +607,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -690,7 +614,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -698,7 +621,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dusfci_cpl] standard_name = surface_x_momentum_flux_for_coupling long_name = instantaneous sfc u momentum flux @@ -707,7 +629,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfci_cpl] standard_name = surface_y_momentum_flux_for_coupling long_name = instantaneous sfc v momentum flux @@ -716,7 +637,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtsfci_cpl] standard_name = surface_upward_sensible_heat_flux_for_coupling long_name = instantaneous sfc sensible heat flux @@ -725,7 +645,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqsfci_cpl] standard_name = surface_upward_latent_heat_flux_for_coupling long_name = instantaneous sfc latent heat flux @@ -734,7 +653,6 @@ type = real kind = kind_phys intent = inout - optional = F [dusfc_cpl] standard_name = cumulative_surface_x_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc u momentum flux multiplied by timestep @@ -743,7 +661,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvsfc_cpl] standard_name = cumulative_surface_y_momentum_flux_for_coupling_multiplied_by_timestep long_name = cumulative sfc v momentum flux multiplied by timestep @@ -752,7 +669,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -761,7 +677,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -770,7 +685,6 @@ type = real kind = kind_phys intent = inout - optional = F [recmol] standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length @@ -779,7 +693,6 @@ type = real kind = kind_phys intent = in - optional = F [qke] standard_name = nonadvected_turbulent_kinetic_energy_multiplied_by_2 long_name = 2 x tke at mass points @@ -788,7 +701,6 @@ type = real kind = kind_phys intent = inout - optional = F [qke_adv] standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy @@ -797,7 +709,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsq] standard_name = variance_of_air_temperature long_name = temperature fluctuation squared @@ -806,7 +717,6 @@ type = real kind = kind_phys intent = out - optional = F [qsq] standard_name = variance_of_specific_humidity long_name = water vapor fluctuation squared @@ -815,7 +725,6 @@ type = real kind = kind_phys intent = out - optional = F [cov] standard_name = covariance_of_air_temperature_and_specific_humidity long_name = covariance of temperature and moisture @@ -824,7 +733,6 @@ type = real kind = kind_phys intent = out - optional = F [el_pbl] standard_name = turbulent_mixing_length long_name = mixing length in meters @@ -833,7 +741,6 @@ type = real kind = kind_phys intent = inout - optional = F [Sh3D] standard_name = stability_function_for_heat long_name = stability function for heat @@ -842,7 +749,6 @@ type = real kind = kind_phys intent = inout - optional = F [exch_h] standard_name = atmosphere_heat_diffusivity_for_mynnpbl long_name = diffusivity for heat for MYNN PBL (defined for all mass levels) @@ -851,7 +757,6 @@ type = real kind = kind_phys intent = out - optional = F [exch_m] standard_name = atmosphere_momentum_diffusivity_for_mynnpbl long_name = diffusivity for momentum for MYNN PBL (defined for all mass levels) @@ -860,7 +765,6 @@ type = real kind = kind_phys intent = out - optional = F [PBLH] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -869,7 +773,6 @@ type = real kind = kind_phys intent = inout - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -877,7 +780,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [QC_BL] standard_name = subgrid_scale_cloud_liquid_water_mixing_ratio long_name = subgrid cloud water mixing ratio from PBL scheme @@ -886,7 +788,6 @@ type = real kind = kind_phys intent = inout - optional = F [QI_BL] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -895,7 +796,6 @@ type = real kind = kind_phys intent = inout - optional = F [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -904,7 +804,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_a] standard_name = emdf_updraft_area long_name = updraft area from mass flux scheme @@ -913,7 +812,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_w] standard_name = emdf_updraft_vertical_velocity long_name = updraft vertical velocity from mass flux scheme @@ -922,7 +820,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_qt] standard_name = emdf_updraft_total_water long_name = updraft total water from mass flux scheme @@ -931,7 +828,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_thl] standard_name = emdf_updraft_theta_l long_name = updraft theta-l from mass flux scheme @@ -940,7 +836,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_ent] standard_name = emdf_updraft_entrainment_rate long_name = updraft entrainment rate from mass flux scheme @@ -949,7 +844,6 @@ type = real kind = kind_phys intent = inout - optional = F [edmf_qc] standard_name = emdf_updraft_cloud_water long_name = updraft cloud water from mass flux scheme @@ -958,7 +852,6 @@ type = real kind = kind_phys intent = inout - optional = F [sub_thl] standard_name = theta_subsidence_tendency long_name = updraft theta subsidence tendency @@ -967,7 +860,6 @@ type = real kind = kind_phys intent = inout - optional = F [sub_sqv] standard_name = water_vapor_subsidence_tendency long_name = updraft water vapor subsidence tendency @@ -976,7 +868,6 @@ type = real kind = kind_phys intent = inout - optional = F [det_thl] standard_name = theta_detrainment_tendency long_name = updraft theta detrainment tendency @@ -985,7 +876,6 @@ type = real kind = kind_phys intent = inout - optional = F [det_sqv] standard_name = water_vapor_detrainment_tendency long_name = updraft water vapor detrainment tendency @@ -994,7 +884,6 @@ type = real kind = kind_phys intent = inout - optional = F [nupdraft] standard_name = number_of_plumes long_name = number of plumes per grid column @@ -1002,7 +891,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [maxMF] standard_name = maximum_mass_flux long_name = maximum mass flux within a column @@ -1011,7 +899,6 @@ type = real kind = kind_phys intent = out - optional = F [ktop_plume] standard_name = k_level_of_highest_plume long_name = k-level of highest plume @@ -1019,7 +906,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -1028,7 +914,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -1037,7 +922,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -1046,7 +930,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_water_vapor] standard_name = process_split_cumulative_tendency_of_specific_humidity long_name = water vapor specific humidity tendency due to model physics @@ -1055,7 +938,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_liquid_cloud] standard_name = process_split_cumulative_tendency_of_cloud_liquid_water_mixing_ratio long_name = cloud condensed water mixing ratio tendency due to model physics @@ -1064,7 +946,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_ice_cloud] standard_name = process_split_cumulative_tendency_of_cloud_ice_mixing_ratio long_name = cloud condensed water mixing ratio tendency due to model physics @@ -1073,7 +954,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_ozone] standard_name = process_split_cumulative_tendency_of_ozone_mixing_ratio long_name = ozone mixing ratio tendency due to model physics @@ -1082,7 +962,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_cloud_droplet_num_conc] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_liquid_water_particles_in_air long_name = number conc. of cloud droplets (liquid) tendency due to model physics @@ -1091,7 +970,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1100,7 +978,6 @@ type = real kind = kind_phys intent = inout - optional = F [dqdt_water_aer_num_conc] standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_hygroscopic_aerosols long_name = number conc. of water-friendly aerosols tendency due to model physics @@ -1109,7 +986,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1118,7 +994,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1126,7 +1001,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -1135,7 +1009,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1143,7 +1016,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -1151,7 +1023,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1159,7 +1030,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -1167,7 +1037,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -1175,7 +1044,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -1183,7 +1051,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -1191,7 +1058,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -1199,7 +1065,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -1207,7 +1072,6 @@ dimensions = () type = integer intent = in - optional = F [ntlnc] standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array long_name = tracer index for liquid number concentration @@ -1215,7 +1079,6 @@ dimensions = () type = integer intent = in - optional = F [ntinc] standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array long_name = tracer index for ice number concentration @@ -1223,7 +1086,6 @@ dimensions = () type = integer intent = in - optional = F [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -1231,7 +1093,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1239,7 +1100,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1247,7 +1107,6 @@ dimensions = () type = integer intent = in - optional = F [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -1256,7 +1115,6 @@ type = real kind = kind_phys intent = in - optional = F [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -1265,7 +1123,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -1274,7 +1131,6 @@ type = real kind = kind_phys intent = in - optional = F [grav_settling] standard_name = control_for_gravitational_settling_of_cloud_droplets long_name = flag to activate gravitational setting of fog @@ -1282,7 +1138,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_tkebudget] standard_name = control_for_tke_budget_output long_name = flag for activating TKE budget @@ -1290,7 +1145,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_tkeadvect] standard_name = flag_for_tke_advection long_name = flag for activating TKE advect @@ -1298,7 +1152,6 @@ dimensions = () type = logical intent = in - optional = F [bl_mynn_cloudpdf] standard_name = control_for_cloud_pdf_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to determine which cloud PDF to use @@ -1306,7 +1159,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_mixlength] standard_name = control_for_mixing_length_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to determine which mixing length form to use @@ -1314,7 +1166,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_edmf] standard_name = control_for_edmf_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate the mass-flux scheme @@ -1322,7 +1173,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_edmf_mom] standard_name = control_for_edmf_momentum_transport_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate the transport of momentum @@ -1330,7 +1180,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_edmf_tke] standard_name = control_for_edmf_tke_transport_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate the transport of TKE @@ -1338,7 +1187,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_cloudmix] standard_name = control_for_cloud_species_mixing_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate mixing of cloud species @@ -1346,7 +1194,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_mixqt] standard_name = control_for_total_water_mixing_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to mix total water or individual species @@ -1354,7 +1201,6 @@ dimensions = () type = integer intent = in - optional = F [bl_mynn_output] standard_name = control_for_additional_diagnostics_in_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag initialize and output extra 3D variables @@ -1362,7 +1208,6 @@ dimensions = () type = integer intent = in - optional = F [icloud_bl] standard_name = control_for_sgs_cloud_radiation_coupling_in_mellor_yamamda_nakanishi_niino_pbl_scheme long_name = flag for coupling sgs clouds to radiation @@ -1370,7 +1215,6 @@ dimensions = () type = integer intent = in - optional = F [do_mynnsfclay] standard_name = flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme long_name = flag to activate MYNN surface layer @@ -1378,7 +1222,6 @@ dimensions = () type = logical intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -1386,7 +1229,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -1394,7 +1236,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -1402,7 +1243,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -1410,7 +1250,6 @@ dimensions = () type = integer intent = in - optional = F [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -1418,7 +1257,6 @@ dimensions = () type = logical intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -1426,7 +1264,6 @@ dimensions = () type = logical intent = in - optional = F [huge] standard_name = netcdf_float_fillvalue long_name = definition of NetCDF float FillValue @@ -1435,7 +1272,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1444,7 +1280,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1452,4 +1287,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_MYNNSFC_wrapper.meta b/physics/module_MYNNSFC_wrapper.meta index c6301ec21..39a05f858 100644 --- a/physics/module_MYNNSFC_wrapper.meta +++ b/physics/module_MYNNSFC_wrapper.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [itimestep] standard_name = index_of_timestep long_name = current number of time steps @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [iter] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -76,7 +69,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -84,7 +76,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -92,7 +83,6 @@ dimensions = () type = logical intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -100,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -108,7 +97,6 @@ dimensions = () type = integer intent = in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [vegtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -125,7 +112,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractnl cover of green veg @@ -134,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -142,7 +127,6 @@ dimensions = () type = integer intent = in - optional = F [z0pert] standard_name = perturbation_of_momentum_roughness_length long_name = perturbation of momentum roughness length @@ -151,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [ztpert] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio @@ -160,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [redrag] standard_name = flag_for_limited_surface_roughness_length_over_ocean long_name = flag for reduced drag coefficient over sea @@ -168,7 +150,6 @@ dimensions = () type = logical intent = in - optional = F [sfc_z0_type] standard_name = flag_for_surface_roughness_option_over_water long_name = surface roughness options over water @@ -176,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -185,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -194,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [u] standard_name = x_wind long_name = x component of layer wind @@ -203,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [v] standard_name = y_wind long_name = y component of layer wind @@ -212,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [t3d] standard_name = air_temperature long_name = layer mean air temperature @@ -221,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [qvsh] standard_name = specific_humidity long_name = water vapor specific humidity @@ -230,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -239,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -248,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -257,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [exner] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -266,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -275,7 +245,6 @@ type = real kind = kind_phys intent = in - optional = F [PBLH] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -284,7 +253,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -293,7 +261,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -301,7 +268,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -309,7 +275,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -317,7 +282,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [tskin_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -326,7 +290,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -335,7 +298,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -344,7 +306,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -353,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -362,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -371,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [qsfc_wat] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -380,7 +338,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -389,7 +346,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -398,7 +354,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowh_lnd] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -407,7 +362,6 @@ type = real kind = kind_phys intent = in - optional = F [snowh_ice] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -416,7 +370,6 @@ type = real kind = kind_phys intent = in - optional = F [znt_wat] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water (temporary use as interstitial) @@ -425,7 +378,6 @@ type = real kind = kind_phys intent = inout - optional = F [znt_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -434,7 +386,6 @@ type = real kind = kind_phys intent = inout - optional = F [znt_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -443,7 +394,6 @@ type = real kind = kind_phys intent = inout - optional = F [ust_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -452,7 +402,6 @@ type = real kind = kind_phys intent = inout - optional = F [ust_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -461,7 +410,6 @@ type = real kind = kind_phys intent = inout - optional = F [ust_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -470,7 +418,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_wat] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -479,7 +426,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -488,7 +434,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -497,7 +442,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_wat] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -506,7 +450,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -515,7 +458,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -524,7 +466,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_wat] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water @@ -533,7 +474,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_lnd] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land @@ -542,7 +482,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice @@ -551,7 +490,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -560,7 +498,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_lnd] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land @@ -569,7 +506,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -578,7 +514,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -587,7 +522,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity function for momentum over land @@ -596,7 +530,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity function for momentum over ice @@ -605,7 +538,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water @@ -614,7 +546,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land @@ -623,7 +554,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice @@ -632,7 +562,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -641,7 +570,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov similarity parameter for momentum at 10m over land @@ -650,7 +578,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice @@ -659,7 +586,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov similarity parameter for heat at 2m over water @@ -668,7 +594,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov similarity parameter for heat at 2m over land @@ -677,7 +602,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov similarity parameter for heat at 2m over ice @@ -686,7 +610,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_wat] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -695,7 +618,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_lnd] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -704,7 +626,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_ice] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -713,7 +634,6 @@ type = real kind = kind_phys intent = inout - optional = F [qflx_wat] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -722,7 +642,6 @@ type = real kind = kind_phys intent = inout - optional = F [qflx_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -731,7 +650,6 @@ type = real kind = kind_phys intent = inout - optional = F [qflx_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -740,7 +658,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -749,7 +666,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsfc_lnd_ruc] standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land @@ -758,7 +674,6 @@ type = real kind = kind_phys intent = in - optional = F [qsfc_ice_ruc] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -767,7 +682,6 @@ type = real kind = kind_phys intent = in - optional = F [ustm] standard_name = surface_friction_velocity_for_momentum long_name = friction velocity isolated for momentum only @@ -776,7 +690,6 @@ type = real kind = kind_phys intent = inout - optional = F [zol] standard_name = ratio_of_height_to_monin_obukhov_length long_name = monin obukhov surface stability parameter @@ -785,7 +698,6 @@ type = real kind = kind_phys intent = inout - optional = F [mol] standard_name = surface_temperature_scale long_name = temperature flux divided by ustar (temperature scale) @@ -794,7 +706,6 @@ type = real kind = kind_phys intent = inout - optional = F [rmol] standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length @@ -803,7 +714,6 @@ type = real kind = kind_phys intent = inout - optional = F [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -812,7 +722,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch] standard_name = surface_drag_wind_speed_for_momentum_in_air long_name = momentum exchange coefficient @@ -821,7 +730,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux @@ -830,7 +738,6 @@ type = real kind = kind_phys intent = inout - optional = F [qflx] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -839,7 +746,6 @@ type = real kind = kind_phys intent = inout - optional = F [lh] standard_name = surface_upward_latent_heat_flux long_name = latent heating at the surface (pos = up) @@ -848,7 +754,6 @@ type = real kind = kind_phys intent = inout - optional = F [flhc] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -857,7 +762,6 @@ type = real kind = kind_phys intent = inout - optional = F [flqc] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -866,7 +770,6 @@ type = real kind = kind_phys intent = inout - optional = F [u10] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -875,7 +778,6 @@ type = real kind = kind_phys intent = inout - optional = F [v10] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -884,7 +786,6 @@ type = real kind = kind_phys intent = inout - optional = F [th2] standard_name = air_potential_temperature_at_2m long_name = 2 meter potential temperature @@ -893,7 +794,6 @@ type = real kind = kind_phys intent = inout - optional = F [t2] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -902,7 +802,6 @@ type = real kind = kind_phys intent = inout - optional = F [q2] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity @@ -911,7 +810,6 @@ type = real kind = kind_phys intent = inout - optional = F [wstar] standard_name = enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection long_name = surface wind enhancement due to convection @@ -920,7 +818,6 @@ type = real kind = kind_phys intent = inout - optional = F [chs2] standard_name = surface_exchange_coefficient_for_heat_at_2m long_name = exchange coefficient for heat at 2 meters @@ -929,7 +826,6 @@ type = real kind = kind_phys intent = inout - optional = F [cqs2] standard_name = surface_exchange_coefficient_for_moisture_at_2m long_name = exchange coefficient for moisture at 2 meters @@ -938,7 +834,6 @@ type = real kind = kind_phys intent = inout - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -946,7 +841,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -955,7 +849,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -963,4 +856,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_SGSCloud_RadPost.meta b/physics/module_SGSCloud_RadPost.meta index 70613a404..7298426ae 100644 --- a/physics/module_SGSCloud_RadPost.meta +++ b/physics/module_SGSCloud_RadPost.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio long_name = no condensates) ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -47,7 +43,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi] standard_name = cloud_ice_mixing_ratio long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) @@ -56,7 +51,6 @@ type = real kind = kind_phys intent = inout - optional = F [qc_save] 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 @@ -65,7 +59,6 @@ type = real kind = kind_phys intent = in - optional = F [qi_save] standard_name = ice_water_mixing_ratio_save long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) before entering a physics scheme @@ -74,7 +67,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -83,7 +75,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -91,4 +82,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_SGSCloud_RadPre.meta b/physics/module_SGSCloud_RadPre.meta index e79e6fc61..14c3127fc 100644 --- a/physics/module_SGSCloud_RadPre.meta +++ b/physics/module_SGSCloud_RadPre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -38,7 +35,6 @@ dimensions = () type = logical intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -47,7 +43,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -56,7 +51,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -65,7 +59,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -74,7 +67,6 @@ type = real kind = kind_phys intent = in - optional = F [do_mynnedmf] standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme long_name = flag to activate MYNN-EDMF @@ -82,7 +74,6 @@ dimensions = () type = logical intent = in - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi] standard_name = cloud_ice_mixing_ratio long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = inout - optional = F [qv] standard_name = specific_humidity long_name = water vapor specific humidity @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [T3D] standard_name = air_temperature long_name = layer mean air temperature @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [P3D] standard_name = air_pressure long_name = mean layer pressure @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [qr] standard_name = rain_mixing_ratio long_name = moist (dry+vapor, no condensates) mixing ratio of rain water @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = inout - optional = F [qs] standard_name = snow_mixing_ratio long_name = moist (dry+vapor, no condensates) mixing ratio of snow water @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = inout - optional = F [qg] standard_name = graupel_mixing_ratio long_name = graupel mixing ratio wrt dry+vapor (no condensates) @@ -154,7 +138,6 @@ type = real kind = kind_phys intent = inout - optional = F [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -163,7 +146,6 @@ type = real kind = kind_phys intent = inout - optional = F [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -171,7 +153,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_gf] standard_name = identifier_for_grell_freitas_deep_convection long_name = flag for Grell-Freitas deep convection scheme @@ -179,7 +160,6 @@ dimensions = () type = integer intent = in - optional = F [qc_save] 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 @@ -188,7 +168,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi_save] standard_name = ice_water_mixing_ratio_save long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) before entering a physics scheme @@ -197,7 +176,6 @@ type = real kind = kind_phys intent = inout - optional = F [QC_BL] standard_name = subgrid_scale_cloud_liquid_water_mixing_ratio long_name = subgrid cloud water mixing ratio from PBL scheme @@ -206,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [QI_BL] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -215,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -224,7 +200,6 @@ type = real kind = kind_phys intent = in - optional = F [delp] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness on radiation levels @@ -233,7 +208,6 @@ type = real kind = kind_phys intent = in - optional = F [clouds1] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -242,7 +216,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds2] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -251,7 +224,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds3] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -260,7 +232,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds4] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -269,7 +240,6 @@ type = real kind = kind_phys intent = inout - optional = F [clouds5] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -278,7 +248,6 @@ type = real kind = kind_phys intent = inout - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -287,7 +256,6 @@ type = real kind = kind_phys intent = in - optional = F [nlay] standard_name = adjusted_vertical_layer_dimension_for_radiation long_name = number of vertical layers for radiation @@ -295,7 +263,6 @@ dimensions = () type = integer intent = in - optional = F [plyr] standard_name = air_pressure_at_layer_for_radiation_in_hPa long_name = air pressure at vertical layer for radiation calculation @@ -304,7 +271,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = grid latitude @@ -313,7 +279,6 @@ type = real kind = kind_phys intent = in - optional = F [dz] standard_name = layer_thickness_for_radiation long_name = layer thickness on radiation levels @@ -322,7 +287,6 @@ type = real kind = kind_phys intent = in - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -331,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = F [cldsa] standard_name = cloud_area_fraction_for_radiation long_name = fraction of clouds for low, middle,high, total and BL @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = inout - optional = F [mtopa] standard_name = model_layer_number_at_cloud_top long_name = vertical indices for low, middle and high cloud tops @@ -348,7 +310,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = inout - optional = F [mbota] standard_name = model_layer_number_at_cloud_base long_name = vertical indices for low, middle and high cloud bases @@ -356,7 +317,6 @@ dimensions = (horizontal_loop_extent,3) type = integer intent = inout - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -364,7 +324,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -372,7 +331,6 @@ dimensions = () type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -380,7 +338,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -389,7 +346,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -397,4 +353,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/module_mp_thompson.F90 b/physics/module_mp_thompson.F90 index f05aa8ba2..2068084c0 100644 --- a/physics/module_mp_thompson.F90 +++ b/physics/module_mp_thompson.F90 @@ -970,6 +970,8 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & nwfa, nifa, nwfa2d, nifa2d, & tt, th, pii, & p, w, dz, dt_in, dt_inner, & + sedi_semi, sedi_semi_update, & + sedi_semi_decfl, & RAINNC, RAINNCV, & SNOWNC, SNOWNCV, & ICENC, ICENCV, & @@ -1047,6 +1049,7 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & vt_dbz_wt LOGICAL, INTENT(IN) :: first_time_step REAL, INTENT(IN):: dt_in, dt_inner + LOGICAL, INTENT(IN) :: sedi_semi, sedi_semi_update, sedi_semi_decfl ! To support subcycling: current step and maximum number of steps INTEGER, INTENT (IN) :: istep, nsteps LOGICAL, INTENT (IN) :: reset_dBZ @@ -1421,9 +1424,9 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & rainprod1d, evapprod1d, & #endif rand1, rand2, rand3, & - kts, kte, dt, i, j, & - ext_diag, & - !vtsk1, txri1, txrc1, & + kts, kte, dt, i, j, ext_diag, & + sedi_semi, sedi_semi_update, sedi_semi_decfl, & + !vtsk1, txri1, txrc1, & prw_vcdc1, prw_vcde1, & tpri_inu1, tpri_ide1_d, tpri_ide1_s, tprs_ide1, & tprs_sde1_d, tprs_sde1_s, & @@ -1469,8 +1472,8 @@ SUBROUTINE mp_gt_driver(qv, qc, qr, qi, qs, qg, ni, nr, nc, & !.. Changed 13 May 2013 to fake emissions in which nwfa2d is aerosol !.. number tendency (number per kg per second). if (is_aerosol_aware) then - nwfa1d(kts) = nwfa1d(kts) + nwfa2d(i,j)*dt_in - nifa1d(kts) = nifa1d(kts) + nifa2d(i,j)*dt_in + nwfa1d(kts) = nwfa1d(kts) + nwfa2d(i,j)*dt + nifa1d(kts) = nifa1d(kts) + nifa2d(i,j)*dt do k = kts, kte nc(i,k,j) = nc1d(k) @@ -1817,8 +1820,9 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, & kts, kte, dt, ii, jj, & ! Extended diagnostics, most arrays only ! allocated if ext_diag flag is .true. - ext_diag, & - !vtsk1, txri1, txrc1, & + ext_diag, & + sedi_semi, sedi_semi_update, sedi_semi_decfl, & + !vtsk1, txri1, txrc1, & prw_vcdc1, prw_vcde1, & tpri_inu1, tpri_ide1_d, tpri_ide1_s, tprs_ide1, & tprs_sde1_d, tprs_sde1_s, & @@ -1847,6 +1851,7 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, & REAL, INTENT(IN):: rand1, rand2, rand3 ! Extended diagnostics, most arrays only allocated if ext_diag is true LOGICAL, INTENT(IN) :: ext_diag + LOGICAL, INTENT(IN) :: sedi_semi, sedi_semi_update, sedi_semi_decfl REAL, DIMENSION(:), INTENT(OUT):: & !vtsk1, txri1, txrc1, & prw_vcdc1, & @@ -1902,9 +1907,13 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, & prg_rcg, prg_ihm DOUBLE PRECISION, PARAMETER:: zeroD0 = 0.0d0 + REAL, PARAMETER :: decfl = 8.0 + REAL :: dtcfl,rainsfc + INTEGER :: niter REAL, DIMENSION(kts:kte):: temp, pres, qv REAL, DIMENSION(kts:kte):: rc, ri, rr, rs, rg, ni, nr, nc, nwfa, nifa + REAL, DIMENSION(kts:kte):: rr_tmp,nr_tmp REAL, DIMENSION(kts:kte):: rho, rhof, rhof2 REAL, DIMENSION(kts:kte):: qvs, qvsi, delQvs REAL, DIMENSION(kts:kte):: satw, sati, ssatw, ssati @@ -3888,34 +3897,79 @@ subroutine mp_thompson (qv1d, qc1d, qi1d, qr1d, qs1d, qg1d, ni1d, & if (ANY(L_qr .eqv. .true.)) then nstep = NINT(1./onstep(1)) - do n = 1, nstep - do k = kte, kts, -1 - sed_r(k) = vtrk(k)*rr(k) - sed_n(k) = vtnrk(k)*nr(k) - enddo - k = kte - odzq = 1./dzq(k) - orho = 1./rho(k) - qrten(k) = qrten(k) - sed_r(k)*odzq*onstep(1)*orho - nrten(k) = nrten(k) - sed_n(k)*odzq*onstep(1)*orho - rr(k) = MAX(R1, rr(k) - sed_r(k)*odzq*DT*onstep(1)) - nr(k) = MAX(R2, nr(k) - sed_n(k)*odzq*DT*onstep(1)) - do k = ksed1(1), kts, -1 - odzq = 1./dzq(k) - orho = 1./rho(k) - qrten(k) = qrten(k) + (sed_r(k+1)-sed_r(k)) & - *odzq*onstep(1)*orho - nrten(k) = nrten(k) + (sed_n(k+1)-sed_n(k)) & - *odzq*onstep(1)*orho - rr(k) = MAX(R1, rr(k) + (sed_r(k+1)-sed_r(k)) & - *odzq*DT*onstep(1)) - nr(k) = MAX(R2, nr(k) + (sed_n(k+1)-sed_n(k)) & - *odzq*DT*onstep(1)) - enddo - if (rr(kts).gt.R1*10.) & - pptrain = pptrain + sed_r(kts)*DT*onstep(1) - enddo + if(.not. sedi_semi) then + do n = 1, nstep + do k = kte, kts, -1 + sed_r(k) = vtrk(k)*rr(k) + sed_n(k) = vtnrk(k)*nr(k) + enddo + k = kte + odzq = 1./dzq(k) + orho = 1./rho(k) + qrten(k) = qrten(k) - sed_r(k)*odzq*onstep(1)*orho + nrten(k) = nrten(k) - sed_n(k)*odzq*onstep(1)*orho + rr(k) = MAX(R1, rr(k) - sed_r(k)*odzq*DT*onstep(1)) + nr(k) = MAX(R2, nr(k) - sed_n(k)*odzq*DT*onstep(1)) + do k = ksed1(1), kts, -1 + odzq = 1./dzq(k) + orho = 1./rho(k) + qrten(k) = qrten(k) + (sed_r(k+1)-sed_r(k)) & + *odzq*onstep(1)*orho + nrten(k) = nrten(k) + (sed_n(k+1)-sed_n(k)) & + *odzq*onstep(1)*orho + rr(k) = MAX(R1, rr(k) + (sed_r(k+1)-sed_r(k)) & + *odzq*DT*onstep(1)) + nr(k) = MAX(R2, nr(k) + (sed_n(k+1)-sed_n(k)) & + *odzq*DT*onstep(1)) + enddo + + if (rr(kts).gt.R1*10.) & + pptrain = pptrain + sed_r(kts)*DT*onstep(1) + enddo + else !if(.not. sedi_semi) + niter = 1 + dtcfl = dt + if(sedi_semi_decfl) then + niter = int(nstep/decfl) + 1 + dtcfl = dt/niter + endif + do n = 1, niter + rr_tmp(:) = rr(:) + nr_tmp(:) = nr(:) + call nislfv_rain_ppm(kte,dzq,vtrk,rr,rainsfc,dtcfl,R1) + call nislfv_rain_ppm(kte,dzq,vtnrk,nr,vtr,dtcfl,R2) + do k = kts, kte + qrten(k) = qrten(k) + (rr(k) - rr_tmp(k))/rho(k)/dt + nrten(k) = nrten(k) + (nr(k) - nr_tmp(k))/rho(k)/dt + enddo + pptrain = pptrain + rainsfc + + if(sedi_semi_update) then + do k = kte+1, kts, -1 + vtrk(k) = 0. + vtnrk(k) = 0. + enddo + do k = kte, kts, -1 + vtr = 0. + if (rr(k).gt. R1) then + lamr = (am_r*crg(3)*org2*nr(k)/rr(k))**obmr + vtr = rhof(k)*av_r*crg(6)*org3 * lamr**cre(3) & + *((lamr+fv_r)**(-cre(6))) + vtrk(k) = vtr + ! First below is technically correct: + ! vtr = rhof(k)*av_r*crg(5)*org2 * lamr**cre(2) & + ! *((lamr+fv_r)**(-cre(5))) + ! Test: make number fall faster (but still slower than mass) + ! Goal: less prominent size sorting + vtr = rhof(k)*av_r*crg(7)/crg(12) * lamr**cre(12) & + *((lamr+fv_r)**(-cre(7))) + vtnrk(k) = vtr + endif + enddo + endif ! if(sedi_semi_update) + enddo + endif! if(.not. sedi_semi) endif !+---+-----------------------------------------------------------------+ @@ -6047,6 +6101,227 @@ subroutine calc_refl10cm (qv1d, qc1d, qr1d, nr1d, qs1d, qg1d, & end subroutine calc_refl10cm ! +!------------------------------------------------------------------- + SUBROUTINE nislfv_rain_ppm(km,dzl,wwl,rql,precip,dt,R1) +!------------------------------------------------------------------- +! +! for non-iteration semi-Lagrangain forward advection for cloud +! with mass conservation and positive definite advection +! 2nd order interpolation with monotonic piecewise parabolic method +! this routine is under assumption of decfl < 1 for semi_Lagrangian +! +! dzl depth of model layer in meter +! wwl terminal velocity at model layer m/s +! rql dry air density*mixing ratio +! precip precipitation at surface +! dt time step +! +! author: hann-ming henry juang +! implemented by song-you hong +! + implicit none + + integer, intent(in) :: km + real, intent(in) :: dt, R1 + real, intent(in) :: dzl(km),wwl(km) + real, intent(out) :: precip + real, intent(inout) :: rql(km) + integer k,m,kk,kb,kt + real tl,tl2,qql,dql,qqd + real th,th2,qqh,dqh + real zsum,qsum,dim,dip,con1,fa1,fa2 + real allold, decfl + real dz(km), ww(km), qq(km) + real wi(km+1), zi(km+1), za(km+2) !hmhj + real qn(km) + real dza(km+1), qa(km+1), qmi(km+1), qpi(km+1) +! + precip = 0.0 + qa(:) = 0.0 + qq(:) = 0.0 + dz(:) = dzl(:) + ww(:) = wwl(:) + do k = 1,km + if(rql(k).gt.R1) then + qq(k) = rql(k) + else + ww(k) = 0.0 + endif + enddo +! skip for no precipitation for all layers + allold = 0.0 + do k=1,km + allold = allold + qq(k) + enddo + if(allold.le.0.0) then + return + endif +! +! compute interface values + zi(1)=0.0 + do k=1,km + zi(k+1) = zi(k)+dz(k) + enddo +! n=1 +! plm is 2nd order, we can use 2nd order wi or 3rd order wi +! 2nd order interpolation to get wi + wi(1) = ww(1) + wi(km+1) = ww(km) + do k=2,km + wi(k) = (ww(k)*dz(k-1)+ww(k-1)*dz(k))/(dz(k-1)+dz(k)) + enddo +! 3rd order interpolation to get wi + fa1 = 9./16. + fa2 = 1./16. + wi(1) = ww(1) + wi(2) = 0.5*(ww(2)+ww(1)) + do k=3,km-1 + wi(k) = fa1*(ww(k)+ww(k-1))-fa2*(ww(k+1)+ww(k-2)) + enddo + wi(km) = 0.5*(ww(km)+ww(km-1)) + wi(km+1) = ww(km) +! +! terminate of top of raingroup + do k=2,km + if( ww(k).eq.0.0 ) wi(k)=ww(k-1) + enddo +! +! diffusivity of wi + con1 = 0.05 + do k=km,1,-1 + decfl = (wi(k+1)-wi(k))*dt/dz(k) + if( decfl .gt. con1 ) then + wi(k) = wi(k+1) - con1*dz(k)/dt + endif + enddo +! compute arrival point + do k=1,km+1 + za(k) = zi(k) - wi(k)*dt + enddo + za(km+2) = zi(km+1) !hmhj +! + do k=1,km+1 !hmhj + dza(k) = za(k+1)-za(k) + enddo +! +! computer deformation at arrival point + do k=1,km + qa(k) = qq(k)*dz(k)/dza(k) + enddo + qa(km+1) = 0.0 +! +! estimate values at arrival cell interface with monotone + do k=2,km + dip=(qa(k+1)-qa(k))/(dza(k+1)+dza(k)) + dim=(qa(k)-qa(k-1))/(dza(k-1)+dza(k)) + if( dip*dim.le.0.0 ) then + qmi(k)=qa(k) + qpi(k)=qa(k) + else + qpi(k)=qa(k)+0.5*(dip+dim)*dza(k) + qmi(k)=2.0*qa(k)-qpi(k) + if( qpi(k).lt.0.0 .or. qmi(k).lt.0.0 ) then + qpi(k) = qa(k) + qmi(k) = qa(k) + endif + endif + enddo + qpi(1)=qa(1) + qmi(1)=qa(1) + qmi(km+1)=qa(km+1) + qpi(km+1)=qa(km+1) +! +! interpolation to regular point + qn = 0.0 + kb=1 + kt=1 + intp : do k=1,km + kb=max(kb-1,1) + kt=max(kt-1,1) +! find kb and kt + if( zi(k).ge.za(km+1) ) then + exit intp + else + find_kb : do kk=kb,km + if( zi(k).le.za(kk+1) ) then + kb = kk + exit find_kb + else + cycle find_kb + endif + enddo find_kb + find_kt : do kk=kt,km+2 !hmhj + if( zi(k+1).le.za(kk) ) then + kt = kk + exit find_kt + else + cycle find_kt + endif + enddo find_kt + kt = kt - 1 +! compute q with piecewise constant method + if( kt.eq.kb ) then + tl=(zi(k)-za(kb))/dza(kb) + th=(zi(k+1)-za(kb))/dza(kb) + tl2=tl*tl + th2=th*th + qqd=0.5*(qpi(kb)-qmi(kb)) + qqh=qqd*th2+qmi(kb)*th + qql=qqd*tl2+qmi(kb)*tl + qn(k) = (qqh-qql)/(th-tl) + else if( kt.gt.kb ) then + tl=(zi(k)-za(kb))/dza(kb) + tl2=tl*tl + qqd=0.5*(qpi(kb)-qmi(kb)) + qql=qqd*tl2+qmi(kb)*tl + dql = qa(kb)-qql + zsum = (1.-tl)*dza(kb) + qsum = dql*dza(kb) + if( kt-kb.gt.1 ) then + do m=kb+1,kt-1 + zsum = zsum + dza(m) + qsum = qsum + qa(m) * dza(m) + enddo + endif + th=(zi(k+1)-za(kt))/dza(kt) + th2=th*th + qqd=0.5*(qpi(kt)-qmi(kt)) + dqh=qqd*th2+qmi(kt)*th + zsum = zsum + th*dza(kt) + qsum = qsum + dqh*dza(kt) + qn(k) = qsum/zsum + endif + cycle intp + endif +! + enddo intp +! +! rain out + sum_precip: do k=1,km + if( za(k).lt.0.0 .and. za(k+1).le.0.0 ) then +!hmhj + precip = precip + qa(k)*dza(k) + cycle sum_precip + else if ( za(k).lt.0.0 .and. za(k+1).gt.0.0 ) then +!hmhj +!hmhj precip(i) = precip(i) + qa(k)*(0.0-za(k)) + th = (0.0-za(k))/dza(k) !hmhj + th2 = th*th !hmhj + qqd = 0.5*(qpi(k)-qmi(k)) !hmhj + qqh = qqd*th2+qmi(k)*th !hmhj + precip = precip + qqh*dza(k) !hmhj + exit sum_precip + endif + exit sum_precip + enddo sum_precip +! +! replace the new values + rql(:) = max(qn(:),R1) +! +! ---------------------------------- +! + END SUBROUTINE nislfv_rain_ppm +!+---+-----------------------------------------------------------------+ !+---+-----------------------------------------------------------------+ !+---+-----------------------------------------------------------------+ END MODULE module_mp_thompson diff --git a/physics/module_sf_noahlsm.F90 b/physics/module_sf_noahlsm.F90 deleted file mode 100644 index 13d8e9813..000000000 --- a/physics/module_sf_noahlsm.F90 +++ /dev/null @@ -1,4793 +0,0 @@ - MODULE module_sf_noahlsm - -!ckay=KIRAN ALAPATY @ US EPA -- November 01, 2015 -! -! Tim Glotfelty@CNSU; AJ Deng@PSU -!modified for use with FASDAS -!Flux Adjusting Surface Data Assimilation System to assimilate -!surface layer and soil layers temperature and moisture using -! surfance reanalsys -!Reference: Alapaty et al., 2008: Development of the flux-adjusting surface -! data assimilation system for mesoscale models. JAMC, 47, 2331-2350 -! - - REAL, PARAMETER :: EMISSI_S = 0.95 - -! VEGETATION PARAMETERS - INTEGER :: LUCATS , BARE - INTEGER :: NATURAL - INTEGER :: LOW_DENSITY_RESIDENTIAL, HIGH_DENSITY_RESIDENTIAL, HIGH_INTENSITY_INDUSTRIAL - integer, PARAMETER :: NLUS=50 - CHARACTER(LEN=256) LUTYPE - INTEGER, DIMENSION(1:NLUS) :: NROTBL - real, dimension(1:NLUS) :: SNUPTBL, RSTBL, RGLTBL, HSTBL, & - SHDTBL, MAXALB, & - EMISSMINTBL, EMISSMAXTBL, & - LAIMINTBL, LAIMAXTBL, & - Z0MINTBL, Z0MAXTBL, & - ALBEDOMINTBL, ALBEDOMAXTBL, & - ZTOPVTBL,ZBOTVTBL - REAL :: TOPT_DATA,CMCMAX_DATA,CFACTR_DATA,RSMAX_DATA - -! SOIL PARAMETERS - INTEGER :: SLCATS - INTEGER, PARAMETER :: NSLTYPE=30 - CHARACTER(LEN=256) SLTYPE - REAL, DIMENSION (1:NSLTYPE) :: BB,DRYSMC,F11, & - MAXSMC, REFSMC,SATPSI,SATDK,SATDW, WLTSMC,QTZ - -! LSM GENERAL PARAMETERS - INTEGER :: SLPCATS - INTEGER, PARAMETER :: NSLOPE=30 - REAL, DIMENSION (1:NSLOPE) :: SLOPE_DATA - REAL :: SBETA_DATA,FXEXP_DATA,CSOIL_DATA,SALP_DATA,REFDK_DATA, & - REFKDT_DATA,FRZK_DATA,ZBOT_DATA, SMLOW_DATA,SMHIGH_DATA, & - CZIL_DATA - REAL :: LVCOEF_DATA - - integer, private :: iloc, jloc -!$omp threadprivate(iloc, jloc) -! - CONTAINS -! - - SUBROUTINE SFLX (IILOC,JJLOC,FFROZP,ISURBAN,DT,ZLVL,NSOIL,SLDPTH, & !C - LOCAL, & !L - LLANDUSE, LSOIL, & !CL - LWDN,SOLDN,SOLNET,SFCPRS,PRCP,SFCTMP,Q2,SFCSPD, & !F - COSZ,PRCPRAIN, SOLARDIRECT, & !F - TH2,Q2SAT,DQSDT2, & !I - VEGTYP,SOILTYP,SLOPETYP,SHDFAC,SHDMIN,SHDMAX, & !I - ALB, SNOALB,TBOT, Z0BRD, Z0, EMISSI, EMBRD, & !S - CMC,T1,STC,SMC,SH2O,SNOWH,SNEQV,ALBEDO,CH,CM, & !H - CP, RD, SIGMA, CPH2O, CPICE, LSUBF, & !physical constants -! ---------------------------------------------------------------------- -! OUTPUTS, DIAGNOSTICS, PARAMETERS BELOW GENERALLY NOT NECESSARY WHEN -! COUPLED WITH E.G. A NWP MODEL (SUCH AS THE NOAA/NWS/NCEP MESOSCALE ETA -! MODEL). OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. -! ---------------------------------------------------------------------- - ETA,SHEAT, ETA_KINEMATIC,FDOWN, & !O - EC,EDIR,ET,ETT,ESNOW,DRIP,DEW, & !O - BETA,ETP,SSOIL, & !O - FLX1,FLX2,FLX3, & !O - FLX4,FVB,FBUR,FGSN,UA_PHYS, & !UA - SNOMLT,SNCOVR, & !O - RUNOFF1,RUNOFF2,RUNOFF3, & !O - RC,PC,RSMIN,XLAI,RCS,RCT,RCQ,RCSOIL, & !O - SOILW,SOILM,Q1,SMAV, & !D - RDLAI2D,USEMONALB, & - SNOTIME1, & - RIBB, & - SMCWLT,SMCDRY,SMCREF,SMCMAX,NROOT, & - SFHEAD1RT, & !I - INFXS1RT,ETPND1,OPT_THCND,AOASIS, & !P - XSDA_QFX,HFX_PHY,QFX_PHY,XQNORM, & !fasdas - fasdas,HCPCT_FASDAS, & !fasdas - errflg, errmsg) - -! ---------------------------------------------------------------------- -! SUBROUTINE SFLX - UNIFIED NOAHLSM VERSION 1.0 JULY 2007 -! ---------------------------------------------------------------------- -! SUB-DRIVER FOR "Noah LSM" FAMILY OF PHYSICS SUBROUTINES FOR A -! SOIL/VEG/SNOWPACK LAND-SURFACE MODEL TO UPDATE SOIL MOISTURE, SOIL -! ICE, SOIL TEMPERATURE, SKIN TEMPERATURE, SNOWPACK WATER CONTENT, -! SNOWDEPTH, AND ALL TERMS OF THE SURFACE ENERGY BALANCE AND SURFACE -! WATER BALANCE (EXCLUDING INPUT ATMOSPHERIC FORCINGS OF DOWNWARD -! RADIATION AND PRECIP) -! ---------------------------------------------------------------------- -! SFLX ARGUMENT LIST KEY: -! ---------------------------------------------------------------------- -! C CONFIGURATION INFORMATION -! L LOGICAL -! CL 4-string character bearing logical meaning -! F FORCING DATA -! I OTHER (INPUT) FORCING DATA -! S SURFACE CHARACTERISTICS -! H HISTORY (STATE) VARIABLES -! O OUTPUT VARIABLES -! D DIAGNOSTIC OUTPUT -! P Parameters -! Msic Miscellaneous terms passed from gridded driver -! ---------------------------------------------------------------------- -! 1. CONFIGURATION INFORMATION (C): -! ---------------------------------------------------------------------- -! DT TIMESTEP (SEC) (DT SHOULD NOT EXCEED 3600 SECS, RECOMMEND -! 1800 SECS OR LESS) -! ZLVL HEIGHT (M) ABOVE GROUND OF ATMOSPHERIC FORCING VARIABLES -! NSOIL NUMBER OF SOIL LAYERS (AT LEAST 2, AND NOT GREATER THAN -! PARAMETER NSOLD SET BELOW) -! SLDPTH THE THICKNESS OF EACH SOIL LAYER (M) -! ---------------------------------------------------------------------- -! 2. LOGICAL: -! ---------------------------------------------------------------------- -! LCH Exchange coefficient (Ch) calculation flag (false: using -! ch-routine SFCDIF; true: Ch is brought in) -! LOCAL Flag for local-site simulation (where there is no -! maps for albedo, veg fraction, and roughness -! true: all LSM parameters (inluding albedo, veg fraction and -! roughness length) will be defined by three tables -! LLANDUSE (=USGS, using USGS landuse classification) -! LSOIL (=STAS, using FAO/STATSGO soil texture classification) -! OPT_THCND option for how to treat thermal conductivity -! ---------------------------------------------------------------------- -! 3. FORCING DATA (F): -! ---------------------------------------------------------------------- -! LWDN LW DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET LONGWAVE) -! SOLDN SOLAR DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET SOLAR) -! SOLNET NET DOWNWARD SOLAR RADIATION ((W M-2; POSITIVE) -! SFCPRS PRESSURE AT HEIGHT ZLVL ABOVE GROUND (PASCALS) -! PRCP PRECIP RATE (KG M-2 S-1) (NOTE, THIS IS A RATE) -! SFCTMP AIR TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND -! TH2 AIR POTENTIAL TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND -! Q2 MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) -! COSZ Solar zenith angle (not used for now) -! PRCPRAIN Liquid-precipitation rate (KG M-2 S-1) (not used) -! SOLARDIRECT Direct component of downward solar radiation (W M-2) (not used) -! FFROZP FRACTION OF FROZEN PRECIPITATION -! ---------------------------------------------------------------------- -! 4. OTHER FORCING (INPUT) DATA (I): -! ---------------------------------------------------------------------- -! SFCSPD WIND SPEED (M S-1) AT HEIGHT ZLVL ABOVE GROUND -! Q2SAT SAT SPECIFIC HUMIDITY AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) -! DQSDT2 SLOPE OF SAT SPECIFIC HUMIDITY CURVE AT T=SFCTMP -! (KG KG-1 K-1) -! ---------------------------------------------------------------------- -! 5. CANOPY/SOIL CHARACTERISTICS (S): -! ---------------------------------------------------------------------- -! VEGTYP VEGETATION TYPE (INTEGER INDEX) -! SOILTYP SOIL TYPE (INTEGER INDEX) -! SLOPETYP CLASS OF SFC SLOPE (INTEGER INDEX) -! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION -! (FRACTION= 0.0-1.0) -! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION -! (FRACTION= 0.0-1.0) <= SHDFAC -! PTU PHOTO THERMAL UNIT (PLANT PHENOLOGY FOR ANNUALS/CROPS) -! (NOT YET USED, BUT PASSED TO REDPRM FOR FUTURE USE IN -! VEG PARMS) -! ALB BACKROUND SNOW-FREE SURFACE ALBEDO (FRACTION), FOR JULIAN -! DAY OF YEAR (USUALLY FROM TEMPORAL INTERPOLATION OF -! MONTHLY MEAN VALUES' CALLING PROG MAY OR MAY NOT -! INCLUDE DIURNAL SUN ANGLE EFFECT) -! SNOALB UPPER BOUND ON MAXIMUM ALBEDO OVER DEEP SNOW (E.G. FROM -! ROBINSON AND KUKLA, 1985, J. CLIM. & APPL. METEOR.) -! TBOT BOTTOM SOIL TEMPERATURE (LOCAL YEARLY-MEAN SFC AIR -! TEMPERATURE) -! Z0BRD Background fixed roughness length (M) -! Z0 Time varying roughness length (M) as function of snow depth -! -! EMBRD Background surface emissivity (between 0 and 1) -! EMISSI Surface emissivity (between 0 and 1) -! ---------------------------------------------------------------------- -! 6. HISTORY (STATE) VARIABLES (H): -! ---------------------------------------------------------------------- -! CMC CANOPY MOISTURE CONTENT (M) -! T1 GROUND/CANOPY/SNOWPACK) EFFECTIVE SKIN TEMPERATURE (K) -! STC(NSOIL) SOIL TEMP (K) -! SMC(NSOIL) TOTAL SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) -! SH2O(NSOIL) UNFROZEN SOIL MOISTURE CONTENT (VOLUMETRIC FRACTION) -! NOTE: FROZEN SOIL MOISTURE = SMC - SH2O -! SNOWH ACTUAL SNOW DEPTH (M) -! SNEQV LIQUID WATER-EQUIVALENT SNOW DEPTH (M) -! NOTE: SNOW DENSITY = SNEQV/SNOWH -! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT (UNITLESS FRACTION) -! =SNOW-FREE ALBEDO (ALB) WHEN SNEQV=0, OR -! =FCT(MSNOALB,ALB,VEGTYP,SHDFAC,SHDMIN) WHEN SNEQV>0 -! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE -! (M S-1); NOTE: CH IS TECHNICALLY A CONDUCTANCE SINCE -! IT HAS BEEN MULTIPLIED BY WIND SPEED. -! CM SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM (M S-1); NOTE: -! CM IS TECHNICALLY A CONDUCTANCE SINCE IT HAS BEEN -! MULTIPLIED BY WIND SPEED. -! 6a: Physical constants -! CP specific heat of dry air at constant pressure -! RD gas constant for dry air -! SIGMA Steffan-Boltzmann constant -! CPH2O specific heat of liquid water -! CPICE specific heat of ice -! LSUBF latent heat of fusion for water -! ---------------------------------------------------------------------- -! 7. OUTPUT (O): -! ---------------------------------------------------------------------- -! OUTPUT VARIABLES NECESSARY FOR A COUPLED NUMERICAL WEATHER PREDICTION -! MODEL, E.G. NOAA/NWS/NCEP MESOSCALE ETA MODEL. FOR THIS APPLICATION, -! THE REMAINING OUTPUT/DIAGNOSTIC/PARAMETER BLOCKS BELOW ARE NOT -! NECESSARY. OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. -! ETA ACTUAL LATENT HEAT FLUX (W m-2: NEGATIVE, IF UP FROM -! SURFACE) -! ETA_KINEMATIC atctual latent heat flux in Kg m-2 s-1 -! SHEAT SENSIBLE HEAT FLUX (W M-2: POSITIVE, IF UPWARD FROM -! SURFACE) -! FDOWN Radiation forcing at the surface (W m-2) = SOLDN*(1-alb)+LWDN -! ---------------------------------------------------------------------- -! EC CANOPY WATER EVAPORATION (W m-2) -! EDIR DIRECT SOIL EVAPORATION (W m-2) -! ET(NSOIL) PLANT TRANSPIRATION FROM A PARTICULAR ROOT (SOIL) LAYER -! (W m-2) -! ETT TOTAL PLANT TRANSPIRATION (W m-2) -! ESNOW SUBLIMATION FROM (OR DEPOSITION TO IF <0) SNOWPACK -! (W m-2) -! DRIP THROUGH-FALL OF PRECIP AND/OR DEW IN EXCESS OF CANOPY -! WATER-HOLDING CAPACITY (M) -! DEW DEWFALL (OR FROSTFALL FOR T<273.15) (M) -! ---------------------------------------------------------------------- -! BETA RATIO OF ACTUAL/POTENTIAL EVAP (DIMENSIONLESS) -! ETP POTENTIAL EVAPORATION (W m-2) -! SSOIL SOIL HEAT FLUX (W M-2: NEGATIVE IF DOWNWARD FROM SURFACE) -! ---------------------------------------------------------------------- -! FLX1 PRECIP-SNOW SFC (W M-2) -! FLX2 FREEZING RAIN LATENT HEAT FLUX (W M-2) -! FLX3 PHASE-CHANGE HEAT FLUX FROM SNOWMELT (W M-2) -! ---------------------------------------------------------------------- -! SNOMLT SNOW MELT (M) (WATER EQUIVALENT) -! SNCOVR FRACTIONAL SNOW COVER (UNITLESS FRACTION, 0-1) -! ---------------------------------------------------------------------- -! RUNOFF1 SURFACE RUNOFF (M S-1), NOT INFILTRATING THE SURFACE -! RUNOFF2 SUBSURFACE RUNOFF (M S-1), DRAINAGE OUT BOTTOM OF LAST -! SOIL LAYER (BASEFLOW) -! RUNOFF3 NUMERICAL TRUNCTATION IN EXCESS OF POROSITY (SMCMAX) -! FOR A GIVEN SOIL LAYER AT THE END OF A TIME STEP (M S-1). -! Note: the above RUNOFF2 is actually the sum of RUNOFF2 and RUNOFF3 -! ---------------------------------------------------------------------- -! RC CANOPY RESISTANCE (S M-1) -! PC PLANT COEFFICIENT (UNITLESS FRACTION, 0-1) WHERE PC*ETP -! = ACTUAL TRANSP -! XLAI LEAF AREA INDEX (DIMENSIONLESS) -! RSMIN MINIMUM CANOPY RESISTANCE (S M-1) -! RCS INCOMING SOLAR RC FACTOR (DIMENSIONLESS) -! RCT AIR TEMPERATURE RC FACTOR (DIMENSIONLESS) -! RCQ ATMOS VAPOR PRESSURE DEFICIT RC FACTOR (DIMENSIONLESS) -! RCSOIL SOIL MOISTURE RC FACTOR (DIMENSIONLESS) -! ---------------------------------------------------------------------- -! 8. DIAGNOSTIC OUTPUT (D): -! ---------------------------------------------------------------------- -! SOILW AVAILABLE SOIL MOISTURE IN ROOT ZONE (UNITLESS FRACTION -! BETWEEN SMCWLT AND SMCMAX) -! SOILM TOTAL SOIL COLUMN MOISTURE CONTENT (FROZEN+UNFROZEN) (M) -! Q1 Effective mixing ratio at surface (kg kg-1), used for -! diagnosing the mixing ratio at 2 meter for coupled model -! SMAV Soil Moisture Availability for each layer, as a fraction -! between SMCWLT and SMCMAX. -! Documentation for SNOTIME1 and SNOABL2 ????? -! What categories of arguments do these variables fall into ???? -! Documentation for RIBB ????? -! What category of argument does RIBB fall into ????? -! ---------------------------------------------------------------------- -! 9. PARAMETERS (P): -! ---------------------------------------------------------------------- -! SMCWLT WILTING POINT (VOLUMETRIC) -! SMCDRY DRY SOIL MOISTURE THRESHOLD WHERE DIRECT EVAP FRM TOP -! LAYER ENDS (VOLUMETRIC) -! SMCREF SOIL MOISTURE THRESHOLD WHERE TRANSPIRATION BEGINS TO -! STRESS (VOLUMETRIC) -! SMCMAX POROSITY, I.E. SATURATED VALUE OF SOIL MOISTURE -! (VOLUMETRIC) -! NROOT NUMBER OF ROOT LAYERS, A FUNCTION OF VEG TYPE, DETERMINED -! IN SUBROUTINE REDPRM. -! ---------------------------------------------------------------------- - - - IMPLICIT NONE -! ---------------------------------------------------------------------- - -! DECLARATIONS - LOGICAL AND CHARACTERS -! ---------------------------------------------------------------------- - - INTEGER, INTENT(IN) :: IILOC, JJLOC - LOGICAL, INTENT(IN):: LOCAL - LOGICAL :: FRZGRA, SNOWNG - CHARACTER (LEN=256), INTENT(IN):: LLANDUSE, LSOIL - -! ---------------------------------------------------------------------- -! 1. CONFIGURATION INFORMATION (C): -! ---------------------------------------------------------------------- - INTEGER,INTENT(IN) :: NSOIL,SLOPETYP,SOILTYP,VEGTYP - INTEGER, INTENT(IN) :: ISURBAN - INTEGER,INTENT(OUT):: NROOT - INTEGER KZ, K, iout - -! ---------------------------------------------------------------------- -! 2. LOGICAL: -! ---------------------------------------------------------------------- - LOGICAL, INTENT(IN) :: RDLAI2D - LOGICAL, INTENT(IN) :: USEMONALB - INTEGER, INTENT(IN) :: OPT_THCND - - REAL, INTENT(INOUT):: SFHEAD1RT,INFXS1RT, ETPND1 - - REAL, INTENT(IN) :: SHDMIN,SHDMAX,DT,DQSDT2,LWDN,PRCP,PRCPRAIN, & - Q2,Q2SAT,SFCPRS,SFCSPD,SFCTMP, SNOALB, & - SOLDN,SOLNET,TBOT,TH2,ZLVL, & - FFROZP,AOASIS - REAL, INTENT(IN) :: CP, RD, SIGMA, CPH2O, CPICE, LSUBF - REAL, INTENT(OUT) :: EMBRD - REAL, INTENT(OUT) :: ALBEDO - REAL, INTENT(INOUT):: COSZ, SOLARDIRECT,CH,CM, & - CMC,SNEQV,SNCOVR,SNOWH,T1,XLAI,SHDFAC,Z0BRD, & - EMISSI, ALB - REAL, INTENT(INOUT):: SNOTIME1 - REAL, INTENT(INOUT):: RIBB - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: SLDPTH - REAL, DIMENSION(1:NSOIL), INTENT(OUT):: ET - REAL, DIMENSION(1:NSOIL), INTENT(OUT):: SMAV - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: SH2O, SMC, STC - REAL,DIMENSION(1:NSOIL):: RTDIS, ZSOIL - - REAL,INTENT(OUT) :: ETA_KINEMATIC,BETA,DEW,DRIP,EC,EDIR,ESNOW,ETA, & - ETP,FLX1,FLX2,FLX3,SHEAT,PC,RUNOFF1,RUNOFF2, & - RUNOFF3,RC,RSMIN,RCQ,RCS,RCSOIL,RCT,SSOIL, & - SMCDRY,SMCMAX,SMCREF,SMCWLT,SNOMLT, SOILM, & - SOILW,FDOWN,Q1 - LOGICAL, INTENT(IN) :: UA_PHYS ! UA: flag for UA option - REAL,INTENT(OUT) :: FLX4 ! UA: energy added to sensible heat - REAL,INTENT(OUT) :: FVB ! UA: frac. veg. w/snow beneath - REAL,INTENT(OUT) :: FBUR ! UA: fraction of canopy buried - REAL,INTENT(OUT) :: FGSN ! UA: ground snow cover fraction - REAL :: ZTOPV ! UA: height of canopy top - REAL :: ZBOTV ! UA: height of canopy bottom - REAL :: GAMA ! UA: = EXP(-1.* XLAI) - REAL :: FNET ! UA: - REAL :: ETPN ! UA: - REAL :: RU ! UA: - - REAL :: BEXP,CFACTR,CMCMAX,CSOIL,CZIL,DF1,DF1H,DF1A,DKSAT,DWSAT, & - DSOIL,DTOT,ETT,FRCSNO,FRCSOI,EPSCA,F1,FXEXP,FRZX,HS, & - KDT,LVH2O,PRCP1,PSISAT,QUARTZ,R,RCH,REFKDT,RR,RGL, & - RSMAX, & - RSNOW,SNDENS,SNCOND,SBETA,SN_NEW,SLOPE,SNUP,SALP,SOILWM, & - SOILWW,T1V,T24,T2V,TH2V,TOPT,TFREEZ,TSNOW,ZBOT,Z0,PRCPF, & - ETNS,PTU,LSUBS - REAL :: LVCOEF - REAL :: INTERP_FRACTION - REAL :: LAIMIN, LAIMAX - REAL :: ALBEDOMIN, ALBEDOMAX - REAL :: EMISSMIN, EMISSMAX - REAL :: Z0MIN, Z0MAX - -! ---------------------------------------------------------------------- -! DECLARATIONS - PARAMETERS -! ---------------------------------------------------------------------- - PARAMETER (TFREEZ = 273.15) - PARAMETER (LVH2O = 2.501E+6) - PARAMETER (LSUBS = 2.83E+6) - PARAMETER (R = 287.04) -! -! FASDAS -! - INTEGER, INTENT(IN ) :: fasdas - REAL, INTENT(INOUT) :: XSDA_QFX, XQNORM - REAL, INTENT(INOUT) :: HFX_PHY, QFX_PHY - REAL, INTENT( OUT) :: HCPCT_FASDAS -! -! END FASDAS - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg -! -! ---------------------------------------------------------------------- -! INITIALIZATION -! ---------------------------------------------------------------------- - errmsg = '' - errflg = 0 - - ILOC = IILOC - JLOC = JJLOC - - RUNOFF1 = 0.0 - RUNOFF2 = 0.0 - RUNOFF3 = 0.0 - SNOMLT = 0.0 - - IF ( .NOT. UA_PHYS ) THEN - FLX4 = 0.0 - FVB = 0.0 - FBUR = 0.0 - FGSN = 0.0 - ENDIF - -! ---------------------------------------------------------------------- -! CALCULATE DEPTH (NEGATIVE) BELOW GROUND FROM TOP SKIN SFC TO BOTTOM OF -! EACH SOIL LAYER. NOTE: SIGN OF ZSOIL IS NEGATIVE (DENOTING BELOW -! GROUND) -! ---------------------------------------------------------------------- - ZSOIL (1) = - SLDPTH (1) - DO KZ = 2,NSOIL - ZSOIL (KZ) = - SLDPTH (KZ) + ZSOIL (KZ -1) - END DO -! ---------------------------------------------------------------------- -! NEXT IS CRUCIAL CALL TO SET THE LAND-SURFACE PARAMETERS, INCLUDING -! SOIL-TYPE AND VEG-TYPE DEPENDENT PARAMETERS. -! ---------------------------------------------------------------------- - CALL REDPRM (VEGTYP,SOILTYP,SLOPETYP,CFACTR,CMCMAX,RSMAX,TOPT, & - REFKDT,KDT,SBETA, SHDFAC,RSMIN,RGL,HS,ZBOT,FRZX, & - PSISAT,SLOPE,SNUP,SALP,BEXP,DKSAT,DWSAT, & - SMCMAX,SMCWLT,SMCREF,SMCDRY,F1,QUARTZ,FXEXP, & - RTDIS,SLDPTH,ZSOIL,NROOT,NSOIL,CZIL, & - LAIMIN, LAIMAX, EMISSMIN, EMISSMAX, ALBEDOMIN, & - ALBEDOMAX, Z0MIN, Z0MAX, CSOIL, PTU, LLANDUSE, & - LSOIL,LOCAL,LVCOEF,ZTOPV,ZBOTV,errmsg,errflg) - if(errflg > 0) return - -!urban - IF(VEGTYP==ISURBAN)THEN - SHDFAC=0.05 - RSMIN=400.0 - SMCMAX = 0.45 - SMCREF = 0.42 - SMCWLT = 0.40 - SMCDRY = 0.40 - ENDIF - - IF ( SHDFAC >= SHDMAX ) THEN - EMBRD = EMISSMAX - IF (.NOT. RDLAI2D) THEN - XLAI = LAIMAX - ENDIF - IF (.NOT. USEMONALB) THEN - ALB = ALBEDOMIN - ENDIF - Z0BRD = Z0MAX - ELSE IF ( SHDFAC <= SHDMIN ) THEN - EMBRD = EMISSMIN - IF(.NOT. RDLAI2D) THEN - XLAI = LAIMIN - ENDIF - IF(.NOT. USEMONALB) then - ALB = ALBEDOMAX - ENDIF - Z0BRD = Z0MIN - ELSE - - IF ( SHDMAX > SHDMIN ) THEN - - INTERP_FRACTION = ( SHDFAC - SHDMIN ) / ( SHDMAX - SHDMIN ) - ! Bound INTERP_FRACTION between 0 and 1 - INTERP_FRACTION = MIN ( INTERP_FRACTION, 1.0 ) - INTERP_FRACTION = MAX ( INTERP_FRACTION, 0.0 ) - ! Scale Emissivity and LAI between EMISSMIN and EMISSMAX by INTERP_FRACTION - EMBRD = ( ( 1.0 - INTERP_FRACTION ) * EMISSMIN ) + ( INTERP_FRACTION * EMISSMAX ) - IF (.NOT. RDLAI2D) THEN - XLAI = ( ( 1.0 - INTERP_FRACTION ) * LAIMIN ) + ( INTERP_FRACTION * LAIMAX ) - ENDIF - if (.not. USEMONALB) then - ALB = ( ( 1.0 - INTERP_FRACTION ) * ALBEDOMAX ) + ( INTERP_FRACTION * ALBEDOMIN ) - endif - Z0BRD = ( ( 1.0 - INTERP_FRACTION ) * Z0MIN ) + ( INTERP_FRACTION * Z0MAX ) - - ELSE - - EMBRD = 0.5 * EMISSMIN + 0.5 * EMISSMAX - IF (.NOT. RDLAI2D) THEN - XLAI = 0.5 * LAIMIN + 0.5 * LAIMAX - ENDIF - if (.not. USEMONALB) then - ALB = 0.5 * ALBEDOMIN + 0.5 * ALBEDOMAX - endif - Z0BRD = 0.5 * Z0MIN + 0.5 * Z0MAX - - ENDIF - - ENDIF -! ---------------------------------------------------------------------- -! INITIALIZE PRECIPITATION LOGICALS. -! ---------------------------------------------------------------------- - SNOWNG = .FALSE. - FRZGRA = .FALSE. - -! ---------------------------------------------------------------------- -! IF INPUT SNOWPACK IS NONZERO, THEN COMPUTE SNOW DENSITY "SNDENS" AND -! SNOW THERMAL CONDUCTIVITY "SNCOND" (NOTE THAT CSNOW IS A FUNCTION -! SUBROUTINE) -! ---------------------------------------------------------------------- - IF ( SNEQV <= 1.E-7 ) THEN ! safer IF kmh (2008/03/25) - SNEQV = 0.0 - SNDENS = 0.0 - SNOWH = 0.0 - SNCOND = 1.0 - ELSE - SNDENS = SNEQV / SNOWH - IF(SNDENS > 1.0) THEN - errmsg = 'Physical snow depth is less than snow water equiv.' - errflg = 1 - return - ENDIF - CALL CSNOW (SNCOND,SNDENS) - END IF -! ---------------------------------------------------------------------- -! DETERMINE IF IT'S PRECIPITATING AND WHAT KIND OF PRECIP IT IS. -! IF IT'S PRCPING AND THE AIR TEMP IS COLDER THAN 0 C, IT'S SNOWING! -! IF IT'S PRCPING AND THE AIR TEMP IS WARMER THAN 0 C, BUT THE GRND -! TEMP IS COLDER THAN 0 C, FREEZING RAIN IS PRESUMED TO BE FALLING. -! ---------------------------------------------------------------------- - IF (PRCP > 0.0) THEN -! snow defined when fraction of frozen precip (FFROZP) > 0.5, -! passed in from model microphysics. - IF (FFROZP .GT. 0.5) THEN - SNOWNG = .TRUE. - ELSE - IF (T1 <= TFREEZ) FRZGRA = .TRUE. - END IF - END IF -! ---------------------------------------------------------------------- -! IF EITHER PRCP FLAG IS SET, DETERMINE NEW SNOWFALL (CONVERTING PRCP -! RATE FROM KG M-2 S-1 TO A LIQUID EQUIV SNOW DEPTH IN METERS) AND ADD -! IT TO THE EXISTING SNOWPACK. -! NOTE THAT SINCE ALL PRECIP IS ADDED TO SNOWPACK, NO PRECIP INFILTRATES -! INTO THE SOIL SO THAT PRCP1 IS SET TO ZERO. -! ---------------------------------------------------------------------- - IF ( (SNOWNG) .OR. (FRZGRA) ) THEN - SN_NEW = PRCP * DT * 0.001 - SNEQV = SNEQV + SN_NEW - PRCPF = 0.0 - -! ---------------------------------------------------------------------- -! UPDATE SNOW DENSITY BASED ON NEW SNOWFALL, USING OLD AND NEW SNOW. -! UPDATE SNOW THERMAL CONDUCTIVITY -! ---------------------------------------------------------------------- - CALL SNOW_NEW (SFCTMP,SN_NEW,SNOWH,SNDENS) - CALL CSNOW (SNCOND,SNDENS) - -! ---------------------------------------------------------------------- -! PRECIP IS LIQUID (RAIN), HENCE SAVE IN THE PRECIP VARIABLE THAT -! LATER CAN WHOLELY OR PARTIALLY INFILTRATE THE SOIL (ALONG WITH -! ANY CANOPY "DRIP" ADDED TO THIS LATER) -! ---------------------------------------------------------------------- - ELSE - PRCPF = PRCP - ENDIF -! ---------------------------------------------------------------------- -! DETERMINE SNOWCOVER AND ALBEDO OVER LAND. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! IF SNOW DEPTH=0, SET SNOW FRACTION=0, ALBEDO=SNOW FREE ALBEDO. -! ---------------------------------------------------------------------- - IF (SNEQV == 0.0) THEN - SNCOVR = 0.0 - ALBEDO = ALB - EMISSI = EMBRD - IF(UA_PHYS) FGSN = 0.0 - IF(UA_PHYS) FVB = 0.0 - IF(UA_PHYS) FBUR = 0.0 - ELSE -! ---------------------------------------------------------------------- -! DETERMINE SNOW FRACTIONAL COVERAGE. -! DETERMINE SURFACE ALBEDO MODIFICATION DUE TO SNOWDEPTH STATE. -! ---------------------------------------------------------------------- - CALL SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR, & - XLAI,SHDFAC,FVB,GAMA,FBUR, & - FGSN,ZTOPV,ZBOTV,UA_PHYS) - - IF ( UA_PHYS ) then - IF(SFCTMP <= T1) THEN - RU = 0. - ELSE - RU = 100.*SHDFAC*FGSN*MIN((SFCTMP-T1)/5., 1.)*(1.-EXP(-XLAI)) - ENDIF - CH = CH/(1.+RU*CH) - ENDIF - - SNCOVR = MIN(SNCOVR,0.98) - - CALL ALCALC (ALB,SNOALB,EMBRD,SHDFAC,SHDMIN,SNCOVR,T1, & - ALBEDO,EMISSI,DT,SNOWNG,SNOTIME1,LVCOEF) - ENDIF -! ---------------------------------------------------------------------- -! NEXT CALCULATE THE SUBSURFACE HEAT FLUX, WHICH FIRST REQUIRES -! CALCULATION OF THE THERMAL DIFFUSIVITY. TREATMENT OF THE -! LATTER FOLLOWS THAT ON PAGES 148-149 FROM "HEAT TRANSFER IN -! COLD CLIMATES", BY V. J. LUNARDINI (PUBLISHED IN 1981 -! BY VAN NOSTRAND REINHOLD CO.) I.E. TREATMENT OF TWO CONTIGUOUS -! "PLANE PARALLEL" MEDIUMS (NAMELY HERE THE FIRST SOIL LAYER -! AND THE SNOWPACK LAYER, IF ANY). THIS DIFFUSIVITY TREATMENT -! BEHAVES WELL FOR BOTH ZERO AND NONZERO SNOWPACK, INCLUDING THE -! LIMIT OF VERY THIN SNOWPACK. THIS TREATMENT ALSO ELIMINATES -! THE NEED TO IMPOSE AN ARBITRARY UPPER BOUND ON SUBSURFACE -! HEAT FLUX WHEN THE SNOWPACK BECOMES EXTREMELY THIN. -! ---------------------------------------------------------------------- -! FIRST CALCULATE THERMAL DIFFUSIVITY OF TOP SOIL LAYER, USING -! BOTH THE FROZEN AND LIQUID SOIL MOISTURE, FOLLOWING THE -! SOIL THERMAL DIFFUSIVITY FUNCTION OF PETERS-LIDARD ET AL. -! (1998,JAS, VOL 55, 1209-1224), WHICH REQUIRES THE SPECIFYING -! THE QUARTZ CONTENT OF THE GIVEN SOIL CLASS (SEE ROUTINE REDPRM) -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! NEXT ADD SUBSURFACE HEAT FLUX REDUCTION EFFECT FROM THE -! OVERLYING GREEN CANOPY, ADAPTED FROM SECTION 2.1.2 OF -! PETERS-LIDARD ET AL. (1997, JGR, VOL 102(D4)) -! ---------------------------------------------------------------------- - CALL TDFCND (DF1,SMC (1),QUARTZ,SMCMAX,SH2O (1),BEXP, PSISAT, SOILTYP, OPT_THCND) - -!urban - IF ( VEGTYP == ISURBAN ) DF1=3.24 - - DF1 = DF1 * EXP (SBETA * SHDFAC) -! -! kmh 09/03/2006 -! kmh 03/25/2008 change SNCOVR threshold to 0.97 -! - IF ( SNCOVR .GT. 0.97 ) THEN - DF1 = SNCOND - ENDIF -! -! ---------------------------------------------------------------------- -! FINALLY "PLANE PARALLEL" SNOWPACK EFFECT FOLLOWING -! V.J. LINARDINI REFERENCE CITED ABOVE. NOTE THAT DTOT IS -! COMBINED DEPTH OF SNOWDEPTH AND THICKNESS OF FIRST SOIL LAYER -! ---------------------------------------------------------------------- - - DSOIL = - (0.5 * ZSOIL (1)) - IF (SNEQV == 0.) THEN - SSOIL = DF1 * (T1- STC (1) ) / DSOIL - ELSE - DTOT = SNOWH + DSOIL - FRCSNO = SNOWH / DTOT - -! 1. HARMONIC MEAN (SERIES FLOW) -! DF1 = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) - FRCSOI = DSOIL / DTOT -! 2. ARITHMETIC MEAN (PARALLEL FLOW) -! DF1 = FRCSNO*SNCOND + FRCSOI*DF1 - DF1H = (SNCOND * DF1)/ (FRCSOI * SNCOND+ FRCSNO * DF1) - -! 3. GEOMETRIC MEAN (INTERMEDIATE BETWEEN HARMONIC AND ARITHMETIC MEAN) -! DF1 = (SNCOND**FRCSNO)*(DF1**FRCSOI) -! weigh DF by snow fraction -! DF1 = DF1H*SNCOVR + DF1A*(1.0-SNCOVR) -! DF1 = DF1H*SNCOVR + DF1*(1.0-SNCOVR) - DF1A = FRCSNO * SNCOND+ FRCSOI * DF1 - -! ---------------------------------------------------------------------- -! CALCULATE SUBSURFACE HEAT FLUX, SSOIL, FROM FINAL THERMAL DIFFUSIVITY -! OF SURFACE MEDIUMS, DF1 ABOVE, AND SKIN TEMPERATURE AND TOP -! MID-LAYER SOIL TEMPERATURE -! ---------------------------------------------------------------------- - DF1 = DF1A * SNCOVR + DF1* (1.0- SNCOVR) - SSOIL = DF1 * (T1- STC (1) ) / DTOT - END IF -! ---------------------------------------------------------------------- -! DETERMINE SURFACE ROUGHNESS OVER SNOWPACK USING SNOW CONDITION FROM -! THE PREVIOUS TIMESTEP. -! ---------------------------------------------------------------------- - IF (SNCOVR > 0. ) THEN - CALL SNOWZ0 (SNCOVR,Z0,Z0BRD,SNOWH,FBUR,FGSN,SHDMAX,UA_PHYS) - ELSE - Z0=Z0BRD - IF(UA_PHYS) CALL SNOWZ0 (SNCOVR,Z0,Z0BRD,SNOWH,FBUR,FGSN, & - SHDMAX,UA_PHYS) - END IF -! ---------------------------------------------------------------------- -! NEXT CALL ROUTINE SFCDIF TO CALCULATE THE SFC EXCHANGE COEF (CH) FOR -! HEAT AND MOISTURE. - -! NOTE !!! -! DO NOT CALL SFCDIF UNTIL AFTER ABOVE CALL TO REDPRM, IN CASE -! ALTERNATIVE VALUES OF ROUGHNESS LENGTH (Z0) AND ZILINTINKEVICH COEF -! (CZIL) ARE SET THERE VIA NAMELIST I/O. - -! NOTE !!! -! ROUTINE SFCDIF RETURNS A CH THAT REPRESENTS THE WIND SPD TIMES THE -! "ORIGINAL" NONDIMENSIONAL "Ch" TYPICAL IN LITERATURE. HENCE THE CH -! RETURNED FROM SFCDIF HAS UNITS OF M/S. THE IMPORTANT COMPANION -! COEFFICIENT OF CH, CARRIED HERE AS "RCH", IS THE CH FROM SFCDIF TIMES -! AIR DENSITY AND PARAMETER "CP". "RCH" IS COMPUTED IN "CALL PENMAN". -! RCH RATHER THAN CH IS THE COEFF USUALLY INVOKED LATER IN EQNS. - -! NOTE !!! -! ---------------------------------------------------------------------- -! SFCDIF ALSO RETURNS THE SURFACE EXCHANGE COEFFICIENT FOR MOMENTUM, CM, -! ALSO KNOWN AS THE SURFACE DRAGE COEFFICIENT. Needed as a state variable -! for iterative/implicit solution of CH in SFCDIF -! ---------------------------------------------------------------------- -! IF(.NOT.LCH) THEN -! T1V = T1 * (1.0+ 0.61 * Q2) -! TH2V = TH2 * (1.0+ 0.61 * Q2) -! CALL SFCDIF_off (ZLVL,Z0,T1V,TH2V,SFCSPD,CZIL,CM,CH) -! ENDIF - -! ---------------------------------------------------------------------- -! CALL PENMAN SUBROUTINE TO CALCULATE POTENTIAL EVAPORATION (ETP), AND -! OTHER PARTIAL PRODUCTS AND SUMS SAVE IN COMMON/RITE FOR LATER -! CALCULATIONS. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! CALCULATE TOTAL DOWNWARD RADIATION (SOLAR PLUS LONGWAVE) NEEDED IN -! PENMAN EP SUBROUTINE THAT FOLLOWS -! ---------------------------------------------------------------------- -! FDOWN = SOLDN * (1.0- ALBEDO) + LWDN - FDOWN = SOLNET + LWDN -! ---------------------------------------------------------------------- -! CALC VIRTUAL TEMPS AND VIRTUAL POTENTIAL TEMPS NEEDED BY SUBROUTINES -! PENMAN. - T2V = SFCTMP * (1.0+ 0.61 * Q2 ) - - iout=0 - if(iout.eq.1) then - print*,'before penman' - print*,' SFCTMP',SFCTMP,'SFCPRS',SFCPRS,'CH',CH,'T2V',T2V, & - 'TH2',TH2,'PRCP',PRCP,'FDOWN',FDOWN,'T24',T24,'SSOIL',SSOIL, & - 'Q2',Q2,'Q2SAT',Q2SAT,'ETP',ETP,'RCH',RCH, & - 'EPSCA',EPSCA,'RR',RR ,'SNOWNG',SNOWNG,'FRZGRA',FRZGRA, & - 'DQSDT2',DQSDT2,'FLX2',FLX2,'SNOWH',SNOWH,'SNEQV',SNEQV, & - ' DSOIL',DSOIL,' FRCSNO',FRCSNO,' SNCOVR',SNCOVR,' DTOT',DTOT, & - ' ZSOIL (1)',ZSOIL(1),' DF1',DF1,'T1',T1,' STC1',STC(1), & - 'ALBEDO',ALBEDO,'SMC',SMC,'STC',STC,'SH2O',SH2O - endif - - CALL PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24,SSOIL, & - Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & - DQSDT2,FLX2,EMISSI,SNEQV,T1,SNCOVR,AOASIS, & - ALBEDO,SOLDN,FVB,GAMA,STC(1),ETPN,FLX4,UA_PHYS, & - CP,RD,SIGMA,CPH2O,CPICE,LSUBF) -! -! ---------------------------------------------------------------------- -! CALL CANRES TO CALCULATE THE CANOPY RESISTANCE AND CONVERT IT INTO PC -! IF NONZERO GREENNESS FRACTION -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! FROZEN GROUND EXTENSION: TOTAL SOIL WATER "SMC" WAS REPLACED -! BY UNFROZEN SOIL WATER "SH2O" IN CALL TO CANRES BELOW -! ---------------------------------------------------------------------- - IF ( (SHDFAC > 0.) .AND. (XLAI > 0.) ) THEN - CALL CANRES (SOLDN,CH,SFCTMP,Q2,SFCPRS,SH2O,ZSOIL,NSOIL, & - SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & - TOPT,RSMAX,RGL,HS,XLAI, & - RCS,RCT,RCQ,RCSOIL,EMISSI,CP,RD,SIGMA) - ELSE - RC = 0.0 - END IF -! ---------------------------------------------------------------------- -! NOW DECIDE MAJOR PATHWAY BRANCH TO TAKE DEPENDING ON WHETHER SNOWPACK -! EXISTS OR NOT: -! ---------------------------------------------------------------------- - ESNOW = 0.0 - IF (SNEQV == 0.0) THEN - CALL NOPAC (ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & - SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & - SHDFAC, & - SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,EMISSI, & - SSOIL, & - STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & - SH2O,SLOPE,KDT,FRZX,PSISAT,ZSOIL, & - DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & - RUNOFF3,EDIR,EC,ET,ETT,NROOT,RTDIS, & - QUARTZ,FXEXP,CSOIL, & - BETA,DRIP,DEW,FLX1,FLX3,VEGTYP,ISURBAN, & - SFHEAD1RT,INFXS1RT,ETPND1,SOILTYP,OPT_THCND & - ,XSDA_QFX,QFX_PHY,XQNORM,fasdas,HCPCT_FASDAS, & !fasdas - SIGMA,CPH2O) - ETA_KINEMATIC = ETA - ELSE - CALL SNOPAC (ETP,ETA,PRCP,PRCPF,SNOWNG,SMC,SMCMAX,SMCWLT, & - SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & - SBETA,DF1, & - Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA, & - SFCPRS,BEXP,PC,RCH,RR,CFACTR,SNCOVR,SNEQV,SNDENS,& - SNOWH,SH2O,SLOPE,KDT,FRZX,PSISAT, & - ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & - RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & - RTDIS,QUARTZ,FXEXP,CSOIL, & - BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW,ETNS,EMISSI, & - RIBB,SOLDN, & - ISURBAN, & - VEGTYP, & - ETPN,FLX4,UA_PHYS, & - SFHEAD1RT,INFXS1RT,ETPND1,SOILTYP,OPT_THCND & - ,QFX_PHY,fasdas,HCPCT_FASDAS,SIGMA,CPH2O,CPICE, & !fasdas - LSUBF) - ETA_KINEMATIC = ESNOW + ETNS - 1000.0*DEW - END IF - -! Calculate effective mixing ratio at grnd level (skin) -! -! Q1=Q2+ETA*CP/RCH - Q1=Q2+ETA_KINEMATIC*CP/RCH -! -! ---------------------------------------------------------------------- -! DETERMINE SENSIBLE HEAT (H) IN ENERGY UNITS (W M-2) -! ---------------------------------------------------------------------- - - SHEAT = - (CH * CP * SFCPRS)/ (R * T2V) * ( TH2- T1 ) - IF(UA_PHYS) SHEAT = SHEAT + FLX4 -! -! FASDAS -! - IF ( fasdas == 1 ) THEN - HFX_PHY = SHEAT - ENDIF -! -! END FASDAS -! -! ---------------------------------------------------------------------- -! CONVERT EVAP TERMS FROM KINEMATIC (KG M-2 S-1) TO ENERGY UNITS (W M-2) -! ---------------------------------------------------------------------- - EDIR = EDIR * LVH2O - EC = EC * LVH2O - DO K=1,4 - ET(K) = ET(K) * LVH2O - ENDDO - ETT = ETT * LVH2O - - ETPND1=ETPND1 * LVH2O - - ESNOW = ESNOW * LSUBS - ETP = ETP*((1.-SNCOVR)*LVH2O + SNCOVR*LSUBS) - IF(UA_PHYS) ETPN = ETPN*((1.-SNCOVR)*LVH2O + SNCOVR*LSUBS) - IF (ETP .GT. 0.) THEN - ETA = EDIR + EC + ETT + ESNOW - ELSE - ETA = ETP - ENDIF -! ---------------------------------------------------------------------- -! DETERMINE BETA (RATIO OF ACTUAL TO POTENTIAL EVAP) -! ---------------------------------------------------------------------- - IF (ETP == 0.0) THEN - BETA = 0.0 - ELSE - BETA = ETA/ETP - ENDIF - -! ---------------------------------------------------------------------- -! CONVERT THE SIGN OF SOIL HEAT FLUX SO THAT: -! SSOIL>0: WARM THE SURFACE (NIGHT TIME) -! SSOIL<0: COOL THE SURFACE (DAY TIME) -! ---------------------------------------------------------------------- - SSOIL = -1.0* SSOIL - -! ---------------------------------------------------------------------- -! FOR THE CASE OF LAND: -! CONVERT RUNOFF3 (INTERNAL LAYER RUNOFF FROM SUPERSAT) FROM M TO M S-1 -! AND ADD TO SUBSURFACE RUNOFF/DRAINAGE/BASEFLOW. RUNOFF2 IS ALREADY -! A RATE AT THIS POINT -! ---------------------------------------------------------------------- - RUNOFF3 = RUNOFF3/ DT - RUNOFF2 = RUNOFF2+ RUNOFF3 - SOILM = -1.0* SMC (1)* ZSOIL (1) - DO K = 2,NSOIL - SOILM = SOILM + SMC (K)* (ZSOIL (K -1) - ZSOIL (K)) - END DO - SOILWM = -1.0* (SMCMAX - SMCWLT)* ZSOIL (1) - SOILWW = -1.0* (SMC (1) - SMCWLT)* ZSOIL (1) - - DO K = 1,NSOIL - SMAV(K)=(SMC(K) - SMCWLT)/(SMCMAX - SMCWLT) - END DO - - IF (NROOT >= 2) THEN - DO K = 2,NROOT - SOILWM = SOILWM + (SMCMAX - SMCWLT)* (ZSOIL (K -1) - ZSOIL (K)) - SOILWW = SOILWW + (SMC(K) - SMCWLT)* (ZSOIL (K -1) - ZSOIL (K)) - END DO - END IF - IF (SOILWM .LT. 1.E-6) THEN - SOILWM = 0.0 - SOILW = 0.0 - SOILM = 0.0 - ELSE - SOILW = SOILWW / SOILWM - END IF - -! ---------------------------------------------------------------------- - END SUBROUTINE SFLX -! ---------------------------------------------------------------------- - - SUBROUTINE ALCALC (ALB,SNOALB,EMBRD,SHDFAC,SHDMIN,SNCOVR,TSNOW,ALBEDO,EMISSI, & - DT,SNOWNG,SNOTIME1,LVCOEF) - -! ---------------------------------------------------------------------- -! CALCULATE ALBEDO INCLUDING SNOW EFFECT (0 -> 1) -! ALB SNOWFREE ALBEDO -! SNOALB MAXIMUM (DEEP) SNOW ALBEDO -! SHDFAC AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION -! SHDMIN MINIMUM AREAL FRACTIONAL COVERAGE OF GREEN VEGETATION -! SNCOVR FRACTIONAL SNOW COVER -! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT -! TSNOW SNOW SURFACE TEMPERATURE (K) -! ---------------------------------------------------------------------- - IMPLICIT NONE - -! ---------------------------------------------------------------------- -! SNOALB IS ARGUMENT REPRESENTING MAXIMUM ALBEDO OVER DEEP SNOW, -! AS PASSED INTO SFLX, AND ADAPTED FROM THE SATELLITE-BASED MAXIMUM -! SNOW ALBEDO FIELDS PROVIDED BY D. ROBINSON AND G. KUKLA -! (1985, JCAM, VOL 24, 402-411) -! ---------------------------------------------------------------------- - REAL, INTENT(IN) :: ALB, SNOALB, EMBRD, SHDFAC, SHDMIN, SNCOVR, TSNOW - REAL, INTENT(IN) :: DT - LOGICAL, INTENT(IN) :: SNOWNG - REAL, INTENT(INOUT):: SNOTIME1 - REAL, INTENT(OUT) :: ALBEDO, EMISSI - REAL :: SNOALB2 - REAL :: TM,SNOALB1 - REAL, INTENT(IN) :: LVCOEF - REAL, PARAMETER :: SNACCA=0.94,SNACCB=0.58,SNTHWA=0.82,SNTHWB=0.46 -! turn of vegetation effect -! ALBEDO = ALB + (1.0- (SHDFAC - SHDMIN))* SNCOVR * (SNOALB - ALB) -! ALBEDO = (1.0-SNCOVR)*ALB + SNCOVR*SNOALB !this is equivalent to below - ALBEDO = ALB + SNCOVR*(SNOALB-ALB) - EMISSI = EMBRD + SNCOVR*(EMISSI_S - EMBRD) - -! BASE FORMULATION (DICKINSON ET AL., 1986, COGLEY ET AL., 1990) -! IF (TSNOW.LE.263.16) THEN -! ALBEDO=SNOALB -! ELSE -! IF (TSNOW.LT.273.16) THEN -! TM=0.1*(TSNOW-263.16) -! SNOALB1=0.5*((0.9-0.2*(TM**3))+(0.8-0.16*(TM**3))) -! ELSE -! SNOALB1=0.67 -! IF(SNCOVR.GT.0.95) SNOALB1= 0.6 -! SNOALB1 = ALB + SNCOVR*(SNOALB-ALB) -! ENDIF -! ENDIF -! ALBEDO = ALB + SNCOVR*(SNOALB1-ALB) - -! ISBA FORMULATION (VERSEGHY, 1991; BAKER ET AL., 1990) -! SNOALB1 = SNOALB+COEF*(0.85-SNOALB) -! SNOALB2=SNOALB1 -!!m LSTSNW=LSTSNW+1 -! SNOTIME1 = SNOTIME1 + DT -! IF (SNOWNG) THEN -! SNOALB2=SNOALB -!!m LSTSNW=0 -! SNOTIME1 = 0.0 -! ELSE -! IF (TSNOW.LT.273.16) THEN -!! SNOALB2=SNOALB-0.008*LSTSNW*DT/86400 -!!m SNOALB2=SNOALB-0.008*SNOTIME1/86400 -! SNOALB2=(SNOALB2-0.65)*EXP(-0.05*DT/3600)+0.65 -!! SNOALB2=(ALBEDO-0.65)*EXP(-0.01*DT/3600)+0.65 -! ELSE -! SNOALB2=(SNOALB2-0.5)*EXP(-0.0005*DT/3600)+0.5 -!! SNOALB2=(SNOALB-0.5)*EXP(-0.24*LSTSNW*DT/86400)+0.5 -!!m SNOALB2=(SNOALB-0.5)*EXP(-0.24*SNOTIME1/86400)+0.5 -! ENDIF -! ENDIF -! -!! print*,'SNOALB2',SNOALB2,'ALBEDO',ALBEDO,'DT',DT -! ALBEDO = ALB + SNCOVR*(SNOALB2-ALB) -! IF (ALBEDO .GT. SNOALB2) ALBEDO=SNOALB2 -!!m LSTSNW1=LSTSNW -!! SNOTIME = SNOTIME1 - -! formulation by Livneh -! ---------------------------------------------------------------------- -! SNOALB IS CONSIDERED AS THE MAXIMUM SNOW ALBEDO FOR NEW SNOW, AT -! A VALUE OF 85%. SNOW ALBEDO CURVE DEFAULTS ARE FROM BRAS P.263. SHOULD -! NOT BE CHANGED EXCEPT FOR SERIOUS PROBLEMS WITH SNOW MELT. -! TO IMPLEMENT ACCUMULATIN PARAMETERS, SNACCA AND SNACCB, ASSERT THAT IT -! IS INDEED ACCUMULATION SEASON. I.E. THAT SNOW SURFACE TEMP IS BELOW -! ZERO AND THE DATE FALLS BETWEEN OCTOBER AND FEBRUARY -! ---------------------------------------------------------------------- - SNOALB1 = SNOALB+LVCOEF*(0.85-SNOALB) - SNOALB2=SNOALB1 -! ---------------- Initial LSTSNW -------------------------------------- - IF (SNOWNG) THEN - SNOTIME1 = 0. - ELSE - SNOTIME1=SNOTIME1+DT -! IF (TSNOW.LT.273.16) THEN - SNOALB2=SNOALB1*(SNACCA**((SNOTIME1/86400.0)**SNACCB)) -! ELSE -! SNOALB2 =SNOALB1*(SNTHWA**((SNOTIME1/86400.0)**SNTHWB)) -! ENDIF - ENDIF -! - SNOALB2 = MAX ( SNOALB2, ALB ) - ALBEDO = ALB + SNCOVR*(SNOALB2-ALB) - IF (ALBEDO .GT. SNOALB2) ALBEDO=SNOALB2 - -! IF (TSNOW.LT.273.16) THEN -! ALBEDO=SNOALB-0.008*DT/86400 -! ELSE -! ALBEDO=(SNOALB-0.5)*EXP(-0.24*DT/86400)+0.5 -! ENDIF - -! IF (ALBEDO > SNOALB) ALBEDO = SNOALB - -! ---------------------------------------------------------------------- - END SUBROUTINE ALCALC -! ---------------------------------------------------------------------- - - SUBROUTINE CANRES (SOLAR,CH,SFCTMP,Q2,SFCPRS,SMC,ZSOIL,NSOIL, & - SMCWLT,SMCREF,RSMIN,RC,PC,NROOT,Q2SAT,DQSDT2, & - TOPT,RSMAX,RGL,HS,XLAI, & - RCS,RCT,RCQ,RCSOIL,EMISSI,CP,RD,SIGMA) - -! ---------------------------------------------------------------------- -! SUBROUTINE CANRES -! ---------------------------------------------------------------------- -! CALCULATE CANOPY RESISTANCE WHICH DEPENDS ON INCOMING SOLAR RADIATION, -! AIR TEMPERATURE, ATMOSPHERIC WATER VAPOR PRESSURE DEFICIT AT THE -! LOWEST MODEL LEVEL, AND SOIL MOISTURE (PREFERABLY UNFROZEN SOIL -! MOISTURE RATHER THAN TOTAL) -! ---------------------------------------------------------------------- -! SOURCE: JARVIS (1976), NOILHAN AND PLANTON (1989, MWR), JACQUEMIN AND -! NOILHAN (1990, BLM) -! SEE ALSO: CHEN ET AL (1996, JGR, VOL 101(D3), 7251-7268), EQNS 12-14 -! AND TABLE 2 OF SEC. 3.1.2 -! ---------------------------------------------------------------------- -! INPUT: -! SOLAR INCOMING SOLAR RADIATION -! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE -! SFCTMP AIR TEMPERATURE AT 1ST LEVEL ABOVE GROUND -! Q2 AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND -! Q2SAT SATURATION AIR HUMIDITY AT 1ST LEVEL ABOVE GROUND -! DQSDT2 SLOPE OF SATURATION HUMIDITY FUNCTION WRT TEMP -! SFCPRS SURFACE PRESSURE -! SMC VOLUMETRIC SOIL MOISTURE -! ZSOIL SOIL DEPTH (NEGATIVE SIGN, AS IT IS BELOW GROUND) -! NSOIL NO. OF SOIL LAYERS -! NROOT NO. OF SOIL LAYERS IN ROOT ZONE (1.LE.NROOT.LE.NSOIL) -! XLAI LEAF AREA INDEX -! SMCWLT WILTING POINT -! SMCREF REFERENCE SOIL MOISTURE (WHERE SOIL WATER DEFICIT STRESS -! SETS IN) -! RSMIN, RSMAX, TOPT, RGL, HS ARE CANOPY STRESS PARAMETERS SET IN -! SURBOUTINE REDPRM -! CP specific heat of dry air at constant pressure -! OUTPUT: -! PC PLANT COEFFICIENT -! RC CANOPY RESISTANCE -! ---------------------------------------------------------------------- - - IMPLICIT NONE - INTEGER, INTENT(IN) :: NROOT,NSOIL - INTEGER K - REAL, INTENT(IN) :: CH,DQSDT2,HS,Q2,Q2SAT,RSMIN,RGL,RSMAX, & - SFCPRS,SFCTMP,SMCREF,SMCWLT, SOLAR,TOPT,XLAI, & - EMISSI, CP, RD, SIGMA - REAL,DIMENSION(1:NSOIL), INTENT(IN) :: SMC,ZSOIL - REAL, INTENT(OUT):: PC,RC,RCQ,RCS,RCSOIL,RCT - REAL :: DELTA,FF,GX,P,RR - REAL, DIMENSION(1:NSOIL) :: PART - REAL, PARAMETER :: SLV = 2.501000E6 - - -! ---------------------------------------------------------------------- -! INITIALIZE CANOPY RESISTANCE MULTIPLIER TERMS. -! ---------------------------------------------------------------------- - RCS = 0.0 - RCT = 0.0 - RCQ = 0.0 - RCSOIL = 0.0 - -! ---------------------------------------------------------------------- -! CONTRIBUTION DUE TO INCOMING SOLAR RADIATION -! ---------------------------------------------------------------------- - RC = 0.0 - FF = 0.55*2.0* SOLAR / (RGL * XLAI) - RCS = (FF + RSMIN / RSMAX) / (1.0+ FF) - -! ---------------------------------------------------------------------- -! CONTRIBUTION DUE TO AIR TEMPERATURE AT FIRST MODEL LEVEL ABOVE GROUND -! RCT EXPRESSION FROM NOILHAN AND PLANTON (1989, MWR). -! ---------------------------------------------------------------------- - RCS = MAX (RCS,0.0001) - RCT = 1.0- 0.0016* ( (TOPT - SFCTMP)**2.0) - -! ---------------------------------------------------------------------- -! CONTRIBUTION DUE TO VAPOR PRESSURE DEFICIT AT FIRST MODEL LEVEL. -! RCQ EXPRESSION FROM SSIB -! ---------------------------------------------------------------------- - RCT = MAX (RCT,0.0001) - RCQ = 1.0/ (1.0+ HS * (Q2SAT - Q2)) - -! ---------------------------------------------------------------------- -! CONTRIBUTION DUE TO SOIL MOISTURE AVAILABILITY. -! DETERMINE CONTRIBUTION FROM EACH SOIL LAYER, THEN ADD THEM UP. -! ---------------------------------------------------------------------- - RCQ = MAX (RCQ,0.01) - GX = (SMC (1) - SMCWLT) / (SMCREF - SMCWLT) - IF (GX > 1.) GX = 1. - IF (GX < 0.) GX = 0. - -! ---------------------------------------------------------------------- -! USE SOIL DEPTH AS WEIGHTING FACTOR -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR -! PART(1) = RTDIS(1) * GX -! ---------------------------------------------------------------------- - PART (1) = (ZSOIL (1)/ ZSOIL (NROOT)) * GX - DO K = 2,NROOT - GX = (SMC (K) - SMCWLT) / (SMCREF - SMCWLT) - IF (GX > 1.) GX = 1. - IF (GX < 0.) GX = 0. -! ---------------------------------------------------------------------- -! USE SOIL DEPTH AS WEIGHTING FACTOR -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! USE ROOT DISTRIBUTION AS WEIGHTING FACTOR -! PART(K) = RTDIS(K) * GX -! ---------------------------------------------------------------------- - PART (K) = ( (ZSOIL (K) - ZSOIL (K -1))/ ZSOIL (NROOT)) * GX - END DO - DO K = 1,NROOT - RCSOIL = RCSOIL + PART (K) - END DO - -! ---------------------------------------------------------------------- -! DETERMINE CANOPY RESISTANCE DUE TO ALL FACTORS. CONVERT CANOPY -! RESISTANCE (RC) TO PLANT COEFFICIENT (PC) TO BE USED WITH POTENTIAL -! EVAP IN DETERMINING ACTUAL EVAP. PC IS DETERMINED BY: -! PC * LINERIZED PENMAN POTENTIAL EVAP = -! PENMAN-MONTEITH ACTUAL EVAPORATION (CONTAINING RC TERM). -! ---------------------------------------------------------------------- - RCSOIL = MAX (RCSOIL,0.0001) - - RC = RSMIN / (XLAI * RCS * RCT * RCQ * RCSOIL) -! RR = (4.* SIGMA * RD / CP)* (SFCTMP **4.)/ (SFCPRS * CH) + 1.0 - RR = (4.* EMISSI *SIGMA * RD / CP)* (SFCTMP **4.)/ (SFCPRS * CH) & - + 1.0 - - DELTA = (SLV / CP)* DQSDT2 - - PC = (RR + DELTA)/ (RR * (1. + RC * CH) + DELTA) - -! ---------------------------------------------------------------------- - END SUBROUTINE CANRES -! ---------------------------------------------------------------------- - - SUBROUTINE CSNOW (SNCOND,DSNOW) - -! ---------------------------------------------------------------------- -! SUBROUTINE CSNOW -! FUNCTION CSNOW -! ---------------------------------------------------------------------- -! CALCULATE SNOW TERMAL CONDUCTIVITY -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: DSNOW - REAL, INTENT(OUT):: SNCOND - REAL :: C - REAL, PARAMETER :: UNIT = 0.11631 - -! ---------------------------------------------------------------------- -! SNCOND IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) -! CSNOW IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) -! BASIC VERSION IS DYACHKOVA EQUATION (1960), FOR RANGE 0.1-0.4 -! ---------------------------------------------------------------------- - C = 0.328*10** (2.25* DSNOW) -! CSNOW=UNIT*C - -! ---------------------------------------------------------------------- -! DE VAUX EQUATION (1933), IN RANGE 0.1-0.6 -! ---------------------------------------------------------------------- -! SNCOND=0.0293*(1.+100.*DSNOW**2) -! CSNOW=0.0293*(1.+100.*DSNOW**2) - -! ---------------------------------------------------------------------- -! E. ANDERSEN FROM FLERCHINGER -! ---------------------------------------------------------------------- -! SNCOND=0.021+2.51*DSNOW**2 -! CSNOW=0.021+2.51*DSNOW**2 - -! SNCOND = UNIT * C -! double snow thermal conductivity - SNCOND = 2.0 * UNIT * C - -! ---------------------------------------------------------------------- - END SUBROUTINE CSNOW -! ---------------------------------------------------------------------- - SUBROUTINE DEVAP (EDIR,ETP1,SMC,ZSOIL,SHDFAC,SMCMAX,BEXP, & - DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) - -! ---------------------------------------------------------------------- -! SUBROUTINE DEVAP -! FUNCTION DEVAP -! ---------------------------------------------------------------------- -! CALCULATE DIRECT SOIL EVAPORATION -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: ETP1,SMC,BEXP,DKSAT,DWSAT,FXEXP, & - SHDFAC,SMCDRY,SMCMAX,ZSOIL,SMCREF,SMCWLT - REAL, INTENT(OUT):: EDIR - REAL :: FX, SRATIO - - -! ---------------------------------------------------------------------- -! DIRECT EVAP A FUNCTION OF RELATIVE SOIL MOISTURE AVAILABILITY, LINEAR -! WHEN FXEXP=1. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! FX > 1 REPRESENTS DEMAND CONTROL -! FX < 1 REPRESENTS FLUX CONTROL -! ---------------------------------------------------------------------- - - SRATIO = (SMC - SMCDRY) / (SMCMAX - SMCDRY) - IF (SRATIO > 0.) THEN - FX = SRATIO**FXEXP - FX = MAX ( MIN ( FX, 1. ) ,0. ) - ELSE - FX = 0. - ENDIF - -! ---------------------------------------------------------------------- -! ALLOW FOR THE DIRECT-EVAP-REDUCING EFFECT OF SHADE -! ---------------------------------------------------------------------- - EDIR = FX * ( 1.0- SHDFAC ) * ETP1 - -! ---------------------------------------------------------------------- - END SUBROUTINE DEVAP - - SUBROUTINE DEVAP_hydro (EDIR,ETP1,SMC,ZSOIL,SHDFAC,SMCMAX,BEXP, & - DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP, & - SFHEAD1RT,ETPND1,DT) - -! ---------------------------------------------------------------------- -! SUBROUTINE DEVAP -! FUNCTION DEVAP -! ---------------------------------------------------------------------- -! CALCULATE DIRECT SOIL EVAPORATION -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: ETP1,SMC,BEXP,DKSAT,DWSAT,FXEXP, & - SHDFAC,SMCDRY,SMCMAX,ZSOIL,SMCREF,SMCWLT - REAL, INTENT(OUT):: EDIR - REAL :: FX, SRATIO - - REAL, INTENT(INOUT) :: SFHEAD1RT,ETPND1 - REAL, INTENT(IN ) :: DT - REAL :: EDIRTMP - - - -! ---------------------------------------------------------------------- -! DIRECT EVAP A FUNCTION OF RELATIVE SOIL MOISTURE AVAILABILITY, LINEAR -! WHEN FXEXP=1. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! FX > 1 REPRESENTS DEMAND CONTROL -! FX < 1 REPRESENTS FLUX CONTROL -! ---------------------------------------------------------------------- - - SRATIO = (SMC - SMCDRY) / (SMCMAX - SMCDRY) - IF (SRATIO > 0.) THEN - FX = SRATIO**FXEXP - FX = MAX ( MIN ( FX, 1. ) ,0. ) - ELSE - FX = 0. - ENDIF - -!DJG NDHMS/WRF-Hydro edits... Adjustment for ponded surface water : Reduce ETP1 - EDIRTMP = 0. - ETPND1 = 0. - -!DJG NDHMS/WRF-Hydro edits... Calc Max Potential Dir Evap. (ETP1 units: }=m/s) - -!DJG NDHMS/WRF-Hydro...currently set ponded water evap to 0.0 until further notice...11/5/2012 -!EDIRTMP = ( 1.0- SHDFAC ) * ETP1 - -! Convert all units to (m) -! Convert EDIRTMP from (kg m{-2} s{-1}=m/s) to (m) ... - EDIRTMP = EDIRTMP * DT - -!DJG NDHMS/WRF-Hydro edits... Convert SFHEAD from (mm) to (m) ... - SFHEAD1RT=SFHEAD1RT * 0.001 - - - -!DJG NDHMS/WRF-Hydro edits... Calculate ETPND as reduction in EDIR(TMP)... - IF (EDIRTMP > 0.) THEN - IF ( EDIRTMP > SFHEAD1RT ) THEN - ETPND1 = SFHEAD1RT - SFHEAD1RT=0. - EDIRTMP = EDIRTMP - ETPND1 - ELSE - ETPND1 = EDIRTMP - EDIRTMP = 0. - SFHEAD1RT = SFHEAD1RT - ETPND1 - END IF - END IF - -!DJG NDHMS/WRF-Hydro edits... Convert SFHEAD units back to (mm) - IF ( SFHEAD1RT /= 0.) SFHEAD1RT=SFHEAD1RT * 1000. - -!DJG NDHMS/WRF-Hydro edits...Convert ETPND and EDIRTMP back to (mm/s=kg m{-2} s{-1}) - ETPND1 = ETPND1 / DT - EDIRTMP = EDIRTMP / DT -!DEBUG print *, "After DEVAP...SFCHEAD+ETPND1",SFHEAD1RT+ETPND1*DT - - -! ---------------------------------------------------------------------- -! ALLOW FOR THE DIRECT-EVAP-REDUCING EFFECT OF SHADE -! ---------------------------------------------------------------------- -!DJG NDHMS/WRF-Hydro edits... -! EDIR = FX * ( 1.0- SHDFAC ) * ETP1 - EDIR = FX * EDIRTMP - - - - -! ---------------------------------------------------------------------- - END SUBROUTINE DEVAP_hydro -! ---------------------------------------------------------------------- - - SUBROUTINE EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & - SH2O, & - SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & - SMCREF,SHDFAC,CMCMAX, & - SMCDRY,CFACTR, & - EDIR,EC,ET,ETT,SFCTMP,Q2,NROOT,RTDIS,FXEXP, & - SFHEAD1RT,ETPND1) - -! ---------------------------------------------------------------------- -! SUBROUTINE EVAPO -! ---------------------------------------------------------------------- -! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER -! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH -! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. -! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND -! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL, NROOT - INTEGER :: I,K - REAL, INTENT(IN) :: BEXP, CFACTR,CMC,CMCMAX,DKSAT, & - DT,DWSAT,ETP1,FXEXP,PC,Q2,SFCTMP, & - SHDFAC,SMCDRY,SMCMAX,SMCREF,SMCWLT - REAL, INTENT(OUT) :: EC,EDIR,ETA1,ETT - REAL :: CMC2MS - REAL,DIMENSION(1:NSOIL), INTENT(IN) :: RTDIS, SMC, SH2O, ZSOIL - REAL,DIMENSION(1:NSOIL), INTENT(OUT) :: ET - - REAL, INTENT(INOUT) :: SFHEAD1RT,ETPND1 - -! ---------------------------------------------------------------------- -! EXECUTABLE CODE BEGINS HERE IF THE POTENTIAL EVAPOTRANSPIRATION IS -! GREATER THAN ZERO. -! ---------------------------------------------------------------------- - EDIR = 0. - EC = 0. - ETT = 0. - DO K = 1,NSOIL - ET (K) = 0. - END DO - -! ---------------------------------------------------------------------- -! RETRIEVE DIRECT EVAPORATION FROM SOIL SURFACE. CALL THIS FUNCTION -! ONLY IF VEG COVER NOT COMPLETE. -! FROZEN GROUND VERSION: SH2O STATES REPLACE SMC STATES. -! ---------------------------------------------------------------------- - IF (ETP1 > 0.0) THEN - IF (SHDFAC < 1.) THEN -#ifdef WRF_HYDRO -! CALL DEVAP_hydro (EDIR,ETP1,SMC (1),ZSOIL (1),SHDFAC,SMCMAX, & -! BEXP,DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP, & -! SFHEAD1RT,ETPND1,DT) -!DJG Reduce ETP1 by EDIR & ETPND1... -! ETP1=ETP1-EDIR-ETPND1 - -! following is the temparay setting ... - CALL DEVAP (EDIR,ETP1,SMC (1),ZSOIL (1),SHDFAC,SMCMAX, & - BEXP,DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) -! ETP1=ETP1-EDIR -#else - CALL DEVAP (EDIR,ETP1,SMC (1),ZSOIL (1),SHDFAC,SMCMAX, & - BEXP,DKSAT,DWSAT,SMCDRY,SMCREF,SMCWLT,FXEXP) -#endif - END IF -! ---------------------------------------------------------------------- -! INITIALIZE PLANT TOTAL TRANSPIRATION, RETRIEVE PLANT TRANSPIRATION, -! AND ACCUMULATE IT FOR ALL SOIL LAYERS. -! ---------------------------------------------------------------------- - - IF (SHDFAC > 0.0) THEN - CALL TRANSP (ET,NSOIL,ETP1,SH2O,CMC,ZSOIL,SHDFAC,SMCWLT, & - CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT,RTDIS) - DO K = 1,NSOIL - ETT = ETT + ET ( K ) - END DO -! ---------------------------------------------------------------------- -! CALCULATE CANOPY EVAPORATION. -! IF STATEMENTS TO AVOID TANGENT LINEAR PROBLEMS NEAR CMC=0.0. -! ---------------------------------------------------------------------- - IF (CMC > 0.0) THEN - EC = SHDFAC * ( ( CMC / CMCMAX ) ** CFACTR ) * ETP1 - ELSE - EC = 0.0 - END IF -! ---------------------------------------------------------------------- -! EC SHOULD BE LIMITED BY THE TOTAL AMOUNT OF AVAILABLE WATER ON THE -! CANOPY. -F.CHEN, 18-OCT-1994 -! ---------------------------------------------------------------------- - CMC2MS = CMC / DT - EC = MIN ( CMC2MS, EC ) - END IF - END IF -! ---------------------------------------------------------------------- -! TOTAL UP EVAP AND TRANSP TYPES TO OBTAIN ACTUAL EVAPOTRANSP -! ---------------------------------------------------------------------- - ETA1 = EDIR + ETT + EC - -! ---------------------------------------------------------------------- - END SUBROUTINE EVAPO -! ---------------------------------------------------------------------- - - SUBROUTINE FAC2MIT(SMCMAX,FLIMIT) - IMPLICIT NONE - REAL, INTENT(IN) :: SMCMAX - REAL, INTENT(OUT) :: FLIMIT - - FLIMIT = 0.90 - - IF ( SMCMAX == 0.395 ) THEN - FLIMIT = 0.59 - ELSE IF ( ( SMCMAX == 0.434 ) .OR. ( SMCMAX == 0.404 ) ) THEN - FLIMIT = 0.85 - ELSE IF ( ( SMCMAX == 0.465 ) .OR. ( SMCMAX == 0.406 ) ) THEN - FLIMIT = 0.86 - ELSE IF ( ( SMCMAX == 0.476 ) .OR. ( SMCMAX == 0.439 ) ) THEN - FLIMIT = 0.74 - ELSE IF ( ( SMCMAX == 0.200 ) .OR. ( SMCMAX == 0.464 ) ) THEN - FLIMIT = 0.80 - ENDIF - -! ---------------------------------------------------------------------- - END SUBROUTINE FAC2MIT -! ---------------------------------------------------------------------- - - SUBROUTINE FRH2O (FREE,TKELV,SMC,SH2O,SMCMAX,BEXP,PSIS) - -! ---------------------------------------------------------------------- -! SUBROUTINE FRH2O -! ---------------------------------------------------------------------- -! CALCULATE AMOUNT OF SUPERCOOLED LIQUID SOIL WATER CONTENT IF -! TEMPERATURE IS BELOW 273.15K (T0). REQUIRES NEWTON-TYPE ITERATION TO -! SOLVE THE NONLINEAR IMPLICIT EQUATION GIVEN IN EQN 17 OF KOREN ET AL -! (1999, JGR, VOL 104(D16), 19569-19585). -! ---------------------------------------------------------------------- -! NEW VERSION (JUNE 2001): MUCH FASTER AND MORE ACCURATE NEWTON -! ITERATION ACHIEVED BY FIRST TAKING LOG OF EQN CITED ABOVE -- LESS THAN -! 4 (TYPICALLY 1 OR 2) ITERATIONS ACHIEVES CONVERGENCE. ALSO, EXPLICIT -! 1-STEP SOLUTION OPTION FOR SPECIAL CASE OF PARAMETER CK=0, WHICH -! REDUCES THE ORIGINAL IMPLICIT EQUATION TO A SIMPLER EXPLICIT FORM, -! KNOWN AS THE "FLERCHINGER EQN". IMPROVED HANDLING OF SOLUTION IN THE -! LIMIT OF FREEZING POINT TEMPERATURE T0. -! ---------------------------------------------------------------------- -! INPUT: - -! TKELV.........TEMPERATURE (Kelvin) -! SMC...........TOTAL SOIL MOISTURE CONTENT (VOLUMETRIC) -! SH2O..........LIQUID SOIL MOISTURE CONTENT (VOLUMETRIC) -! SMCMAX........SATURATION SOIL MOISTURE CONTENT (FROM REDPRM) -! B.............SOIL TYPE "B" PARAMETER (FROM REDPRM) -! PSIS..........SATURATED SOIL MATRIC POTENTIAL (FROM REDPRM) - -! OUTPUT: -! FRH2O.........SUPERCOOLED LIQUID WATER CONTENT -! FREE..........SUPERCOOLED LIQUID WATER CONTENT -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: BEXP,PSIS,SH2O,SMC,SMCMAX,TKELV - REAL, INTENT(OUT) :: FREE - REAL :: BX,DENOM,DF,DSWL,FK,SWL,SWLK - INTEGER :: NLOG,KCOUNT -! PARAMETER(CK = 0.0) - REAL, PARAMETER :: CK = 8.0, BLIM = 5.5, ERROR = 0.005, & - HLICE = 3.335E5, GS = 9.81,DICE = 920.0, & - DH2O = 1000.0, T0 = 273.15 - -! ---------------------------------------------------------------------- -! LIMITS ON PARAMETER B: B < 5.5 (use parameter BLIM) -! SIMULATIONS SHOWED IF B > 5.5 UNFROZEN WATER CONTENT IS -! NON-REALISTICALLY HIGH AT VERY LOW TEMPERATURES. -! ---------------------------------------------------------------------- - BX = BEXP - -! ---------------------------------------------------------------------- -! INITIALIZING ITERATIONS COUNTER AND ITERATIVE SOLUTION FLAG. -! ---------------------------------------------------------------------- - IF (BEXP > BLIM) BX = BLIM - NLOG = 0 - -! ---------------------------------------------------------------------- -! IF TEMPERATURE NOT SIGNIFICANTLY BELOW FREEZING (T0), SH2O = SMC -! ---------------------------------------------------------------------- - KCOUNT = 0 -! FRH2O = SMC - IF (TKELV > (T0- 1.E-3)) THEN - FREE = SMC - ELSE - -! ---------------------------------------------------------------------- -! OPTION 1: ITERATED SOLUTION FOR NONZERO CK -! IN KOREN ET AL, JGR, 1999, EQN 17 -! ---------------------------------------------------------------------- -! INITIAL GUESS FOR SWL (frozen content) -! ---------------------------------------------------------------------- - IF (CK /= 0.0) THEN - SWL = SMC - SH2O -! ---------------------------------------------------------------------- -! KEEP WITHIN BOUNDS. -! ---------------------------------------------------------------------- - IF (SWL > (SMC -0.02)) SWL = SMC -0.02 - -! ---------------------------------------------------------------------- -! START OF ITERATIONS -! ---------------------------------------------------------------------- - IF (SWL < 0.) SWL = 0. - 1001 Continue - IF (.NOT.( (NLOG < 10) .AND. (KCOUNT == 0))) goto 1002 - NLOG = NLOG +1 - DF = ALOG ( ( PSIS * GS / HLICE ) * ( ( 1. + CK * SWL )**2.) * & - ( SMCMAX / (SMC - SWL) )** BX) - ALOG ( - ( & - TKELV - T0)/ TKELV) - DENOM = 2. * CK / ( 1. + CK * SWL ) + BX / ( SMC - SWL ) - SWLK = SWL - DF / DENOM -! ---------------------------------------------------------------------- -! BOUNDS USEFUL FOR MATHEMATICAL SOLUTION. -! ---------------------------------------------------------------------- - IF (SWLK > (SMC -0.02)) SWLK = SMC - 0.02 - IF (SWLK < 0.) SWLK = 0. - -! ---------------------------------------------------------------------- -! MATHEMATICAL SOLUTION BOUNDS APPLIED. -! ---------------------------------------------------------------------- - DSWL = ABS (SWLK - SWL) - -! ---------------------------------------------------------------------- -! IF MORE THAN 10 ITERATIONS, USE EXPLICIT METHOD (CK=0 APPROX.) -! WHEN DSWL LESS OR EQ. ERROR, NO MORE ITERATIONS REQUIRED. -! ---------------------------------------------------------------------- - SWL = SWLK - IF ( DSWL <= ERROR ) THEN - KCOUNT = KCOUNT +1 - END IF -! ---------------------------------------------------------------------- -! END OF ITERATIONS -! ---------------------------------------------------------------------- -! BOUNDS APPLIED WITHIN DO-BLOCK ARE VALID FOR PHYSICAL SOLUTION. -! ---------------------------------------------------------------------- -! FRH2O = SMC - SWL - goto 1001 - 1002 continue - FREE = SMC - SWL - END IF -! ---------------------------------------------------------------------- -! END OPTION 1 -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! OPTION 2: EXPLICIT SOLUTION FOR FLERCHINGER EQ. i.e. CK=0 -! IN KOREN ET AL., JGR, 1999, EQN 17 -! APPLY PHYSICAL BOUNDS TO FLERCHINGER SOLUTION -! ---------------------------------------------------------------------- - IF (KCOUNT == 0) THEN -! PRINT *,'Flerchinger USEd in NEW version. Iterations=',NLOG - FK = ( ( (HLICE / (GS * ( - PSIS)))* & - ( (TKELV - T0)/ TKELV))** ( -1/ BX))* SMCMAX -! FRH2O = MIN (FK, SMC) - IF (FK < 0.02) FK = 0.02 - FREE = MIN (FK, SMC) -! ---------------------------------------------------------------------- -! END OPTION 2 -! ---------------------------------------------------------------------- - END IF - END IF -! ---------------------------------------------------------------------- - END SUBROUTINE FRH2O -! ---------------------------------------------------------------------- - - SUBROUTINE HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1, & - TBOT,ZBOT,PSISAT,SH2O,DT,BEXP,SOILTYP,OPT_THCND, & - F1,DF1,QUARTZ,CSOIL,AI,BI,CI,VEGTYP,ISURBAN & - ,HCPCT_FASDAS ) !fasdas - -! ---------------------------------------------------------------------- -! SUBROUTINE HRT -! ---------------------------------------------------------------------- -! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL -! THERMAL DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX -! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. -! ---------------------------------------------------------------------- - IMPLICIT NONE - LOGICAL :: ITAVG - INTEGER, INTENT(IN) :: OPT_THCND - INTEGER, INTENT(IN) :: NSOIL, VEGTYP, SOILTYP - INTEGER, INTENT(IN) :: ISURBAN - INTEGER :: I, K - - REAL, INTENT(IN) :: BEXP, CSOIL, DF1, DT,F1,PSISAT,QUARTZ, & - SMCMAX ,TBOT,YY,ZZ1, ZBOT - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: SMC,STC,ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(INOUT):: SH2O - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: RHSTS - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: AI, BI,CI - REAL :: DDZ, DDZ2, DENOM, DF1N, DF1K, DTSDZ, & - DTSDZ2,HCPCT,QTOT,SSOIL,SICE,TAVG,TBK, & - TBK1,TSNSR,TSURF,CSOIL_LOC - REAL, PARAMETER :: T0 = 273.15, CAIR = 1004.0, CICE = 2.106E6,& - CH2O = 4.2E6 - -! -! FASDAS -! - REAL, INTENT( OUT) :: HCPCT_FASDAS -! -! END FASDAS -! - -!urban - IF( VEGTYP == ISURBAN ) then - CSOIL_LOC=3.0E6 - ELSE - CSOIL_LOC=CSOIL - ENDIF - -! ---------------------------------------------------------------------- -! INITIALIZE LOGICAL FOR SOIL LAYER TEMPERATURE AVERAGING. -! ---------------------------------------------------------------------- - ITAVG = .TRUE. -! ---------------------------------------------------------------------- -! BEGIN SECTION FOR TOP SOIL LAYER -! ---------------------------------------------------------------------- -! CALC THE HEAT CAPACITY OF THE TOP SOIL LAYER -! ---------------------------------------------------------------------- - HCPCT = SH2O (1)* CH2O + (1.0- SMCMAX)* CSOIL_LOC + (SMCMAX - SMC (1))& - * CAIR & - + ( SMC (1) - SH2O (1) )* CICE -! -! FASDAS -! - HCPCT_FASDAS = HCPCT -! -! END FASDAS -! -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER -! ---------------------------------------------------------------------- - DDZ = 1.0 / ( -0.5 * ZSOIL (2) ) - AI (1) = 0.0 - CI (1) = (DF1 * DDZ) / (ZSOIL (1) * HCPCT) - -! ---------------------------------------------------------------------- -! CALCULATE THE VERTICAL SOIL TEMP GRADIENT BTWN THE 1ST AND 2ND SOIL -! LAYERS. THEN CALCULATE THE SUBSURFACE HEAT FLUX. USE THE TEMP -! GRADIENT AND SUBSFC HEAT FLUX TO CALC "RIGHT-HAND SIDE TENDENCY -! TERMS", OR "RHSTS", FOR TOP SOIL LAYER. -! ---------------------------------------------------------------------- - BI (1) = - CI (1) + DF1 / (0.5 * ZSOIL (1) * ZSOIL (1)* HCPCT * & - ZZ1) - DTSDZ = (STC (1) - STC (2)) / ( -0.5 * ZSOIL (2)) - SSOIL = DF1 * (STC (1) - YY) / (0.5 * ZSOIL (1) * ZZ1) -! RHSTS(1) = (DF1 * DTSDZ - SSOIL) / (ZSOIL(1) * HCPCT) - DENOM = (ZSOIL (1) * HCPCT) - -! ---------------------------------------------------------------------- -! NEXT CAPTURE THE VERTICAL DIFFERENCE OF THE HEAT FLUX AT TOP AND -! BOTTOM OF FIRST SOIL LAYER FOR USE IN HEAT FLUX CONSTRAINT APPLIED TO -! POTENTIAL SOIL FREEZING/THAWING IN ROUTINE SNKSRC. -! ---------------------------------------------------------------------- -! QTOT = SSOIL - DF1*DTSDZ - RHSTS (1) = (DF1 * DTSDZ - SSOIL) / DENOM - -! ---------------------------------------------------------------------- -! CALCULATE FROZEN WATER CONTENT IN 1ST SOIL LAYER. -! ---------------------------------------------------------------------- - QTOT = -1.0* RHSTS (1)* DENOM - -! ---------------------------------------------------------------------- -! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): -! SET TEMP "TSURF" AT TOP OF SOIL COLUMN (FOR USE IN FREEZING SOIL -! PHYSICS LATER IN FUNCTION SUBROUTINE SNKSRC). IF SNOWPACK CONTENT IS -! ZERO, THEN TSURF EXPRESSION BELOW GIVES TSURF = SKIN TEMP. IF -! SNOWPACK IS NONZERO (HENCE ARGUMENT ZZ1=1), THEN TSURF EXPRESSION -! BELOW YIELDS SOIL COLUMN TOP TEMPERATURE UNDER SNOWPACK. THEN -! CALCULATE TEMPERATURE AT BOTTOM INTERFACE OF 1ST SOIL LAYER FOR USE -! LATER IN FUNCTION SUBROUTINE SNKSRC -! ---------------------------------------------------------------------- - SICE = SMC (1) - SH2O (1) - IF (ITAVG) THEN - TSURF = (YY + (ZZ1-1) * STC (1)) / ZZ1 -! ---------------------------------------------------------------------- -! IF FROZEN WATER PRESENT OR ANY OF LAYER-1 MID-POINT OR BOUNDING -! INTERFACE TEMPERATURES BELOW FREEZING, THEN CALL SNKSRC TO -! COMPUTE HEAT SOURCE/SINK (AND CHANGE IN FROZEN WATER CONTENT) -! DUE TO POSSIBLE SOIL WATER PHASE CHANGE -! ---------------------------------------------------------------------- - CALL TBND (STC (1),STC (2),ZSOIL,ZBOT,1,NSOIL,TBK) - IF ( (SICE > 0.) .OR. (STC (1) < T0) .OR. & - (TSURF < T0) .OR. (TBK < T0) ) THEN -! TSNSR = SNKSRC (TAVG,SMC(1),SH2O(1), - CALL TMPAVG (TAVG,TSURF,STC (1),TBK,ZSOIL,NSOIL,1) - CALL SNKSRC (TSNSR,TAVG,SMC (1),SH2O (1), & - ZSOIL,NSOIL,SMCMAX,PSISAT,BEXP,DT,1,QTOT) -! RHSTS(1) = RHSTS(1) - TSNSR / ( ZSOIL(1) * HCPCT ) - RHSTS (1) = RHSTS (1) - TSNSR / DENOM - END IF - ELSE -! TSNSR = SNKSRC (STC(1),SMC(1),SH2O(1), - IF ( (SICE > 0.) .OR. (STC (1) < T0) ) THEN - CALL SNKSRC (TSNSR,STC (1),SMC (1),SH2O (1), & - ZSOIL,NSOIL,SMCMAX,PSISAT,BEXP,DT,1,QTOT) -! RHSTS(1) = RHSTS(1) - TSNSR / ( ZSOIL(1) * HCPCT ) - RHSTS (1) = RHSTS (1) - TSNSR / DENOM - END IF -! ---------------------------------------------------------------------- -! THIS ENDS SECTION FOR TOP SOIL LAYER. -! ---------------------------------------------------------------------- - END IF - -! INITIALIZE DDZ2 -! ---------------------------------------------------------------------- - - DDZ2 = 0.0 - DF1K = DF1 - -! ---------------------------------------------------------------------- -! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS -! (EXCEPT SUBSFC OR "GROUND" HEAT FLUX NOT REPEATED IN LOWER LAYERS) -! ---------------------------------------------------------------------- -! CALCULATE HEAT CAPACITY FOR THIS SOIL LAYER. -! ---------------------------------------------------------------------- - DO K = 2,NSOIL - HCPCT = SH2O (K)* CH2O + (1.0- SMCMAX)* CSOIL_LOC + (SMCMAX - SMC ( & - K))* CAIR + ( SMC (K) - SH2O (K) )* CICE -! ---------------------------------------------------------------------- -! THIS SECTION FOR LAYER 2 OR GREATER, BUT NOT LAST LAYER. -! ---------------------------------------------------------------------- -! CALCULATE THERMAL DIFFUSIVITY FOR THIS LAYER. -! ---------------------------------------------------------------------- - IF (K /= NSOIL) THEN - -! ---------------------------------------------------------------------- -! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER -! ---------------------------------------------------------------------- - CALL TDFCND (DF1N,SMC (K),QUARTZ,SMCMAX,SH2O (K),BEXP, PSISAT, SOILTYP, OPT_THCND) - -!urban - IF ( VEGTYP == ISURBAN ) DF1N = 3.24 - - DENOM = 0.5 * ( ZSOIL (K -1) - ZSOIL (K +1) ) - -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT -! ---------------------------------------------------------------------- - DTSDZ2 = ( STC (K) - STC (K +1) ) / DENOM - DDZ2 = 2. / (ZSOIL (K -1) - ZSOIL (K +1)) - -! ---------------------------------------------------------------------- -! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE -! TEMP AT BOTTOM OF LAYER. -! ---------------------------------------------------------------------- - CI (K) = - DF1N * DDZ2 / ( (ZSOIL (K -1) - ZSOIL (K)) * & - HCPCT) - IF (ITAVG) THEN - CALL TBND (STC (K),STC (K +1),ZSOIL,ZBOT,K,NSOIL,TBK1) - END IF - - ELSE -! ---------------------------------------------------------------------- -! SPECIAL CASE OF BOTTOM SOIL LAYER: CALCULATE THERMAL DIFFUSIVITY FOR -! BOTTOM LAYER. -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! CALC THE VERTICAL SOIL TEMP GRADIENT THRU BOTTOM LAYER. -! ---------------------------------------------------------------------- - CALL TDFCND (DF1N,SMC (K),QUARTZ,SMCMAX,SH2O (K),BEXP, PSISAT, SOILTYP, OPT_THCND) - - -!urban - IF ( VEGTYP == ISURBAN ) DF1N = 3.24 - - DENOM = .5 * (ZSOIL (K -1) + ZSOIL (K)) - ZBOT - -! ---------------------------------------------------------------------- -! SET MATRIX COEF, CI TO ZERO IF BOTTOM LAYER. -! ---------------------------------------------------------------------- - DTSDZ2 = (STC (K) - TBOT) / DENOM - -! ---------------------------------------------------------------------- -! IF TEMPERATURE AVERAGING INVOKED (ITAVG=TRUE; ELSE SKIP): CALCULATE -! TEMP AT BOTTOM OF LAST LAYER. -! ---------------------------------------------------------------------- - CI (K) = 0. - IF (ITAVG) THEN - CALL TBND (STC (K),TBOT,ZSOIL,ZBOT,K,NSOIL,TBK1) - END IF -! ---------------------------------------------------------------------- -! THIS ENDS SPECIAL LOOP FOR BOTTOM LAYER. - END IF -! ---------------------------------------------------------------------- -! CALCULATE RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. -! ---------------------------------------------------------------------- - DENOM = ( ZSOIL (K) - ZSOIL (K -1) ) * HCPCT - RHSTS (K) = ( DF1N * DTSDZ2- DF1K * DTSDZ ) / DENOM - QTOT = -1.0* DENOM * RHSTS (K) - - SICE = SMC (K) - SH2O (K) - IF (ITAVG) THEN - CALL TMPAVG (TAVG,TBK,STC (K),TBK1,ZSOIL,NSOIL,K) -! TSNSR = SNKSRC(TAVG,SMC(K),SH2O(K),ZSOIL,NSOIL, - IF ( (SICE > 0.) .OR. (STC (K) < T0) .OR. & - (TBK .lt. T0) .OR. (TBK1 .lt. T0) ) THEN - CALL SNKSRC (TSNSR,TAVG,SMC (K),SH2O (K),ZSOIL,NSOIL, & - SMCMAX,PSISAT,BEXP,DT,K,QTOT) - RHSTS (K) = RHSTS (K) - TSNSR / DENOM - END IF - ELSE -! TSNSR = SNKSRC(STC(K),SMC(K),SH2O(K),ZSOIL,NSOIL, - IF ( (SICE > 0.) .OR. (STC (K) < T0) ) THEN - CALL SNKSRC (TSNSR,STC (K),SMC (K),SH2O (K),ZSOIL,NSOIL, & - SMCMAX,PSISAT,BEXP,DT,K,QTOT) - RHSTS (K) = RHSTS (K) - TSNSR / DENOM - END IF - END IF - -! ---------------------------------------------------------------------- -! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. -! ---------------------------------------------------------------------- - AI (K) = - DF1K * DDZ / ( (ZSOIL (K -1) - ZSOIL (K)) * HCPCT) - -! ---------------------------------------------------------------------- -! RESET VALUES OF DF1, DTSDZ, DDZ, AND TBK FOR LOOP TO NEXT SOIL LAYER. -! ---------------------------------------------------------------------- - BI (K) = - (AI (K) + CI (K)) - TBK = TBK1 - DF1K = DF1N - DTSDZ = DTSDZ2 - DDZ = DDZ2 - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE HRT -! ---------------------------------------------------------------------- - - SUBROUTINE HSTEP (STCOUT,STCIN,RHSTS,DT,NSOIL,AI,BI,CI) - -! ---------------------------------------------------------------------- -! SUBROUTINE HSTEP -! ---------------------------------------------------------------------- -! CALCULATE/UPDATE THE SOIL TEMPERATURE FIELD. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: K - - REAL, DIMENSION(1:NSOIL), INTENT(IN):: STCIN - REAL, DIMENSION(1:NSOIL), INTENT(OUT):: STCOUT - REAL, DIMENSION(1:NSOIL), INTENT(INOUT):: RHSTS - REAL, DIMENSION(1:NSOIL), INTENT(INOUT):: AI,BI,CI - REAL, DIMENSION(1:NSOIL) :: RHSTSin - REAL, DIMENSION(1:NSOIL) :: CIin - REAL :: DT - -! ---------------------------------------------------------------------- -! CREATE FINITE DIFFERENCE VALUES FOR USE IN ROSR12 ROUTINE -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTS (K) = RHSTS (K) * DT - AI (K) = AI (K) * DT - BI (K) = 1. + BI (K) * DT - CI (K) = CI (K) * DT - END DO -! ---------------------------------------------------------------------- -! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTSin (K) = RHSTS (K) - END DO - DO K = 1,NSOIL - CIin (K) = CI (K) - END DO -! ---------------------------------------------------------------------- -! SOLVE THE TRI-DIAGONAL MATRIX EQUATION -! ---------------------------------------------------------------------- - CALL ROSR12 (CI,AI,BI,CIin,RHSTSin,RHSTS,NSOIL) -! ---------------------------------------------------------------------- -! CALC/UPDATE THE SOIL TEMPS USING MATRIX SOLUTION -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - STCOUT (K) = STCIN (K) + CI (K) - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE HSTEP -! ---------------------------------------------------------------------- - - SUBROUTINE NOPAC (ETP,ETA,PRCP,SMC,SMCMAX,SMCWLT, & - SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT,SHDFAC, & - SBETA,Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,EMISSI, & - SSOIL, & - STC,EPSCA,BEXP,PC,RCH,RR,CFACTR, & - SH2O,SLOPE,KDT,FRZFACT,PSISAT,ZSOIL, & - DKSAT,DWSAT,TBOT,ZBOT,RUNOFF1,RUNOFF2, & - RUNOFF3,EDIR,EC,ET,ETT,NROOT,RTDIS, & - QUARTZ,FXEXP,CSOIL, & - BETA,DRIP,DEW,FLX1,FLX3,VEGTYP,ISURBAN, & - SFHEAD1RT,INFXS1RT,ETPND1,SOILTYP,OPT_THCND & - ,XSDA_QFX,QFX_PHY,XQNORM,fasdas,HCPCT_FASDAS, & - SIGMA,CPH2O) !fasdas - -! ---------------------------------------------------------------------- -! SUBROUTINE NOPAC -! ---------------------------------------------------------------------- -! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES AND UPDATE SOIL MOISTURE -! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN NO SNOW PACK IS -! PRESENT. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: OPT_THCND - INTEGER, INTENT(IN) :: NROOT,NSOIL,VEGTYP,SOILTYP - INTEGER, INTENT(IN) :: ISURBAN - INTEGER :: K - - REAL, INTENT(IN) :: BEXP,CFACTR, CMCMAX,CSOIL,DKSAT,DT,DWSAT, & - EPSCA,ETP,FDOWN,F1,FXEXP,FRZFACT,KDT,PC, & - PRCP,PSISAT,Q2,QUARTZ,RCH,RR,SBETA,SFCTMP,& - SHDFAC,SLOPE,SMCDRY,SMCMAX,SMCREF,SMCWLT, & - T24,TBOT,TH2,ZBOT,EMISSI,SIGMA,CPH2O - REAL, INTENT(INOUT) :: CMC,BETA,T1 - REAL, INTENT(OUT) :: DEW,DRIP,EC,EDIR,ETA,ETT,FLX1,FLX3, & - RUNOFF1,RUNOFF2,RUNOFF3,SSOIL -!DJG NDHMS/WRF-Hydro edit... - REAL, INTENT(INOUT) :: SFHEAD1RT,INFXS1RT,ETPND1 - - REAL, DIMENSION(1:NSOIL),INTENT(IN) :: RTDIS,ZSOIL - REAL, DIMENSION(1:NSOIL),INTENT(OUT) :: ET - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: SMC,SH2O,STC - REAL, DIMENSION(1:NSOIL) :: ET1 - REAL :: EC1,EDIR1,ETT1,DF1,ETA1,ETP1,PRCP1,YY, & - YYNUM,ZZ1 -! -! FASDAS -! - REAL :: XSDA_QFX, QFX_PHY, XQNORM - INTEGER :: fasdas - REAL , DIMENSION(1:NSOIL) :: EFT(NSOIL), wetty(1:NSOIL) - REAL :: EFDIR, EFC, EALL_now - REAL, INTENT( OUT) :: HCPCT_FASDAS -! -! END FASDAS -! -! ---------------------------------------------------------------------- -! EXECUTABLE CODE BEGINS HERE: -! CONVERT ETP Fnd PRCP FROM KG M-2 S-1 TO M S-1 AND INITIALIZE DEW. -! ---------------------------------------------------------------------- - PRCP1 = PRCP * 0.001 - ETP1 = ETP * 0.001 - DEW = 0.0 -! ---------------------------------------------------------------------- -! INITIALIZE EVAP TERMS. -! ---------------------------------------------------------------------- -! -! FASDAS -! - QFX_PHY = 0.0 -! -! END FASDAS -! - EDIR = 0. - EDIR1 = 0. - EC1 = 0. - EC = 0. - DO K = 1,NSOIL - ET(K) = 0. - ET1(K) = 0. -! -! FASDAS -! - wetty(K) = 1.0 -! -! END FASDAS -! - END DO - ETT = 0. - ETT1 = 0. - -!DJG NDHMS/WRF-Hydro edit... - ETPND1 = 0. - - - IF (ETP > 0.0) THEN - CALL EVAPO (ETA1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & - SH2O, & - SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & - SMCREF,SHDFAC,CMCMAX, & - SMCDRY,CFACTR, & - EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS,FXEXP, & - SFHEAD1RT,ETPND1 ) -! -! FASDAS -! - IF( fasdas == 1 ) THEN - DO K=1,NSOIL - QFX_PHY = QFX_PHY + ET1(K) ! m/s -! dont add moisture fluxes if soil moisture is = or > smcref - IF(SMC(K).GE.SMCREF.and.XSDA_QFX.gt.0.0) wetty(K)=0.0 - END DO - QFX_PHY = EDIR1+EC1+QFX_PHY ! m/s - EALL_now = QFX_PHY ! m/s - QFX_PHY = QFX_PHY*1000.0 ! Kg/m2/s - - if(EALL_now.ne.0.0) then - EFDIR = (EDIR1/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - EFDIR = EFDIR * wetty(1) - !TWG2015 Bugfix Flip Sign to conform to Net upward Flux - EDIR1 = EDIR1 + EFDIR ! new value - - EFC = (EC1/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - !TWG2015 Bugfix Flip Sign to conform to Net upward Flux - EC1 = EC1 + EFC ! new value - - - DO K=1,NSOIL - EFT(K) = (ET1(K)/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - EFT(K) = EFT(K) * wetty(K) - !TWG2015 Bugfix Flip Sign to conform to Net upward Flux - ET1(K) = ET1(K) + EFT(K) ! new value - END DO - - - END IF ! for non-zero eall_now - ELSE - QFX_PHY = 0.0 - ENDIF -! -! END FASDAS -! - CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & - SH2O,SLOPE,KDT,FRZFACT, & - SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & - SHDFAC,CMCMAX, & - RUNOFF1,RUNOFF2,RUNOFF3, & - EDIR1,EC1,ET1, & - DRIP, SFHEAD1RT,INFXS1RT) - -! ---------------------------------------------------------------------- -! CONVERT MODELED EVAPOTRANSPIRATION FROM M S-1 TO KG M-2 S-1. -! ---------------------------------------------------------------------- - - ETA = ETA1 * 1000.0 - -! ---------------------------------------------------------------------- -! IF ETP < 0, ASSUME DEW FORMS (TRANSFORM ETP1 INTO DEW AND REINITIALIZE -! ETP1 TO ZERO). -! ---------------------------------------------------------------------- - ELSE - DEW = - ETP1 - -! ---------------------------------------------------------------------- -! CONVERT PRCP FROM 'KG M-2 S-1' TO 'M S-1' AND ADD DEW AMOUNT. -! ---------------------------------------------------------------------- - - PRCP1 = PRCP1+ DEW -! -! FASDAS -! - IF( fasdas == 1 ) THEN - DO K=1,NSOIL - QFX_PHY = QFX_PHY + ET1(K) ! m/s -! dont add moisture fluxes if soil moisture is = or > smcref - IF(SMC(K).GE.SMCREF.and.XSDA_QFX.gt.0.0) wetty(K)=0.0 - END DO - QFX_PHY = EDIR1+EC1+QFX_PHY ! m/s - EALL_now = QFX_PHY ! m/s - QFX_PHY = QFX_PHY*1000.0 ! Kg/m2/s - - IF(EALL_now.ne.0.0) then - EFDIR = (EDIR1/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - EFDIR = EFDIR * wetty(1) - !TWG2015 Bugfix Flip Sign to conform to Net Upward Flux - EDIR1 = EDIR1 + EFDIR ! new value - - EFC = (EC1/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - !TWG2015 Bugfix Flip Sign to conform to Net Upward Flux - EC1 = EC1+ EFC ! new value - - DO K=1,NSOIL - EFT(K) = (ET1(K)/EALL_now)*XSDA_QFX*1.0E-03*XQNORM - EFT(K) = EFT(K) * wetty(K) - !TWG2015 Bugfix Flip Sign to conform to Net Upward Flux - ET1(K) = ET1(K) + EFT(K) ! new value - END DO - - END IF ! for non-zero eall_now - ELSE - QFX_PHY = 0.0 - ENDIF -! -! END FASDAS -! - CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & - SH2O,SLOPE,KDT,FRZFACT, & - SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & - SHDFAC,CMCMAX, & - RUNOFF1,RUNOFF2,RUNOFF3, & - EDIR1,EC1,ET1, & - DRIP, SFHEAD1RT,INFXS1RT) - -! ---------------------------------------------------------------------- -! CONVERT MODELED EVAPOTRANSPIRATION FROM 'M S-1' TO 'KG M-2 S-1'. -! ---------------------------------------------------------------------- -! ETA = ETA1 * 1000.0 - END IF - -! ---------------------------------------------------------------------- -! BASED ON ETP AND E VALUES, DETERMINE BETA -! ---------------------------------------------------------------------- - - IF ( ETP <= 0.0 ) THEN - BETA = 0.0 - ETA = ETP - IF ( ETP < 0.0 ) THEN - BETA = 1.0 - END IF - ELSE - BETA = ETA / ETP - END IF - -! ---------------------------------------------------------------------- -! CONVERT MODELED EVAPOTRANSPIRATION COMPONENTS 'M S-1' TO 'KG M-2 S-1'. -! ---------------------------------------------------------------------- - EDIR = EDIR1*1000. - EC = EC1*1000. - DO K = 1,NSOIL - ET(K) = ET1(K)*1000. - END DO - ETT = ETT1*1000. - -! ---------------------------------------------------------------------- -! GET SOIL THERMAL DIFFUXIVITY/CONDUCTIVITY FOR TOP SOIL LYR, -! CALC. ADJUSTED TOP LYR SOIL TEMP AND ADJUSTED SOIL FLUX, THEN -! CALL SHFLX TO COMPUTE/UPDATE SOIL HEAT FLUX AND SOIL TEMPS. -! ---------------------------------------------------------------------- - - CALL TDFCND (DF1,SMC (1),QUARTZ,SMCMAX,SH2O (1),BEXP, PSISAT, SOILTYP, OPT_THCND) - -!urban - IF ( VEGTYP == ISURBAN ) DF1=3.24 -! - -! ---------------------------------------------------------------------- -! VEGETATION GREENNESS FRACTION REDUCTION IN SUBSURFACE HEAT FLUX -! VIA REDUCTION FACTOR, WHICH IS CONVENIENT TO APPLY HERE TO THERMAL -! DIFFUSIVITY THAT IS LATER USED IN HRT TO COMPUTE SUB SFC HEAT FLUX -! (SEE ADDITIONAL COMMENTS ON VEG EFFECT SUB-SFC HEAT FLX IN -! ROUTINE SFLX) -! ---------------------------------------------------------------------- - DF1 = DF1 * EXP (SBETA * SHDFAC) -! ---------------------------------------------------------------------- -! COMPUTE INTERMEDIATE TERMS PASSED TO ROUTINE HRT (VIA ROUTINE -! SHFLX BELOW) FOR USE IN COMPUTING SUBSURFACE HEAT FLUX IN HRT -! ---------------------------------------------------------------------- - YYNUM = FDOWN - EMISSI*SIGMA * T24 - YY = SFCTMP + (YYNUM / RCH + TH2- SFCTMP - BETA * EPSCA) / RR - - ZZ1 = DF1 / ( -0.5 * ZSOIL (1) * RCH * RR ) + 1.0 -!urban - CALL SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & - TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1, & - QUARTZ,CSOIL,VEGTYP,ISURBAN,SOILTYP,OPT_THCND & - ,HCPCT_FASDAS ) !fasdas - -! ---------------------------------------------------------------------- -! SET FLX1 AND FLX3 (SNOPACK PHASE CHANGE HEAT FLUXES) TO ZERO SINCE -! THEY ARE NOT USED HERE IN SNOPAC. FLX2 (FREEZING RAIN HEAT FLUX) WAS -! SIMILARLY INITIALIZED IN THE PENMAN ROUTINE. -! ---------------------------------------------------------------------- - FLX1 = CPH2O * PRCP * (T1- SFCTMP) - FLX3 = 0.0 - -! ---------------------------------------------------------------------- - END SUBROUTINE NOPAC -! ---------------------------------------------------------------------- - - SUBROUTINE PENMAN (SFCTMP,SFCPRS,CH,T2V,TH2,PRCP,FDOWN,T24,SSOIL, & - & Q2,Q2SAT,ETP,RCH,EPSCA,RR,SNOWNG,FRZGRA, & - & DQSDT2,FLX2,EMISSI_IN,SNEQV,T1,SNCOVR,AOASIS, & - & ALBEDO,SOLDN,FVB,GAMA,STC1,ETPN,FLX4,UA_PHYS, & - & CP,RD,SIGMA,CPH2O,CPICE,LSUBF) - -! ---------------------------------------------------------------------- -! SUBROUTINE PENMAN -! ---------------------------------------------------------------------- -! CALCULATE POTENTIAL EVAPORATION FOR THE CURRENT POINT. VARIOUS -! PARTIAL SUMS/PRODUCTS ARE ALSO CALCULATED AND PASSED BACK TO THE -! CALLING ROUTINE FOR LATER USE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - LOGICAL, INTENT(IN) :: SNOWNG, FRZGRA - REAL, INTENT(IN) :: CH, DQSDT2,FDOWN,PRCP, & - Q2, Q2SAT,SSOIL, SFCPRS, SFCTMP, & - T2V, TH2,EMISSI_IN,SNEQV,AOASIS, & - CP, RD, SIGMA, CPH2O, CPICE, LSUBF - REAL, INTENT(IN) :: T1 , SNCOVR - REAL, INTENT(IN) :: ALBEDO,SOLDN,FVB,GAMA,STC1 - LOGICAL, INTENT(IN) :: UA_PHYS -! - REAL, INTENT(OUT) :: EPSCA,ETP,FLX2,RCH,RR,T24 - REAL, INTENT(OUT) :: FLX4,ETPN - REAL :: A, DELTA, FNET,RAD,RHO,EMISSI,ELCP1,LVS - REAL :: TOTABS,UCABS,SIGNCK,FNETN,RADN,EPSCAN - - REAL, PARAMETER :: ELCP = 2.4888E+3, LSUBC = 2.501000E+6 - REAL, PARAMETER :: LSUBS = 2.83E+6 - REAL, PARAMETER :: ALGDSN = 0.5, ALVGSN = 0.13 - -! ---------------------------------------------------------------------- -! EXECUTABLE CODE BEGINS HERE: -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! PREPARE PARTIAL QUANTITIES FOR PENMAN EQUATION. -! ---------------------------------------------------------------------- - EMISSI=EMISSI_IN - ELCP1 = (1.0-SNCOVR)*ELCP + SNCOVR*ELCP*LSUBS/LSUBC - LVS = (1.0-SNCOVR)*LSUBC + SNCOVR*LSUBS - - FLX2 = 0.0 -! DELTA = ELCP * DQSDT2 - DELTA = ELCP1 * DQSDT2 - T24 = SFCTMP * SFCTMP * SFCTMP * SFCTMP -! RR = T24 * 6.48E-8 / (SFCPRS * CH) + 1.0 - RR = EMISSI*T24 * 6.48E-8 / (SFCPRS * CH) + 1.0 - RHO = SFCPRS / (RD * T2V) - -! ---------------------------------------------------------------------- -! ADJUST THE PARTIAL SUMS / PRODUCTS WITH THE LATENT HEAT -! EFFECTS CAUSED BY FALLING PRECIPITATION. -! ---------------------------------------------------------------------- - RCH = RHO * CP * CH - IF (.NOT. SNOWNG) THEN - IF (PRCP > 0.0) RR = RR + CPH2O * PRCP / RCH - ELSE - RR = RR + CPICE * PRCP / RCH - END IF - -! ---------------------------------------------------------------------- -! INCLUDE THE LATENT HEAT EFFECTS OF FRZNG RAIN CONVERTING TO ICE ON -! IMPACT IN THE CALCULATION OF FLX2 AND FNET. -! ---------------------------------------------------------------------- -! FNET = FDOWN - SIGMA * T24- SSOIL - FNET = FDOWN - EMISSI*SIGMA * T24- SSOIL - - FLX4 = 0.0 - IF(UA_PHYS) THEN - IF(SNEQV > 0. .AND. FNET > 0. .AND. SOLDN > 0. ) THEN - TOTABS = (1.-ALBEDO)*SOLDN*FVB ! solar radiation absorbed - ! by vegetated fraction - UCABS = MIN(TOTABS,((1.0-ALGDSN)*(1.0-ALVGSN)*SOLDN*GAMA)*FVB) -! print*,'penman',UCABS,TOTABS,SOLDN,GAMA,FVB -! UCABS = MIN(TOTABS,(0.44*SOLDN*GAMA)*FVB) - ! UCABS -> solar radiation - ! absorbed under canopy - FLX4 = MIN(TOTABS - UCABS, MIN(250., 0.5*(1.-ALBEDO)*SOLDN)) - ENDIF - - SIGNCK = (STC1-273.15)*(SFCTMP-273.15) - - IF(FLX4 > 0. .AND. (SIGNCK <= 0. .OR. STC1 < 273.15)) THEN - IF(FNET >= FLX4) THEN - FNETN = FNET - FLX4 - ELSE - FLX4 = FNET - FNETN = 0. - ENDIF - ELSE - FLX4 = 0.0 - FNETN = 0. - ENDIF - ENDIF - - IF (FRZGRA) THEN - FLX2 = - LSUBF * PRCP - FNET = FNET - FLX2 - IF(UA_PHYS) FNETN = FNETN - FLX2 -! ---------------------------------------------------------------------- -! FINISH PENMAN EQUATION CALCULATIONS. -! ---------------------------------------------------------------------- - END IF - RAD = FNET / RCH + TH2- SFCTMP -! A = ELCP * (Q2SAT - Q2) - A = ELCP1 * (Q2SAT - Q2) - EPSCA = (A * RR + RAD * DELTA) / (DELTA + RR) -! Fei-Mike - IF (EPSCA>0.) EPSCA = EPSCA * AOASIS -! ETP = EPSCA * RCH / LSUBC - ETP = EPSCA * RCH / LVS - - IF(UA_PHYS) THEN - RADN = FNETN / RCH + TH2- SFCTMP - EPSCAN = (A * RR + RADN * DELTA) / (DELTA + RR) - ETPN = EPSCAN * RCH / LVS - END IF -! ---------------------------------------------------------------------- - END SUBROUTINE PENMAN -! ---------------------------------------------------------------------- - - SUBROUTINE REDPRM (VEGTYP,SOILTYP,SLOPETYP,CFACTR,CMCMAX,RSMAX, & - TOPT, & - REFKDT,KDT,SBETA, SHDFAC,RSMIN,RGL,HS,ZBOT,FRZX, & - PSISAT,SLOPE,SNUP,SALP,BEXP,DKSAT,DWSAT, & - SMCMAX,SMCWLT,SMCREF,SMCDRY,F1,QUARTZ,FXEXP, & - RTDIS,SLDPTH,ZSOIL, NROOT,NSOIL,CZIL, & - LAIMIN, LAIMAX, EMISSMIN, EMISSMAX, ALBEDOMIN, & - ALBEDOMAX, Z0MIN, Z0MAX, CSOIL, PTU, LLANDUSE, & - LSOIL, LOCAL,LVCOEF,ZTOPV,ZBOTV,errmsg,errflg) - - IMPLICIT NONE -! ---------------------------------------------------------------------- -! Internally set (default valuess) -! all soil and vegetation parameters required for the execusion oF -! the Noah lsm are defined in VEGPARM.TBL, SOILPARM.TB, and GENPARM.TBL. -! ---------------------------------------------------------------------- -! Vegetation parameters: -! ALBBRD: SFC background snow-free albedo -! CMXTBL: MAX CNPY Capacity -! Z0BRD: Background roughness length -! SHDFAC: Green vegetation fraction -! NROOT: Rooting depth -! RSMIN: Mimimum stomatal resistance -! RSMAX: Max. stomatal resistance -! RGL: Parameters used in radiation stress function -! HS: Parameter used in vapor pressure deficit functio -! TOPT: Optimum transpiration air temperature. -! CMCMAX: Maximum canopy water capacity -! CFACTR: Parameter used in the canopy inteception calculation -! SNUP: Threshold snow depth (in water equivalent m) that -! implies 100 percent snow cover -! LAI: Leaf area index -! -! ---------------------------------------------------------------------- -! Soil parameters: -! SMCMAX: MAX soil moisture content (porosity) -! SMCREF: Reference soil moisture (field capacity) -! SMCWLT: Wilting point soil moisture -! SMCWLT: Air dry soil moist content limits -! SSATPSI: SAT (saturation) soil potential -! DKSAT: SAT soil conductivity -! BEXP: B parameter -! SSATDW: SAT soil diffusivity -! F1: Soil thermal diffusivity/conductivity coef. -! QUARTZ: Soil quartz content -! Modified by F. Chen (12/22/97) to use the STATSGO soil map -! Modified By F. Chen (01/22/00) to include PLaya, Lava, and White San -! Modified By F. Chen (08/05/02) to include additional parameters for the Noah -! NOTE: SATDW = BB*SATDK*(SATPSI/MAXSMC) -! F11 = ALOG10(SATPSI) + BB*ALOG10(MAXSMC) + 2.0 -! REFSMC1=MAXSMC*(5.79E-9/SATDK)**(1/(2*BB+3)) 5.79E-9 m/s= 0.5 mm -! REFSMC=REFSMC1+1./3.(MAXSMC-REFSMC1) -! WLTSMC1=MAXSMC*(200./SATPSI)**(-1./BB) (Wetzel and Chang, 198 -! WLTSMC=WLTSMC1-0.5*WLTSMC1 -! Note: the values for playa is set for it to have a thermal conductivit -! as sand and to have a hydrulic conductivity as clay -! -! ---------------------------------------------------------------------- -! Class parameter 'SLOPETYP' was included to estimate linear reservoir -! coefficient 'SLOPE' to the baseflow runoff out of the bottom layer. -! lowest class (slopetyp=0) means highest slope parameter = 1. -! definition of slopetyp from 'zobler' slope type: -! slope class percent slope -! 1 0-8 -! 2 8-30 -! 3 > 30 -! 4 0-30 -! 5 0-8 & > 30 -! 6 8-30 & > 30 -! 7 0-8, 8-30, > 30 -! 9 GLACIAL ICE -! BLANK OCEAN/SEA -! SLOPE_DATA: linear reservoir coefficient -! SBETA_DATA: parameter used to caluculate vegetation effect on soil heat -! FXEXP_DAT: soil evaporation exponent used in DEVAP -! CSOIL_DATA: soil heat capacity [J M-3 K-1] -! SALP_DATA: shape parameter of distribution function of snow cover -! REFDK_DATA and REFKDT_DATA: parameters in the surface runoff parameteriz -! FRZK_DATA: frozen ground parameter -! ZBOT_DATA: depth[M] of lower boundary soil temperature -! CZIL_DATA: calculate roughness length of heat -! SMLOW_DATA and MHIGH_DATA: two soil moisture wilt, soil moisture referen -! parameters -! Set maximum number of soil-, veg-, and slopetyp in data statement. -! ---------------------------------------------------------------------- - INTEGER, PARAMETER :: MAX_SLOPETYP=30,MAX_SOILTYP=30,MAX_VEGTYP=30 - LOGICAL :: LOCAL - CHARACTER (LEN=256), INTENT(IN):: LLANDUSE, LSOIL - -! Veg parameters - INTEGER, INTENT(IN) :: VEGTYP - INTEGER, INTENT(OUT) :: NROOT - REAL, INTENT(INOUT) :: SHDFAC - REAL, INTENT(OUT) :: HS,RSMIN,RGL,SNUP, & - CMCMAX,RSMAX,TOPT, & - EMISSMIN, EMISSMAX, & - LAIMIN, LAIMAX, & - Z0MIN, Z0MAX, & - ALBEDOMIN, ALBEDOMAX, ZTOPV, ZBOTV -! Soil parameters - INTEGER, INTENT(IN) :: SOILTYP - REAL, INTENT(OUT) :: BEXP,DKSAT,DWSAT,F1,QUARTZ,SMCDRY, & - SMCMAX,SMCREF,SMCWLT,PSISAT -! General parameters - INTEGER, INTENT(IN) :: SLOPETYP,NSOIL - INTEGER :: I - - REAL, INTENT(OUT) :: SLOPE,CZIL,SBETA,FXEXP, & - CSOIL,SALP,FRZX,KDT,CFACTR, & - ZBOT,REFKDT,PTU - REAL, INTENT(OUT) :: LVCOEF - REAL,DIMENSION(1:NSOIL),INTENT(IN) :: SLDPTH,ZSOIL - REAL,DIMENSION(1:NSOIL),INTENT(OUT):: RTDIS - REAL :: FRZFACT,FRZK,REFDK - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - CHARACTER*256 :: err_message - errmsg = '' - errflg = 0 - -! SAVE -! ---------------------------------------------------------------------- -! - IF (SOILTYP .gt. SLCATS) THEN - errflg = 1 - errmsg = 'Warning: too many input soil types' - return - END IF - IF (VEGTYP .gt. LUCATS) THEN - errflg = 1 - errmsg = 'Warning: too many input landuse types' - return - END IF - IF (SLOPETYP .gt. SLPCATS) THEN - errflg = 1 - errmsg = 'Warning: too many input slope types' - return - END IF - -! ---------------------------------------------------------------------- -! SET-UP SOIL PARAMETERS -! ---------------------------------------------------------------------- - CSOIL = CSOIL_DATA - BEXP = BB (SOILTYP) - DKSAT = SATDK (SOILTYP) - DWSAT = SATDW (SOILTYP) - F1 = F11 (SOILTYP) - PSISAT = SATPSI (SOILTYP) - QUARTZ = QTZ (SOILTYP) - SMCDRY = DRYSMC (SOILTYP) - SMCMAX = MAXSMC (SOILTYP) - SMCREF = REFSMC (SOILTYP) - SMCWLT = WLTSMC (SOILTYP) -! ---------------------------------------------------------------------- -! Set-up universal parameters (not dependent on SOILTYP, VEGTYP or -! SLOPETYP) -! ---------------------------------------------------------------------- - ZBOT = ZBOT_DATA - SALP = SALP_DATA - SBETA = SBETA_DATA - REFDK = REFDK_DATA - FRZK = FRZK_DATA - FXEXP = FXEXP_DATA - REFKDT = REFKDT_DATA - PTU = 0. ! (not used yet) to satisify intent(out) - KDT = REFKDT * DKSAT / REFDK - CZIL = CZIL_DATA - SLOPE = SLOPE_DATA (SLOPETYP) - LVCOEF = LVCOEF_DATA - -! ---------------------------------------------------------------------- -! TO ADJUST FRZK PARAMETER TO ACTUAL SOIL TYPE: FRZK * FRZFACT -! ---------------------------------------------------------------------- - FRZFACT = (SMCMAX / SMCREF) * (0.412 / 0.468) - FRZX = FRZK * FRZFACT - -! ---------------------------------------------------------------------- -! SET-UP VEGETATION PARAMETERS -! ---------------------------------------------------------------------- - TOPT = TOPT_DATA - CMCMAX = CMCMAX_DATA - CFACTR = CFACTR_DATA - RSMAX = RSMAX_DATA - NROOT = NROTBL (VEGTYP) - SNUP = SNUPTBL (VEGTYP) - RSMIN = RSTBL (VEGTYP) - RGL = RGLTBL (VEGTYP) - HS = HSTBL (VEGTYP) - EMISSMIN = EMISSMINTBL (VEGTYP) - EMISSMAX = EMISSMAXTBL (VEGTYP) - LAIMIN = LAIMINTBL (VEGTYP) - LAIMAX = LAIMAXTBL (VEGTYP) - Z0MIN = Z0MINTBL (VEGTYP) - Z0MAX = Z0MAXTBL (VEGTYP) - ALBEDOMIN = ALBEDOMINTBL (VEGTYP) - ALBEDOMAX = ALBEDOMAXTBL (VEGTYP) - ZTOPV = ZTOPVTBL (VEGTYP) - ZBOTV = ZBOTVTBL (VEGTYP) - - IF (VEGTYP .eq. BARE) SHDFAC = 0.0 - IF (NROOT .gt. NSOIL) THEN - errflg = 1 - WRITE (err_message,*) 'Error: too many root layers ', & - NSOIL,NROOT - errmsg = TRIM(err_message) - return -! ---------------------------------------------------------------------- -! CALCULATE ROOT DISTRIBUTION. PRESENT VERSION ASSUMES UNIFORM -! DISTRIBUTION BASED ON SOIL LAYER DEPTHS. -! ---------------------------------------------------------------------- - END IF - DO I = 1,NROOT - RTDIS (I) = - SLDPTH (I)/ ZSOIL (NROOT) -! ---------------------------------------------------------------------- -! SET-UP SLOPE PARAMETER -! ---------------------------------------------------------------------- - END DO - -! print*,'end of PRMRED' -! print*,'VEGTYP',VEGTYP,'SOILTYP',SOILTYP,'SLOPETYP',SLOPETYP, & -! & 'CFACTR',CFACTR,'CMCMAX',CMCMAX,'RSMAX',RSMAX,'TOPT',TOPT, & -! & 'REFKDT',REFKDT,'KDT',KDT,'SBETA',SBETA, 'SHDFAC',SHDFAC, & -! & 'RSMIN',RSMIN,'RGL',RGL,'HS',HS,'ZBOT',ZBOT,'FRZX',FRZX, & -! & 'PSISAT',PSISAT,'SLOPE',SLOPE,'SNUP',SNUP,'SALP',SALP,'BEXP', & -! & BEXP, & -! & 'DKSAT',DKSAT,'DWSAT',DWSAT, & -! & 'SMCMAX',SMCMAX,'SMCWLT',SMCWLT,'SMCREF',SMCREF,'SMCDRY',SMCDRY, & -! & 'F1',F1,'QUARTZ',QUARTZ,'FXEXP',FXEXP, & -! & 'RTDIS',RTDIS,'SLDPTH',SLDPTH,'ZSOIL',ZSOIL, 'NROOT',NROOT, & -! & 'NSOIL',NSOIL,'Z0',Z0,'CZIL',CZIL,'LAI',LAI, & -! & 'CSOIL',CSOIL,'PTU',PTU, & -! & 'LOCAL', LOCAL - - END SUBROUTINE REDPRM - - SUBROUTINE ROSR12 (P,A,B,C,D,DELTA,NSOIL) - -! ---------------------------------------------------------------------- -! SUBROUTINE ROSR12 -! ---------------------------------------------------------------------- -! INVERT (SOLVE) THE TRI-DIAGONAL MATRIX PROBLEM SHOWN BELOW: -! ### ### ### ### ### ### -! #B(1), C(1), 0 , 0 , 0 , . . . , 0 # # # # # -! #A(2), B(2), C(2), 0 , 0 , . . . , 0 # # # # # -! # 0 , A(3), B(3), C(3), 0 , . . . , 0 # # # # D(3) # -! # 0 , 0 , A(4), B(4), C(4), . . . , 0 # # P(4) # # D(4) # -! # 0 , 0 , 0 , A(5), B(5), . . . , 0 # # P(5) # # D(5) # -! # . . # # . # = # . # -! # . . # # . # # . # -! # . . # # . # # . # -! # 0 , . . . , 0 , A(M-2), B(M-2), C(M-2), 0 # #P(M-2)# #D(M-2)# -! # 0 , . . . , 0 , 0 , A(M-1), B(M-1), C(M-1)# #P(M-1)# #D(M-1)# -! # 0 , . . . , 0 , 0 , 0 , A(M) , B(M) # # P(M) # # D(M) # -! ### ### ### ### ### ### -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: K, KK - - REAL, DIMENSION(1:NSOIL), INTENT(IN):: A, B, D - REAL, DIMENSION(1:NSOIL),INTENT(INOUT):: C,P,DELTA - -! ---------------------------------------------------------------------- -! INITIALIZE EQN COEF C FOR THE LOWEST SOIL LAYER -! ---------------------------------------------------------------------- - C (NSOIL) = 0.0 - P (1) = - C (1) / B (1) -! ---------------------------------------------------------------------- -! SOLVE THE COEFS FOR THE 1ST SOIL LAYER -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! SOLVE THE COEFS FOR SOIL LAYERS 2 THRU NSOIL -! ---------------------------------------------------------------------- - DELTA (1) = D (1) / B (1) - DO K = 2,NSOIL - P (K) = - C (K) * ( 1.0 / (B (K) + A (K) * P (K -1)) ) - DELTA (K) = (D (K) - A (K)* DELTA (K -1))* (1.0/ (B (K) + A (K)& - * P (K -1))) - END DO -! ---------------------------------------------------------------------- -! SET P TO DELTA FOR LOWEST SOIL LAYER -! ---------------------------------------------------------------------- - P (NSOIL) = DELTA (NSOIL) - -! ---------------------------------------------------------------------- -! ADJUST P FOR SOIL LAYERS 2 THRU NSOIL -! ---------------------------------------------------------------------- - DO K = 2,NSOIL - KK = NSOIL - K + 1 - P (KK) = P (KK) * P (KK +1) + DELTA (KK) - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE ROSR12 -! ---------------------------------------------------------------------- - - - SUBROUTINE SHFLX (SSOIL,STC,SMC,SMCMAX,NSOIL,T1,DT,YY,ZZ1,ZSOIL, & - TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1, & - QUARTZ,CSOIL,VEGTYP,ISURBAN,SOILTYP,OPT_THCND & - ,HCPCT_FASDAS ) ! fasdas - -! ---------------------------------------------------------------------- -! SUBROUTINE SHFLX -! ---------------------------------------------------------------------- -! UPDATE THE TEMPERATURE STATE OF THE SOIL COLUMN BASED ON THE THERMAL -! DIFFUSION EQUATION AND UPDATE THE FROZEN SOIL MOISTURE CONTENT BASED -! ON THE TEMPERATURE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: OPT_THCND - INTEGER, INTENT(IN) :: NSOIL, VEGTYP, ISURBAN, SOILTYP - INTEGER :: I - LOGICAL, PARAMETER :: TIME_AVERAGE_T_UPDATE = .TRUE. - - REAL, INTENT(IN) :: BEXP,CSOIL,DF1,DT,F1,PSISAT,QUARTZ, & - SMCMAX, SMCWLT, TBOT,YY, ZBOT,ZZ1 - REAL, INTENT(INOUT) :: T1 - REAL, INTENT(OUT) :: SSOIL - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: SMC,ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: SH2O - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: STC - REAL, DIMENSION(1:NSOIL) :: AI, BI, CI, STCF,RHSTS - REAL, PARAMETER :: T0 = 273.15 - REAL :: OLDT1 - REAL, DIMENSION(1:NSOIL) :: OLDSTC - REAL, PARAMETER :: CTFIL1 = 0.5 - REAL, PARAMETER :: CTFIL2 = 1.0 - CTFIL1 -! -! FASDAS -! - REAL, INTENT( OUT) :: HCPCT_FASDAS -! -! END FASDAS -! -! ---------------------------------------------------------------------- -! HRT ROUTINE CALCS THE RIGHT HAND SIDE OF THE SOIL TEMP DIF EQN -! ---------------------------------------------------------------------- - - IF (TIME_AVERAGE_T_UPDATE) THEN - OLDT1 = T1 - DO I = 1, NSOIL - OLDSTC(I) = STC(I) - ENDDO - ENDIF - - ! Land case - - CALL HRT (RHSTS,STC,SMC,SMCMAX,NSOIL,ZSOIL,YY,ZZ1,TBOT, & - ZBOT,PSISAT,SH2O,DT,BEXP,SOILTYP,OPT_THCND, & - F1,DF1,QUARTZ,CSOIL,AI,BI,CI,VEGTYP,ISURBAN & - ,HCPCT_FASDAS ) !fasdas - - CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) - - DO I = 1,NSOIL - STC (I) = STCF (I) - ENDDO - -! ---------------------------------------------------------------------- -! IN THE NO SNOWPACK CASE (VIA ROUTINE NOPAC BRANCH,) UPDATE THE GRND -! (SKIN) TEMPERATURE HERE IN RESPONSE TO THE UPDATED SOIL TEMPERATURE -! PROFILE ABOVE. (NOTE: INSPECTION OF ROUTINE SNOPAC SHOWS THAT T1 -! BELOW IS A DUMMY VARIABLE ONLY, AS SKIN TEMPERATURE IS UPDATED -! DIFFERENTLY IN ROUTINE SNOPAC) -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! CALCULATE SURFACE SOIL HEAT FLUX -! ---------------------------------------------------------------------- - T1 = (YY + (ZZ1- 1.0) * STC (1)) / ZZ1 - - !GJF: Following the GFS version of Noah, time average the updating of skin temperature and soil temperature - IF (TIME_AVERAGE_T_UPDATE) THEN - T1 = CTFIL1*T1 + CTFIL2*OLDT1 - DO I = 1, NSOIL - STC(I) = CTFIL1*STC(I) + CTFIL2*OLDSTC(I) - ENDDO - ENDIF - - SSOIL = DF1 * (STC (1) - T1) / (0.5 * ZSOIL (1)) - -! ---------------------------------------------------------------------- - END SUBROUTINE SHFLX -! ---------------------------------------------------------------------- - - SUBROUTINE SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & - & SH2O,SLOPE,KDT,FRZFACT, & - & SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & - & SHDFAC,CMCMAX, & - & RUNOFF1,RUNOFF2,RUNOFF3, & - & EDIR,EC,ET, & - & DRIP, SFHEAD1RT,INFXS1RT) - -! ---------------------------------------------------------------------- -! SUBROUTINE SMFLX -! ---------------------------------------------------------------------- -! CALCULATE SOIL MOISTURE FLUX. THE SOIL MOISTURE CONTENT (SMC - A PER -! UNIT VOLUME MEASUREMENT) IS A DEPENDENT VARIABLE THAT IS UPDATED WITH -! PROGNOSTIC EQNS. THE CANOPY MOISTURE CONTENT (CMC) IS ALSO UPDATED. -! FROZEN GROUND VERSION: NEW STATES ADDED: SH2O, AND FROZEN GROUND -! CORRECTION FACTOR, FRZFACT AND PARAMETER SLOPE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: I,K - - REAL, INTENT(IN) :: BEXP, CMCMAX, DKSAT,DWSAT, DT, EC, EDIR, & - KDT, PRCP1, SHDFAC, SLOPE, SMCMAX, SMCWLT - REAL, INTENT(OUT) :: DRIP, RUNOFF1, RUNOFF2, RUNOFF3 - REAL, INTENT(INOUT) :: CMC - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: ET,ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(INOUT):: SMC, SH2O - REAL, DIMENSION(1:NSOIL) :: AI, BI, CI, STCF,RHSTS, RHSTT, & - SICE, SH2OA, SH2OFG - REAL :: DUMMY, EXCESS,FRZFACT,PCPDRP,RHSCT,TRHSCT - REAL :: FAC2 - REAL :: FLIMIT - - REAL, INTENT(INOUT) :: SFHEAD1RT,INFXS1RT - -! ---------------------------------------------------------------------- -! EXECUTABLE CODE BEGINS HERE. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! COMPUTE THE RIGHT HAND SIDE OF THE CANOPY EQN TERM ( RHSCT ) -! ---------------------------------------------------------------------- - DUMMY = 0. - -! ---------------------------------------------------------------------- -! CONVERT RHSCT (A RATE) TO TRHSCT (AN AMOUNT) AND ADD IT TO EXISTING -! CMC. IF RESULTING AMT EXCEEDS MAX CAPACITY, IT BECOMES DRIP AND WILL -! FALL TO THE GRND. -! ---------------------------------------------------------------------- - RHSCT = SHDFAC * PRCP1- EC - DRIP = 0. - TRHSCT = DT * RHSCT - EXCESS = CMC + TRHSCT - -! ---------------------------------------------------------------------- -! PCPDRP IS THE COMBINED PRCP1 AND DRIP (FROM CMC) THAT GOES INTO THE -! SOIL -! ---------------------------------------------------------------------- - IF (EXCESS > CMCMAX) DRIP = EXCESS - CMCMAX - PCPDRP = (1. - SHDFAC) * PRCP1+ DRIP / DT - -! ---------------------------------------------------------------------- -! STORE ICE CONTENT AT EACH SOIL LAYER BEFORE CALLING SRT and SSTEP -! - DO I = 1,NSOIL - SICE (I) = SMC (I) - SH2O (I) - END DO -! ---------------------------------------------------------------------- -! CALL SUBROUTINES SRT AND SSTEP TO SOLVE THE SOIL MOISTURE -! TENDENCY EQUATIONS. -! IF THE INFILTRATING PRECIP RATE IS NONTRIVIAL, -! (WE CONSIDER NONTRIVIAL TO BE A PRECIP TOTAL OVER THE TIME STEP -! EXCEEDING ONE ONE-THOUSANDTH OF THE WATER HOLDING CAPACITY OF -! THE FIRST SOIL LAYER) -! THEN CALL THE SRT/SSTEP SUBROUTINE PAIR TWICE IN THE MANNER OF -! TIME SCHEME "F" (IMPLICIT STATE, AVERAGED COEFFICIENT) -! OF SECTION 2 OF KALNAY AND KANAMITSU (1988, MWR, VOL 116, -! PAGES 1945-1958)TO MINIMIZE 2-DELTA-T OSCILLATIONS IN THE -! SOIL MOISTURE VALUE OF THE TOP SOIL LAYER THAT CAN ARISE BECAUSE -! OF THE EXTREME NONLINEAR DEPENDENCE OF THE SOIL HYDRAULIC -! DIFFUSIVITY COEFFICIENT AND THE HYDRAULIC CONDUCTIVITY ON THE -! SOIL MOISTURE STATE -! OTHERWISE CALL THE SRT/SSTEP SUBROUTINE PAIR ONCE IN THE MANNER OF -! TIME SCHEME "D" (IMPLICIT STATE, EXPLICIT COEFFICIENT) -! OF SECTION 2 OF KALNAY AND KANAMITSU -! PCPDRP IS UNITS OF KG/M**2/S OR MM/S, ZSOIL IS NEGATIVE DEPTH IN M -! ---------------------------------------------------------------------- -! According to Dr. Ken Mitchell's suggestion, add the second contraint -! to remove numerical instability of runoff and soil moisture -! FLIMIT is a limit value for FAC2 - FAC2=0.0 - DO I=1,NSOIL - FAC2=MAX(FAC2,SH2O(I)/SMCMAX) - ENDDO - CALL FAC2MIT(SMCMAX,FLIMIT) - -! ---------------------------------------------------------------------- -! FROZEN GROUND VERSION: -! SMC STATES REPLACED BY SH2O STATES IN SRT SUBR. SH2O & SICE STATES -! INC&UDED IN SSTEP SUBR. FROZEN GROUND CORRECTION FACTOR, FRZFACT -! ADDED. ALL WATER BALANCE CALCULATIONS USING UNFROZEN WATER -! ---------------------------------------------------------------------- - -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... Add previous ponded water to new precip drip... - PCPDRP = PCPDRP + SFHEAD1RT/1000./DT ! convert SFHEAD1RT to (m/s) -#endif - - - IF ( ( (PCPDRP * DT) > (0.0001*1000.0* (- ZSOIL (1))* SMCMAX) ) & - .OR. (FAC2 > FLIMIT) ) THEN - CALL SRT (RHSTT,EDIR,ET,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & - DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & - RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI, & - SFHEAD1RT,INFXS1RT) - CALL SSTEP (SH2OFG,SH2O,DUMMY,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & - CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI,INFXS1RT) - DO K = 1,NSOIL - SH2OA (K) = (SH2O (K) + SH2OFG (K)) * 0.5 - END DO - CALL SRT (RHSTT,EDIR,ET,SH2O,SH2OA,NSOIL,PCPDRP,ZSOIL, & - DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & - RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI, & - SFHEAD1RT,INFXS1RT) - CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & - CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI,INFXS1RT) - - ELSE - CALL SRT (RHSTT,EDIR,ET,SH2O,SH2O,NSOIL,PCPDRP,ZSOIL, & - DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & - RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZFACT,SICE,AI,BI,CI, & - SFHEAD1RT,INFXS1RT) - CALL SSTEP (SH2O,SH2O,CMC,RHSTT,RHSCT,DT,NSOIL,SMCMAX, & - CMCMAX,RUNOFF3,ZSOIL,SMC,SICE,AI,BI,CI,INFXS1RT) -! RUNOF = RUNOFF - - END IF - -! ---------------------------------------------------------------------- - END SUBROUTINE SMFLX -! ---------------------------------------------------------------------- - - - SUBROUTINE SNFRAC (SNEQV,SNUP,SALP,SNOWH,SNCOVR, & - XLAI,SHDFAC,FVB,GAMA,FBUR, & - FGSN,ZTOPV,ZBOTV,UA_PHYS) - -! ---------------------------------------------------------------------- -! SUBROUTINE SNFRAC -! ---------------------------------------------------------------------- -! CALCULATE SNOW FRACTION (0 -> 1) -! SNEQV SNOW WATER EQUIVALENT (M) -! SNUP THRESHOLD SNEQV DEPTH ABOVE WHICH SNCOVR=1 -! SALP TUNING PARAMETER -! SNCOVR FRACTIONAL SNOW COVER -! ---------------------------------------------------------------------- - IMPLICIT NONE - - REAL, INTENT(IN) :: SNEQV,SNUP,SALP,SNOWH - REAL, INTENT(OUT) :: SNCOVR - REAL :: RSNOW, Z0N - LOGICAL, INTENT(IN) :: UA_PHYS ! UA: flag for UA option - REAL, INTENT(IN) :: ZTOPV ! UA: height of canopy top - REAL, INTENT(IN) :: ZBOTV ! UA: height of canopy bottom - REAL, INTENT(IN) :: SHDFAC ! UA: vegetation fraction - REAL, INTENT(INOUT) :: XLAI ! UA: LAI modified by snow - REAL, INTENT(OUT) :: FVB ! UA: frac. veg. w/snow beneath - REAL, INTENT(OUT) :: GAMA ! UA: = EXP(-1.* XLAI) - REAL, INTENT(OUT) :: FBUR ! UA: fraction of canopy buried - REAL, INTENT(OUT) :: FGSN ! UA: ground snow cover fraction - - REAL :: SNUPGRD = 0.02 ! UA: SWE limit for ground cover - -! ---------------------------------------------------------------------- -! SNUP IS VEG-CLASS DEPENDENT SNOWDEPTH THRESHHOLD (SET IN ROUTINE -! REDPRM) ABOVE WHICH SNOCVR=1. -! ---------------------------------------------------------------------- - IF (SNEQV < SNUP) THEN - RSNOW = SNEQV / SNUP - SNCOVR = 1. - ( EXP ( - SALP * RSNOW) - RSNOW * EXP ( - SALP)) - ELSE - SNCOVR = 1.0 - END IF - -! FORMULATION OF DICKINSON ET AL. 1986 -! Z0N = 0.035 - -! SNCOVR=SNOWH/(SNOWH + 5*Z0N) - -! FORMULATION OF MARSHALL ET AL. 1994 -! SNCOVR=SNEQV/(SNEQV + 2*Z0N) - - IF(UA_PHYS) THEN - -!--------------------------------------------------------------------- -! FGSN: FRACTION OF SOIL COVERED WITH SNOW -!--------------------------------------------------------------------- - IF (SNEQV < SNUPGRD) THEN - FGSN = SNEQV / SNUPGRD - ELSE - FGSN = 1.0 - END IF -!------------------------------------------------------------------ -! FBUR: VERTICAL FRACTION OF VEGETATION COVERED BY SNOW -! GRASS, CROP, AND SHRUB: MULTIPLY 0.4 BY ZTOPV AND ZBOTV BECAUSE -! THEY WILL BE PRESSED DOWN BY THE SNOW. -! FOREST: DON'T NEED TO CHANGE ZTOPV AND ZBOTV. - - IF(ZBOTV > 0. .AND. SNOWH > ZBOTV) THEN - IF(ZBOTV <= 0.5) THEN - FBUR = (SNOWH - 0.4*ZBOTV) / (0.4*(ZTOPV-ZBOTV)) ! short veg. - ELSE - FBUR = (SNOWH - ZBOTV) / (ZTOPV-ZBOTV) ! tall veg. - ENDIF - ELSE - FBUR = 0. - ENDIF - - FBUR = MIN(MAX(FBUR,0.0),1.0) - -! XLAI IS ADJUSTED FOR VERTICAL BURYING BY SNOW - XLAI = XLAI * (1.0 - FBUR) -! ---------------------------------------------------------------------- -! SNOW-COVERED SOIL: (1-SHDFAC)*FGSN -! VEGETATION WITH SNOW ABOVE DUE TO BURIAL FVEG_SN_AB = SHDFAC*FBUR -! SNOW ON THE GROUND THAT CAN BE "SEEN" BY SATELLITE -! (IF XLAI GOES TO ZERO): GAMA*FVB -! Where GAMA = exp(-XLAI) -! ---------------------------------------------------------------------- - -! VEGETATION WITH SNOW BELOW - FVB = SHDFAC * FGSN * (1.0 - FBUR) - -! GAMA IS USED TO DIVIDE FVB INTO TWO PARTS: -! GAMA=1 FOR XLAI=0 AND GAMA=0 FOR XLAI=6 - GAMA = EXP(-1.* XLAI) - ELSE - ! Define intent(out) terms for .NOT. UA_PHYS case - FVB = 0.0 - GAMA = 0.0 - FBUR = 0.0 - FGSN = 0.0 - END IF ! UA_PHYS - -! ---------------------------------------------------------------------- - END SUBROUTINE SNFRAC -! ---------------------------------------------------------------------- - - SUBROUTINE SNKSRC (TSNSR,TAVG,SMC,SH2O,ZSOIL,NSOIL, & - & SMCMAX,PSISAT,BEXP,DT,K,QTOT) -! ---------------------------------------------------------------------- -! SUBROUTINE SNKSRC -! ---------------------------------------------------------------------- -! CALCULATE SINK/SOURCE TERM OF THE TERMAL DIFFUSION EQUATION. (SH2O) IS -! AVAILABLE LIQUED WATER. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: K,NSOIL - REAL, INTENT(IN) :: BEXP, DT, PSISAT, QTOT, SMC, SMCMAX, & - TAVG - REAL, INTENT(INOUT) :: SH2O - - REAL, DIMENSION(1:NSOIL), INTENT(IN):: ZSOIL - - REAL :: DF, DZ, DZH, FREE, TSNSR, & - TDN, TM, TUP, TZ, X0, XDN, XH2O, XUP - - REAL, PARAMETER :: DH2O = 1.0000E3, HLICE = 3.3350E5, & - T0 = 2.7315E2 - - IF (K == 1) THEN - DZ = - ZSOIL (1) - ELSE - DZ = ZSOIL (K -1) - ZSOIL (K) - END IF -! ---------------------------------------------------------------------- -! VIA FUNCTION FRH2O, COMPUTE POTENTIAL OR 'EQUILIBRIUM' UNFROZEN -! SUPERCOOLED FREE WATER FOR GIVEN SOIL TYPE AND SOIL LAYER TEMPERATURE. -! FUNCTION FRH20 INVOKES EQN (17) FROM V. KOREN ET AL (1999, JGR, VOL. -! 104, PG 19573). (ASIDE: LATTER EQN IN JOURNAL IN CENTIGRADE UNITS. -! ROUTINE FRH2O USE FORM OF EQN IN KELVIN UNITS.) -! ---------------------------------------------------------------------- -! FREE = FRH2O(TAVG,SMC,SH2O,SMCMAX,BEXP,PSISAT) - -! ---------------------------------------------------------------------- -! IN NEXT BLOCK OF CODE, INVOKE EQN 18 OF V. KOREN ET AL (1999, JGR, -! VOL. 104, PG 19573.) THAT IS, FIRST ESTIMATE THE NEW AMOUNTOF LIQUID -! WATER, 'XH2O', IMPLIED BY THE SUM OF (1) THE LIQUID WATER AT THE BEGIN -! OF CURRENT TIME STEP, AND (2) THE FREEZE OF THAW CHANGE IN LIQUID -! WATER IMPLIED BY THE HEAT FLUX 'QTOT' PASSED IN FROM ROUTINE HRT. -! SECOND, DETERMINE IF XH2O NEEDS TO BE BOUNDED BY 'FREE' (EQUIL AMT) OR -! IF 'FREE' NEEDS TO BE BOUNDED BY XH2O. -! ---------------------------------------------------------------------- - CALL FRH2O (FREE,TAVG,SMC,SH2O,SMCMAX,BEXP,PSISAT) - -! ---------------------------------------------------------------------- -! FIRST, IF FREEZING AND REMAINING LIQUID LESS THAN LOWER BOUND, THEN -! REDUCE EXTENT OF FREEZING, THEREBY LETTING SOME OR ALL OF HEAT FLUX -! QTOT COOL THE SOIL TEMP LATER IN ROUTINE HRT. -! ---------------------------------------------------------------------- - XH2O = SH2O + QTOT * DT / (DH2O * HLICE * DZ) - IF ( XH2O < SH2O .AND. XH2O < FREE) THEN - IF ( FREE > SH2O ) THEN - XH2O = SH2O - ELSE - XH2O = FREE - END IF - END IF -! ---------------------------------------------------------------------- -! SECOND, IF THAWING AND THE INCREASE IN LIQUID WATER GREATER THAN UPPER -! BOUND, THEN REDUCE EXTENT OF THAW, THEREBY LETTING SOME OR ALL OF HEAT -! FLUX QTOT WARM THE SOIL TEMP LATER IN ROUTINE HRT. -! ---------------------------------------------------------------------- - IF ( XH2O > SH2O .AND. XH2O > FREE ) THEN - IF ( FREE < SH2O ) THEN - XH2O = SH2O - ELSE - XH2O = FREE - END IF - END IF - -! ---------------------------------------------------------------------- -! CALCULATE PHASE-CHANGE HEAT SOURCE/SINK TERM FOR USE IN ROUTINE HRT -! AND UPDATE LIQUID WATER TO REFLCET FINAL FREEZE/THAW INCREMENT. -! ---------------------------------------------------------------------- -! SNKSRC = -DH2O*HLICE*DZ*(XH2O-SH2O)/DT - IF (XH2O < 0.) XH2O = 0. - IF (XH2O > SMC) XH2O = SMC - TSNSR = - DH2O * HLICE * DZ * (XH2O - SH2O)/ DT - SH2O = XH2O - -! ---------------------------------------------------------------------- - END SUBROUTINE SNKSRC -! ---------------------------------------------------------------------- - - SUBROUTINE SNOPAC (ETP,ETA,PRCP,PRCPF,SNOWNG,SMC,SMCMAX,SMCWLT, & - SMCREF,SMCDRY,CMC,CMCMAX,NSOIL,DT, & - SBETA,DF1, & - Q2,T1,SFCTMP,T24,TH2,FDOWN,F1,SSOIL,STC,EPSCA,& - SFCPRS,BEXP,PC,RCH,RR,CFACTR,SNCOVR,ESD,SNDENS,& - SNOWH,SH2O,SLOPE,KDT,FRZFACT,PSISAT, & - ZSOIL,DWSAT,DKSAT,TBOT,ZBOT,SHDFAC,RUNOFF1, & - RUNOFF2,RUNOFF3,EDIR,EC,ET,ETT,NROOT,SNOMLT, & - RTDIS,QUARTZ,FXEXP,CSOIL, & - BETA,DRIP,DEW,FLX1,FLX2,FLX3,ESNOW,ETNS,EMISSI,& - RIBB,SOLDN, & - ISURBAN, & - VEGTYP, & - ETPN,FLX4,UA_PHYS, & - SFHEAD1RT,INFXS1RT,ETPND1,SOILTYP,OPT_THCND & - ,QFX_PHY,fasdas,HCPCT_FASDAS, & !fasdas - SIGMA,CPH2O,CPICE,LSUBF) -! ---------------------------------------------------------------------- -! SUBROUTINE SNOPAC -! ---------------------------------------------------------------------- -! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES & UPDATE SOIL MOISTURE -! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN A SNOW PACK IS -! PRESENT. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: OPT_THCND - INTEGER, INTENT(IN) :: NROOT, NSOIL,VEGTYP,SOILTYP - INTEGER, INTENT(IN) :: ISURBAN - INTEGER :: K -! -! kmh 09/03/2006 add IT16 for surface temperature iteration -! - INTEGER :: IT16 - LOGICAL, INTENT(IN) :: SNOWNG - -!DJG NDHMS/WRF-Hydro edit... - REAL, INTENT(INOUT) :: SFHEAD1RT,INFXS1RT,ETPND1 - - REAL, INTENT(IN) :: BEXP,CFACTR, CMCMAX,CSOIL,DF1,DKSAT, & - DT,DWSAT, EPSCA,FDOWN,F1,FXEXP, & - FRZFACT,KDT,PC, PRCP,PSISAT,Q2,QUARTZ, & - RCH,RR,SBETA,SFCPRS, SFCTMP, SHDFAC, & - SLOPE,SMCDRY,SMCMAX,SMCREF,SMCWLT, T24, & - TBOT,TH2,ZBOT,EMISSI,SOLDN,SIGMA,CPH2O, & - CPICE,LSUBF - REAL, INTENT(INOUT) :: CMC, BETA, ESD,FLX2,PRCPF,SNOWH,SNCOVR, & - SNDENS, T1, RIBB, ETP - REAL, INTENT(OUT) :: DEW,DRIP,EC,EDIR, ETNS, ESNOW,ETT, & - FLX1,FLX3, RUNOFF1,RUNOFF2,RUNOFF3, & - SSOIL,SNOMLT - REAL, DIMENSION(1:NSOIL),INTENT(IN) :: RTDIS,ZSOIL - REAL, DIMENSION(1:NSOIL),INTENT(OUT) :: ET - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: SMC,SH2O,STC - REAL, DIMENSION(1:NSOIL) :: ET1 - REAL :: DENOM,DSOIL,DTOT,EC1,EDIR1,ESDFLX,ETA, & - ETT1, ESNOW1, ESNOW2, ETA1,ETP1,ETP2, & - ETP3, ETNS1, ETANRG, ETAX, EX, FLX3X, & - FRCSNO,FRCSOI, PRCP1, QSAT,RSNOW, SEH, & - SNCOND,SSOIL1, T11,T12, T12A, T12AX, & - T12B, T14, YY, ZZ1 -! T12B, T14, YY, ZZ1,EMISSI_S -! -! kmh 01/11/2007 add T15, T16, and DTOT2 for SFC T iteration and snow heat flux -! - REAL :: T15, T16, DTOT2 - REAL, PARAMETER :: ESDMIN = 1.E-6, LSUBC = 2.501000E+6, & - LSUBS = 2.83E+6, TFREEZ = 273.15, & - SNOEXP = 2.0 - LOGICAL, INTENT(IN) :: UA_PHYS ! UA: flag for UA option - REAL, INTENT(INOUT) :: FLX4 ! UA: energy removed by canopy - REAL, INTENT(IN) :: ETPN ! UA: adjusted pot. evap. [mm/s] - REAL :: ETP1N ! UA: adjusted pot. evap. [m/s] - -! -! FASDAS -! - REAL :: QFX_PHY - INTEGER :: fasdas - REAL, INTENT( OUT) :: HCPCT_FASDAS -! -! END FASDAS -! -! ---------------------------------------------------------------------- -! EXECUTABLE CODE BEGINS HERE: -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! INITIALIZE EVAP TERMS. -! ---------------------------------------------------------------------- -! conversions: -! ESNOW [KG M-2 S-1] -! ESDFLX [KG M-2 S-1] .le. ESNOW -! ESNOW1 [M S-1] -! ESNOW2 [M] -! ETP [KG M-2 S-1] -! ETP1 [M S-1] -! ETP2 [M] -! ---------------------------------------------------------------------- - DEW = 0. - EDIR = 0. - EDIR1 = 0. - EC1 = 0. - EC = 0. -! EMISSI_S=0.95 ! For snow - - DO K = 1,NSOIL - ET (K) = 0. - ET1 (K) = 0. - END DO - ETT = 0. - ETT1 = 0. - -!DJG NDHMS/WRF-Hydro edit... - ETPND1 = 0. - - - ETNS = 0. - ETNS1 = 0. - ESNOW = 0. - ESNOW1 = 0. - ESNOW2 = 0. - -! ---------------------------------------------------------------------- -! CONVERT POTENTIAL EVAP (ETP) FROM KG M-2 S-1 TO ETP1 IN M S-1 -! ---------------------------------------------------------------------- - PRCP1 = PRCPF *0.001 -! ---------------------------------------------------------------------- -! IF ETP<0 (DOWNWARD) THEN DEWFALL (=FROSTFALL IN THIS CASE). -! ---------------------------------------------------------------------- - BETA = 1.0 - IF (ETP <= 0.0) THEN - IF ( ( RIBB >= 0.1 ) .AND. ( FDOWN > 150.0 ) ) THEN - ETP=(MIN(ETP*(1.0-RIBB),0.)*SNCOVR/0.980 + ETP*(0.980-SNCOVR))/0.980 - ENDIF - IF(ETP == 0.) BETA = 0.0 - ETP1 = ETP * 0.001 - IF(UA_PHYS) ETP1N = ETPN * 0.001 - DEW = -ETP1 - ESNOW2 = ETP1*DT - ETANRG = ETP*((1.-SNCOVR)*LSUBC + SNCOVR*LSUBS) - ELSE - ETP1 = ETP * 0.001 - IF(UA_PHYS) ETP1N = ETPN * 0.001 - ! LAND CASE - IF (SNCOVR < 1.) THEN - CALL EVAPO (ETNS1,SMC,NSOIL,CMC,ETP1,DT,ZSOIL, & - SH2O, & - SMCMAX,BEXP,PC,SMCWLT,DKSAT,DWSAT, & - SMCREF,SHDFAC,CMCMAX, & - SMCDRY,CFACTR, & - EDIR1,EC1,ET1,ETT1,SFCTMP,Q2,NROOT,RTDIS, & - FXEXP, SFHEAD1RT,ETPND1) -! ---------------------------------------------------------------------------- - EDIR1 = EDIR1* (1. - SNCOVR) - EC1 = EC1* (1. - SNCOVR) - DO K = 1,NSOIL - ET1 (K) = ET1 (K)* (1. - SNCOVR) - END DO - ETT1 = ETT1*(1.-SNCOVR) -! ETNS1 = EDIR1+ EC1+ ETT1 - ETNS1 = ETNS1*(1.-SNCOVR) -! ---------------------------------------------------------------------------- - EDIR = EDIR1*1000. - EC = EC1*1000. - DO K = 1,NSOIL - ET (K) = ET1 (K)*1000. - END DO -! -! FASDAS -! - if( fasdas == 1 ) then - QFX_PHY = EDIR + EC - DO K=1,NSOIL - QFX_PHY = QFX_PHY + ET(K) - END DO - endif -! -! END FASDAS -! - ETT = ETT1*1000. - ETNS = ETNS1*1000. - - -!DJG NDHMS/WRF-Hydro edit... - ETPND1 = ETPND1*1000. - - -! ---------------------------------------------------------------------- - - ENDIF - ESNOW = ETP*SNCOVR - IF(UA_PHYS) ESNOW = ETPN*SNCOVR ! USE ADJUSTED ETP - ESNOW1 = ESNOW*0.001 - ESNOW2 = ESNOW1*DT - ETANRG = ESNOW*LSUBS + ETNS*LSUBC - ENDIF - -! ---------------------------------------------------------------------- -! IF PRECIP IS FALLING, CALCULATE HEAT FLUX FROM SNOW SFC TO NEWLY -! ACCUMULATING PRECIP. NOTE THAT THIS REFLECTS THE FLUX APPROPRIATE FOR -! THE NOT-YET-UPDATED SKIN TEMPERATURE (T1). ASSUMES TEMPERATURE OF THE -! SNOWFALL STRIKING THE GROUND IS =SFCTMP (LOWEST MODEL LEVEL AIR TEMP). -! ---------------------------------------------------------------------- - FLX1 = 0.0 - IF (SNOWNG) THEN - FLX1 = CPICE * PRCP * (T1- SFCTMP) - ELSE - IF (PRCP > 0.0) FLX1 = CPH2O * PRCP * (T1- SFCTMP) -! ---------------------------------------------------------------------- -! CALCULATE AN 'EFFECTIVE SNOW-GRND SFC TEMP' (T12) BASED ON HEAT FLUXES -! BETWEEN THE SNOW PACK AND THE SOIL AND ON NET RADIATION. -! INCLUDE FLX1 (PRECIP-SNOW SFC) AND FLX2 (FREEZING RAIN LATENT HEAT) -! FLUXES. FLX1 FROM ABOVE, FLX2 BROUGHT IN VIA COMMOM BLOCK RITE. -! FLX2 REFLECTS FREEZING RAIN LATENT HEAT FLUX USING T1 CALCULATED IN -! PENMAN. -! ---------------------------------------------------------------------- - END IF - DSOIL = - (0.5 * ZSOIL (1)) - DTOT = SNOWH + DSOIL - DENOM = 1.0+ DF1 / (DTOT * RR * RCH) -! surface emissivity weighted by snow cover fraction -! T12A = ( (FDOWN - FLX1 - FLX2 - & -! & ((SNCOVR*EMISSI_S)+EMISSI*(1.0-SNCOVR))*SIGMA *T24)/RCH & -! & + TH2 - SFCTMP - ETANRG/RCH ) / RR - T12A = ( (FDOWN - FLX1- FLX2- EMISSI * SIGMA * T24)/ RCH & - + TH2- SFCTMP - ETANRG / RCH ) / RR - - T12B = DF1 * STC (1) / (DTOT * RR * RCH) - -! ---------------------------------------------------------------------- -! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS AT OR BELOW FREEZING, NO SNOW -! MELT WILL OCCUR. SET THE SKIN TEMP TO THIS EFFECTIVE TEMP. REDUCE -! (BY SUBLIMINATION ) OR INCREASE (BY FROST) THE DEPTH OF THE SNOWPACK, -! DEPENDING ON SIGN OF ETP. -! UPDATE SOIL HEAT FLUX (SSOIL) USING NEW SKIN TEMPERATURE (T1) -! SINCE NO SNOWMELT, SET ACCUMULATED SNOWMELT TO ZERO, SET 'EFFECTIVE' -! PRECIP FROM SNOWMELT TO ZERO, SET PHASE-CHANGE HEAT FLUX FROM SNOWMELT -! TO ZERO. -! ---------------------------------------------------------------------- -! SUB-FREEZING BLOCK -! ---------------------------------------------------------------------- - T12 = (SFCTMP + T12A + T12B) / DENOM - IF (T12 <= TFREEZ) THEN - T1 = T12 - SSOIL = DF1 * (T1- STC (1)) / DTOT -! ESD = MAX (0.0, ESD- ETP2) - ESD = MAX(0.0, ESD-ESNOW2) - FLX3 = 0.0 - EX = 0.0 - - SNOMLT = 0.0 - IF(UA_PHYS) FLX4 = 0.0 -! ---------------------------------------------------------------------- -! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS ABOVE FREEZING, SNOW MELT -! WILL OCCUR. CALL THE SNOW MELT RATE,EX AND AMT, SNOMLT. REVISE THE -! EFFECTIVE SNOW DEPTH. REVISE THE SKIN TEMP BECAUSE IT WOULD HAVE CHGD -! DUE TO THE LATENT HEAT RELEASED BY THE MELTING. CALC THE LATENT HEAT -! RELEASED, FLX3. SET THE EFFECTIVE PRECIP, PRCP1 TO THE SNOW MELT RATE, -! EX FOR USE IN SMFLX. ADJUSTMENT TO T1 TO ACCOUNT FOR SNOW PATCHES. -! CALCULATE QSAT VALID AT FREEZING POINT. NOTE THAT ESAT (SATURATION -! VAPOR PRESSURE) VALUE OF 6.11E+2 USED HERE IS THAT VALID AT FRZZING -! POINT. NOTE THAT ETP FROM CALL PENMAN IN SFLX IS IGNORED HERE IN -! FAVOR OF BULK ETP OVER 'OPEN WATER' AT FREEZING TEMP. -! UPDATE SOIL HEAT FLUX (S) USING NEW SKIN TEMPERATURE (T1) -! ---------------------------------------------------------------------- -! ABOVE FREEZING BLOCK -! ---------------------------------------------------------------------- - ELSE -! From V3.9 original code (commented) replaced to allow complete melting of small snow amounts -! T1 = TFREEZ * SNCOVR ** SNOEXP + T12 * (1.0- SNCOVR ** SNOEXP) - T1 = TFREEZ * max(0.01,SNCOVR ** SNOEXP) + T12 * (1.0- max(0.01,SNCOVR ** SNOEXP)) - BETA = 1.0 - -! ---------------------------------------------------------------------- -! IF POTENTIAL EVAP (SUBLIMATION) GREATER THAN DEPTH OF SNOWPACK. -! BETA<1 -! SNOWPACK HAS SUBLIMATED AWAY, SET DEPTH TO ZERO. -! ---------------------------------------------------------------------- - SSOIL = DF1 * (T1- STC (1)) / DTOT - IF (ESD-ESNOW2 <= ESDMIN) THEN - ESD = 0.0 - EX = 0.0 - SNOMLT = 0.0 - FLX3 = 0.0 - IF(UA_PHYS) FLX4 = 0.0 -! ---------------------------------------------------------------------- -! SUBLIMATION LESS THAN DEPTH OF SNOWPACK -! SNOWPACK (ESD) REDUCED BY ESNOW2 (DEPTH OF SUBLIMATED SNOW) -! ---------------------------------------------------------------------- - ELSE - ESD = ESD-ESNOW2 - ETP3 = ETP * LSUBC - SEH = RCH * (T1- TH2) - T14 = T1* T1 - T14 = T14* T14 -! FLX3 = FDOWN - FLX1 - FLX2 - & -! ((SNCOVR*EMISSI_S)+EMISSI*(1-SNCOVR))*SIGMA*T14 - & -! SSOIL - SEH - ETANRG - FLX3 = FDOWN - FLX1- FLX2- EMISSI*SIGMA * T14- SSOIL - SEH - ETANRG - IF (FLX3 <= 0.0) FLX3 = 0.0 - - IF(UA_PHYS .AND. FLX4 > 0. .AND. FLX3 > 0.) THEN - IF(FLX3 >= FLX4) THEN - FLX3 = FLX3 - FLX4 - ELSE - FLX4 = FLX3 - FLX3 = 0. - ENDIF - ELSE - FLX4 = 0.0 - ENDIF - -! ---------------------------------------------------------------------- -! SNOWMELT REDUCTION DEPENDING ON SNOW COVER -! ---------------------------------------------------------------------- - EX = FLX3*0.001/ LSUBF - -! ---------------------------------------------------------------------- -! ESDMIN REPRESENTS A SNOWPACK DEPTH THRESHOLD VALUE BELOW WHICH WE -! CHOOSE NOT TO RETAIN ANY SNOWPACK, AND INSTEAD INCLUDE IT IN SNOWMELT. -! ---------------------------------------------------------------------- - SNOMLT = EX * DT - IF (ESD- SNOMLT >= ESDMIN) THEN - ESD = ESD- SNOMLT -! ---------------------------------------------------------------------- -! SNOWMELT EXCEEDS SNOW DEPTH -! ---------------------------------------------------------------------- - ELSE - EX = ESD / DT - FLX3 = EX *1000.0* LSUBF - SNOMLT = ESD - - ESD = 0.0 -! ---------------------------------------------------------------------- -! END OF 'ESD .LE. ETP2' IF-BLOCK -! ---------------------------------------------------------------------- - END IF - END IF - -! ---------------------------------------------------------------------- -! END OF 'T12 .LE. TFREEZ' IF-BLOCK -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! IF NON-GLACIAL LAND, ADD SNOWMELT RATE (EX) TO PRECIP RATE TO BE USED -! IN SUBROUTINE SMFLX (SOIL MOISTURE EVOLUTION) VIA INFILTRATION. -! -! RUNOFF/BASEFLOW LATER NEAR THE END OF SFLX (AFTER RETURN FROM CALL TO -! SUBROUTINE SNOPAC) -! ---------------------------------------------------------------------- - PRCP1 = PRCP1+ EX - -! ---------------------------------------------------------------------- -! SET THE EFFECTIVE POTNL EVAPOTRANSP (ETP1) TO ZERO SINCE THIS IS SNOW -! CASE, SO SURFACE EVAP NOT CALCULATED FROM EDIR, EC, OR ETT IN SMFLX -! (BELOW). -! SMFLX RETURNS UPDATED SOIL MOISTURE VALUES FOR NON-GLACIAL LAND. -! ---------------------------------------------------------------------- - END IF - CALL SMFLX (SMC,NSOIL,CMC,DT,PRCP1,ZSOIL, & - SH2O,SLOPE,KDT,FRZFACT, & - SMCMAX,BEXP,SMCWLT,DKSAT,DWSAT, & - SHDFAC,CMCMAX, & - RUNOFF1,RUNOFF2,RUNOFF3, & - EDIR1,EC1,ET1, & - DRIP, SFHEAD1RT,INFXS1RT) -! ---------------------------------------------------------------------- -! BEFORE CALL SHFLX IN THIS SNOWPACK CASE, SET ZZ1 AND YY ARGUMENTS TO -! SPECIAL VALUES THAT ENSURE THAT GROUND HEAT FLUX CALCULATED IN SHFLX -! MATCHES THAT ALREADY COMPUTER FOR BELOW THE SNOWPACK, THUS THE SFC -! HEAT FLUX TO BE COMPUTED IN SHFLX WILL EFFECTIVELY BE THE FLUX AT THE -! SNOW TOP SURFACE. T11 IS A DUMMY ARGUEMENT SO WE WILL NOT USE THE -! SKIN TEMP VALUE AS REVISED BY SHFLX. -! ---------------------------------------------------------------------- - ZZ1 = 1.0 - YY = STC (1) -0.5* SSOIL * ZSOIL (1)* ZZ1/ DF1 - -! ---------------------------------------------------------------------- -! SHFLX WILL CALC/UPDATE THE SOIL TEMPS. NOTE: THE SUB-SFC HEAT FLUX -! (SSOIL1) AND THE SKIN TEMP (T11) OUTPUT FROM THIS SHFLX CALL ARE NOT -! USED IN ANY SUBSEQUENT CALCULATIONS. RATHER, THEY ARE DUMMY VARIABLES -! HERE IN THE SNOPAC CASE, SINCE THE SKIN TEMP AND SUB-SFC HEAT FLUX ARE -! UPDATED INSTEAD NEAR THE BEGINNING OF THE CALL TO SNOPAC. -! ---------------------------------------------------------------------- - T11 = T1 - CALL SHFLX (SSOIL1,STC,SMC,SMCMAX,NSOIL,T11,DT,YY,ZZ1,ZSOIL, & - TBOT,ZBOT,SMCWLT,PSISAT,SH2O,BEXP,F1,DF1, & - QUARTZ,CSOIL,VEGTYP,ISURBAN,SOILTYP,OPT_THCND & - ,HCPCT_FASDAS ) !fasdas - -! ---------------------------------------------------------------------- -! SNOW DEPTH AND DENSITY ADJUSTMENT BASED ON SNOW COMPACTION. YY IS -! ASSUMED TO BE THE SOIL TEMPERTURE AT THE TOP OF THE SOIL COLUMN. -! ---------------------------------------------------------------------- - ! LAND - IF (ESD > 0.) THEN - CALL SNOWPACK (ESD,DT,SNOWH,SNDENS,T1,YY,SNOMLT,UA_PHYS) - ELSE - ESD = 0. - SNOWH = 0. - SNDENS = 0. - SNCOND = 1. - SNCOVR = 0. - END IF - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOPAC -! ---------------------------------------------------------------------- - - - SUBROUTINE SNOWPACK (ESD,DTSEC,SNOWH,SNDENS,TSNOW,TSOIL,SNOMLT,UA_PHYS) - -! ---------------------------------------------------------------------- -! SUBROUTINE SNOWPACK -! ---------------------------------------------------------------------- -! CALCULATE COMPACTION OF SNOWPACK UNDER CONDITIONS OF INCREASING SNOW -! DENSITY, AS OBTAINED FROM AN APPROXIMATE SOLUTION OF E. ANDERSON'S -! DIFFERENTIAL EQUATION (3.29), NOAA TECHNICAL REPORT NWS 19, BY VICTOR -! KOREN, 03/25/95. -! ---------------------------------------------------------------------- -! ESD WATER EQUIVALENT OF SNOW (M) -! DTSEC TIME STEP (SEC) -! SNOWH SNOW DEPTH (M) -! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) -! TSNOW SNOW SURFACE TEMPERATURE (K) -! TSOIL SOIL SURFACE TEMPERATURE (K) - -! SUBROUTINE WILL RETURN NEW VALUES OF SNOWH AND SNDENS -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER :: IPOL, J - REAL, INTENT(IN) :: ESD, DTSEC,TSNOW,TSOIL - REAL, INTENT(INOUT) :: SNOWH, SNDENS - REAL :: BFAC,DSX,DTHR,DW,SNOWHC,PEXP, & - TAVGC,TSNOWC,TSOILC,ESDC,ESDCX - REAL, PARAMETER :: C1 = 0.01, C2 = 21.0, G = 9.81, & - KN = 4000.0 - LOGICAL, INTENT(IN) :: UA_PHYS ! UA: flag for UA option - REAL, INTENT(IN) :: SNOMLT ! UA: snow melt [m] - REAL :: SNOMLTC ! UA: snow melt [cm] -! ---------------------------------------------------------------------- -! CONVERSION INTO SIMULATION UNITS -! ---------------------------------------------------------------------- - SNOWHC = SNOWH *100. - ESDC = ESD *100. - IF(UA_PHYS) SNOMLTC = SNOMLT *100. - DTHR = DTSEC /3600. - TSNOWC = TSNOW -273.15 - TSOILC = TSOIL -273.15 - -! ---------------------------------------------------------------------- -! CALCULATING OF AVERAGE TEMPERATURE OF SNOW PACK -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! CALCULATING OF SNOW DEPTH AND DENSITY AS A RESULT OF COMPACTION -! SNDENS=DS0*(EXP(BFAC*ESD)-1.)/(BFAC*ESD) -! BFAC=DTHR*C1*EXP(0.08*TAVGC-C2*DS0) -! NOTE: BFAC*ESD IN SNDENS EQN ABOVE HAS TO BE CAREFULLY TREATED -! NUMERICALLY BELOW: -! C1 IS THE FRACTIONAL INCREASE IN DENSITY (1/(CM*HR)) -! C2 IS A CONSTANT (CM3/G) KOJIMA ESTIMATED AS 21 CMS/G -! ---------------------------------------------------------------------- - TAVGC = 0.5* (TSNOWC + TSOILC) - IF (ESDC > 1.E-2) THEN - ESDCX = ESDC - ELSE - ESDCX = 1.E-2 - END IF - -! DSX = SNDENS*((DEXP(BFAC*ESDC)-1.)/(BFAC*ESDC)) -! ---------------------------------------------------------------------- -! THE FUNCTION OF THE FORM (e**x-1)/x EMBEDDED IN ABOVE EXPRESSION -! FOR DSX WAS CAUSING NUMERICAL DIFFICULTIES WHEN THE DENOMINATOR "x" -! (I.E. BFAC*ESDC) BECAME ZERO OR APPROACHED ZERO (DESPITE THE FACT THAT -! THE ANALYTICAL FUNCTION (e**x-1)/x HAS A WELL DEFINED LIMIT AS -! "x" APPROACHES ZERO), HENCE BELOW WE REPLACE THE (e**x-1)/x -! EXPRESSION WITH AN EQUIVALENT, NUMERICALLY WELL-BEHAVED -! POLYNOMIAL EXPANSION. - -! NUMBER OF TERMS OF POLYNOMIAL EXPANSION, AND HENCE ITS ACCURACY, -! IS GOVERNED BY ITERATION LIMIT "IPOL". -! IPOL GREATER THAN 9 ONLY MAKES A DIFFERENCE ON DOUBLE -! PRECISION (RELATIVE ERRORS GIVEN IN PERCENT %). -! IPOL=9, FOR REL.ERROR <~ 1.6 E-6 % (8 SIGNIFICANT DIGITS) -! IPOL=8, FOR REL.ERROR <~ 1.8 E-5 % (7 SIGNIFICANT DIGITS) -! IPOL=7, FOR REL.ERROR <~ 1.8 E-4 % ... -! ---------------------------------------------------------------------- - BFAC = DTHR * C1* EXP (0.08* TAVGC - C2* SNDENS) - IPOL = 4 - PEXP = 0. -! PEXP = (1. + PEXP)*BFAC*ESDC/REAL(J+1) - DO J = IPOL,1, -1 - PEXP = (1. + PEXP)* BFAC * ESDCX / REAL (J +1) - END DO - - PEXP = PEXP + 1. -! ---------------------------------------------------------------------- -! ABOVE LINE ENDS POLYNOMIAL SUBSTITUTION -! ---------------------------------------------------------------------- -! END OF KOREAN FORMULATION - -! BASE FORMULATION (COGLEY ET AL., 1990) -! CONVERT DENSITY FROM G/CM3 TO KG/M3 -! DSM=SNDENS*1000.0 - -! DSX=DSM+DTSEC*0.5*DSM*G*ESD/ -! & (1E7*EXP(-0.02*DSM+KN/(TAVGC+273.16)-14.643)) - -! & CONVERT DENSITY FROM KG/M3 TO G/CM3 -! DSX=DSX/1000.0 - -! END OF COGLEY ET AL. FORMULATION - -! ---------------------------------------------------------------------- -! SET UPPER/LOWER LIMIT ON SNOW DENSITY -! ---------------------------------------------------------------------- - DSX = SNDENS * (PEXP) - IF (DSX > 0.40) DSX = 0.40 - IF (DSX < 0.05) DSX = 0.05 -! ---------------------------------------------------------------------- -! UPDATE OF SNOW DEPTH AND DENSITY DEPENDING ON LIQUID WATER DURING -! SNOWMELT. ASSUMED THAT 13% OF LIQUID WATER CAN BE STORED IN SNOW PER -! DAY DURING SNOWMELT TILL SNOW DENSITY 0.40. -! ---------------------------------------------------------------------- - SNDENS = DSX - IF (TSNOWC >= 0.) THEN - DW = 0.13* DTHR /24. - IF ( UA_PHYS .AND. TSOILC >= 0.) THEN - DW = MIN (DW, 0.13*SNOMLTC/(ESDCX+0.13*SNOMLTC)) - ENDIF - SNDENS = SNDENS * (1. - DW) + DW - IF (SNDENS >= 0.40) SNDENS = 0.40 -! ---------------------------------------------------------------------- -! CALCULATE SNOW DEPTH (CM) FROM SNOW WATER EQUIVALENT AND SNOW DENSITY. -! CHANGE SNOW DEPTH UNITS TO METERS -! ---------------------------------------------------------------------- - END IF - SNOWHC = ESDC / SNDENS - SNOWH = SNOWHC *0.01 - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOWPACK -! ---------------------------------------------------------------------- - - SUBROUTINE SNOWZ0 (SNCOVR,Z0, Z0BRD, SNOWH,FBUR,FGSN,SHDMAX,UA_PHYS) - -! ---------------------------------------------------------------------- -! SUBROUTINE SNOWZ0 -! ---------------------------------------------------------------------- -! CALCULATE TOTAL ROUGHNESS LENGTH OVER SNOW -! SNCOVR FRACTIONAL SNOW COVER -! Z0 ROUGHNESS LENGTH (m) -! Z0S SNOW ROUGHNESS LENGTH:=0.001 (m) -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: SNCOVR, Z0BRD - REAL, INTENT(OUT) :: Z0 - REAL, PARAMETER :: Z0S=0.001 - REAL, INTENT(IN) :: SNOWH - REAL :: BURIAL - REAL :: Z0EFF - LOGICAL, INTENT(IN) :: UA_PHYS ! UA: flag for UA option - REAL, INTENT(IN) :: FBUR ! UA: fraction of canopy buried - REAL, INTENT(IN) :: FGSN ! UA: ground snow cover fraction - REAL, INTENT(IN) :: SHDMAX ! UA: maximum vegetation fraction - REAL, PARAMETER :: Z0G=0.01 ! UA: soil roughness - REAL :: FV,A1,A2 - - IF(UA_PHYS) THEN - - FV = SHDMAX * (1.-FBUR) - A1 = (1.-FV)**2*((1.-FGSN**2)*LOG(Z0G) + (FGSN**2)*LOG(Z0S)) - A2 = (1.-(1.-FV)**2)*LOG(Z0BRD) - Z0 = EXP(A1+A2) - - ELSE - -!m Z0 = (1.- SNCOVR)* Z0BRD + SNCOVR * Z0S - BURIAL = 7.0*Z0BRD - SNOWH - IF(BURIAL.LE.0.0007) THEN - Z0EFF = Z0S - ELSE - Z0EFF = BURIAL/7.0 - ENDIF - - Z0 = (1.- SNCOVR)* Z0BRD + SNCOVR * Z0EFF - - ENDIF -! ---------------------------------------------------------------------- - END SUBROUTINE SNOWZ0 -! ---------------------------------------------------------------------- - - - SUBROUTINE SNOW_NEW (TEMP,NEWSN,SNOWH,SNDENS) - -! ---------------------------------------------------------------------- -! SUBROUTINE SNOW_NEW -! ---------------------------------------------------------------------- -! CALCULATE SNOW DEPTH AND DENSITY TO ACCOUNT FOR THE NEW SNOWFALL. -! NEW VALUES OF SNOW DEPTH & DENSITY RETURNED. - -! TEMP AIR TEMPERATURE (K) -! NEWSN NEW SNOWFALL (M) -! SNOWH SNOW DEPTH (M) -! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: NEWSN, TEMP - REAL, INTENT(INOUT) :: SNDENS, SNOWH - REAL :: DSNEW, HNEWC, SNOWHC,NEWSNC,TEMPC - -! ---------------------------------------------------------------------- -! CONVERSION INTO SIMULATION UNITS -! ---------------------------------------------------------------------- - SNOWHC = SNOWH *100. - NEWSNC = NEWSN *100. - -! ---------------------------------------------------------------------- -! CALCULATING NEW SNOWFALL DENSITY DEPENDING ON TEMPERATURE -! EQUATION FROM GOTTLIB L. 'A GENERAL RUNOFF MODEL FOR SNOWCOVERED -! AND GLACIERIZED BASIN', 6TH NORDIC HYDROLOGICAL CONFERENCE, -! VEMADOLEN, SWEDEN, 1980, 172-177PP. -!----------------------------------------------------------------------- - TEMPC = TEMP -273.15 - IF (TEMPC <= -15.) THEN - DSNEW = 0.05 - ELSE - DSNEW = 0.05+0.0017* (TEMPC +15.)**1.5 - END IF -! ---------------------------------------------------------------------- -! ADJUSTMENT OF SNOW DENSITY DEPENDING ON NEW SNOWFALL -! ---------------------------------------------------------------------- - HNEWC = NEWSNC / DSNEW - IF (SNOWHC + HNEWC .LT. 1.0E-3) THEN - SNDENS = MAX(DSNEW,SNDENS) - ELSE - SNDENS = (SNOWHC * SNDENS + HNEWC * DSNEW)/ (SNOWHC + HNEWC) - ENDIF - SNOWHC = SNOWHC + HNEWC - SNOWH = SNOWHC *0.01 - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOW_NEW -! ---------------------------------------------------------------------- - - SUBROUTINE SRT (RHSTT,EDIR,ET,SH2O,SH2OA,NSOIL,PCPDRP, & - ZSOIL,DWSAT,DKSAT,SMCMAX,BEXP,RUNOFF1, & - RUNOFF2,DT,SMCWLT,SLOPE,KDT,FRZX,SICE,AI,BI,CI, & - SFHEAD1RT,INFXS1RT ) - -! ---------------------------------------------------------------------- -! SUBROUTINE SRT -! ---------------------------------------------------------------------- -! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL -! WATER DIFFUSION EQUATION. ALSO TO COMPUTE ( PREPARE ) THE MATRIX -! COEFFICIENTS FOR THE TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: IALP1, IOHINF, J, JJ, K, KS - -!DJG NDHMS/WRF-Hydro edit... Variables used in OV routing infiltration calcs - REAL, INTENT(INOUT) :: SFHEAD1RT, INFXS1RT - REAL :: SFCWATR,chcksm - - - - REAL, INTENT(IN) :: BEXP, DKSAT, DT, DWSAT, EDIR, FRZX, & - KDT, PCPDRP, SLOPE, SMCMAX, SMCWLT - REAL, INTENT(OUT) :: RUNOFF1, RUNOFF2 - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: ET, SH2O, SH2OA, SICE, & - ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: RHSTT - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: AI, BI, CI - REAL, DIMENSION(1:NSOIL) :: DMAX - REAL :: ACRT, DD, DDT, DDZ, DDZ2, DENOM, & - DENOM2,DICE, DSMDZ, DSMDZ2, DT1, & - FCR,INFMAX,MXSMC,MXSMC2,NUMER,PDDUM, & - PX, SICEMAX,SLOPX, SMCAV, SSTT, & - SUM, VAL, WCND, WCND2, WDF, WDF2 - INTEGER, PARAMETER :: CVFRZ = 3 - -! ---------------------------------------------------------------------- -! FROZEN GROUND VERSION: -! REFERENCE FROZEN GROUND PARAMETER, CVFRZ, IS A SHAPE PARAMETER OF -! AREAL DISTRIBUTION FUNCTION OF SOIL ICE CONTENT WHICH EQUALS 1/CV. -! CV IS A COEFFICIENT OF SPATIAL VARIATION OF SOIL ICE CONTENT. BASED -! ON FIELD DATA CV DEPENDS ON AREAL MEAN OF FROZEN DEPTH, AND IT CLOSE -! TO CONSTANT = 0.6 IF AREAL MEAN FROZEN DEPTH IS ABOVE 20 CM. THAT IS -! WHY PARAMETER CVFRZ = 3 (INT{1/0.6*0.6}). -! CURRENT LOGIC DOESN'T ALLOW CVFRZ BE BIGGER THAN 3 -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF. INCLUDE THE -! INFILTRATION FORMULE FROM SCHAAKE AND KOREN MODEL. -! MODIFIED BY Q DUAN -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! LET SICEMAX BE THE GREATEST, IF ANY, FROZEN WATER CONTENT WITHIN SOIL -! LAYERS. -! ---------------------------------------------------------------------- - IOHINF = 1 - SICEMAX = 0.0 - DO KS = 1,NSOIL - IF (SICE (KS) > SICEMAX) SICEMAX = SICE (KS) -! ---------------------------------------------------------------------- -! DETERMINE RAINFALL INFILTRATION RATE AND RUNOFF -! ---------------------------------------------------------------------- - END DO - -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... -!DJG Use previously merged Precip and Sfchead for infil. cap. calc. - SFCWATR = PCPDRP - PDDUM = SFCWATR -!DJG original PDDUM = PCPDRP - RUNOFF1 = 0.0 - INFXS1RT = 0.0 -#else - PDDUM = PCPDRP - RUNOFF1 = 0.0 -#endif - - - -! ---------------------------------------------------------------------- -! MODIFIED BY Q. DUAN, 5/16/94 -! ---------------------------------------------------------------------- -! IF (IOHINF == 1) THEN - -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... -!DJG IF (PCPDRP /= 0.0) THEN - IF (SFCWATR /= 0.0) THEN -#else - IF (PCPDRP /= 0.0) THEN -#endif - DT1 = DT /86400. - SMCAV = SMCMAX - SMCWLT - -! ---------------------------------------------------------------------- -! FROZEN GROUND VERSION: -! ---------------------------------------------------------------------- - DMAX (1)= - ZSOIL (1)* SMCAV - - DICE = - ZSOIL (1) * SICE (1) - DMAX (1)= DMAX (1)* (1.0- (SH2OA (1) + SICE (1) - SMCWLT)/ & - SMCAV) - - DD = DMAX (1) - -! ---------------------------------------------------------------------- -! FROZEN GROUND VERSION: -! ---------------------------------------------------------------------- - DO KS = 2,NSOIL - - DICE = DICE+ ( ZSOIL (KS -1) - ZSOIL (KS) ) * SICE (KS) - DMAX (KS) = (ZSOIL (KS -1) - ZSOIL (KS))* SMCAV - DMAX (KS) = DMAX (KS)* (1.0- (SH2OA (KS) + SICE (KS) & - - SMCWLT)/ SMCAV) - DD = DD+ DMAX (KS) -! ---------------------------------------------------------------------- -! VAL = (1.-EXP(-KDT*SQRT(DT1))) -! IN BELOW, REMOVE THE SQRT IN ABOVE -! ---------------------------------------------------------------------- - END DO - VAL = (1. - EXP ( - KDT * DT1)) - DDT = DD * VAL -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... -!DJG PX = PCPDRP * DT - PX = SFCWATR * DT -#else - PX = PCPDRP * DT -#endif - IF (PX < 0.0) PX = 0.0 - - - -! ---------------------------------------------------------------------- -! FROZEN GROUND VERSION: -! REDUCTION OF INFILTRATION BASED ON FROZEN GROUND PARAMETERS -! ---------------------------------------------------------------------- - INFMAX = (PX * (DDT / (PX + DDT)))/ DT - FCR = 1. - IF (DICE > 1.E-2) THEN - ACRT = CVFRZ * FRZX / DICE - SUM = 1. - IALP1 = CVFRZ - 1 - DO J = 1,IALP1 - K = 1 - DO JJ = J +1,IALP1 - K = K * JJ - END DO - SUM = SUM + (ACRT ** ( CVFRZ - J)) / FLOAT (K) - END DO - FCR = 1. - EXP ( - ACRT) * SUM - END IF - -! ---------------------------------------------------------------------- -! CORRECTION OF INFILTRATION LIMITATION: -! IF INFMAX .LE. HYDROLIC CONDUCTIVITY ASSIGN INFMAX THE VALUE OF -! HYDROLIC CONDUCTIVITY -! ---------------------------------------------------------------------- -! MXSMC = MAX ( SH2OA(1), SH2OA(2) ) - INFMAX = INFMAX * FCR - - MXSMC = SH2OA (1) - CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & - SICEMAX) - INFMAX = MAX (INFMAX,WCND) - - INFMAX = MIN (INFMAX,PX/DT) -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... -!DJG IF (PCPDRP > INFMAX) THEN - IF (SFCWATR > INFMAX) THEN -!DJG RUNOFF1 = PCPDRP - INFMAX - RUNOFF1 = SFCWATR - INFMAX -#else - IF (PCPDRP > INFMAX) THEN - RUNOFF1 = PCPDRP - INFMAX -#endif - INFXS1RT = RUNOFF1*DT*1000. - PDDUM = INFMAX - END IF - -! ---------------------------------------------------------------------- -! TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN LINE -! BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: -! 'MXSMC = MAX(SH2OA(1), SH2OA(2))' -! ---------------------------------------------------------------------- - END IF - - MXSMC = SH2OA (1) - CALL WDFCND (WDF,WCND,MXSMC,SMCMAX,BEXP,DKSAT,DWSAT, & - SICEMAX) -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER -! ---------------------------------------------------------------------- - DDZ = 1. / ( - .5 * ZSOIL (2) ) - AI (1) = 0.0 - BI (1) = WDF * DDZ / ( - ZSOIL (1) ) - -! ---------------------------------------------------------------------- -! CALC RHSTT FOR THE TOP LAYER AFTER CALC'NG THE VERTICAL SOIL MOISTURE -! GRADIENT BTWN THE TOP AND NEXT TO TOP LAYERS. -! ---------------------------------------------------------------------- - CI (1) = - BI (1) - DSMDZ = ( SH2O (1) - SH2O (2) ) / ( - .5 * ZSOIL (2) ) - RHSTT (1) = (WDF * DSMDZ + WCND- PDDUM + EDIR + ET (1))/ ZSOIL (1) - -! ---------------------------------------------------------------------- -! INITIALIZE DDZ2 -! ---------------------------------------------------------------------- - SSTT = WDF * DSMDZ + WCND+ EDIR + ET (1) - -! ---------------------------------------------------------------------- -! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABV PROCESS -! ---------------------------------------------------------------------- - DDZ2 = 0.0 - DO K = 2,NSOIL - DENOM2 = (ZSOIL (K -1) - ZSOIL (K)) - IF (K /= NSOIL) THEN - -! ---------------------------------------------------------------------- -! AGAIN, TO AVOID SPURIOUS DRAINAGE BEHAVIOR, 'UPSTREAM DIFFERENCING' IN -! LINE BELOW REPLACED WITH NEW APPROACH IN 2ND LINE: -! 'MXSMC2 = MAX (SH2OA(K), SH2OA(K+1))' -! ---------------------------------------------------------------------- - SLOPX = 1. - - MXSMC2 = SH2OA (K) - CALL WDFCND (WDF2,WCND2,MXSMC2,SMCMAX,BEXP,DKSAT,DWSAT, & - SICEMAX) -! ----------------------------------------------------------------------- -! CALC SOME PARTIAL PRODUCTS FOR LATER USE IN CALC'NG RHSTT -! ---------------------------------------------------------------------- - DENOM = (ZSOIL (K -1) - ZSOIL (K +1)) - -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT -! ---------------------------------------------------------------------- - DSMDZ2 = (SH2O (K) - SH2O (K +1)) / (DENOM * 0.5) - DDZ2 = 2.0 / DENOM - CI (K) = - WDF2 * DDZ2 / DENOM2 - - ELSE -! ---------------------------------------------------------------------- -! SLOPE OF BOTTOM LAYER IS INTRODUCED -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! RETRIEVE THE SOIL WATER DIFFUSIVITY AND HYDRAULIC CONDUCTIVITY FOR -! THIS LAYER -! ---------------------------------------------------------------------- - SLOPX = SLOPE - CALL WDFCND (WDF2,WCND2,SH2OA (NSOIL),SMCMAX,BEXP,DKSAT,DWSAT, & - SICEMAX) - -! ---------------------------------------------------------------------- -! CALC A PARTIAL PRODUCT FOR LATER USE IN CALC'NG RHSTT -! ---------------------------------------------------------------------- - -! ---------------------------------------------------------------------- -! SET MATRIX COEF CI TO ZERO -! ---------------------------------------------------------------------- - DSMDZ2 = 0.0 - CI (K) = 0.0 -! ---------------------------------------------------------------------- -! CALC RHSTT FOR THIS LAYER AFTER CALC'NG ITS NUMERATOR -! ---------------------------------------------------------------------- - END IF - NUMER = (WDF2 * DSMDZ2) + SLOPX * WCND2- (WDF * DSMDZ) & - - WCND+ ET (K) - -! ---------------------------------------------------------------------- -! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER -! ---------------------------------------------------------------------- - RHSTT (K) = NUMER / ( - DENOM2) - AI (K) = - WDF * DDZ / DENOM2 - -! ---------------------------------------------------------------------- -! RESET VALUES OF WDF, WCND, DSMDZ, AND DDZ FOR LOOP TO NEXT LYR -! RUNOFF2: SUB-SURFACE OR BASEFLOW RUNOFF -! ---------------------------------------------------------------------- - BI (K) = - ( AI (K) + CI (K) ) - IF (K .eq. NSOIL) THEN - RUNOFF2 = SLOPX * WCND2 - END IF - IF (K .ne. NSOIL) THEN - WDF = WDF2 - WCND = WCND2 - DSMDZ = DSMDZ2 - DDZ = DDZ2 - END IF - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE SRT -! ---------------------------------------------------------------------- - - SUBROUTINE SSTEP (SH2OOUT,SH2OIN,CMC,RHSTT,RHSCT,DT, & - NSOIL,SMCMAX,CMCMAX,RUNOFF3,ZSOIL,SMC,SICE, & - AI,BI,CI, INFXS1RT) - -! ---------------------------------------------------------------------- -! SUBROUTINE SSTEP -! ---------------------------------------------------------------------- -! CALCULATE/UPDATE SOIL MOISTURE CONTENT VALUES AND CANOPY MOISTURE -! CONTENT VALUES. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: I, K, KK11 - -!!DJG NDHMS/WRF-Hydro edit... - REAL, INTENT(INOUT) :: INFXS1RT - REAL :: AVAIL - - REAL, INTENT(IN) :: CMCMAX, DT, SMCMAX - REAL, INTENT(OUT) :: RUNOFF3 - REAL, INTENT(INOUT) :: CMC - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: SH2OIN, SICE, ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: SH2OOUT - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: RHSTT, SMC - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: AI, BI, CI - REAL, DIMENSION(1:NSOIL) :: RHSTTin - REAL, DIMENSION(1:NSOIL) :: CIin - REAL :: DDZ, RHSCT, STOT, WPLUS - -! ---------------------------------------------------------------------- -! CREATE 'AMOUNT' VALUES OF VARIABLES TO BE INPUT TO THE -! TRI-DIAGONAL MATRIX ROUTINE. -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTT (K) = RHSTT (K) * DT - AI (K) = AI (K) * DT - BI (K) = 1. + BI (K) * DT - CI (K) = CI (K) * DT - END DO -! ---------------------------------------------------------------------- -! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTTin (K) = RHSTT (K) - END DO - DO K = 1,NSOIL - CIin (K) = CI (K) - END DO -! ---------------------------------------------------------------------- -! CALL ROSR12 TO SOLVE THE TRI-DIAGONAL MATRIX -! ---------------------------------------------------------------------- - CALL ROSR12 (CI,AI,BI,CIin,RHSTTin,RHSTT,NSOIL) -! ---------------------------------------------------------------------- -! SUM THE PREVIOUS SMC VALUE AND THE MATRIX SOLUTION TO GET A -! NEW VALUE. MIN ALLOWABLE VALUE OF SMC WILL BE 0.02. -! RUNOFF3: RUNOFF WITHIN SOIL LAYERS -! ---------------------------------------------------------------------- - WPLUS = 0.0 - RUNOFF3 = 0. - - DDZ = - ZSOIL (1) - DO K = 1,NSOIL - IF (K /= 1) DDZ = ZSOIL (K - 1) - ZSOIL (K) - SH2OOUT (K) = SH2OIN (K) + CI (K) + WPLUS / DDZ - STOT = SH2OOUT (K) + SICE (K) - IF (STOT > SMCMAX) THEN - IF (K .eq. 1) THEN - DDZ = - ZSOIL (1) - ELSE - KK11 = K - 1 - DDZ = - ZSOIL (K) + ZSOIL (KK11) - END IF - WPLUS = (STOT - SMCMAX) * DDZ - ELSE - WPLUS = 0. - END IF - SMC (K) = MAX ( MIN (STOT,SMCMAX),0.02 ) - SH2OOUT (K) = MAX ( (SMC (K) - SICE (K)),0.0) - END DO -#ifdef WRF_HYDRO -!DJG NDHMS/WRF-Hydro edit... -!DJG Modifications to redstribute WPLUS/RUNOFF3 (soil moisture closure error) to soil profile -!DJG beginning at bottom layer (NSOIL) - IF (WPLUS > 0.) THEN - DO K=NSOIL,2,-1 - - IF (K .eq. 2) THEN !Assign soil depths - DDZ = -ZSOIL(1) - ELSE - DDZ = ZSOIL(K-2)-ZSOIL(K-1) - END IF - - AVAIL = (SMCMAX - SMC(K-1)) * DDZ !Det. Avail. Stor. - -! print *, "ZZZZZ", K,DDZ,AVAIL,WPLUS,SMC(K),SMC(K-1),SMCMAX - - IF (WPLUS <= AVAIL) THEN - SMC(K-1) = SMC(K-1) + WPLUS/DDZ - WPLUS = 0. - ELSE - SMC(K-1) = SMCMAX - WPLUS = WPLUS - AVAIL - IF (K-1 .eq. 1) THEN - INFXS1RT = INFXS1RT + WPLUS*1000 - WPLUS = 0. - END IF - END IF - -! SMC (K) = MAX ( MIN (STOT,SMCMAX),0.02 ) - SH2OOUT (K) = MAX ( (SMC (K) - SICE (K)),0.0) - - END DO - END IF -!DJG NDHMS/WRF-Hydro edit...End of modification -#endif - - -! ---------------------------------------------------------------------- -! UPDATE CANOPY WATER CONTENT/INTERCEPTION (CMC). CONVERT RHSCT TO -! AN 'AMOUNT' VALUE AND ADD TO PREVIOUS CMC VALUE TO GET NEW CMC. -! ---------------------------------------------------------------------- - RUNOFF3 = WPLUS - CMC = CMC + DT * RHSCT - IF (CMC < 1.E-20) CMC = 0.0 - CMC = MIN (CMC,CMCMAX) - -! ---------------------------------------------------------------------- - END SUBROUTINE SSTEP -! ---------------------------------------------------------------------- - - SUBROUTINE TBND (TU,TB,ZSOIL,ZBOT,K,NSOIL,TBND1) - -! ---------------------------------------------------------------------- -! SUBROUTINE TBND -! ---------------------------------------------------------------------- -! CALCULATE TEMPERATURE ON THE BOUNDARY OF THE LAYER BY INTERPOLATION OF -! THE MIDDLE LAYER TEMPERATURES -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: K - REAL, INTENT(IN) :: TB, TU, ZBOT - REAL, INTENT(OUT) :: TBND1 - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: ZSOIL - REAL :: ZB, ZUP - REAL, PARAMETER :: T0 = 273.15 - -! ---------------------------------------------------------------------- -! USE SURFACE TEMPERATURE ON THE TOP OF THE FIRST LAYER -! ---------------------------------------------------------------------- - IF (K == 1) THEN - ZUP = 0. - ELSE - ZUP = ZSOIL (K -1) - END IF -! ---------------------------------------------------------------------- -! USE DEPTH OF THE CONSTANT BOTTOM TEMPERATURE WHEN INTERPOLATE -! TEMPERATURE INTO THE LAST LAYER BOUNDARY -! ---------------------------------------------------------------------- - IF (K == NSOIL) THEN - ZB = 2.* ZBOT - ZSOIL (K) - ELSE - ZB = ZSOIL (K +1) - END IF -! ---------------------------------------------------------------------- -! LINEAR INTERPOLATION BETWEEN THE AVERAGE LAYER TEMPERATURES -! ---------------------------------------------------------------------- - - TBND1 = TU + (TB - TU)* (ZUP - ZSOIL (K))/ (ZUP - ZB) -! ---------------------------------------------------------------------- - END SUBROUTINE TBND -! ---------------------------------------------------------------------- - - - SUBROUTINE TDFCND ( DF, SMC, QZ, SMCMAX, SH2O, BEXP, PSISAT, SOILTYP, OPT_THCND) - -! ---------------------------------------------------------------------- -! SUBROUTINE TDFCND -! ---------------------------------------------------------------------- -! CALCULATE THERMAL DIFFUSIVITY AND CONDUCTIVITY OF THE SOIL FOR A GIVEN -! POINT AND TIME. -! ---------------------------------------------------------------------- -! PETERS-LIDARD APPROACH (PETERS-LIDARD et al., 1998) -! June 2001 CHANGES: FROZEN SOIL CONDITION. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: SOILTYP, OPT_THCND - REAL, INTENT(IN) :: QZ, SMC, SMCMAX, SH2O, BEXP, PSISAT - REAL, INTENT(OUT) :: DF - REAL :: AKE, GAMMD, THKDRY, THKICE, THKO, & - THKQTZ,THKSAT,THKS,THKW,SATRATIO,XU, & - XUNFROZ,AKEI,AKEL,PSIF,PF - -! ---------------------------------------------------------------------- -! WE NOW GET QUARTZ AS AN INPUT ARGUMENT (SET IN ROUTINE REDPRM): -! DATA QUARTZ /0.82, 0.10, 0.25, 0.60, 0.52, -! & 0.35, 0.60, 0.40, 0.82/ -! ---------------------------------------------------------------------- -! IF THE SOIL HAS ANY MOISTURE CONTENT COMPUTE A PARTIAL SUM/PRODUCT -! OTHERWISE USE A CONSTANT VALUE WHICH WORKS WELL WITH MOST SOILS -! ---------------------------------------------------------------------- -! THKW ......WATER THERMAL CONDUCTIVITY -! THKQTZ ....THERMAL CONDUCTIVITY FOR QUARTZ -! THKO ......THERMAL CONDUCTIVITY FOR OTHER SOIL COMPONENTS -! THKS ......THERMAL CONDUCTIVITY FOR THE SOLIDS COMBINED(QUARTZ+OTHER) -! THKICE ....ICE THERMAL CONDUCTIVITY -! SMCMAX ....POROSITY (= SMCMAX) -! QZ .........QUARTZ CONTENT (SOIL TYPE DEPENDENT) -! ---------------------------------------------------------------------- -! USE AS IN PETERS-LIDARD, 1998 (MODIF. FROM JOHANSEN, 1975). - -! PABLO GRUNMANN, 08/17/98 -! REFS.: -! FAROUKI, O.T.,1986: THERMAL PROPERTIES OF SOILS. SERIES ON ROCK -! AND SOIL MECHANICS, VOL. 11, TRANS TECH, 136 PP. -! JOHANSEN, O., 1975: THERMAL CONDUCTIVITY OF SOILS. PH.D. THESIS, -! UNIVERSITY OF TRONDHEIM, -! PETERS-LIDARD, C. D., ET AL., 1998: THE EFFECT OF SOIL THERMAL -! CONDUCTIVITY PARAMETERIZATION ON SURFACE ENERGY FLUXES -! AND TEMPERATURES. JOURNAL OF THE ATMOSPHERIC SCIENCES, -! VOL. 55, PP. 1209-1224. -! ---------------------------------------------------------------------- - -IF ( OPT_THCND == 1 .OR. ( OPT_THCND == 2 .AND. (SOILTYP /= 4 .AND. SOILTYP /= 3)) )THEN - -! NEEDS PARAMETERS -! POROSITY(SOIL TYPE): -! POROS = SMCMAX -! SATURATION RATIO: -! PARAMETERS W/(M.K) - SATRATIO = SMC / SMCMAX -! ICE CONDUCTIVITY: - THKICE = 2.2 -! WATER CONDUCTIVITY: - THKW = 0.57 -! THERMAL CONDUCTIVITY OF "OTHER" SOIL COMPONENTS -! IF (QZ .LE. 0.2) THKO = 3.0 - THKO = 2.0 -! QUARTZ' CONDUCTIVITY - THKQTZ = 7.7 -! SOLIDS' CONDUCTIVITY - THKS = (THKQTZ ** QZ)* (THKO ** (1. - QZ)) - -! UNFROZEN FRACTION (FROM 1., i.e., 100%LIQUID, TO 0. (100% FROZEN)) - XUNFROZ = SH2O / SMC -! UNFROZEN VOLUME FOR SATURATION (POROSITY*XUNFROZ) - XU = XUNFROZ * SMCMAX - -! SATURATED THERMAL CONDUCTIVITY - THKSAT = THKS ** (1. - SMCMAX)* THKICE ** (SMCMAX - XU)* THKW ** & - (XU) - -! DRY DENSITY IN KG/M3 - GAMMD = (1. - SMCMAX)*2700. - -! DRY THERMAL CONDUCTIVITY IN W.M-1.K-1 - THKDRY = (0.135* GAMMD+ 64.7)/ (2700. - 0.947* GAMMD) -! FROZEN - AKEI = SATRATIO -! UNFROZEN -! RANGE OF VALIDITY FOR THE KERSTEN NUMBER (AKE) - -! KERSTEN NUMBER (USING "FINE" FORMULA, VALID FOR SOILS CONTAINING AT -! LEAST 5% OF PARTICLES WITH DIAMETER LESS THAN 2.E-6 METERS.) -! (FOR "COARSE" FORMULA, SEE PETERS-LIDARD ET AL., 1998). - - IF ( SATRATIO > 0.1 ) THEN - - AKEL = LOG10 (SATRATIO) + 1.0 - -! USE K = KDRY - ELSE - - AKEL = 0.0 - END IF - AKE = ((SMC-SH2O)*AKEI + SH2O*AKEL)/SMC -! THERMAL CONDUCTIVITY - - - DF = AKE * (THKSAT - THKDRY) + THKDRY - - ELSE - -! use the Mccumber and Pielke approach for silt loam (4), sandy loam (3) - - PSIF = PSISAT*100.*(SMCMAX/(SMC))**BEXP -!--- PSIF should be in [CM] to compute PF - PF=log10(abs(PSIF)) -!--- HK is for McCumber thermal conductivity - IF(PF.LE.5.1) THEN - DF=420.*EXP(-(PF+2.7)) - ELSE - DF=.1744 - END IF - - ENDIF ! for OPT_THCND OPTIONS -! ---------------------------------------------------------------------- - END SUBROUTINE TDFCND -! ---------------------------------------------------------------------- - - SUBROUTINE TMPAVG (TAVG,TUP,TM,TDN,ZSOIL,NSOIL,K) - -! ---------------------------------------------------------------------- -! SUBROUTINE TMPAVG -! ---------------------------------------------------------------------- -! CALCULATE SOIL LAYER AVERAGE TEMPERATURE (TAVG) IN FREEZING/THAWING -! LAYER USING UP, DOWN, AND MIDDLE LAYER TEMPERATURES (TUP, TDN, TM), -! WHERE TUP IS AT TOP BOUNDARY OF LAYER, TDN IS AT BOTTOM BOUNDARY OF -! LAYER. TM IS LAYER PROGNOSTIC STATE TEMPERATURE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER K - - INTEGER NSOIL - REAL DZ - REAL DZH - REAL T0 - REAL TAVG - REAL TDN - REAL TM - REAL TUP - REAL X0 - REAL XDN - REAL XUP - - REAL ZSOIL (NSOIL) - -! ---------------------------------------------------------------------- - PARAMETER (T0 = 2.7315E2) - IF (K .eq. 1) THEN - DZ = - ZSOIL (1) - ELSE - DZ = ZSOIL (K -1) - ZSOIL (K) - END IF - - DZH = DZ *0.5 - IF (TUP .lt. T0) THEN - IF (TM .lt. T0) THEN -! ---------------------------------------------------------------------- -! TUP, TM, TDN < T0 -! ---------------------------------------------------------------------- - IF (TDN .lt. T0) THEN - TAVG = (TUP + 2.0* TM + TDN)/ 4.0 -! ---------------------------------------------------------------------- -! TUP & TM < T0, TDN .ge. T0 -! ---------------------------------------------------------------------- - ELSE - X0 = (T0- TM) * DZH / (TDN - TM) - TAVG = 0.5 * (TUP * DZH + TM * (DZH + X0) + T0* ( & - & 2.* DZH - X0)) / DZ - END IF - ELSE -! ---------------------------------------------------------------------- -! TUP < T0, TM .ge. T0, TDN < T0 -! ---------------------------------------------------------------------- - IF (TDN .lt. T0) THEN - XUP = (T0- TUP) * DZH / (TM - TUP) - XDN = DZH - (T0- TM) * DZH / (TDN - TM) - TAVG = 0.5 * (TUP * XUP + T0* (2.* DZ - XUP - XDN) & - & + TDN * XDN) / DZ -! ---------------------------------------------------------------------- -! TUP < T0, TM .ge. T0, TDN .ge. T0 -! ---------------------------------------------------------------------- - ELSE - XUP = (T0- TUP) * DZH / (TM - TUP) - TAVG = 0.5 * (TUP * XUP + T0* (2.* DZ - XUP)) / DZ - END IF - END IF - ELSE - IF (TM .lt. T0) THEN -! ---------------------------------------------------------------------- -! TUP .ge. T0, TM < T0, TDN < T0 -! ---------------------------------------------------------------------- - IF (TDN .lt. T0) THEN - XUP = DZH - (T0- TUP) * DZH / (TM - TUP) - TAVG = 0.5 * (T0* (DZ - XUP) + TM * (DZH + XUP) & - & + TDN * DZH) / DZ -! ---------------------------------------------------------------------- -! TUP .ge. T0, TM < T0, TDN .ge. T0 -! ---------------------------------------------------------------------- - ELSE - XUP = DZH - (T0- TUP) * DZH / (TM - TUP) - XDN = (T0- TM) * DZH / (TDN - TM) - TAVG = 0.5 * (T0* (2.* DZ - XUP - XDN) + TM * & - & (XUP + XDN)) / DZ - END IF - ELSE -! ---------------------------------------------------------------------- -! TUP .ge. T0, TM .ge. T0, TDN < T0 -! ---------------------------------------------------------------------- - IF (TDN .lt. T0) THEN - XDN = DZH - (T0- TM) * DZH / (TDN - TM) - TAVG = (T0* (DZ - XDN) +0.5* (T0+ TDN)* XDN) / DZ -! ---------------------------------------------------------------------- -! TUP .ge. T0, TM .ge. T0, TDN .ge. T0 -! ---------------------------------------------------------------------- - ELSE - TAVG = (TUP + 2.0* TM + TDN) / 4.0 - END IF - END IF - END IF -! ---------------------------------------------------------------------- - END SUBROUTINE TMPAVG -! ---------------------------------------------------------------------- - - SUBROUTINE TRANSP (ET,NSOIL,ETP1,SMC,CMC,ZSOIL,SHDFAC,SMCWLT, & - & CMCMAX,PC,CFACTR,SMCREF,SFCTMP,Q2,NROOT, & - & RTDIS) - -! ---------------------------------------------------------------------- -! SUBROUTINE TRANSP -! ---------------------------------------------------------------------- -! CALCULATE TRANSPIRATION FOR THE VEG CLASS. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER I - INTEGER K - INTEGER NSOIL - - INTEGER NROOT - REAL CFACTR - REAL CMC - REAL CMCMAX - REAL DENOM - REAL ET (NSOIL) - REAL ETP1 - REAL ETP1A -!.....REAL PART(NSOIL) - REAL GX (NROOT) - REAL PC - REAL Q2 - REAL RTDIS (NSOIL) - REAL RTX - REAL SFCTMP - REAL SGX - REAL SHDFAC - REAL SMC (NSOIL) - REAL SMCREF - REAL SMCWLT - -! ---------------------------------------------------------------------- -! INITIALIZE PLANT TRANSP TO ZERO FOR ALL SOIL LAYERS. -! ---------------------------------------------------------------------- - REAL ZSOIL (NSOIL) - DO K = 1,NSOIL - ET (K) = 0. -! ---------------------------------------------------------------------- -! CALCULATE AN 'ADJUSTED' POTENTIAL TRANSPIRATION -! IF STATEMENT BELOW TO AVOID TANGENT LINEAR PROBLEMS NEAR ZERO -! NOTE: GX AND OTHER TERMS BELOW REDISTRIBUTE TRANSPIRATION BY LAYER, -! ET(K), AS A FUNCTION OF SOIL MOISTURE AVAILABILITY, WHILE PRESERVING -! TOTAL ETP1A. -! ---------------------------------------------------------------------- - END DO - IF (CMC .ne. 0.0) THEN - ETP1A = SHDFAC * PC * ETP1 * (1.0- (CMC / CMCMAX) ** CFACTR) - ELSE - ETP1A = SHDFAC * PC * ETP1 - END IF - SGX = 0.0 - DO I = 1,NROOT - GX (I) = ( SMC (I) - SMCWLT ) / ( SMCREF - SMCWLT ) - GX (I) = MAX ( MIN ( GX (I), 1. ), 0. ) - SGX = SGX + GX (I) - END DO - - SGX = SGX / NROOT - DENOM = 0. - DO I = 1,NROOT - RTX = RTDIS (I) + GX (I) - SGX - GX (I) = GX (I) * MAX ( RTX, 0. ) - DENOM = DENOM + GX (I) - END DO - - IF (DENOM .le. 0.0) DENOM = 1. - DO I = 1,NROOT - ET (I) = ETP1A * GX (I) / DENOM -! ---------------------------------------------------------------------- -! ABOVE CODE ASSUMES A VERTICALLY UNIFORM ROOT DISTRIBUTION -! CODE BELOW TESTS A VARIABLE ROOT DISTRIBUTION -! ---------------------------------------------------------------------- -! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * GX * ETP1A -! ET(1) = ( ZSOIL(1) / ZSOIL(NROOT) ) * ETP1A -! ---------------------------------------------------------------------- -! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR -! ---------------------------------------------------------------------- -! ET(1) = RTDIS(1) * ETP1A -! ET(1) = ETP1A * PART(1) -! ---------------------------------------------------------------------- -! LOOP DOWN THRU THE SOIL LAYERS REPEATING THE OPERATION ABOVE, -! BUT USING THE THICKNESS OF THE SOIL LAYER (RATHER THAN THE -! ABSOLUTE DEPTH OF EACH LAYER) IN THE FINAL CALCULATION. -! ---------------------------------------------------------------------- -! DO K = 2,NROOT -! GX = ( SMC(K) - SMCWLT ) / ( SMCREF - SMCWLT ) -! GX = MAX ( MIN ( GX, 1. ), 0. ) -! TEST CANOPY RESISTANCE -! GX = 1.0 -! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*GX*ETP1A -! ET(K) = ((ZSOIL(K)-ZSOIL(K-1))/ZSOIL(NROOT))*ETP1A -! ---------------------------------------------------------------------- -! USING ROOT DISTRIBUTION AS WEIGHTING FACTOR -! ---------------------------------------------------------------------- -! ET(K) = RTDIS(K) * ETP1A -! ET(K) = ETP1A*PART(K) -! END DO - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE TRANSP -! ---------------------------------------------------------------------- - - SUBROUTINE WDFCND (WDF,WCND,SMC,SMCMAX,BEXP,DKSAT,DWSAT, & - & SICEMAX) - -! ---------------------------------------------------------------------- -! SUBROUTINE WDFCND -! ---------------------------------------------------------------------- -! CALCULATE SOIL WATER DIFFUSIVITY AND SOIL HYDRAULIC CONDUCTIVITY. -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL BEXP - REAL DKSAT - REAL DWSAT - REAL EXPON - REAL FACTR1 - REAL FACTR2 - REAL SICEMAX - REAL SMC - REAL SMCMAX - REAL VKwgt - REAL WCND - -! ---------------------------------------------------------------------- -! CALC THE RATIO OF THE ACTUAL TO THE MAX PSBL SOIL H2O CONTENT -! ---------------------------------------------------------------------- - REAL WDF - FACTR1 = 0.05 / SMCMAX - -! ---------------------------------------------------------------------- -! PREP AN EXPNTL COEF AND CALC THE SOIL WATER DIFFUSIVITY -! ---------------------------------------------------------------------- - FACTR2 = SMC / SMCMAX - FACTR1 = MIN(FACTR1,FACTR2) - EXPON = BEXP + 2.0 - -! ---------------------------------------------------------------------- -! FROZEN SOIL HYDRAULIC DIFFUSIVITY. VERY SENSITIVE TO THE VERTICAL -! GRADIENT OF UNFROZEN WATER. THE LATTER GRADIENT CAN BECOME VERY -! EXTREME IN FREEZING/THAWING SITUATIONS, AND GIVEN THE RELATIVELY -! FEW AND THICK SOIL LAYERS, THIS GRADIENT SUFFERES SERIOUS -! TRUNCTION ERRORS YIELDING ERRONEOUSLY HIGH VERTICAL TRANSPORTS OF -! UNFROZEN WATER IN BOTH DIRECTIONS FROM HUGE HYDRAULIC DIFFUSIVITY. -! THEREFORE, WE FOUND WE HAD TO ARBITRARILY CONSTRAIN WDF -! -- -! VERSION D_10CM: ........ FACTR1 = 0.2/SMCMAX -! WEIGHTED APPROACH...................... PABLO GRUNMANN, 28_SEP_1999. -! ---------------------------------------------------------------------- - WDF = DWSAT * FACTR2 ** EXPON - IF (SICEMAX .gt. 0.0) THEN - VKWGT = 1./ (1. + (500.* SICEMAX)**3.) - WDF = VKWGT * WDF + (1. - VKWGT)* DWSAT * FACTR1** EXPON -! ---------------------------------------------------------------------- -! RESET THE EXPNTL COEF AND CALC THE HYDRAULIC CONDUCTIVITY -! ---------------------------------------------------------------------- - END IF - EXPON = (2.0 * BEXP) + 3.0 - WCND = DKSAT * FACTR2 ** EXPON - -! ---------------------------------------------------------------------- - END SUBROUTINE WDFCND -! ---------------------------------------------------------------------- - - SUBROUTINE SFCDIF_off (ZLM,Z0,THZ0,THLM,SFCSPD,CZIL,AKMS,AKHS) - -! ---------------------------------------------------------------------- -! SUBROUTINE SFCDIF (renamed SFCDIF_off to avoid clash with Eta PBL) -! ---------------------------------------------------------------------- -! CALCULATE SURFACE LAYER EXCHANGE COEFFICIENTS VIA ITERATIVE PROCESS. -! SEE CHEN ET AL (1997, BLM) -! ---------------------------------------------------------------------- - - IMPLICIT NONE - REAL WWST, WWST2, G, VKRM, EXCM, BETA, BTG, ELFC, WOLD, WNEW - REAL PIHF, EPSU2, EPSUST, EPSIT, EPSA, ZTMIN, ZTMAX, HPBL, & - & SQVISC - REAL RIC, RRIC, FHNEU, RFC, RFAC, ZZ, PSLMU, PSLMS, PSLHU, & - & PSLHS - REAL XX, PSPMU, YY, PSPMS, PSPHU, PSPHS, ZLM, Z0, THZ0, THLM - REAL SFCSPD, CZIL, AKMS, AKHS, ZILFC, ZU, ZT, RDZ, CXCH - REAL DTHV, DU2, BTGH, WSTAR2, USTAR, ZSLU, ZSLT, RLOGU, RLOGT - REAL RLMO, ZETALT, ZETALU, ZETAU, ZETAT, XLU4, XLT4, XU4, XT4 -!CC ......REAL ZTFC - - REAL XLU, XLT, XU, XT, PSMZ, SIMM, PSHZ, SIMH, USTARK, RLMN, & - & RLMA - - INTEGER ITRMX, ILECH, ITR - PARAMETER & - & (WWST = 1.2,WWST2 = WWST * WWST,G = 9.8,VKRM = 0.40, & - & EXCM = 0.001 & - & ,BETA = 1./270.,BTG = BETA * G,ELFC = VKRM * BTG & - & ,WOLD =.15,WNEW = 1. - WOLD,ITRMX = 05, & - & PIHF = 3.14159265/2.) - PARAMETER & - & (EPSU2 = 1.E-4,EPSUST = 0.07,EPSIT = 1.E-4,EPSA = 1.E-8 & - & ,ZTMIN = -5.,ZTMAX = 1.,HPBL = 1000.0 & - & ,SQVISC = 258.2) - PARAMETER & - & (RIC = 0.183,RRIC = 1.0/ RIC,FHNEU = 0.8,RFC = 0.191 & - & ,RFAC = RIC / (FHNEU * RFC * RFC)) - -! ---------------------------------------------------------------------- -! NOTE: THE TWO CODE BLOCKS BELOW DEFINE FUNCTIONS -! ---------------------------------------------------------------------- -! LECH'S SURFACE FUNCTIONS -! ---------------------------------------------------------------------- - PSLMU (ZZ)= -0.96* log (1.0-4.5* ZZ) - PSLMS (ZZ)= ZZ * RRIC -2.076* (1. -1./ (ZZ +1.)) - PSLHU (ZZ)= -0.96* log (1.0-4.5* ZZ) - -! ---------------------------------------------------------------------- -! PAULSON'S SURFACE FUNCTIONS -! ---------------------------------------------------------------------- - PSLHS (ZZ)= ZZ * RFAC -2.076* (1. -1./ (ZZ +1.)) - PSPMU (XX)= -2.* log ( (XX +1.)*0.5) - log ( (XX * XX +1.)*0.5) & - & +2.* ATAN (XX) & - &- PIHF - PSPMS (YY)= 5.* YY - PSPHU (XX)= -2.* log ( (XX * XX +1.)*0.5) - -! ---------------------------------------------------------------------- -! THIS ROUTINE SFCDIF CAN HANDLE BOTH OVER OPEN WATER (SEA, OCEAN) AND -! OVER SOLID SURFACE (LAND, SEA-ICE). -! ---------------------------------------------------------------------- - PSPHS (YY)= 5.* YY - -! ---------------------------------------------------------------------- -! ZTFC: RATIO OF ZOH/ZOM LESS OR EQUAL THAN 1 -! C......ZTFC=0.1 -! CZIL: CONSTANT C IN Zilitinkevich, S. S.1995,:NOTE ABOUT ZT -! ---------------------------------------------------------------------- - ILECH = 0 - -! ---------------------------------------------------------------------- - ZILFC = - CZIL * VKRM * SQVISC -! C.......ZT=Z0*ZTFC - ZU = Z0 - RDZ = 1./ ZLM - CXCH = EXCM * RDZ - DTHV = THLM - THZ0 - -! ---------------------------------------------------------------------- -! BELJARS CORRECTION OF USTAR -! ---------------------------------------------------------------------- - DU2 = MAX (SFCSPD * SFCSPD,EPSU2) -!cc If statements to avoid TANGENT LINEAR problems near zero - BTGH = BTG * HPBL - IF (BTGH * AKHS * DTHV .ne. 0.0) THEN - WSTAR2 = WWST2* ABS (BTGH * AKHS * DTHV)** (2./3.) - ELSE - WSTAR2 = 0.0 - END IF - -! ---------------------------------------------------------------------- -! ZILITINKEVITCH APPROACH FOR ZT -! ---------------------------------------------------------------------- - USTAR = MAX (SQRT (AKMS * SQRT (DU2+ WSTAR2)),EPSUST) - -! ---------------------------------------------------------------------- - ZT = EXP (ZILFC * SQRT (USTAR * Z0))* Z0 - ZSLU = ZLM + ZU -! PRINT*,'ZSLT=',ZSLT -! PRINT*,'ZLM=',ZLM -! PRINT*,'ZT=',ZT - - ZSLT = ZLM + ZT - RLOGU = log (ZSLU / ZU) - - RLOGT = log (ZSLT / ZT) -! PRINT*,'RLMO=',RLMO -! PRINT*,'ELFC=',ELFC -! PRINT*,'AKHS=',AKHS -! PRINT*,'DTHV=',DTHV -! PRINT*,'USTAR=',USTAR - - RLMO = ELFC * AKHS * DTHV / USTAR **3 -! ---------------------------------------------------------------------- -! 1./MONIN-OBUKKHOV LENGTH-SCALE -! ---------------------------------------------------------------------- - DO ITR = 1,ITRMX - ZETALT = MAX (ZSLT * RLMO,ZTMIN) - RLMO = ZETALT / ZSLT - ZETALU = ZSLU * RLMO - ZETAU = ZU * RLMO - - ZETAT = ZT * RLMO - IF (ILECH .eq. 0) THEN - IF (RLMO .lt. 0.)THEN - XLU4 = 1. -16.* ZETALU - XLT4 = 1. -16.* ZETALT - XU4 = 1. -16.* ZETAU - - XT4 = 1. -16.* ZETAT - XLU = SQRT (SQRT (XLU4)) - XLT = SQRT (SQRT (XLT4)) - XU = SQRT (SQRT (XU4)) - - XT = SQRT (SQRT (XT4)) -! PRINT*,'-----------1------------' -! PRINT*,'PSMZ=',PSMZ -! PRINT*,'PSPMU(ZETAU)=',PSPMU(ZETAU) -! PRINT*,'XU=',XU -! PRINT*,'------------------------' - PSMZ = PSPMU (XU) - SIMM = PSPMU (XLU) - PSMZ + RLOGU - PSHZ = PSPHU (XT) - SIMH = PSPHU (XLT) - PSHZ + RLOGT - ELSE - ZETALU = MIN (ZETALU,ZTMAX) - ZETALT = MIN (ZETALT,ZTMAX) -! PRINT*,'-----------2------------' -! PRINT*,'PSMZ=',PSMZ -! PRINT*,'PSPMS(ZETAU)=',PSPMS(ZETAU) -! PRINT*,'ZETAU=',ZETAU -! PRINT*,'------------------------' - PSMZ = PSPMS (ZETAU) - SIMM = PSPMS (ZETALU) - PSMZ + RLOGU - PSHZ = PSPHS (ZETAT) - SIMH = PSPHS (ZETALT) - PSHZ + RLOGT - END IF -! ---------------------------------------------------------------------- -! LECH'S FUNCTIONS -! ---------------------------------------------------------------------- - ELSE - IF (RLMO .lt. 0.)THEN -! PRINT*,'-----------3------------' -! PRINT*,'PSMZ=',PSMZ -! PRINT*,'PSLMU(ZETAU)=',PSLMU(ZETAU) -! PRINT*,'ZETAU=',ZETAU -! PRINT*,'------------------------' - PSMZ = PSLMU (ZETAU) - SIMM = PSLMU (ZETALU) - PSMZ + RLOGU - PSHZ = PSLHU (ZETAT) - SIMH = PSLHU (ZETALT) - PSHZ + RLOGT - ELSE - ZETALU = MIN (ZETALU,ZTMAX) - - ZETALT = MIN (ZETALT,ZTMAX) -! PRINT*,'-----------4------------' -! PRINT*,'PSMZ=',PSMZ -! PRINT*,'PSLMS(ZETAU)=',PSLMS(ZETAU) -! PRINT*,'ZETAU=',ZETAU -! PRINT*,'------------------------' - PSMZ = PSLMS (ZETAU) - SIMM = PSLMS (ZETALU) - PSMZ + RLOGU - PSHZ = PSLHS (ZETAT) - SIMH = PSLHS (ZETALT) - PSHZ + RLOGT - END IF -! ---------------------------------------------------------------------- -! BELJAARS CORRECTION FOR USTAR -! ---------------------------------------------------------------------- - END IF - -! ---------------------------------------------------------------------- -! ZILITINKEVITCH FIX FOR ZT -! ---------------------------------------------------------------------- - USTAR = MAX (SQRT (AKMS * SQRT (DU2+ WSTAR2)),EPSUST) - - ZT = EXP (ZILFC * SQRT (USTAR * Z0))* Z0 - ZSLT = ZLM + ZT -!----------------------------------------------------------------------- - RLOGT = log (ZSLT / ZT) - USTARK = USTAR * VKRM - AKMS = MAX (USTARK / SIMM,CXCH) -!----------------------------------------------------------------------- -! IF STATEMENTS TO AVOID TANGENT LINEAR PROBLEMS NEAR ZERO -!----------------------------------------------------------------------- - AKHS = MAX (USTARK / SIMH,CXCH) - IF (BTGH * AKHS * DTHV .ne. 0.0) THEN - WSTAR2 = WWST2* ABS (BTGH * AKHS * DTHV)** (2./3.) - ELSE - WSTAR2 = 0.0 - END IF -!----------------------------------------------------------------------- - RLMN = ELFC * AKHS * DTHV / USTAR **3 -!----------------------------------------------------------------------- -! IF(ABS((RLMN-RLMO)/RLMA).LT.EPSIT) GO TO 110 -!----------------------------------------------------------------------- - RLMA = RLMO * WOLD+ RLMN * WNEW -!----------------------------------------------------------------------- - RLMO = RLMA -! PRINT*,'----------------------------' -! PRINT*,'SFCDIF OUTPUT ! ! ! ! ! ! ! ! ! ! ! !' - -! PRINT*,'ZLM=',ZLM -! PRINT*,'Z0=',Z0 -! PRINT*,'THZ0=',THZ0 -! PRINT*,'THLM=',THLM -! PRINT*,'SFCSPD=',SFCSPD -! PRINT*,'CZIL=',CZIL -! PRINT*,'AKMS=',AKMS -! PRINT*,'AKHS=',AKHS -! PRINT*,'----------------------------' - - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE SFCDIF_off -! ---------------------------------------------------------------------- - -END MODULE module_sf_noahlsm diff --git a/physics/module_sf_noahlsm_glacial_only.F90 b/physics/module_sf_noahlsm_glacial_only.F90 deleted file mode 100644 index 602b21e3b..000000000 --- a/physics/module_sf_noahlsm_glacial_only.F90 +++ /dev/null @@ -1,1285 +0,0 @@ -MODULE module_sf_noahlsm_glacial_only - - USE module_sf_noahlsm, ONLY : EMISSI_S, ROSR12 - USE module_sf_noahlsm, ONLY : LVCOEF_DATA - - PRIVATE :: ALCALC - PRIVATE :: CSNOW - PRIVATE :: HRTICE - PRIVATE :: HSTEP - PRIVATE :: PENMAN - PRIVATE :: SHFLX - PRIVATE :: SNOPAC - PRIVATE :: SNOWPACK - PRIVATE :: SNOWZ0 - PRIVATE :: SNOW_NEW - - integer, private :: iloc, jloc -!$omp threadprivate(iloc, jloc) - -CONTAINS - - SUBROUTINE SFLX_GLACIAL (IILOC,JJLOC,ISICE,FFROZP,DT,ZLVL,NSOIL,SLDPTH, & !C - & LWDN,SOLNET,SFCPRS,PRCP,SFCTMP,Q2, & !F - & TH2,Q2SAT,DQSDT2, & !I - & ALB, SNOALB,TBOT, Z0BRD, Z0, EMISSI, EMBRD, & !S - & T1,STC,SNOWH,SNEQV,ALBEDO,CH, & !H - & CP, RD, SIGMA, CPH2O, CPICE, LSUBF, & -! ---------------------------------------------------------------------- -! OUTPUTS, DIAGNOSTICS, PARAMETERS BELOW GENERALLY NOT NECESSARY WHEN -! COUPLED WITH E.G. A NWP MODEL (SUCH AS THE NOAA/NWS/NCEP MESOSCALE ETA -! MODEL). OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. -! ---------------------------------------------------------------------- - & ETA,SHEAT, ETA_KINEMATIC,FDOWN, & !O - & ESNOW,DEW, & !O - & ETP,SSOIL, & !O - & FLX1,FLX2,FLX3, & !O - & SNOMLT,SNCOVR, & !O - & RUNOFF1, & !O - & Q1, & !D - & SNOTIME1, & - & RIBB,errflg, errmsg) -! ---------------------------------------------------------------------- -! SUB-DRIVER FOR "Noah LSM" FAMILY OF PHYSICS SUBROUTINES FOR A -! SOIL/VEG/SNOWPACK LAND-SURFACE MODEL TO UPDATE ICE TEMPERATURE, SKIN -! TEMPERATURE, SNOWPACK WATER CONTENT, SNOWDEPTH, AND ALL TERMS OF THE -! SURFACE ENERGY BALANCE (EXCLUDING INPUT ATMOSPHERIC FORCINGS OF -! DOWNWARD RADIATION AND PRECIP) -! ---------------------------------------------------------------------- -! SFLX ARGUMENT LIST KEY: -! ---------------------------------------------------------------------- -! C CONFIGURATION INFORMATION -! F FORCING DATA -! I OTHER (INPUT) FORCING DATA -! S SURFACE CHARACTERISTICS -! H HISTORY (STATE) VARIABLES -! O OUTPUT VARIABLES -! D DIAGNOSTIC OUTPUT -! ---------------------------------------------------------------------- -! 1. CONFIGURATION INFORMATION (C): -! ---------------------------------------------------------------------- -! DT TIMESTEP (SEC) (DT SHOULD NOT EXCEED 3600 SECS, RECOMMEND -! 1800 SECS OR LESS) -! ZLVL HEIGHT (M) ABOVE GROUND OF ATMOSPHERIC FORCING VARIABLES -! NSOIL NUMBER OF SOIL LAYERS (AT LEAST 2, AND NOT GREATER THAN -! PARAMETER NSOLD SET BELOW) -! SLDPTH THE THICKNESS OF EACH SOIL LAYER (M) -! ---------------------------------------------------------------------- -! 3. FORCING DATA (F): -! ---------------------------------------------------------------------- -! LWDN LW DOWNWARD RADIATION (W M-2; POSITIVE, NOT NET LONGWAVE) -! SOLNET NET DOWNWARD SOLAR RADIATION ((W M-2; POSITIVE) -! SFCPRS PRESSURE AT HEIGHT ZLVL ABOVE GROUND (PASCALS) -! PRCP PRECIP RATE (KG M-2 S-1) (NOTE, THIS IS A RATE) -! SFCTMP AIR TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND -! TH2 AIR POTENTIAL TEMPERATURE (K) AT HEIGHT ZLVL ABOVE GROUND -! Q2 MIXING RATIO AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) -! FFROZP FRACTION OF FROZEN PRECIPITATION -! ---------------------------------------------------------------------- -! 4. OTHER FORCING (INPUT) DATA (I): -! ---------------------------------------------------------------------- -! Q2SAT SAT SPECIFIC HUMIDITY AT HEIGHT ZLVL ABOVE GROUND (KG KG-1) -! DQSDT2 SLOPE OF SAT SPECIFIC HUMIDITY CURVE AT T=SFCTMP -! (KG KG-1 K-1) -! ---------------------------------------------------------------------- -! 5. CANOPY/SOIL CHARACTERISTICS (S): -! ---------------------------------------------------------------------- -! ALB BACKROUND SNOW-FREE SURFACE ALBEDO (FRACTION), FOR JULIAN -! DAY OF YEAR (USUALLY FROM TEMPORAL INTERPOLATION OF -! MONTHLY MEAN VALUES' CALLING PROG MAY OR MAY NOT -! INCLUDE DIURNAL SUN ANGLE EFFECT) -! SNOALB UPPER BOUND ON MAXIMUM ALBEDO OVER DEEP SNOW (E.G. FROM -! ROBINSON AND KUKLA, 1985, J. CLIM. & APPL. METEOR.) -! TBOT BOTTOM SOIL TEMPERATURE (LOCAL YEARLY-MEAN SFC AIR -! TEMPERATURE) -! Z0BRD Background fixed roughness length (M) -! Z0 Time varying roughness length (M) as function of snow depth -! EMBRD Background surface emissivity (between 0 and 1) -! EMISSI Surface emissivity (between 0 and 1) -! ---------------------------------------------------------------------- -! 6. HISTORY (STATE) VARIABLES (H): -! ---------------------------------------------------------------------- -! T1 GROUND/CANOPY/SNOWPACK) EFFECTIVE SKIN TEMPERATURE (K) -! STC(NSOIL) SOIL TEMP (K) -! SNOWH ACTUAL SNOW DEPTH (M) -! SNEQV LIQUID WATER-EQUIVALENT SNOW DEPTH (M) -! NOTE: SNOW DENSITY = SNEQV/SNOWH -! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT (UNITLESS FRACTION) -! =SNOW-FREE ALBEDO (ALB) WHEN SNEQV=0, OR -! =FCT(MSNOALB,ALB,SHDFAC,SHDMIN) WHEN SNEQV>0 -! CH SURFACE EXCHANGE COEFFICIENT FOR HEAT AND MOISTURE -! (M S-1); NOTE: CH IS TECHNICALLY A CONDUCTANCE SINCE -! IT HAS BEEN MULTIPLIED BY WIND SPEED. -! ---------------------------------------------------------------------- -! 7. OUTPUT (O): -! ---------------------------------------------------------------------- -! OUTPUT VARIABLES NECESSARY FOR A COUPLED NUMERICAL WEATHER PREDICTION -! MODEL, E.G. NOAA/NWS/NCEP MESOSCALE ETA MODEL. FOR THIS APPLICATION, -! THE REMAINING OUTPUT/DIAGNOSTIC/PARAMETER BLOCKS BELOW ARE NOT -! NECESSARY. OTHER APPLICATIONS MAY REQUIRE DIFFERENT OUTPUT VARIABLES. -! ETA ACTUAL LATENT HEAT FLUX (W m-2: NEGATIVE, IF UP FROM -! SURFACE) -! ETA_KINEMATIC atctual latent heat flux in Kg m-2 s-1 -! SHEAT SENSIBLE HEAT FLUX (W M-2: NEGATIVE, IF UPWARD FROM -! SURFACE) -! FDOWN Radiation forcing at the surface (W m-2) = SOLDN*(1-alb)+LWDN -! ---------------------------------------------------------------------- -! ESNOW SUBLIMATION FROM (OR DEPOSITION TO IF <0) SNOWPACK -! (W m-2) -! DEW DEWFALL (OR FROSTFALL FOR T<273.15) (M) -! ---------------------------------------------------------------------- -! ETP POTENTIAL EVAPORATION (W m-2) -! SSOIL SOIL HEAT FLUX (W M-2: NEGATIVE IF DOWNWARD FROM SURFACE) -! ---------------------------------------------------------------------- -! FLX1 PRECIP-SNOW SFC (W M-2) -! FLX2 FREEZING RAIN LATENT HEAT FLUX (W M-2) -! FLX3 PHASE-CHANGE HEAT FLUX FROM SNOWMELT (W M-2) -! ---------------------------------------------------------------------- -! SNOMLT SNOW MELT (M) (WATER EQUIVALENT) -! SNCOVR FRACTIONAL SNOW COVER (UNITLESS FRACTION, 0-1) -! ---------------------------------------------------------------------- -! RUNOFF1 SURFACE RUNOFF (M S-1), NOT INFILTRATING THE SURFACE -! ---------------------------------------------------------------------- -! 8. DIAGNOSTIC OUTPUT (D): -! ---------------------------------------------------------------------- -! Q1 Effective mixing ratio at surface (kg kg-1), used for -! diagnosing the mixing ratio at 2 meter for coupled model -! Documentation for SNOTIME1 and SNOABL2 ????? -! What categories of arguments do these variables fall into ???? -! Documentation for RIBB ????? -! What category of argument does RIBB fall into ????? -! ---------------------------------------------------------------------- - - IMPLICIT NONE -! ---------------------------------------------------------------------- - integer, intent(in) :: iiloc, jjloc - INTEGER, INTENT(IN) :: ISICE -! ---------------------------------------------------------------------- - LOGICAL :: FRZGRA, SNOWNG - -! ---------------------------------------------------------------------- -! 1. CONFIGURATION INFORMATION (C): -! ---------------------------------------------------------------------- - INTEGER, INTENT(IN) :: NSOIL - INTEGER :: KZ - -! ---------------------------------------------------------------------- -! 2. LOGICAL: -! ---------------------------------------------------------------------- - - REAL, INTENT(IN) :: DT,DQSDT2,LWDN,PRCP, & - & Q2,Q2SAT,SFCPRS,SFCTMP, SNOALB, & - & SOLNET,TBOT,TH2,ZLVL,FFROZP - REAL, INTENT(IN) :: CP, RD, SIGMA, CPH2O, CPICE, LSUBF - REAL, INTENT(OUT) :: EMBRD, ALBEDO - REAL, INTENT(INOUT):: CH,SNEQV,SNCOVR,SNOWH,T1,Z0BRD,EMISSI,ALB - REAL, INTENT(INOUT):: SNOTIME1 - REAL, INTENT(INOUT):: RIBB - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: SLDPTH - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: STC - REAL, DIMENSION(1:NSOIL) :: ZSOIL - - REAL,INTENT(OUT) :: ETA_KINEMATIC,DEW,ESNOW,ETA, & - & ETP,FLX1,FLX2,FLX3,SHEAT,RUNOFF1, & - & SSOIL,SNOMLT,FDOWN,Q1 - REAL :: DF1,DSOIL,DTOT,FRCSNO,FRCSOI, & - & PRCP1,RCH,RR,RSNOW,SNDENS,SNCOND,SN_NEW, & - & T1V,T24,T2V,TH2V,TSNOW,Z0,PRCPF,RHO - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - -! ---------------------------------------------------------------------- -! DECLARATIONS - PARAMETERS -! ---------------------------------------------------------------------- - REAL, PARAMETER :: TFREEZ = 273.15 - REAL, PARAMETER :: LVH2O = 2.501E+6 - REAL, PARAMETER :: LSUBS = 2.83E+6 - REAL, PARAMETER :: R = 287.04 - - errmsg = '' - errflg = 0 - -! ---------------------------------------------------------------------- - iloc = iiloc - jloc = jjloc -! ---------------------------------------------------------------------- - ZSOIL (1) = - SLDPTH (1) - DO KZ = 2,NSOIL - ZSOIL (KZ) = - SLDPTH (KZ) + ZSOIL (KZ -1) - END DO - -! ---------------------------------------------------------------------- -! IF S.W.E. (SNEQV) BELOW THRESHOLD LOWER BOUND (0.10 M FOR GLACIAL -! ICE), THEN SET AT LOWER BOUND -! ---------------------------------------------------------------------- - IF ( SNEQV < 0.10 ) THEN - SNEQV = 0.10 - SNOWH = 0.50 - ENDIF -! ---------------------------------------------------------------------- -! IF INPUT SNOWPACK IS NONZERO, THEN COMPUTE SNOW DENSITY "SNDENS" AND -! SNOW THERMAL CONDUCTIVITY "SNCOND" -! ---------------------------------------------------------------------- - SNDENS = SNEQV / SNOWH - IF(SNDENS > 1.0) THEN - errmsg = 'Physical snow depth is less than snow water equiv.' - errflg = 1 - return - ENDIF - - CALL CSNOW (SNCOND,SNDENS) -! ---------------------------------------------------------------------- -! DETERMINE IF IT'S PRECIPITATING AND WHAT KIND OF PRECIP IT IS. -! IF IT'S PRCPING AND THE AIR TEMP IS COLDER THAN 0 C, IT'S SNOWING! -! IF IT'S PRCPING AND THE AIR TEMP IS WARMER THAN 0 C, BUT THE GRND -! TEMP IS COLDER THAN 0 C, FREEZING RAIN IS PRESUMED TO BE FALLING. -! ---------------------------------------------------------------------- - - SNOWNG = .FALSE. - FRZGRA = .FALSE. - IF (PRCP > 0.0) THEN -! ---------------------------------------------------------------------- -! Snow defined when fraction of frozen precip (FFROZP) > 0.5, -! passed in from model microphysics. -! ---------------------------------------------------------------------- - IF (FFROZP .GT. 0.5) THEN - SNOWNG = .TRUE. - ELSE - IF (T1 <= TFREEZ) FRZGRA = .TRUE. - END IF - END IF -! ---------------------------------------------------------------------- -! IF EITHER PRCP FLAG IS SET, DETERMINE NEW SNOWFALL (CONVERTING PRCP -! RATE FROM KG M-2 S-1 TO A LIQUID EQUIV SNOW DEPTH IN METERS) AND ADD -! IT TO THE EXISTING SNOWPACK. -! NOTE THAT SINCE ALL PRECIP IS ADDED TO SNOWPACK, NO PRECIP INFILTRATES -! INTO THE SOIL SO THAT PRCP1 IS SET TO ZERO. -! ---------------------------------------------------------------------- - IF ( (SNOWNG) .OR. (FRZGRA) ) THEN - SN_NEW = PRCP * DT * 0.001 - SNEQV = SNEQV + SN_NEW - PRCPF = 0.0 - -! ---------------------------------------------------------------------- -! UPDATE SNOW DENSITY BASED ON NEW SNOWFALL, USING OLD AND NEW SNOW. -! UPDATE SNOW THERMAL CONDUCTIVITY -! ---------------------------------------------------------------------- - CALL SNOW_NEW (SFCTMP,SN_NEW,SNOWH,SNDENS) - -! ---------------------------------------------------------------------- -! kmh 09/04/2006 set Snow Density at 0.2 g/cm**3 -! for "cold permanent ice" or new "dry" snow -! if soil temperature less than 268.15 K, treat as typical -! Antarctic/Greenland snow firn -! ---------------------------------------------------------------------- - IF ( SNCOVR .GT. 0.99 ) THEN - IF ( STC(1) .LT. (TFREEZ - 5.) ) SNDENS = 0.2 - IF ( SNOWNG .AND. (T1.LT.273.) .AND. (SFCTMP.LT.273.) ) SNDENS=0.2 - ENDIF - - CALL CSNOW (SNCOND,SNDENS) - -! ---------------------------------------------------------------------- -! PRECIP IS LIQUID (RAIN), HENCE SAVE IN THE PRECIP VARIABLE THAT -! LATER CAN WHOLELY OR PARTIALLY INFILTRATE THE SOIL -! ---------------------------------------------------------------------- - ELSE - PRCPF = PRCP - ENDIF - -! ---------------------------------------------------------------------- -! DETERMINE SNOW FRACTIONAL COVERAGE. -! KWM: Set SNCOVR to 1.0 because SNUP is set small in VEGPARM.TBL, -! and SNEQV is at least 0.1 (as set above) -! ---------------------------------------------------------------------- - SNCOVR = 1.0 - -! ---------------------------------------------------------------------- -! DETERMINE SURFACE ALBEDO MODIFICATION DUE TO SNOWDEPTH STATE. -! ---------------------------------------------------------------------- - - CALL ALCALC (ALB,SNOALB,EMBRD,T1,ALBEDO,EMISSI, & - & DT,SNOWNG,SNOTIME1) - -! ---------------------------------------------------------------------- -! THERMAL CONDUCTIVITY -! ---------------------------------------------------------------------- - DF1 = SNCOND - - DSOIL = - (0.5 * ZSOIL (1)) - DTOT = SNOWH + DSOIL - FRCSNO = SNOWH / DTOT - -! 1. HARMONIC MEAN (SERIES FLOW) -! DF1 = (SNCOND*DF1)/(FRCSOI*SNCOND+FRCSNO*DF1) - FRCSOI = DSOIL / DTOT - -! 3. GEOMETRIC MEAN (INTERMEDIATE BETWEEN HARMONIC AND ARITHMETIC MEAN) -! DF1 = (SNCOND**FRCSNO)*(DF1**FRCSOI) - DF1 = FRCSNO * SNCOND + FRCSOI * DF1 - -! ---------------------------------------------------------------------- -! CALCULATE SUBSURFACE HEAT FLUX, SSOIL, FROM FINAL THERMAL DIFFUSIVITY -! OF SURFACE MEDIUMS, DF1 ABOVE, AND SKIN TEMPERATURE AND TOP -! MID-LAYER SOIL TEMPERATURE -! ---------------------------------------------------------------------- - IF ( DTOT .GT. 2.*DSOIL ) then - DTOT = 2.*DSOIL - ENDIF - SSOIL = DF1 * ( T1 - STC(1) ) / DTOT - -! ---------------------------------------------------------------------- -! DETERMINE SURFACE ROUGHNESS OVER SNOWPACK USING SNOW CONDITION FROM -! THE PREVIOUS TIMESTEP. -! ---------------------------------------------------------------------- - - CALL SNOWZ0 (Z0,Z0BRD,SNOWH) - -! ---------------------------------------------------------------------- -! CALCULATE TOTAL DOWNWARD RADIATION (SOLAR PLUS LONGWAVE) NEEDED IN -! PENMAN EP SUBROUTINE THAT FOLLOWS -! ---------------------------------------------------------------------- - - FDOWN = SOLNET + LWDN - -! ---------------------------------------------------------------------- -! CALC VIRTUAL TEMPS AND VIRTUAL POTENTIAL TEMPS NEEDED BY SUBROUTINES -! PENMAN. -! ---------------------------------------------------------------------- - - T2V = SFCTMP * (1.0+ 0.61 * Q2 ) - RHO = SFCPRS / (RD * T2V) - RCH = RHO * 1004.6 * CH - T24 = SFCTMP * SFCTMP * SFCTMP * SFCTMP - -! ---------------------------------------------------------------------- -! CALL PENMAN SUBROUTINE TO CALCULATE POTENTIAL EVAPORATION (ETP), AND -! OTHER PARTIAL PRODUCTS AND SUMS SAVE IN COMMON/RITE FOR LATER -! CALCULATIONS. -! ---------------------------------------------------------------------- - - ! PENMAN returns ETP, FLX2, and RR - CALL PENMAN (SFCTMP,SFCPRS,CH,TH2,PRCP,FDOWN,T24,SSOIL, & - & Q2,Q2SAT,ETP,RCH,RR,SNOWNG,FRZGRA, & - & DQSDT2,FLX2,EMISSI,T1,SIGMA,CPH2O,CPICE,LSUBF) - - CALL SNOPAC (ETP,ETA,PRCP,PRCPF,SNOWNG,NSOIL,DT,DF1, & - & Q2,T1,SFCTMP,T24,TH2,FDOWN,SSOIL,STC, & - & SFCPRS,RCH,RR,SNEQV,SNDENS,SNOWH,ZSOIL,TBOT, & - & SNOMLT,DEW,FLX1,FLX2,FLX3,ESNOW,EMISSI,RIBB, & - & SIGMA,CPH2O,CPICE,LSUBF) - -! ETA_KINEMATIC = ESNOW - ETA_KINEMATIC = ETP - -! ---------------------------------------------------------------------- -! Effective mixing ratio at grnd level (skin) -! ---------------------------------------------------------------------- - Q1=Q2+ETA_KINEMATIC*CP/RCH - -! ---------------------------------------------------------------------- -! DETERMINE SENSIBLE HEAT (H) IN ENERGY UNITS (W M-2) -! ---------------------------------------------------------------------- - SHEAT = - (CH * CP * SFCPRS)/ (R * T2V) * ( TH2- T1 ) - -! ---------------------------------------------------------------------- -! CONVERT EVAP TERMS FROM KINEMATIC (KG M-2 S-1) TO ENERGY UNITS (W M-2) -! ---------------------------------------------------------------------- - ESNOW = ESNOW * LSUBS - ETP = ETP * LSUBS - IF (ETP .GT. 0.) THEN - ETA = ESNOW - ELSE - ETA = ETP - ENDIF - -! ---------------------------------------------------------------------- -! CONVERT THE SIGN OF SOIL HEAT FLUX SO THAT: -! SSOIL>0: WARM THE SURFACE (NIGHT TIME) -! SSOIL<0: COOL THE SURFACE (DAY TIME) -! ---------------------------------------------------------------------- - SSOIL = -1.0* SSOIL - -! ---------------------------------------------------------------------- -! FOR THE CASE OF GLACIAL-ICE, ADD ANY SNOWMELT DIRECTLY TO SURFACE -! RUNOFF (RUNOFF1) SINCE THERE IS NO SOIL MEDIUM -! ---------------------------------------------------------------------- - RUNOFF1 = SNOMLT / DT - -! ---------------------------------------------------------------------- - END SUBROUTINE SFLX_GLACIAL -! ---------------------------------------------------------------------- - - SUBROUTINE ALCALC (ALB,SNOALB,EMBRD,TSNOW,ALBEDO,EMISSI, & - & DT,SNOWNG,SNOTIME1) - -! ---------------------------------------------------------------------- -! CALCULATE ALBEDO INCLUDING SNOW EFFECT (0 -> 1) -! ALB SNOWFREE ALBEDO -! SNOALB MAXIMUM (DEEP) SNOW ALBEDO -! ALBEDO SURFACE ALBEDO INCLUDING SNOW EFFECT -! TSNOW SNOW SURFACE TEMPERATURE (K) -! ---------------------------------------------------------------------- - IMPLICIT NONE - -! ---------------------------------------------------------------------- -! SNOALB IS ARGUMENT REPRESENTING MAXIMUM ALBEDO OVER DEEP SNOW, -! AS PASSED INTO SFLX, AND ADAPTED FROM THE SATELLITE-BASED MAXIMUM -! SNOW ALBEDO FIELDS PROVIDED BY D. ROBINSON AND G. KUKLA -! (1985, JCAM, VOL 24, 402-411) -! ---------------------------------------------------------------------- - REAL, INTENT(IN) :: ALB, SNOALB, EMBRD, TSNOW - REAL, INTENT(IN) :: DT - LOGICAL, INTENT(IN) :: SNOWNG - REAL, INTENT(INOUT) :: SNOTIME1 - REAL, INTENT(OUT) :: ALBEDO, EMISSI - REAL :: SNOALB2 - REAL :: TM,SNOALB1 - REAL, PARAMETER :: SNACCA=0.94,SNACCB=0.58,SNTHWA=0.82,SNTHWB=0.46 -! turn off vegetation effect -! ALBEDO = ALB + (1.0- (SHDFAC - SHDMIN))* SNCOVR * (SNOALB - ALB) -! ALBEDO = (1.0-SNCOVR)*ALB + SNCOVR*SNOALB !this is equivalent to below - ALBEDO = ALB + (SNOALB-ALB) - EMISSI = EMBRD + (EMISSI_S - EMBRD) - -! BASE FORMULATION (DICKINSON ET AL., 1986, COGLEY ET AL., 1990) -! IF (TSNOW.LE.263.16) THEN -! ALBEDO=SNOALB -! ELSE -! IF (TSNOW.LT.273.16) THEN -! TM=0.1*(TSNOW-263.16) -! SNOALB1=0.5*((0.9-0.2*(TM**3))+(0.8-0.16*(TM**3))) -! ELSE -! SNOALB1=0.67 -! IF(SNCOVR.GT.0.95) SNOALB1= 0.6 -! SNOALB1 = ALB + SNCOVR*(SNOALB-ALB) -! ENDIF -! ENDIF -! ALBEDO = ALB + SNCOVR*(SNOALB1-ALB) - -! ISBA FORMULATION (VERSEGHY, 1991; BAKER ET AL., 1990) -! SNOALB1 = SNOALB+COEF*(0.85-SNOALB) -! SNOALB2=SNOALB1 -!!m LSTSNW=LSTSNW+1 -! SNOTIME1 = SNOTIME1 + DT -! IF (SNOWNG) THEN -! SNOALB2=SNOALB -!!m LSTSNW=0 -! SNOTIME1 = 0.0 -! ELSE -! IF (TSNOW.LT.273.16) THEN -!! SNOALB2=SNOALB-0.008*LSTSNW*DT/86400 -!!m SNOALB2=SNOALB-0.008*SNOTIME1/86400 -! SNOALB2=(SNOALB2-0.65)*EXP(-0.05*DT/3600)+0.65 -!! SNOALB2=(ALBEDO-0.65)*EXP(-0.01*DT/3600)+0.65 -! ELSE -! SNOALB2=(SNOALB2-0.5)*EXP(-0.0005*DT/3600)+0.5 -!! SNOALB2=(SNOALB-0.5)*EXP(-0.24*LSTSNW*DT/86400)+0.5 -!!m SNOALB2=(SNOALB-0.5)*EXP(-0.24*SNOTIME1/86400)+0.5 -! ENDIF -! ENDIF -! -!! print*,'SNOALB2',SNOALB2,'ALBEDO',ALBEDO,'DT',DT -! ALBEDO = ALB + SNCOVR*(SNOALB2-ALB) -! IF (ALBEDO .GT. SNOALB2) ALBEDO=SNOALB2 -!!m LSTSNW1=LSTSNW -!! SNOTIME = SNOTIME1 - -! formulation by Livneh -! ---------------------------------------------------------------------- -! SNOALB IS CONSIDERED AS THE MAXIMUM SNOW ALBEDO FOR NEW SNOW, AT -! A VALUE OF 85%. SNOW ALBEDO CURVE DEFAULTS ARE FROM BRAS P.263. SHOULD -! NOT BE CHANGED EXCEPT FOR SERIOUS PROBLEMS WITH SNOW MELT. -! TO IMPLEMENT ACCUMULATIN PARAMETERS, SNACCA AND SNACCB, ASSERT THAT IT -! IS INDEED ACCUMULATION SEASON. I.E. THAT SNOW SURFACE TEMP IS BELOW -! ZERO AND THE DATE FALLS BETWEEN OCTOBER AND FEBRUARY -! ---------------------------------------------------------------------- - SNOALB1 = SNOALB+LVCOEF_DATA*(0.85-SNOALB) - SNOALB2=SNOALB1 -! ---------------- Initial LSTSNW -------------------------------------- - IF (SNOWNG) THEN - SNOTIME1 = 0. - ELSE - SNOTIME1=SNOTIME1+DT -! IF (TSNOW.LT.273.16) THEN - SNOALB2=SNOALB1*(SNACCA**((SNOTIME1/86400.0)**SNACCB)) -! ELSE -! SNOALB2 =SNOALB1*(SNTHWA**((SNOTIME1/86400.0)**SNTHWB)) -! ENDIF - ENDIF - - SNOALB2 = MAX ( SNOALB2, ALB ) - ALBEDO = ALB + (SNOALB2-ALB) - IF (ALBEDO .GT. SNOALB2) ALBEDO=SNOALB2 - -! IF (TSNOW.LT.273.16) THEN -! ALBEDO=SNOALB-0.008*DT/86400 -! ELSE -! ALBEDO=(SNOALB-0.5)*EXP(-0.24*DT/86400)+0.5 -! ENDIF - -! IF (ALBEDO > SNOALB) ALBEDO = SNOALB - -! ---------------------------------------------------------------------- - END SUBROUTINE ALCALC -! ---------------------------------------------------------------------- - - SUBROUTINE CSNOW (SNCOND,DSNOW) - -! ---------------------------------------------------------------------- -! CALCULATE SNOW TERMAL CONDUCTIVITY -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: DSNOW - REAL, INTENT(OUT) :: SNCOND - REAL :: C - REAL, PARAMETER :: UNIT = 0.11631 - -! ---------------------------------------------------------------------- -! SNCOND IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) -! CSNOW IN UNITS OF CAL/(CM*HR*C), RETURNED IN W/(M*C) -! BASIC VERSION IS DYACHKOVA EQUATION (1960), FOR RANGE 0.1-0.4 -! ---------------------------------------------------------------------- - C = 0.328*10** (2.25* DSNOW) -! CSNOW=UNIT*C - -! ---------------------------------------------------------------------- -! DE VAUX EQUATION (1933), IN RANGE 0.1-0.6 -! ---------------------------------------------------------------------- -! SNCOND=0.0293*(1.+100.*DSNOW**2) -! CSNOW=0.0293*(1.+100.*DSNOW**2) - -! ---------------------------------------------------------------------- -! E. ANDERSEN FROM FLERCHINGER -! ---------------------------------------------------------------------- -! SNCOND=0.021+2.51*DSNOW**2 -! CSNOW=0.021+2.51*DSNOW**2 - -! SNCOND = UNIT * C -! double snow thermal conductivity - SNCOND = 2.0 * UNIT * C - -! ---------------------------------------------------------------------- - END SUBROUTINE CSNOW -! ---------------------------------------------------------------------- - - SUBROUTINE HRTICE (RHSTS,STC,TBOT,NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) - -! ---------------------------------------------------------------------- -! CALCULATE THE RIGHT HAND SIDE OF THE TIME TENDENCY TERM OF THE SOIL -! THERMAL DIFFUSION EQUATION IN THE CASE OF SEA-ICE (ICE=1) OR GLACIAL -! ICE (ICE=-1). COMPUTE (PREPARE) THE MATRIX COEFFICIENTS FOR THE -! TRI-DIAGONAL MATRIX OF THE IMPLICIT TIME SCHEME. -! -! (NOTE: THIS SUBROUTINE ONLY CALLED FOR SEA-ICE OR GLACIAL ICE, BUT -! NOT FOR NON-GLACIAL LAND (ICE = 0). -! ---------------------------------------------------------------------- - IMPLICIT NONE - - - INTEGER, INTENT(IN) :: NSOIL - REAL, INTENT(IN) :: DF1,YY,ZZ1 - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: AI, BI,CI - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: STC, ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: RHSTS - REAL, INTENT(IN) :: TBOT - INTEGER :: K - REAL :: DDZ,DDZ2,DENOM,DTSDZ,DTSDZ2,SSOIL,HCPCT - REAL :: DF1K,DF1N - REAL :: ZMD - REAL, PARAMETER :: ZBOT = -25.0 - -! ---------------------------------------------------------------------- -! SET A NOMINAL UNIVERSAL VALUE OF GLACIAL-ICE SPECIFIC HEAT CAPACITY, -! HCPCT = 2100.0*900.0 = 1.89000E+6 (SOURCE: BOB GRUMBINE, 2005) -! TBOT PASSED IN AS ARGUMENT, VALUE FROM GLOBAL DATA SET - ! - ! A least-squares fit for the four points provided by - ! Keith Hines for the Yen (1981) values for Antarctic - ! snow firn. - ! - HCPCT = 1.E6 * (0.8194 - 0.1309*0.5*ZSOIL(1)) - DF1K = DF1 - -! ---------------------------------------------------------------------- -! THE INPUT ARGUMENT DF1 IS A UNIVERSALLY CONSTANT VALUE OF SEA-ICE -! THERMAL DIFFUSIVITY, SET IN ROUTINE SNOPAC AS DF1 = 2.2. -! ---------------------------------------------------------------------- -! SET ICE PACK DEPTH. USE TBOT AS ICE PACK LOWER BOUNDARY TEMPERATURE -! (THAT OF UNFROZEN SEA WATER AT BOTTOM OF SEA ICE PACK). ASSUME ICE -! PACK IS OF N=NSOIL LAYERS SPANNING A UNIFORM CONSTANT ICE PACK -! THICKNESS AS DEFINED BY ZSOIL(NSOIL) IN ROUTINE SFLX. -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEFFICIENTS AI, BI, AND CI FOR THE TOP LAYER -! ---------------------------------------------------------------------- - DDZ = 1.0 / ( -0.5 * ZSOIL (2) ) - AI (1) = 0.0 - CI (1) = (DF1 * DDZ) / (ZSOIL (1) * HCPCT) - -! ---------------------------------------------------------------------- -! CALC THE VERTICAL SOIL TEMP GRADIENT BTWN THE TOP AND 2ND SOIL LAYERS. -! RECALC/ADJUST THE SOIL HEAT FLUX. USE THE GRADIENT AND FLUX TO CALC -! RHSTS FOR THE TOP SOIL LAYER. -! ---------------------------------------------------------------------- - BI (1) = - CI (1) + DF1/ (0.5 * ZSOIL (1) * ZSOIL (1) * HCPCT * & - & ZZ1) - DTSDZ = ( STC (1) - STC (2) ) / ( -0.5 * ZSOIL (2) ) - SSOIL = DF1 * ( STC (1) - YY ) / ( 0.5 * ZSOIL (1) * ZZ1 ) - -! ---------------------------------------------------------------------- -! INITIALIZE DDZ2 -! ---------------------------------------------------------------------- - RHSTS (1) = ( DF1 * DTSDZ - SSOIL ) / ( ZSOIL (1) * HCPCT ) - -! ---------------------------------------------------------------------- -! LOOP THRU THE REMAINING SOIL LAYERS, REPEATING THE ABOVE PROCESS -! ---------------------------------------------------------------------- - DDZ2 = 0.0 - DF1K = DF1 - DF1N = DF1 - DO K = 2,NSOIL - - ZMD = 0.5 * (ZSOIL(K)+ZSOIL(K-1)) - ! For the land-ice case -! kmh 09/03/2006 use Yen (1981)'s values for Antarctic snow firn -! IF ( K .eq. 2 ) HCPCT = 0.855108E6 -! IF ( K .eq. 3 ) HCPCT = 0.922906E6 -! IF ( K .eq. 4 ) HCPCT = 1.009986E6 - - ! Least squares fit to the four points supplied by Keith Hines - ! from Yen (1981) for Antarctic snow firn. Not optimal, but - ! probably better than just a constant. - HCPCT = 1.E6 * ( 0.8194 - 0.1309*ZMD ) - -! IF ( K .eq. 2 ) DF1N = 0.345356 -! IF ( K .eq. 3 ) DF1N = 0.398777 -! IF ( K .eq. 4 ) DF1N = 0.472653 - - ! Least squares fit to the three points supplied by Keith Hines - ! from Yen (1981) for Antarctic snow firn. Not optimal, but - ! probably better than just a constant. - DF1N = 0.32333 - ( 0.10073 * ZMD ) -! ---------------------------------------------------------------------- -! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THIS LAYER. -! ---------------------------------------------------------------------- - IF (K /= NSOIL) THEN - DENOM = 0.5 * ( ZSOIL (K -1) - ZSOIL (K +1) ) - -! ---------------------------------------------------------------------- -! CALC THE MATRIX COEF, CI, AFTER CALC'NG ITS PARTIAL PRODUCT. -! ---------------------------------------------------------------------- - DTSDZ2 = ( STC (K) - STC (K +1) ) / DENOM - DDZ2 = 2. / (ZSOIL (K -1) - ZSOIL (K +1)) - CI (K) = - DF1N * DDZ2 / ( (ZSOIL (K -1) - ZSOIL (K))*HCPCT) - -! ---------------------------------------------------------------------- -! CALC THE VERTICAL SOIL TEMP GRADIENT THRU THE LOWEST LAYER. -! ---------------------------------------------------------------------- - ELSE - -! ---------------------------------------------------------------------- -! SET MATRIX COEF, CI TO ZERO. -! ---------------------------------------------------------------------- - DTSDZ2 = (STC (K) - TBOT)/ (.5 * (ZSOIL (K -1) + ZSOIL (K)) & - & - ZBOT) - CI (K) = 0. -! ---------------------------------------------------------------------- -! CALC RHSTS FOR THIS LAYER AFTER CALC'NG A PARTIAL PRODUCT. -! ---------------------------------------------------------------------- - END IF - DENOM = ( ZSOIL (K) - ZSOIL (K -1) ) * HCPCT - -! ---------------------------------------------------------------------- -! CALC MATRIX COEFS, AI, AND BI FOR THIS LAYER. -! ---------------------------------------------------------------------- - RHSTS (K) = ( DF1N * DTSDZ2- DF1K * DTSDZ ) / DENOM - AI (K) = - DF1K * DDZ / ( (ZSOIL (K -1) - ZSOIL (K)) * HCPCT) - -! ---------------------------------------------------------------------- -! RESET VALUES OF DTSDZ AND DDZ FOR LOOP TO NEXT SOIL LYR. -! ---------------------------------------------------------------------- - BI (K) = - (AI (K) + CI (K)) - DF1K = DF1N - DTSDZ = DTSDZ2 - DDZ = DDZ2 - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE HRTICE -! ---------------------------------------------------------------------- - - SUBROUTINE HSTEP (STCOUT,STCIN,RHSTS,DT,NSOIL,AI,BI,CI) - -! ---------------------------------------------------------------------- -! CALCULATE/UPDATE THE SOIL TEMPERATURE FIELD. -! ---------------------------------------------------------------------- - IMPLICIT NONE - INTEGER, INTENT(IN) :: NSOIL - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: STCIN - REAL, DIMENSION(1:NSOIL), INTENT(OUT) :: STCOUT - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: RHSTS - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: AI,BI,CI - REAL, DIMENSION(1:NSOIL) :: RHSTSin - REAL, DIMENSION(1:NSOIL) :: CIin - REAL :: DT - INTEGER :: K - -! ---------------------------------------------------------------------- -! CREATE FINITE DIFFERENCE VALUES FOR USE IN ROSR12 ROUTINE -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTS (K) = RHSTS (K) * DT - AI (K) = AI (K) * DT - BI (K) = 1. + BI (K) * DT - CI (K) = CI (K) * DT - END DO -! ---------------------------------------------------------------------- -! COPY VALUES FOR INPUT VARIABLES BEFORE CALL TO ROSR12 -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - RHSTSin (K) = RHSTS (K) - END DO - DO K = 1,NSOIL - CIin (K) = CI (K) - END DO -! ---------------------------------------------------------------------- -! SOLVE THE TRI-DIAGONAL MATRIX EQUATION -! ---------------------------------------------------------------------- - CALL ROSR12 (CI,AI,BI,CIin,RHSTSin,RHSTS,NSOIL) -! ---------------------------------------------------------------------- -! CALC/UPDATE THE SOIL TEMPS USING MATRIX SOLUTION -! ---------------------------------------------------------------------- - DO K = 1,NSOIL - STCOUT (K) = STCIN (K) + CI (K) - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE HSTEP -! ---------------------------------------------------------------------- - - SUBROUTINE PENMAN (SFCTMP,SFCPRS,CH,TH2,PRCP,FDOWN,T24,SSOIL, & - & Q2,Q2SAT,ETP,RCH,RR,SNOWNG,FRZGRA, & - & DQSDT2,FLX2,EMISSI,T1,SIGMA,CPH2O,CPICE,LSUBF) - -! ---------------------------------------------------------------------- -! CALCULATE POTENTIAL EVAPORATION FOR THE CURRENT POINT. VARIOUS -! PARTIAL SUMS/PRODUCTS ARE ALSO CALCULATED AND PASSED BACK TO THE -! CALLING ROUTINE FOR LATER USE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - LOGICAL, INTENT(IN) :: SNOWNG, FRZGRA - REAL, INTENT(IN) :: CH, DQSDT2,FDOWN,PRCP,Q2,Q2SAT,SSOIL,SFCPRS, & - & SFCTMP,TH2,EMISSI,T1,RCH,T24 - REAL, INTENT(IN) :: SIGMA, CPH2O, CPICE, LSUBF - REAL, INTENT(OUT) :: ETP,FLX2,RR - - REAL :: A, DELTA, FNET,RAD,ELCP1,LVS,EPSCA - - REAL, PARAMETER :: ELCP = 2.4888E+3, LSUBC = 2.501000E+6 - REAL, PARAMETER :: LSUBS = 2.83E+6 - -! ---------------------------------------------------------------------- -! PREPARE PARTIAL QUANTITIES FOR PENMAN EQUATION. -! ---------------------------------------------------------------------- - IF ( T1 > 273.15 ) THEN - ELCP1 = ELCP - LVS = LSUBC - ELSE - ELCP1 = ELCP*LSUBS/LSUBC - LVS = LSUBS - ENDIF - DELTA = ELCP1 * DQSDT2 - A = ELCP1 * (Q2SAT - Q2) - RR = EMISSI*T24 * 6.48E-8 / (SFCPRS * CH) + 1.0 - -! ---------------------------------------------------------------------- -! ADJUST THE PARTIAL SUMS / PRODUCTS WITH THE LATENT HEAT -! EFFECTS CAUSED BY FALLING PRECIPITATION. -! ---------------------------------------------------------------------- - IF (.NOT. SNOWNG) THEN - IF (PRCP > 0.0) RR = RR + CPH2O * PRCP / RCH - ELSE - RR = RR + CPICE * PRCP / RCH - END IF - -! ---------------------------------------------------------------------- -! INCLUDE THE LATENT HEAT EFFECTS OF FREEZING RAIN CONVERTING TO ICE ON -! IMPACT IN THE CALCULATION OF FLX2 AND FNET. -! ---------------------------------------------------------------------- - IF (FRZGRA) THEN - FLX2 = - LSUBF * PRCP - ELSE - FLX2 = 0.0 - ENDIF - FNET = FDOWN - ( EMISSI * SIGMA * T24 ) - SSOIL - FLX2 - -! ---------------------------------------------------------------------- -! FINISH PENMAN EQUATION CALCULATIONS. -! ---------------------------------------------------------------------- - RAD = FNET / RCH + TH2 - SFCTMP - EPSCA = (A * RR + RAD * DELTA) / (DELTA + RR) - ETP = EPSCA * RCH / LVS - -! ---------------------------------------------------------------------- - END SUBROUTINE PENMAN -! ---------------------------------------------------------------------- - - SUBROUTINE SHFLX (STC,NSOIL,DT,YY,ZZ1,ZSOIL,TBOT,DF1) -! ---------------------------------------------------------------------- -! UPDATE THE TEMPERATURE STATE OF THE SOIL COLUMN BASED ON THE THERMAL -! DIFFUSION EQUATION AND UPDATE THE FROZEN SOIL MOISTURE CONTENT BASED -! ON THE TEMPERATURE. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: NSOIL - REAL, INTENT(IN) :: DF1,DT,TBOT,YY, ZZ1 - REAL, DIMENSION(1:NSOIL), INTENT(IN) :: ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: STC - - REAL, DIMENSION(1:NSOIL) :: AI, BI, CI, STCF,RHSTS - INTEGER :: I - REAL, PARAMETER :: T0 = 273.15 - -! ---------------------------------------------------------------------- -! HRT ROUTINE CALCS THE RIGHT HAND SIDE OF THE SOIL TEMP DIF EQN -! ---------------------------------------------------------------------- - - CALL HRTICE (RHSTS,STC,TBOT, NSOIL,ZSOIL,YY,ZZ1,DF1,AI,BI,CI) - - CALL HSTEP (STCF,STC,RHSTS,DT,NSOIL,AI,BI,CI) - - DO I = 1,NSOIL - STC (I) = STCF (I) - END DO -! ---------------------------------------------------------------------- - END SUBROUTINE SHFLX -! ---------------------------------------------------------------------- - - SUBROUTINE SNOPAC (ETP,ETA,PRCP,PRCPF,SNOWNG,NSOIL,DT,DF1, & - & Q2,T1,SFCTMP,T24,TH2,FDOWN,SSOIL,STC, & - & SFCPRS,RCH,RR,SNEQV,SNDENS,SNOWH,ZSOIL,TBOT, & - & SNOMLT,DEW,FLX1,FLX2,FLX3,ESNOW,EMISSI,RIBB, & - & SIGMA,CPH2O,CPICE,LSUBF) - -! ---------------------------------------------------------------------- -! CALCULATE SOIL MOISTURE AND HEAT FLUX VALUES & UPDATE SOIL MOISTURE -! CONTENT AND SOIL HEAT CONTENT VALUES FOR THE CASE WHEN A SNOW PACK IS -! PRESENT. -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER, INTENT(IN) :: NSOIL - LOGICAL, INTENT(IN) :: SNOWNG - REAL, INTENT(IN) :: DF1,DT,FDOWN,PRCP,Q2,RCH,RR,SFCPRS,SFCTMP, & - & T24,TBOT,TH2,EMISSI - REAL, INTENT(IN) :: SIGMA, CPH2O, CPICE, LSUBF - REAL, INTENT(INOUT) :: SNEQV,FLX2,PRCPF,SNOWH,SNDENS,T1,RIBB,ETP - REAL, INTENT(OUT) :: DEW,ESNOW,FLX1,FLX3,SSOIL,SNOMLT - REAL, DIMENSION(1:NSOIL),INTENT(IN) :: ZSOIL - REAL, DIMENSION(1:NSOIL), INTENT(INOUT) :: STC - REAL, DIMENSION(1:NSOIL) :: ET1 - INTEGER :: K - REAL :: DENOM,DSOIL,DTOT,ESDFLX,ETA, & - & ESNOW1,ESNOW2,ETA1,ETP1,ETP2, & - & ETP3,ETANRG,EX, & - & FRCSNO,FRCSOI,PRCP1,QSAT,RSNOW,SEH, & - & SNCOND,T12,T12A,T12B,T14,YY,ZZ1 - - REAL, PARAMETER :: ESDMIN = 1.E-6, LSUBC = 2.501000E+6, & - & LSUBS = 2.83E+6, TFREEZ = 273.15, & - & SNOEXP = 2.0 - -! ---------------------------------------------------------------------- -! FOR GLACIAL-ICE, SNOWCOVER FRACTION = 1.0, AND SUBLIMATION IS AT THE -! POTENTIAL RATE. -! ---------------------------------------------------------------------- -! INITIALIZE EVAP TERMS. -! ---------------------------------------------------------------------- -! conversions: -! ESNOW [KG M-2 S-1] -! ESDFLX [KG M-2 S-1] .le. ESNOW -! ESNOW1 [M S-1] -! ESNOW2 [M] -! ETP [KG M-2 S-1] -! ETP1 [M S-1] -! ETP2 [M] -! ---------------------------------------------------------------------- - SNOMLT = 0.0 - DEW = 0. - ESNOW = 0. - ESNOW1 = 0. - ESNOW2 = 0. - -! ---------------------------------------------------------------------- -! CONVERT POTENTIAL EVAP (ETP) FROM KG M-2 S-1 TO ETP1 IN M S-1 -! ---------------------------------------------------------------------- - PRCP1 = PRCPF *0.001 -! ---------------------------------------------------------------------- -! IF ETP<0 (DOWNWARD) THEN DEWFALL (=FROSTFALL IN THIS CASE). -! ---------------------------------------------------------------------- - IF (ETP <= 0.0) THEN - IF ( ( RIBB >= 0.1 ) .AND. ( FDOWN > 150.0 ) ) THEN - ETP=(MIN(ETP*(1.0-RIBB),0.)/0.980 + ETP*(0.980-1.0))/0.980 - ENDIF - ETP1 = ETP * 0.001 - DEW = -ETP1 - ESNOW2 = ETP1*DT - ETANRG = ETP*LSUBS - ELSE - ETP1 = ETP * 0.001 - ESNOW = ETP - ESNOW1 = ESNOW*0.001 - ESNOW2 = ESNOW1*DT - ETANRG = ESNOW*LSUBS - END IF - -! ---------------------------------------------------------------------- -! IF PRECIP IS FALLING, CALCULATE HEAT FLUX FROM SNOW SFC TO NEWLY -! ACCUMULATING PRECIP. NOTE THAT THIS REFLECTS THE FLUX APPROPRIATE FOR -! THE NOT-YET-UPDATED SKIN TEMPERATURE (T1). ASSUMES TEMPERATURE OF THE -! SNOWFALL STRIKING THE GROUND IS =SFCTMP (LOWEST MODEL LEVEL AIR TEMP). -! ---------------------------------------------------------------------- - FLX1 = 0.0 - IF (SNOWNG) THEN - FLX1 = CPICE * PRCP * (T1- SFCTMP) - ELSE - IF (PRCP > 0.0) FLX1 = CPH2O * PRCP * (T1- SFCTMP) - END IF -! ---------------------------------------------------------------------- -! CALCULATE AN 'EFFECTIVE SNOW-GRND SFC TEMP' (T12) BASED ON HEAT FLUXES -! BETWEEN THE SNOW PACK AND THE SOIL AND ON NET RADIATION. -! INCLUDE FLX1 (PRECIP-SNOW SFC) AND FLX2 (FREEZING RAIN LATENT HEAT) -! FLUXES. FLX1 FROM ABOVE, FLX2 BROUGHT IN VIA COMMOM BLOCK RITE. -! FLX2 REFLECTS FREEZING RAIN LATENT HEAT FLUX USING T1 CALCULATED IN -! PENMAN. -! ---------------------------------------------------------------------- - DSOIL = - (0.5 * ZSOIL (1)) - DTOT = SNOWH + DSOIL - DENOM = 1.0+ DF1 / (DTOT * RR * RCH) - T12A = ( (FDOWN - FLX1- FLX2- EMISSI * SIGMA * T24)/ RCH & - + TH2- SFCTMP - ETANRG / RCH ) / RR - T12B = DF1 * STC (1) / (DTOT * RR * RCH) - - T12 = (SFCTMP + T12A + T12B) / DENOM - IF (T12 <= TFREEZ) THEN -! ---------------------------------------------------------------------- -! SUB-FREEZING BLOCK -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS AT OR BELOW FREEZING, NO SNOW -! MELT WILL OCCUR. SET THE SKIN TEMP TO THIS EFFECTIVE TEMP. REDUCE -! (BY SUBLIMINATION ) OR INCREASE (BY FROST) THE DEPTH OF THE SNOWPACK, -! DEPENDING ON SIGN OF ETP. -! UPDATE SOIL HEAT FLUX (SSOIL) USING NEW SKIN TEMPERATURE (T1) -! SINCE NO SNOWMELT, SET ACCUMULATED SNOWMELT TO ZERO, SET 'EFFECTIVE' -! PRECIP FROM SNOWMELT TO ZERO, SET PHASE-CHANGE HEAT FLUX FROM SNOWMELT -! TO ZERO. -! ---------------------------------------------------------------------- - T1 = T12 - SSOIL = DF1 * (T1- STC (1)) / DTOT - SNEQV = MAX(0.0, SNEQV-ESNOW2) - FLX3 = 0.0 - EX = 0.0 - SNOMLT = 0.0 - ELSE -! ---------------------------------------------------------------------- -! ABOVE FREEZING BLOCK -! ---------------------------------------------------------------------- -! IF THE 'EFFECTIVE SNOW-GRND SFC TEMP' IS ABOVE FREEZING, SNOW MELT -! WILL OCCUR. CALL THE SNOW MELT RATE,EX AND AMT, SNOMLT. REVISE THE -! EFFECTIVE SNOW DEPTH. REVISE THE SKIN TEMP BECAUSE IT WOULD HAVE CHGD -! DUE TO THE LATENT HEAT RELEASED BY THE MELTING. CALC THE LATENT HEAT -! RELEASED, FLX3. SET THE EFFECTIVE PRECIP, PRCP1 TO THE SNOW MELT RATE, -! EX FOR USE IN SMFLX. ADJUSTMENT TO T1 TO ACCOUNT FOR SNOW PATCHES. -! CALCULATE QSAT VALID AT FREEZING POINT. NOTE THAT ESAT (SATURATION -! VAPOR PRESSURE) VALUE OF 6.11E+2 USED HERE IS THAT VALID AT FRZZING -! POINT. NOTE THAT ETP FROM CALL PENMAN IN SFLX IS IGNORED HERE IN -! FAVOR OF BULK ETP OVER 'OPEN WATER' AT FREEZING TEMP. -! UPDATE SOIL HEAT FLUX (S) USING NEW SKIN TEMPERATURE (T1) -! ---------------------------------------------------------------------- - T1 = TFREEZ - IF ( DTOT .GT. 2.0*DSOIL ) THEN - DTOT = 2.0*DSOIL - ENDIF - SSOIL = DF1 * (T1- STC (1)) / DTOT - IF (SNEQV-ESNOW2 <= ESDMIN) THEN - SNEQV = 0.0 - EX = 0.0 - SNOMLT = 0.0 - FLX3 = 0.0 -! ---------------------------------------------------------------------- -! SUBLIMATION LESS THAN DEPTH OF SNOWPACK -! SNOWPACK (SNEQV) REDUCED BY ESNOW2 (DEPTH OF SUBLIMATED SNOW) -! ---------------------------------------------------------------------- - ELSE - SNEQV = SNEQV-ESNOW2 - ETP3 = ETP * LSUBC - SEH = RCH * (T1- TH2) - T14 = ( T1 * T1 ) * ( T1 * T1 ) - FLX3 = FDOWN - FLX1- FLX2- EMISSI*SIGMA * T14- SSOIL - SEH - ETANRG - IF (FLX3 <= 0.0) FLX3 = 0.0 - EX = FLX3*0.001/ LSUBF - SNOMLT = EX * DT -! ---------------------------------------------------------------------- -! ESDMIN REPRESENTS A SNOWPACK DEPTH THRESHOLD VALUE BELOW WHICH WE -! CHOOSE NOT TO RETAIN ANY SNOWPACK, AND INSTEAD INCLUDE IT IN SNOWMELT. -! ---------------------------------------------------------------------- - IF (SNEQV- SNOMLT >= ESDMIN) THEN - SNEQV = SNEQV- SNOMLT - ELSE -! ---------------------------------------------------------------------- -! SNOWMELT EXCEEDS SNOW DEPTH -! ---------------------------------------------------------------------- - EX = SNEQV / DT - FLX3 = EX *1000.0* LSUBF - SNOMLT = SNEQV - - SNEQV = 0.0 - ENDIF - ENDIF - -! ---------------------------------------------------------------------- -! FOR GLACIAL ICE, THE SNOWMELT WILL BE ADDED TO SUBSURFACE -! RUNOFF/BASEFLOW LATER NEAR THE END OF SFLX (AFTER RETURN FROM CALL TO -! SUBROUTINE SNOPAC) -! ---------------------------------------------------------------------- - - ENDIF - -! ---------------------------------------------------------------------- -! BEFORE CALL SHFLX IN THIS SNOWPACK CASE, SET ZZ1 AND YY ARGUMENTS TO -! SPECIAL VALUES THAT ENSURE THAT GROUND HEAT FLUX CALCULATED IN SHFLX -! MATCHES THAT ALREADY COMPUTED FOR BELOW THE SNOWPACK, THUS THE SFC -! HEAT FLUX TO BE COMPUTED IN SHFLX WILL EFFECTIVELY BE THE FLUX AT THE -! SNOW TOP SURFACE. -! ---------------------------------------------------------------------- - ZZ1 = 1.0 - YY = STC (1) -0.5* SSOIL * ZSOIL (1)* ZZ1/ DF1 - -! ---------------------------------------------------------------------- -! SHFLX WILL CALC/UPDATE THE SOIL TEMPS. -! ---------------------------------------------------------------------- - CALL SHFLX (STC,NSOIL,DT,YY,ZZ1,ZSOIL,TBOT,DF1) - -! ---------------------------------------------------------------------- -! SNOW DEPTH AND DENSITY ADJUSTMENT BASED ON SNOW COMPACTION. YY IS -! ASSUMED TO BE THE SOIL TEMPERTURE AT THE TOP OF THE SOIL COLUMN. -! ---------------------------------------------------------------------- - IF (SNEQV .GE. 0.10) THEN - CALL SNOWPACK (SNEQV,DT,SNOWH,SNDENS,T1,YY) - ELSE - SNEQV = 0.10 - SNOWH = 0.50 -!KWM???? SNDENS = -!KWM???? SNCOND = - ENDIF -! ---------------------------------------------------------------------- - END SUBROUTINE SNOPAC -! ---------------------------------------------------------------------- - - SUBROUTINE SNOWPACK (SNEQV,DTSEC,SNOWH,SNDENS,TSNOW,TSOIL) - -! ---------------------------------------------------------------------- -! CALCULATE COMPACTION OF SNOWPACK UNDER CONDITIONS OF INCREASING SNOW -! DENSITY, AS OBTAINED FROM AN APPROXIMATE SOLUTION OF E. ANDERSON'S -! DIFFERENTIAL EQUATION (3.29), NOAA TECHNICAL REPORT NWS 19, BY VICTOR -! KOREN, 03/25/95. -! ---------------------------------------------------------------------- -! SNEQV WATER EQUIVALENT OF SNOW (M) -! DTSEC TIME STEP (SEC) -! SNOWH SNOW DEPTH (M) -! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) -! TSNOW SNOW SURFACE TEMPERATURE (K) -! TSOIL SOIL SURFACE TEMPERATURE (K) - -! SUBROUTINE WILL RETURN NEW VALUES OF SNOWH AND SNDENS -! ---------------------------------------------------------------------- - IMPLICIT NONE - - INTEGER :: IPOL, J - REAL, INTENT(IN) :: SNEQV, DTSEC,TSNOW,TSOIL - REAL, INTENT(INOUT) :: SNOWH, SNDENS - REAL :: BFAC,DSX,DTHR,DW,SNOWHC,PEXP, & - TAVGC,TSNOWC,TSOILC,ESDC,ESDCX - REAL, PARAMETER :: C1 = 0.01, C2 = 21.0, G = 9.81, & - KN = 4000.0 -! ---------------------------------------------------------------------- -! CONVERSION INTO SIMULATION UNITS -! ---------------------------------------------------------------------- - SNOWHC = SNOWH *100. - ESDC = SNEQV *100. - DTHR = DTSEC /3600. - TSNOWC = TSNOW -273.15 - TSOILC = TSOIL -273.15 - -! ---------------------------------------------------------------------- -! CALCULATING OF AVERAGE TEMPERATURE OF SNOW PACK -! ---------------------------------------------------------------------- -! ---------------------------------------------------------------------- -! CALCULATING OF SNOW DEPTH AND DENSITY AS A RESULT OF COMPACTION -! SNDENS=DS0*(EXP(BFAC*SNEQV)-1.)/(BFAC*SNEQV) -! BFAC=DTHR*C1*EXP(0.08*TAVGC-C2*DS0) -! NOTE: BFAC*SNEQV IN SNDENS EQN ABOVE HAS TO BE CAREFULLY TREATED -! NUMERICALLY BELOW: -! C1 IS THE FRACTIONAL INCREASE IN DENSITY (1/(CM*HR)) -! C2 IS A CONSTANT (CM3/G) KOJIMA ESTIMATED AS 21 CMS/G -! ---------------------------------------------------------------------- - TAVGC = 0.5* (TSNOWC + TSOILC) - IF (ESDC > 1.E-2) THEN - ESDCX = ESDC - ELSE - ESDCX = 1.E-2 - END IF - -! DSX = SNDENS*((DEXP(BFAC*ESDC)-1.)/(BFAC*ESDC)) -! ---------------------------------------------------------------------- -! THE FUNCTION OF THE FORM (e**x-1)/x IMBEDDED IN ABOVE EXPRESSION -! FOR DSX WAS CAUSING NUMERICAL DIFFICULTIES WHEN THE DENOMINATOR "x" -! (I.E. BFAC*ESDC) BECAME ZERO OR APPROACHED ZERO (DESPITE THE FACT THAT -! THE ANALYTICAL FUNCTION (e**x-1)/x HAS A WELL DEFINED LIMIT AS -! "x" APPROACHES ZERO), HENCE BELOW WE REPLACE THE (e**x-1)/x -! EXPRESSION WITH AN EQUIVALENT, NUMERICALLY WELL-BEHAVED -! POLYNOMIAL EXPANSION. - -! NUMBER OF TERMS OF POLYNOMIAL EXPANSION, AND HENCE ITS ACCURACY, -! IS GOVERNED BY ITERATION LIMIT "IPOL". -! IPOL GREATER THAN 9 ONLY MAKES A DIFFERENCE ON DOUBLE -! PRECISION (RELATIVE ERRORS GIVEN IN PERCENT %). -! IPOL=9, FOR REL.ERROR <~ 1.6 E-6 % (8 SIGNIFICANT DIGITS) -! IPOL=8, FOR REL.ERROR <~ 1.8 E-5 % (7 SIGNIFICANT DIGITS) -! IPOL=7, FOR REL.ERROR <~ 1.8 E-4 % ... -! ---------------------------------------------------------------------- - BFAC = DTHR * C1* EXP (0.08* TAVGC - C2* SNDENS) - IPOL = 4 - PEXP = 0. -! PEXP = (1. + PEXP)*BFAC*ESDC/REAL(J+1) - DO J = IPOL,1, -1 - PEXP = (1. + PEXP)* BFAC * ESDCX / REAL (J +1) - END DO - - PEXP = PEXP + 1. -! ---------------------------------------------------------------------- -! ABOVE LINE ENDS POLYNOMIAL SUBSTITUTION -! ---------------------------------------------------------------------- -! END OF KOREAN FORMULATION - -! BASE FORMULATION (COGLEY ET AL., 1990) -! CONVERT DENSITY FROM G/CM3 TO KG/M3 -! DSM=SNDENS*1000.0 - -! DSX=DSM+DTSEC*0.5*DSM*G*SNEQV/ -! & (1E7*EXP(-0.02*DSM+KN/(TAVGC+273.16)-14.643)) - -! & CONVERT DENSITY FROM KG/M3 TO G/CM3 -! DSX=DSX/1000.0 - -! END OF COGLEY ET AL. FORMULATION - -! ---------------------------------------------------------------------- -! SET UPPER/LOWER LIMIT ON SNOW DENSITY -! ---------------------------------------------------------------------- - DSX = SNDENS * (PEXP) - IF (DSX > 0.40) DSX = 0.40 - IF (DSX < 0.05) DSX = 0.05 -! ---------------------------------------------------------------------- -! UPDATE OF SNOW DEPTH AND DENSITY DEPENDING ON LIQUID WATER DURING -! SNOWMELT. ASSUMED THAT 13% OF LIQUID WATER CAN BE STORED IN SNOW PER -! DAY DURING SNOWMELT TILL SNOW DENSITY 0.40. -! ---------------------------------------------------------------------- - SNDENS = DSX - IF (TSNOWC >= 0.) THEN - DW = 0.13* DTHR /24. - SNDENS = SNDENS * (1. - DW) + DW - IF (SNDENS >= 0.40) SNDENS = 0.40 -! ---------------------------------------------------------------------- -! CALCULATE SNOW DEPTH (CM) FROM SNOW WATER EQUIVALENT AND SNOW DENSITY. -! CHANGE SNOW DEPTH UNITS TO METERS -! ---------------------------------------------------------------------- - END IF - SNOWHC = ESDC / SNDENS - SNOWH = SNOWHC * 0.01 - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOWPACK -! ---------------------------------------------------------------------- - - SUBROUTINE SNOWZ0 (Z0, Z0BRD, SNOWH) -! ---------------------------------------------------------------------- -! CALCULATE TOTAL ROUGHNESS LENGTH OVER SNOW -! Z0 ROUGHNESS LENGTH (m) -! Z0S SNOW ROUGHNESS LENGTH:=0.001 (m) -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: Z0BRD - REAL, INTENT(OUT) :: Z0 - REAL, PARAMETER :: Z0S=0.001 - REAL, INTENT(IN) :: SNOWH - REAL :: BURIAL - REAL :: Z0EFF - - BURIAL = 7.0*Z0BRD - SNOWH - IF(BURIAL.LE.0.0007) THEN - Z0EFF = Z0S - ELSE - Z0EFF = BURIAL/7.0 - ENDIF - - Z0 = Z0EFF - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOWZ0 -! ---------------------------------------------------------------------- - - SUBROUTINE SNOW_NEW (TEMP,NEWSN,SNOWH,SNDENS) - -! ---------------------------------------------------------------------- -! CALCULATE SNOW DEPTH AND DENSITY TO ACCOUNT FOR THE NEW SNOWFALL. -! UPDATED VALUES OF SNOW DEPTH AND DENSITY ARE RETURNED. - -! TEMP AIR TEMPERATURE (K) -! NEWSN NEW SNOWFALL (M) -! SNOWH SNOW DEPTH (M) -! SNDENS SNOW DENSITY (G/CM3=DIMENSIONLESS FRACTION OF H2O DENSITY) -! ---------------------------------------------------------------------- - IMPLICIT NONE - REAL, INTENT(IN) :: NEWSN, TEMP - REAL, INTENT(INOUT) :: SNDENS, SNOWH - REAL :: DSNEW, HNEWC, SNOWHC,NEWSNC,TEMPC - -! ---------------------------------------------------------------------- -! CALCULATING NEW SNOWFALL DENSITY DEPENDING ON TEMPERATURE -! EQUATION FROM GOTTLIB L. 'A GENERAL RUNOFF MODEL FOR SNOWCOVERED -! AND GLACIERIZED BASIN', 6TH NORDIC HYDROLOGICAL CONFERENCE, -! VEMADOLEN, SWEDEN, 1980, 172-177PP. -!----------------------------------------------------------------------- - TEMPC = TEMP - 273.15 - IF ( TEMPC <= -15. ) THEN - DSNEW = 0.05 - ELSE - DSNEW = 0.05 + 0.0017 * ( TEMPC + 15. ) ** 1.5 - ENDIF - -! ---------------------------------------------------------------------- -! CONVERSION INTO SIMULATION UNITS -! ---------------------------------------------------------------------- - SNOWHC = SNOWH * 100. - NEWSNC = NEWSN * 100. - -! ---------------------------------------------------------------------- -! ADJUSTMENT OF SNOW DENSITY DEPENDING ON NEW SNOWFALL -! ---------------------------------------------------------------------- - HNEWC = NEWSNC / DSNEW - IF ( SNOWHC + HNEWC < 1.0E-3 ) THEN - SNDENS = MAX ( DSNEW , SNDENS ) - ELSE - SNDENS = ( SNOWHC * SNDENS + HNEWC * DSNEW ) / ( SNOWHC + HNEWC ) - ENDIF - SNOWHC = SNOWHC + HNEWC - SNOWH = SNOWHC * 0.01 - -! ---------------------------------------------------------------------- - END SUBROUTINE SNOW_NEW -! ---------------------------------------------------------------------- - -END MODULE module_sf_noahlsm_glacial_only diff --git a/physics/module_sf_noahmplsm.f90 b/physics/module_sf_noahmplsm.f90 index 9fcb7edf8..00895d59f 100644 --- a/physics/module_sf_noahmplsm.f90 +++ b/physics/module_sf_noahmplsm.f90 @@ -1769,9 +1769,9 @@ subroutine energy (parameters,ice ,vegtyp ,ist ,nsnow ,nsoil , & !in real (kind=kind_phys) , intent(inout) :: cm !momentum drag coefficient real (kind=kind_phys) , intent(inout) :: ch !sensible heat exchange coefficient real (kind=kind_phys) , intent(inout) :: q1 - real , intent(inout) :: rb !leaf boundary layer resistance (s/m) - real , intent(inout) :: laisun !sunlit leaf area index (m2/m2) - real , intent(inout) :: laisha !shaded leaf area index (m2/m2) + real (kind=kind_phys) , intent(inout) :: rb !leaf boundary layer resistance (s/m) + real (kind=kind_phys) , intent(inout) :: laisun !sunlit leaf area index (m2/m2) + real (kind=kind_phys) , intent(inout) :: laisha !shaded leaf area index (m2/m2) #ifdef CCPP character(len=*) , intent(inout) :: errmsg integer , intent(inout) :: errflg @@ -5868,8 +5868,8 @@ subroutine frh2o (parameters,isoil,free,tkelv,smc,sh2o,& 1001 continue if (.not.( (nlog < 10) .and. (kcount == 0))) goto 1002 nlog = nlog +1 - df = alog ( ( parameters%psisat(isoil) * grav / hfus ) * ( ( 1. + ck * swl )**2.) * & - ( parameters%smcmax(isoil) / (smc - swl) )** bx) - alog ( - ( & + df = log ( ( parameters%psisat(isoil) * grav / hfus ) * ( ( 1. + ck * swl )**2.) * & + ( parameters%smcmax(isoil) / (smc - swl) )** bx) - log ( - ( & tkelv - tfrz)/ tkelv) denom = 2. * ck / ( 1. + ck * swl ) + bx / ( smc - swl ) swlk = swl - df / denom diff --git a/physics/moninedmf.meta b/physics/moninedmf.meta index 66df72942..f07e1916f 100644 --- a/physics/moninedmf.meta +++ b/physics/moninedmf.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [moninq_fac] standard_name = multiplicative_tuning_parameter_for_atmosphere_diffusivity long_name = multiplicative constant for atmospheric diffusivities @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -32,7 +30,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -40,7 +37,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -53,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -61,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -69,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = cloud condensate index in tracer array @@ -77,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [dv] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = inout - optional = F [du] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = inout - optional = F [tau] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtg] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = x component of layer wind @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = y component of layer wind @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = layer mean air temperature @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [hlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky longwave heating rate @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [psk] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the surface interface @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [rbsoil] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [tsea] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -275,7 +246,6 @@ type = real kind = kind_phys intent = in - optional = F [spd1] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -284,7 +254,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -292,7 +261,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -301,7 +269,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -310,7 +277,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -319,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -328,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -337,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -346,7 +309,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -355,7 +317,6 @@ type = real kind = kind_phys intent = in - optional = F [dspheat] standard_name = flag_TKE_dissipation_heating long_name = flag for using TKE dissipation heating @@ -363,7 +324,6 @@ dimensions = () type = logical intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -372,7 +332,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -381,7 +340,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -390,7 +348,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -399,7 +356,6 @@ type = real kind = kind_phys intent = out - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -408,7 +364,6 @@ type = real kind = kind_phys intent = out - optional = F [hgamt] standard_name = countergradient_mixing_term_for_temperature long_name = countergradient mixing term for temperature @@ -417,7 +372,6 @@ type = real kind = kind_phys intent = inout - optional = F [hgamq] standard_name = countergradient_mixing_term_for_water_vapor long_name = countergradient mixing term for water vapor @@ -426,7 +380,6 @@ type = real kind = kind_phys intent = inout - optional = F [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -435,7 +388,6 @@ type = real kind = kind_phys intent = out - optional = F [dku] standard_name = atmosphere_momentum_diffusivity long_name = atmospheric momentum diffusivity @@ -444,7 +396,6 @@ type = real kind = kind_phys intent = out - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -452,7 +403,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [xkzm_m] standard_name = atmosphere_momentum_diffusivity_due_to_background long_name = background value of momentum diffusivity @@ -461,7 +411,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_h] standard_name = atmosphere_heat_diffusivity_due_to_background long_name = background value of heat diffusivity @@ -470,7 +419,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_s] standard_name = sigma_pressure_threshold_at_upper_extent_of_background_diffusion long_name = sigma level threshold for background diffusivity @@ -479,7 +427,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output @@ -487,7 +434,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -495,7 +441,6 @@ dimensions = () type = integer intent = in - optional = F [xkzminv] standard_name = max_atmosphere_heat_diffusivity_due_to_background long_name = maximum background value of heat diffusivity @@ -504,7 +449,6 @@ type = real kind = kind_phys intent = in - optional = F [moninq_fac] standard_name = multiplicative_tuning_parameter_for_atmosphere_diffusivity long_name = multiplicative constant for atmospheric diffusivities @@ -513,7 +457,6 @@ type = real kind = kind_phys intent = in - optional = F [hurr_pbl] standard_name = flag_hurricane_PBL long_name = flag for hurricane-specific options in PBL scheme @@ -521,7 +464,6 @@ dimensions = () type = logical intent = in - optional = F [islimsk] standard_name = sea_land_ice_mask long_name = sea/land/ice mask (=0/1/2) @@ -529,7 +471,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [var_ric] standard_name = control_for_variable_bulk_richardson_number long_name = flag for calculating variable bulk richardson number for hurricane PBL @@ -538,7 +479,6 @@ type = real kind = kind_phys intent = in - optional = F [coef_ric_l] standard_name = coefficient_for_variable_bulk_richardson_number_over_land long_name = coefficient for calculating variable bulk richardson number for hurricane PBL over land @@ -547,7 +487,6 @@ type = real kind = kind_phys intent = in - optional = F [coef_ric_s] standard_name = coefficient_for_variable_bulk_richardson_number_over_water long_name = coefficient for calculating variable bulk richardson number for hurricane PBL over water @@ -556,7 +495,6 @@ type = real kind = kind_phys intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -564,7 +502,6 @@ dimensions = () type = logical intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -572,7 +509,6 @@ dimensions = () type = integer intent = in - optional = F [rtg_ozone_index] standard_name = vertically_diffused_tracer_index_of_ozone long_name = number of tracers @@ -580,7 +516,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -588,7 +523,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -598,7 +532,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -606,7 +539,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -614,7 +546,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -622,7 +553,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -630,7 +560,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -638,7 +567,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -646,7 +574,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -655,7 +582,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -663,4 +589,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/moninshoc.meta b/physics/moninshoc.meta index 3b1c5acf6..4acfe1001 100644 --- a/physics/moninshoc.meta +++ b/physics/moninshoc.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = cloud condensate index in tracer array @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [ncnd] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [dv] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = inout - optional = F [du] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = inout - optional = F [tau] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtg] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = x component of layer wind @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = y component of layer wind @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = layer mean air temperature @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [tkh] standard_name = atmosphere_heat_diffusivity_from_shoc long_name = diffusivity for heat from the SHOC scheme @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [prnum] standard_name = prandtl_number long_name = turbulent Prandtl number @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = out - optional = F [ntke] standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer long_name = index for turbulent kinetic energy in the vertically diffused tracer array @@ -174,7 +156,6 @@ dimensions = () type = integer intent = in - optional = F [psk] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the surface interface @@ -183,7 +164,6 @@ type = real kind = kind_phys intent = in - optional = F [rbsoil] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -201,7 +180,6 @@ type = real kind = kind_phys intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -210,7 +188,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -219,7 +196,6 @@ type = real kind = kind_phys intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -228,7 +204,6 @@ type = real kind = kind_phys intent = in - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -237,7 +212,6 @@ type = real kind = kind_phys intent = in - optional = F [tsea] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -246,7 +220,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -255,7 +228,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -264,7 +236,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -273,7 +244,6 @@ type = real kind = kind_phys intent = in - optional = F [spd1] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -282,7 +252,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -290,7 +259,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -299,7 +267,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -308,7 +275,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -317,7 +283,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -326,7 +291,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -335,7 +299,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -344,7 +307,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -353,7 +315,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -362,7 +323,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -371,7 +331,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -380,7 +339,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -389,7 +347,6 @@ type = real kind = kind_phys intent = out - optional = F [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -398,7 +355,6 @@ type = real kind = kind_phys intent = out - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -407,7 +363,6 @@ type = real kind = kind_phys intent = out - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -415,7 +370,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [xkzm_m] standard_name = atmosphere_momentum_diffusivity_due_to_background long_name = background value of momentum diffusivity @@ -424,7 +378,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_h] standard_name = atmosphere_heat_diffusivity_due_to_background long_name = background value of heat diffusivity @@ -433,7 +386,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_s] standard_name = sigma_pressure_threshold_at_upper_extent_of_background_diffusion long_name = sigma level threshold for background diffusivity @@ -442,7 +394,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzminv] standard_name = max_atmosphere_heat_diffusivity_due_to_background long_name = max. background val. diffusivity in inversion layers @@ -451,7 +402,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -460,7 +410,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -469,7 +418,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -478,7 +426,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -487,7 +434,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -496,7 +442,6 @@ type = real kind = kind_phys intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -504,7 +449,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -513,7 +457,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -521,7 +464,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -529,7 +471,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -537,7 +478,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -545,7 +485,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -553,7 +492,6 @@ dimensions = () type = integer intent = in - optional = F [gen_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies @@ -575,7 +513,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -584,7 +521,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -592,4 +528,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/mp_fer_hires.meta b/physics/mp_fer_hires.meta index f5e96b0d9..6cf457063 100644 --- a/physics/mp_fer_hires.meta +++ b/physics/mp_fer_hires.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_fer_hires] standard_name = identifier_for_fer_hires_microphysics_scheme long_name = choice of Ferrier-Aligo microphysics scheme @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -55,7 +50,6 @@ dimensions = () type = logical intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -63,7 +57,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -71,7 +64,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -79,7 +71,6 @@ dimensions = () type = integer intent = in - optional = F [threads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available to scheme @@ -87,7 +78,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -96,7 +86,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -104,7 +93,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] name = mp_fer_hires_finalize @@ -117,7 +105,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -125,7 +112,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -138,7 +124,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -146,7 +131,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -155,7 +139,6 @@ type = real kind = kind_phys intent = in - optional = F [spec_adv] standard_name = flag_for_separate_advection_of_condensate_species long_name = flag for individual cloud species advected @@ -163,7 +146,6 @@ dimensions = () type = logical intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -172,7 +154,6 @@ type = real kind= kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -181,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [p_phy] standard_name = air_pressure long_name = mean layer pressure @@ -190,7 +170,6 @@ type = real kind = kind_phys intent = in - optional = F [t] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -199,7 +178,6 @@ type = real kind = kind_phys intent = inout - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -208,7 +186,6 @@ type = real kind = kind_phys intent = inout - optional = F [train] standard_name = accumulated_change_of_air_temperature_due_to_FA_scheme long_name = accumulated change of air temperature due to FA MP scheme @@ -217,7 +194,6 @@ type = real kind = kind_phys intent = inout - optional = F [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = snow ratio: ratio of snow to total precipitation (explicit only) @@ -226,7 +202,6 @@ type = real kind = kind_phys intent = out - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) updated by physics @@ -235,7 +210,6 @@ type = real kind = kind_phys intent = inout - optional = F [qr] standard_name = rain_mixing_ratio_of_new_state long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) updated by physics @@ -244,7 +218,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi] 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 @@ -253,7 +226,6 @@ type = real kind = kind_phys intent = inout - optional = F [qg] standard_name = mass_weighted_rime_factor_of_new_state long_name = mass weighted rime factor updated by physics @@ -262,7 +234,6 @@ type = real kind = kind_phys intent = inout - optional = F [prec] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation ( rain, ice, snow, graupel, ...) on physics timestep @@ -271,7 +242,6 @@ type = real kind = kind_phys intent = inout - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -279,7 +249,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -287,7 +256,6 @@ dimensions = () type = integer intent = in - optional = F [threads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available to scheme @@ -295,7 +263,6 @@ dimensions = () type = integer intent = in - optional = F [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -304,7 +271,6 @@ type = real kind = kind_phys intent = inout - optional = F [rhgrd] standard_name = relative_humidity_threshold_for_condensation long_name = relative humidity threshold parameter for condensation for FA scheme @@ -313,7 +279,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = relative dx for the grid cell @@ -322,7 +287,6 @@ type = real kind = kind_phys intent = in - optional = F [EPSQ] standard_name = minimum_value_of_specific_humidity long_name = floor value for specific humidity @@ -331,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = F [R_D] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = F [P608] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [CP] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -358,7 +319,6 @@ type = real kind = kind_phys intent = in - optional = F [G] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -367,7 +327,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -376,7 +335,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -384,4 +342,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/mp_thompson.F90 b/physics/mp_thompson.F90 index c31d90b09..d5a1fcaad 100644 --- a/physics/mp_thompson.F90 +++ b/physics/mp_thompson.F90 @@ -36,7 +36,6 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, & spechum, qc, qr, qi, qs, qg, ni, nr, & is_aerosol_aware, nc, nwfa2d, nifa2d, & nwfa, nifa, tgrs, prsl, phil, area, & - re_cloud, re_ice, re_snow, & mpicomm, mpirank, mpiroot, & threads, ext_diag, diag3d, & errmsg, errflg) @@ -62,20 +61,16 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, & real(kind_phys), intent(inout) :: nr(:,:) ! Aerosols logical, intent(in ) :: is_aerosol_aware - real(kind_phys), optional, intent(inout) :: nc(:,:) - real(kind_phys), optional, intent(inout) :: nwfa(:,:) - real(kind_phys), optional, intent(inout) :: nifa(:,:) - real(kind_phys), optional, intent(inout) :: nwfa2d(:) - real(kind_phys), optional, intent(inout) :: nifa2d(:) + 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(:) ! State variables real(kind_phys), intent(in ) :: tgrs(:,:) real(kind_phys), intent(in ) :: prsl(:,:) real(kind_phys), intent(in ) :: phil(:,:) real(kind_phys), intent(in ) :: area(:) - ! Cloud effective radii - real(kind_phys), optional, intent( out) :: re_cloud(:,:) - real(kind_phys), optional, intent( out) :: re_ice(:,:) - real(kind_phys), optional, intent( out) :: re_snow(:,:) ! MPI information integer, intent(in ) :: mpicomm integer, intent(in ) :: mpirank @@ -274,34 +269,6 @@ subroutine mp_thompson_init(ncol, nlev, con_g, con_rd, con_eps, & end if - ! Calculate initial cloud effective radii if requested - if (present(re_cloud) .and. present(re_ice) .and. present(re_snow)) then - ! Effective radii [m] are now intent(out), bounds applied in calc_effectRad - do i = 1, ncol - call calc_effectRad (tgrs(i,:), prsl(i,:), qv(i,:), qc(i,:), & - nc_local(i,:), qi(i,:), ni(i,:), qs(i,:), & - re_cloud(i,:), re_ice(i,:), re_snow(i,:), 1, nlev) - do k = 1, nlev - re_cloud(i,k) = MAX(re_qc_min, MIN(re_cloud(i,k), re_qc_max)) - re_ice(i,k) = MAX(re_qi_min, MIN(re_ice(i,k), re_qi_max)) - re_snow(i,k) = MAX(re_qs_min, MIN(re_snow(i,k), re_qs_max)) - end do - end do - !! Convert to micron: required for bit-for-bit identical restarts; - !! otherwise entering mp_thompson_init and converting mu to m and - !! back (without updating re_*) introduces b4b differences. - !! If this code is used, change units in metadata from m to um! - !re_cloud = 1.0E6*re_cloud - !re_ice = 1.0E6*re_ice - !re_snow = 1.0E6*re_snow - else if (present(re_cloud) .or. present(re_ice) .or. present(re_snow)) then - write(errmsg,fmt='(*(a))') 'Logic error in mp_thompson_init:', & - ' all or none of the following optional', & - ' arguments are required: re_cloud, re_ice, re_snow' - errflg = 1 - return - end if - if (convert_dry_rho) then !qc = qc/(1.0_kind_phys+qv) !qr = qr/(1.0_kind_phys+qv) @@ -334,11 +301,12 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & spechum, qc, qr, qi, qs, qg, ni, nr, & is_aerosol_aware, nc, nwfa, nifa, & nwfa2d, nifa2d, & - tgrs, prsl, phii, omega, dt_inner, & - dtp, first_time_step, istep, nsteps, & + tgrs, prsl, phii, omega, & + sedi_semi, sedi_semi_update, & + sedi_semi_decfl, dtp, dt_inner, & + first_time_step, istep, nsteps, & prcp, rain, graupel, ice, snow, sr, & refl_10cm, reset_dBZ, do_radar_ref, & - re_cloud, re_ice, re_snow, & mpicomm, mpirank, mpiroot, blkno, & ext_diag, diag3d, reset_diag3d, & errmsg, errflg) @@ -379,6 +347,7 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & real(kind_phys), intent(in ) :: dtp logical, intent(in ) :: first_time_step integer, intent(in ) :: istep, nsteps + 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(:) @@ -387,13 +356,11 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & real(kind_phys), intent(inout) :: snow(:) real(kind_phys), intent( out) :: sr(:) ! Radar reflectivity - real(kind_phys), intent( out) :: refl_10cm(:,:) - logical, optional, intent(in ) :: do_radar_ref - real, intent(in ) :: dt_inner - ! Cloud effective radii - real(kind_phys), optional, intent( out) :: re_cloud(:,:) - real(kind_phys), optional, intent( out) :: re_ice(:,:) - real(kind_phys), optional, intent( out) :: re_snow(:,:) + real(kind_phys), intent(inout) :: refl_10cm(:,:) + logical, intent(in ) :: do_radar_ref + logical, intent(in) :: sedi_semi + logical, intent(in) :: sedi_semi_update + logical, intent(in) :: sedi_semi_decfl ! MPI and block information integer, intent(in) :: blkno integer, intent(in) :: mpicomm @@ -431,17 +398,16 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & ! Radar reflectivity logical :: diagflag ! must be true if do_radar_ref is true, not used otherwise integer :: do_radar_ref_mp ! integer instead of logical do_radar_ref - ! Effective cloud radii - logical :: do_effective_radii - integer :: has_reqc - integer :: has_reqi - integer :: has_reqs - ! DH* 2020-06-05 hardcode these values for not using random perturbations, + ! Effective cloud radii - turned off in CCPP (taken care off in radiation) + logical, parameter :: do_effective_radii = .false. + integer, parameter :: has_reqc = 0 + integer, parameter :: has_reqi = 0 + integer, parameter :: has_reqs = 0 + ! Random perturbations are turned off in CCPP for now, ! hasn't been tested yet with this version of module_mp_thompson.F90 integer, parameter :: rand_perturb_on = 0 integer, parameter :: kme_stoch = 1 !real(kind_phys) :: rand_pert(1:ncol,1:kme_stoch) - ! *DH 2020-06-05 ! Dimensions used in mp_gt_driver integer :: ids,ide, jds,jde, kds,kde, & ims,ime, jms,jme, kms,kme, & @@ -580,28 +546,6 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & do_radar_ref_mp = 0 end if - if (present(re_cloud) .and. present(re_ice) .and. present(re_snow)) then - do_effective_radii = .true. - has_reqc = 1 - has_reqi = 1 - has_reqs = 1 - ! Initialize to zero, intent(out) variables - re_cloud = 0 - re_ice = 0 - re_snow = 0 - else if (.not.present(re_cloud) .and. .not.present(re_ice) .and. .not.present(re_snow)) then - do_effective_radii = .false. - has_reqc = 0 - has_reqi = 0 - has_reqs = 0 - else - write(errmsg,fmt='(*(a))') 'Logic error in mp_thompson_run:', & - ' all or none of the following optional', & - ' arguments are required: re_cloud, re_ice, re_snow' - errflg = 1 - return - end if - ! Set internal dimensions ids = 1 ims = 1 @@ -671,165 +615,86 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & !> - Call mp_gt_driver() with or without aerosols if (is_aerosol_aware) then - if (do_effective_radii) 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, & - 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, & - re_cloud=re_cloud, re_ice=re_ice, re_snow=re_snow, & - has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & - rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & - ! DH* 2020-06-05 not passing this optional argument, see - ! comment in module_mp_thompson.F90 / mp_gt_driver - !rand_pert=rand_pert, & - 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, & - reset_dBZ=reset_dBZ, 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) - else - 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, & - 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, & - has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & - rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & - ! DH* 2020-06-05 not passing this optional argument, see - ! comment in module_mp_thompson.F90 / mp_gt_driver - !rand_pert=rand_pert, & - 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, & - reset_dBZ=reset_dBZ, 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) - end if + 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, & + sedi_semi=sedi_semi, sedi_semi_update=sedi_semi_update, & + sedi_semi_decfl=sedi_semi_decfl, & + 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, & + has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & + rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & + ! DH* 2020-06-05 not passing this optional argument, see + ! comment in module_mp_thompson.F90 / mp_gt_driver + !rand_pert=rand_pert, & + 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, & + reset_dBZ=reset_dBZ, 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) else - if (do_effective_radii) then - 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, & - 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, & - re_cloud=re_cloud, re_ice=re_ice, re_snow=re_snow, & - has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & - rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & - ! DH* 2020-06-05 not passing this optional argument, see - ! comment in module_mp_thompson.F90 / mp_gt_driver - !rand_pert=rand_pert, & - 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, & - reset_dBZ=reset_dBZ, 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) - 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, & - 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, & - has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & - rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & - ! DH* 2020-06-05 not passing this optional argument, see - ! comment in module_mp_thompson.F90 / mp_gt_driver - !rand_pert=rand_pert, & - 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, & - reset_dBZ=reset_dBZ, 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) - end if + 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, & + sedi_semi=sedi_semi, sedi_semi_update=sedi_semi_update, & + sedi_semi_decfl=sedi_semi_decfl, & + 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, & + has_reqc=has_reqc, has_reqi=has_reqi, has_reqs=has_reqs, & + rand_perturb_on=rand_perturb_on, kme_stoch=kme_stoch, & + ! DH* 2020-06-05 not passing this optional argument, see + ! comment in module_mp_thompson.F90 / mp_gt_driver + !rand_pert=rand_pert, & + 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, & + reset_dBZ=reset_dBZ, 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) end if if (errflg/=0) return diff --git a/physics/mp_thompson.meta b/physics/mp_thompson.meta index ab00e6524..25efcf953 100644 --- a/physics/mp_thompson.meta +++ b/physics/mp_thompson.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -49,7 +45,6 @@ type = real kind = kind_phys intent = in - optional = F [restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -57,7 +52,6 @@ dimensions = () type = logical intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -65,7 +59,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -73,7 +66,6 @@ dimensions = () type = integer intent = in - optional = F [convert_dry_rho] standard_name = flag_for_converting_hydrometeors_from_moist_to_dry_air long_name = flag for converting hydrometeors from moist to dry air @@ -81,7 +73,6 @@ dimensions = () type = logical intent = in - optional = F [spechum] standard_name = specific_humidity long_name = water vapor specific humidity @@ -90,7 +81,6 @@ type = real kind = kind_phys intent = inout - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio long_name = cloud water mixing ratio wrt dry+vapor (no condensates) @@ -99,7 +89,6 @@ type = real kind = kind_phys intent = inout - optional = F [qr] standard_name = rain_mixing_ratio long_name = rain water mixing ratio wrt dry+vapor (no condensates) @@ -108,7 +97,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi] standard_name = cloud_ice_mixing_ratio long_name = ice water mixing ratio wrt dry+vapor (no condensates) @@ -117,7 +105,6 @@ type = real kind = kind_phys intent = inout - optional = F [qs] standard_name = snow_mixing_ratio long_name = snow water mixing ratio wrt dry+vapor (no condensates) @@ -126,7 +113,6 @@ type = real kind = kind_phys intent = inout - optional = F [qg] standard_name = graupel_mixing_ratio long_name = graupel mixing ratio wrt dry+vapor (no condensates) @@ -135,7 +121,6 @@ type = real kind = kind_phys intent = inout - optional = F [ni] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air long_name = ice number concentration @@ -144,7 +129,6 @@ type = real kind = kind_phys intent = inout - optional = F [nr] standard_name = mass_number_concentration_of_rain_water_in_air long_name = rain number concentration @@ -153,7 +137,6 @@ type = real kind = kind_phys intent = inout - optional = F [is_aerosol_aware] standard_name = flag_for_aerosol_physics long_name = flag for aerosol-aware physics @@ -161,7 +144,6 @@ dimensions = () type = logical intent = in - optional = F [nc] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air long_name = cloud droplet number concentration @@ -170,7 +152,6 @@ type = real kind = kind_phys intent = inout - optional = T [nwfa2d] standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer long_name = instantaneous fake water-friendly surface aerosol source @@ -179,7 +160,6 @@ type = real kind = kind_phys intent = inout - optional = T [nifa2d] standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous fake ice-friendly surface aerosol source @@ -188,7 +168,6 @@ type = real kind = kind_phys intent = inout - optional = T [nwfa] standard_name = mass_number_concentration_of_hygroscopic_aerosols long_name = number concentration of water-friendly aerosols @@ -197,7 +176,6 @@ type = real kind = kind_phys intent = inout - optional = T [nifa] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols long_name = number concentration of ice-friendly aerosols @@ -206,7 +184,6 @@ type = real kind = kind_phys intent = inout - optional = T [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -215,7 +192,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -224,7 +200,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -233,7 +208,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -242,34 +216,6 @@ type = real kind = kind_phys intent = in - optional = F -[re_cloud] - standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle - long_name = eff. radius of cloud liquid water particle in micrometer - units = m - dimensions = (horizontal_dimension,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T -[re_ice] - standard_name = effective_radius_of_stratiform_cloud_ice_particle - long_name = eff. radius of cloud ice water particle in micrometer - units = m - dimensions = (horizontal_dimension,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T -[re_snow] - standard_name = effective_radius_of_stratiform_cloud_snow_particle - long_name = effective radius of cloud snow particle in micrometer - units = m - dimensions = (horizontal_dimension,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -277,7 +223,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -285,7 +230,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -293,7 +237,6 @@ dimensions = () type = integer intent = in - optional = F [threads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available to scheme @@ -301,7 +244,6 @@ dimensions = () type = integer intent = in - optional = F [ext_diag] standard_name = flag_for_extended_diagnostic_output_from_thompson_microphysics long_name = flag for extended diagnostic output from thompson microphysics @@ -309,7 +251,6 @@ dimensions = () type = logical intent = in - optional = F [diag3d] standard_name = extended_diagnostics_output_from_thompson_microphysics long_name = set of 3d arrays for extended diagnostics output from thompson microphysics @@ -318,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -327,7 +267,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -335,7 +274,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -348,7 +286,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -356,7 +293,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -365,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -374,7 +309,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -383,7 +317,6 @@ type = real kind = kind_phys intent = in - optional = F [convert_dry_rho] standard_name = flag_for_converting_hydrometeors_from_moist_to_dry_air long_name = flag for converting hydrometeors from moist to dry air @@ -391,7 +324,6 @@ dimensions = () type = logical intent = in - optional = F [spechum] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity @@ -400,7 +332,6 @@ type = real kind = kind_phys intent = inout - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = cloud water mixing ratio wrt dry+vapor (no condensates) @@ -409,7 +340,6 @@ type = real kind = kind_phys intent = inout - optional = F [qr] standard_name = rain_mixing_ratio_of_new_state long_name = rain water mixing ratio wrt dry+vapor (no condensates) @@ -418,7 +348,6 @@ type = real kind = kind_phys intent = inout - optional = F [qi] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = ice water mixing ratio wrt dry+vapor (no condensates) @@ -427,7 +356,6 @@ type = real kind = kind_phys intent = inout - optional = F [qs] standard_name = snow_mixing_ratio_of_new_state long_name = snow water mixing ratio wrt dry+vapor (no condensates) @@ -436,7 +364,6 @@ type = real kind = kind_phys intent = inout - optional = F [qg] standard_name = graupel_mixing_ratio_of_new_state long_name = graupel mixing ratio wrt dry+vapor (no condensates) @@ -445,7 +372,6 @@ type = real kind = kind_phys intent = inout - optional = F [ni] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air_of_new_state long_name = ice number concentration @@ -454,7 +380,6 @@ type = real kind = kind_phys intent = inout - optional = F [nr] standard_name = mass_number_concentration_of_rain_of_new_state long_name = rain number concentration @@ -463,7 +388,6 @@ type = real kind = kind_phys intent = inout - optional = F [is_aerosol_aware] standard_name = flag_for_aerosol_physics long_name = flag for aerosol-aware physics @@ -471,7 +395,6 @@ dimensions = () type = logical intent = in - optional = F [nc] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_state long_name = cloud droplet number concentration @@ -480,7 +403,6 @@ type = real kind = kind_phys intent = inout - optional = T [nwfa] standard_name = mass_number_concentration_of_hygroscopic_aerosols_of_new_state long_name = number concentration of water-friendly aerosols @@ -489,7 +411,6 @@ type = real kind = kind_phys intent = inout - optional = T [nifa] standard_name = mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_of_new_state long_name = number concentration of ice-friendly aerosols @@ -498,7 +419,6 @@ type = real kind = kind_phys intent = inout - optional = T [nwfa2d] standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer long_name = instantaneous fake water-friendly surface aerosol source @@ -507,7 +427,6 @@ type = real kind = kind_phys intent = in - optional = T [nifa2d] standard_name = tendency_of_nonhygroscopic_ice_nucleating_aerosols_at_surface_adjacent_layer long_name = instantaneous fake ice-friendly surface aerosol source @@ -516,7 +435,6 @@ type = real kind = kind_phys intent = in - optional = T [tgrs] standard_name = air_temperature_of_new_state long_name = model layer mean temperature @@ -525,7 +443,6 @@ type = real kind = kind_phys intent = inout - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -534,7 +451,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -543,7 +459,6 @@ type = real kind = kind_phys intent = in - optional = F [omega] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -552,7 +467,27 @@ type = real kind = kind_phys intent = in - optional = F +[sedi_semi] + standard_name = flag_for_semi_Lagrangian_sedi_rain + long_name = flag for semi Lagrangian sedi of rain + units = flag + dimensions = () + type = logical + intent = in +[sedi_semi_update] + standard_name = flag_for_v_update_in_semi_Lagrangian_sedi + long_name = flag for v update in semi Lagrangian sedi of rain + units = flag + dimensions = () + type = logical + intent = in +[sedi_semi_decfl] + standard_name = flag_for_iteration_with_semi_Lagrangian_sedi + long_name = flag for interation with semi Lagrangian sedi of rain + units = flag + dimensions = () + type = logical + intent = in [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -561,16 +496,14 @@ type = real kind = kind_phys intent = in - optional = F [dt_inner] standard_name = time_step_for_inner_loop - long_name = time step for inner loop + long_name = time step for inner loop units = s dimensions = () type = real kind = kind_phys intent = in - optional = F [first_time_step] standard_name = flag_for_first_timestep long_name = flag for first time step for time integration loop (cold/warmstart) @@ -578,7 +511,6 @@ dimensions = () type = logical intent = in - optional = F [istep] standard_name = ccpp_loop_counter long_name = loop counter for subcycling loops in CCPP @@ -586,7 +518,6 @@ dimensions = () type = integer intent = in - optional = F [nsteps] standard_name = ccpp_loop_extent long_name = loop extent for subcycling loops in CCPP @@ -594,7 +525,6 @@ dimensions = () type = integer intent = in - optional = F [prcp] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel) on physics timestep @@ -603,7 +533,6 @@ type = real kind = kind_phys intent = inout - optional = F [rain] standard_name = lwe_thickness_of_explicit_rain_amount long_name = explicit rain fall on physics timestep @@ -612,7 +541,6 @@ type = real kind = kind_phys intent = inout - optional = F [graupel] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -621,7 +549,6 @@ type = real kind = kind_phys intent = inout - optional = F [ice] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -630,7 +557,6 @@ type = real kind = kind_phys intent = inout - optional = F [snow] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -639,7 +565,6 @@ type = real kind = kind_phys intent = inout - optional = F [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall @@ -648,7 +573,6 @@ type = real kind = kind_phys intent = out - optional = F [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -657,7 +581,6 @@ type = real kind = kind_phys intent = out - optional = F [reset_dBZ] standard_name = flag_for_resetting_radar_reflectivity_calculation long_name = flag for resetting radar reflectivity calculation @@ -665,7 +588,6 @@ dimensions = () type = logical intent = in - optional = F [do_radar_ref] standard_name = flag_for_radar_reflectivity long_name = flag for radar reflectivity @@ -673,34 +595,6 @@ dimensions = () type = logical intent = in - optional = F -[re_cloud] - standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle - long_name = eff. radius of cloud liquid water particle in micrometer (meter here) - units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T -[re_ice] - standard_name = effective_radius_of_stratiform_cloud_ice_particle - long_name = eff. radius of cloud ice water particle in micrometer (meter here) - units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T -[re_snow] - standard_name = effective_radius_of_stratiform_cloud_snow_particle - long_name = effective radius of cloud snow particle in micrometer (meter here) - units = m - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = T [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -708,7 +602,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -716,7 +609,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -724,7 +616,6 @@ dimensions = () type = integer intent = in - optional = F [blkno] standard_name = ccpp_block_number long_name = number of block for explicit data blocking in CCPP @@ -732,7 +623,6 @@ dimensions = () type = integer intent = in - optional = F [ext_diag] standard_name = flag_for_extended_diagnostic_output_from_thompson_microphysics long_name = flag for extended diagnostic output from thompson microphysics @@ -740,7 +630,6 @@ dimensions = () type = logical intent = in - optional = F [diag3d] standard_name = extended_diagnostics_output_from_thompson_microphysics long_name = set of 3d arrays for extended diagnostics output from thompson microphysics @@ -749,7 +638,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -757,7 +645,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -766,7 +653,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -774,7 +660,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -788,7 +673,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -796,4 +680,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/mp_thompson_post.meta b/physics/mp_thompson_post.meta index e37f9bc5f..5107bf642 100644 --- a/physics/mp_thompson_post.meta +++ b/physics/mp_thompson_post.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -24,7 +23,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -32,7 +30,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -45,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -53,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [tgrs_save] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -62,7 +57,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature_of_new_state long_name = model layer mean temperature @@ -71,7 +65,6 @@ type = real kind = kind_phys intent = inout - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -80,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -89,7 +81,6 @@ type = real kind = kind_phys intent = in - optional = F [ttendlim] standard_name = max_tendency_of_air_potential_temperature_due_to_large_scale_precipitation long_name = temperature tendency limiter per physics time step @@ -98,7 +89,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -106,7 +96,6 @@ dimensions = () type = integer intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -114,7 +103,6 @@ dimensions = () type = integer intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI-rank @@ -122,7 +110,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI-rank @@ -130,7 +117,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -139,7 +125,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -147,7 +132,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -161,7 +145,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -169,4 +152,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/mp_thompson_pre.meta b/physics/mp_thompson_pre.meta index 25339f39b..c21dd6001 100644 --- a/physics/mp_thompson_pre.meta +++ b/physics/mp_thompson_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [tgrs] standard_name = air_temperature_of_new_state long_name = model layer mean temperature @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs_save] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -49,7 +45,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -57,4 +52,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/ozphys.meta b/physics/ozphys.meta index 61d2f16d3..aa50a2b81 100644 --- a/physics/ozphys.meta +++ b/physics/ozphys.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [ko3] standard_name = vertical_dimension_of_ozone_forcing_data long_name = number of vertical layers in ozone forcing data @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [oz] standard_name = ozone_concentration_of_new_state long_name = ozone concentration updated by physics @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = inout - optional = F [tin] standard_name = air_temperature_of_new_state long_name = updated air temperature @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [po3] standard_name = natural_log_of_ozone_forcing_data_pressure_levels long_name = natural log of ozone forcing data pressure levels @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [prdout] standard_name = ozone_forcing long_name = ozone forcing coefficients @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [oz_coeff] standard_name = number_of_coefficients_in_ozone_forcing_data long_name = number of coefficients in ozone forcing data @@ -122,7 +110,6 @@ dimensions = () type = integer intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for calculating 3-D diagnostic fields @@ -139,7 +125,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -149,7 +134,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -157,7 +141,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -165,7 +148,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_prod_loss] standard_name = index_of_production_and_loss_process_in_cumulative_change_index long_name = index of production and loss effect in photochemistry process in second dimension of array cumulative change index @@ -173,7 +155,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_ozmix] standard_name = index_of_ozone_mixing_ratio_process_in_cumulative_change_index long_name = index of ozone mixing ratio effect in photochemistry process in second dimension of array cumulative change index @@ -181,7 +162,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_temp] standard_name = index_of_temperature_process_in_cumulative_change_index long_name = index of temperature effect in photochemistry process in second dimension of array cumulative change index @@ -189,7 +169,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_overhead_ozone] standard_name = index_of_overhead_process_in_cumulative_change_index long_name = index of overhead ozone effect in photochemistry process in second dimension of array cumulative change index @@ -197,7 +176,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -206,7 +184,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = rank of the current MPI task @@ -214,7 +191,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -223,7 +199,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -231,4 +206,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/ozphys_2015.meta b/physics/ozphys_2015.meta index a489cc8e5..b122fc4d9 100644 --- a/physics/ozphys_2015.meta +++ b/physics/ozphys_2015.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [ko3] standard_name = vertical_dimension_of_ozone_forcing_data long_name = number of vertical layers in ozone forcing data @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [oz] standard_name = ozone_concentration_of_new_state long_name = ozone concentration updated by physics @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = inout - optional = F [tin] standard_name = air_temperature_of_new_state long_name = updated air temperature @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [po3] standard_name = natural_log_of_ozone_forcing_data_pressure_levels long_name = natural log of ozone forcing data pressure levels @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [prdout] standard_name = ozone_forcing long_name = ozone forcing data @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [pl_coeff] standard_name = number_of_coefficients_in_ozone_forcing_data long_name = number of coefficients in ozone forcing data @@ -122,7 +110,6 @@ dimensions = () type = integer intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = difference between mid-layer pressures @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for calculating 3-D diagnostic fields @@ -139,7 +125,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -156,7 +140,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -164,7 +147,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_prod_loss] standard_name = index_of_production_and_loss_process_in_cumulative_change_index long_name = index of production and loss effect in photochemistry process in second dimension of array cumulative change index @@ -172,7 +154,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_ozmix] standard_name = index_of_ozone_mixing_ratio_process_in_cumulative_change_index long_name = index of ozone mixing ratio effect in photochemistry process in second dimension of array cumulative change index @@ -180,7 +161,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_temp] standard_name = index_of_temperature_process_in_cumulative_change_index long_name = index of temperature effect in photochemistry process in second dimension of array cumulative change index @@ -188,7 +168,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_overhead_ozone] standard_name = index_of_overhead_process_in_cumulative_change_index long_name = index of overhead ozone effect in photochemistry process in second dimension of array cumulative change index @@ -196,7 +175,6 @@ dimensions = () type = integer intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -205,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [me] standard_name = mpi_rank long_name = rank of the current MPI task @@ -213,7 +190,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -222,7 +198,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -230,4 +205,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/phys_tend.meta b/physics/phys_tend.meta index 9e0b4d812..9660d5c90 100644 --- a/physics/phys_tend.meta +++ b/physics/phys_tend.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -31,7 +29,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [ntracp100] standard_name = number_of_tracers_plus_one_hundred long_name = number of tracers plus one hundred @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_physics] standard_name = index_of_all_physics_process_in_cumulative_change_index long_name = index of all physics transport process in second dimension of array cumulative change index @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_photochem] standard_name = index_of_photochemistry_process_in_cumulative_change_index long_name = index of photochemistry process in second dimension of array cumulative change index @@ -55,7 +50,6 @@ dimensions = () type = integer intent = in - optional = F [nprocess] standard_name = number_of_cumulative_change_processes long_name = number of processes that cause changes in state variables @@ -63,7 +57,6 @@ dimensions = () type = integer intent = in - optional = F [nprocess_summed] standard_name = number_of_physics_causes_of_tracer_changes long_name = number of causes in dtidx per tracer summed for total physics tendency @@ -71,7 +64,6 @@ dimensions = () type = integer intent = in - optional = F [is_photochem] standard_name = flags_for_photochemistry_processes_to_sum long_name = flags for photochemistry processes to sum as the total photochemistry process cumulative change @@ -79,7 +71,6 @@ dimensions = (number_of_cumulative_change_processes) type = logical intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -87,7 +78,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -96,7 +86,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -104,4 +93,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/precpd.meta b/physics/precpd.meta index d754851c7..1b9cb30b6 100644 --- a/physics/precpd.meta +++ b/physics/precpd.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr] standard_name = identifier_for_zhao_carr_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_zhao_carr_pdf] standard_name = identifier_for_zhao_carr_pdf_microphysics_scheme long_name = choice of Zhao-Carr microphysics scheme with PDF clouds @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -39,7 +36,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -47,7 +43,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = pressure level thickness @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = layer mean pressure @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [q] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = inout - optional = F [cwm] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = moist cloud condensed water mixing ratio @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = inout - optional = F [t] standard_name = air_temperature_of_new_state long_name = layer mean air temperature @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = inout - optional = F [rn] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation amount on physics timestep @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = out - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [ttp] standard_name = triple_point_temperature_of_water long_name = triple point temperature of water @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = out - optional = F [rainp] standard_name = tendency_of_rain_water_mixing_ratio_due_to_microphysics long_name = tendency of rain water mixing ratio due to microphysics @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = out - optional = F [u00k] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [psautco] standard_name = autoconversion_to_snow_coefficient long_name = conversion coefficient from cloud ice to snow @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [prautco] standard_name = autoconversion_to_rain_coefficient long_name = conversion coefficient from cloud water to rain @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [evpco] standard_name = precipitation_evaporation_coefficient long_name = coefficient for evaporation of rainfall @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = F [wminco] standard_name = cloud_condensate_autoconversion_threshold_coefficient long_name = conversion coefficient from cloud liquid and ice to precipitation @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = in - optional = F [wk1] standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes long_name = grid size related coefficient used in scale-sensitive schemes @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output @@ -274,7 +245,6 @@ dimensions = () type = logical intent = in - optional = F [jpr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -282,7 +252,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -291,7 +260,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -299,5 +267,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/radlw_main.meta b/physics/radlw_main.meta index ca4b96466..70d820922 100644 --- a/physics/radlw_main.meta +++ b/physics/radlw_main.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [plvl] standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure level @@ -24,7 +23,6 @@ type = real kind = kind_phys intent = in - optional = F [tlyr] standard_name = air_temperature_at_layer_for_radiation long_name = air temperature layer @@ -33,7 +31,6 @@ type = real kind = kind_phys intent = in - optional = F [tlvl] standard_name = air_temperature_at_interface_for_radiation long_name = air temperature level @@ -42,7 +39,6 @@ type = real kind = kind_phys intent = in - optional = F [qlyr] standard_name = water_vapor_specific_humidity_at_layer_for_radiation long_name = specific humidity layer @@ -51,7 +47,6 @@ type = real kind = kind_phys intent = in - optional = F [olyr] standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration layer @@ -60,7 +55,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_co2] standard_name = volume_mixing_ratio_of_co2 long_name = volume mixing ratio co2 @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_n2o] standard_name = volume_mixing_ratio_of_n2o long_name = volume mixing ratio no2 @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_ch4] standard_name = volume_mixing_ratio_of_ch4 long_name = volume mixing ratio ch4 @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_o2] standard_name = volume_mixing_ratio_of_o2 long_name = volume mixing ratio o2 @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_co] standard_name = volume_mixing_ratio_of_co long_name = volume mixing ratio co @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc11] standard_name = volume_mixing_ratio_of_cfc11 long_name = volume mixing ratio cfc11 @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc12] standard_name = volume_mixing_ratio_of_cfc12 long_name = volume mixing ratio cfc12 @@ -123,7 +111,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc22] standard_name = volume_mixing_ratio_of_cfc22 long_name = volume mixing ratio cfc22 @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_ccl4] standard_name = volume_mixing_ratio_of_ccl4 long_name = volume mixing ratio ccl4 @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [icseed] standard_name = random_number_seed_for_mcica_longwave long_name = seed for random number generation for longwave radiation @@ -149,7 +134,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [aeraod] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [aerssa] standard_name = aerosol_single_scattering_albedo_for_longwave_bands_01_16 long_name = aerosol single scattering albedo for longwave bands 01-16 @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [sfemis] standard_name = surface_longwave_emissivity long_name = surface emissivity @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [sfgtmp] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [dzlyr] standard_name = layer_thickness_for_radiation long_name = layer thickness @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [alpha] standard_name = cloud_overlap_decorrelation_parameter long_name = cloud overlap decorrelation parameter @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [npts] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -229,7 +205,6 @@ dimensions = () type = integer intent = in - optional = F [nlay] standard_name = adjusted_vertical_layer_dimension_for_radiation long_name = number of vertical layers for radiation @@ -237,7 +212,6 @@ dimensions = () type = integer intent = in - optional = F [nlp1] standard_name = adjusted_vertical_level_dimension_for_radiation long_name = number of vertical levels for radiation @@ -245,7 +219,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag to print @@ -253,7 +226,6 @@ dimensions = () type = logical intent = in - optional = F [cld_cf] standard_name = total_cloud_fraction long_name = total cloud fraction @@ -262,7 +234,6 @@ type = real kind = kind_phys intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = flag to calculate LW irradiances @@ -270,7 +241,6 @@ dimensions = () type = logical intent = in - optional = F [hlwc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels long_name = longwave total sky heating rate @@ -279,7 +249,6 @@ type = real kind = kind_phys intent = inout - optional = F [topflx] standard_name = lw_fluxes_top_atmosphere long_name = longwave total sky fluxes at the top of the atm @@ -287,7 +256,6 @@ dimensions = (horizontal_loop_extent) type = topflw_type intent = inout - optional = F [sfcflx] standard_name = surface_lw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = longwave total sky fluxes at the Earth surface @@ -295,7 +263,6 @@ dimensions = (horizontal_loop_extent) type = sfcflw_type intent = inout - optional = F [cldtau] standard_name = cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth @@ -304,7 +271,6 @@ type = real kind = kind_phys intent = inout - optional = F [hlw0] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = longwave clear sky heating rate @@ -313,7 +279,6 @@ type = real kind = kind_phys intent = inout - optional = T [cld_lwp] standard_name = cloud_liquid_water_path long_name = cloud liquid water path @@ -322,7 +287,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_liq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -331,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_iwp] standard_name = cloud_ice_water_path long_name = cloud ice water path @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_ice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_rwp] standard_name = cloud_rain_water_path long_name = cloud ice water path @@ -358,7 +319,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_rain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop @@ -367,7 +327,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_swp] standard_name = cloud_snow_water_path long_name = cloud snow water path @@ -376,7 +335,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_snow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake @@ -385,7 +343,6 @@ type = real kind = kind_phys intent = in - optional = T [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -394,7 +351,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -402,4 +358,3 @@ dimensions = () type = integer intent = out - optional = F \ No newline at end of file diff --git a/physics/radsw_main.meta b/physics/radsw_main.meta index b8b6a150b..187d26f21 100644 --- a/physics/radsw_main.meta +++ b/physics/radsw_main.meta @@ -15,7 +15,6 @@ type = real kind = kind_phys intent = in - optional = F [plvl] standard_name = air_pressure_at_interface_for_radiation_in_hPa long_name = air pressure level @@ -24,7 +23,6 @@ type = real kind = kind_phys intent = in - optional = F [tlyr] standard_name = air_temperature_at_layer_for_radiation long_name = air temperature layer @@ -33,7 +31,6 @@ type = real kind = kind_phys intent = in - optional = F [tlvl] standard_name = air_temperature_at_interface_for_radiation long_name = air temperature level @@ -42,7 +39,6 @@ type = real kind = kind_phys intent = in - optional = F [qlyr] standard_name = water_vapor_specific_humidity_at_layer_for_radiation long_name = specific humidity layer @@ -51,7 +47,6 @@ type = real kind = kind_phys intent = in - optional = F [olyr] standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration layer @@ -60,7 +55,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_co2] standard_name = volume_mixing_ratio_of_co2 long_name = volume mixing ratio co2 @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_n2o] standard_name = volume_mixing_ratio_of_n2o long_name = volume mixing ratio no2 @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_ch4] standard_name = volume_mixing_ratio_of_ch4 long_name = volume mixing ratio ch4 @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_o2] standard_name = volume_mixing_ratio_of_o2 long_name = volume mixing ratio o2 @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_co] standard_name = volume_mixing_ratio_of_co long_name = volume mixing ratio co @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc11] standard_name = volume_mixing_ratio_of_cfc11 long_name = volume mixing ratio cfc11 @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc12] standard_name = volume_mixing_ratio_of_cfc12 long_name = volume mixing ratio cfc12 @@ -123,7 +111,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_cfc22] standard_name = volume_mixing_ratio_of_cfc22 long_name = volume mixing ratio cfc22 @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [gasvmr_ccl4] standard_name = volume_mixing_ratio_of_ccl4 long_name = volume mixing ratio ccl4 @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [icseed] standard_name = random_number_seed_for_mcica_shortwave long_name = seed for random number generation for shortwave radiation @@ -149,7 +134,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [aeraod] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [aerssa] standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16 long_name = aerosol single scattering albedo for shortwave bands 01-16 @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [aerasy] standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16 long_name = aerosol asymmetry paramter for shortwave bands 01-16 @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb_nir_dir] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb_nir_dif] standard_name = surface_albedo_due_to_near_IR_diffused long_name = surface albedo due to near IR diffused beam @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb_uvis_dir] standard_name = surface_albedo_due_to_UV_and_VIS_direct long_name = surface albedo due to UV+VIS direct beam @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb_uvis_dif] standard_name = surface_albedo_due_to_UV_and_VIS_diffused long_name = surface albedo due to UV+VIS diffused beam @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [dzlyr] standard_name = layer_thickness_for_radiation long_name = layer thickness @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [delpin] standard_name = layer_pressure_thickness_for_radiation long_name = layer pressure thickness @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = in - optional = F [de_lgth] standard_name = cloud_decorrelation_length long_name = cloud decorrelation length @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = F [alpha] standard_name = cloud_overlap_decorrelation_parameter long_name = cloud overlap decorrelation parameter @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = F [cosz] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = cosine of the solar zenit angle @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = in - optional = F [solcon] standard_name = solar_constant long_name = solar constant @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -274,7 +245,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -282,7 +252,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [npts] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -290,7 +259,6 @@ dimensions = () type = integer intent = in - optional = F [nlay] standard_name = adjusted_vertical_layer_dimension_for_radiation long_name = number of vertical layers for radiation @@ -298,7 +266,6 @@ dimensions = () type = integer intent = in - optional = F [nlp1] standard_name = adjusted_vertical_level_dimension_for_radiation long_name = number of vertical levels for radiation @@ -306,7 +273,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag to print @@ -314,7 +280,6 @@ dimensions = () type = logical intent = in - optional = F [cld_cf] standard_name = total_cloud_fraction long_name = total cloud fraction @@ -323,7 +288,6 @@ type = real kind = kind_phys intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = flag to calculate SW irradiances @@ -331,7 +295,6 @@ dimensions = () type = logical intent = in - optional = F [hswc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels long_name = shortwave total sky heating rate @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = inout - optional = F [topflx] standard_name = sw_fluxes_top_atmosphere long_name = shortwave total sky fluxes at the top of the atm @@ -348,7 +310,6 @@ dimensions = (horizontal_loop_extent) type = topfsw_type intent = inout - optional = F [sfcflx] standard_name = surface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = shortwave total sky fluxes at the Earth surface @@ -356,7 +317,6 @@ dimensions = (horizontal_loop_extent) type = sfcfsw_type intent = inout - optional = F [cldtau] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth @@ -365,7 +325,6 @@ type = real kind = kind_phys intent = inout - optional = F [hsw0] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = shortwave clear sky heating rate @@ -374,7 +333,6 @@ type = real kind = kind_phys intent = inout - optional = T [fdncmp] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -382,7 +340,6 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = inout - optional = T [cld_lwp] standard_name = cloud_liquid_water_path long_name = cloud liquid water path @@ -391,7 +348,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_liq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -400,7 +356,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_iwp] standard_name = cloud_ice_water_path long_name = cloud ice water path @@ -409,7 +364,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_ice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -418,7 +372,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_rwp] standard_name = cloud_rain_water_path long_name = cloud rain water path @@ -427,7 +380,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_rain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop @@ -436,7 +388,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_swp] standard_name = cloud_snow_water_path long_name = cloud snow water path @@ -445,7 +396,6 @@ type = real kind = kind_phys intent = in - optional = T [cld_ref_snow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake @@ -454,7 +404,6 @@ type = real kind = kind_phys intent = in - optional = T [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -463,7 +412,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -471,4 +419,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rascnv.meta b/physics/rascnv.meta index 3f1bc451c..f4563ea89 100644 --- a/physics/rascnv.meta +++ b/physics/rascnv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [con_t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [con_ttp] standard_name = triple_point_temperature_of_water long_name = triple point temperature of water @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cvap] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [con_csol] standard_name = specific_heat_of_ice_at_constant_pressure long_name = specific heat of ice at constant pressure @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -158,7 +142,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -166,7 +149,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -180,7 +162,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -188,7 +169,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -201,7 +181,6 @@ dimensions = () type = integer intent = in - optional = F [k] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -209,7 +188,6 @@ dimensions = () type = integer intent = in - optional = F [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -217,7 +195,6 @@ dimensions = () type = integer intent = in - optional = F [ntc] standard_name = number_of_chemical_tracers long_name = number of chemical tracers @@ -225,7 +202,6 @@ dimensions = () type = integer intent = in - optional = F [ntr] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -233,7 +209,6 @@ dimensions = () type = integer intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -242,7 +217,6 @@ type = real kind = kind_phys intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -251,7 +225,6 @@ type = real kind = kind_phys intent = in - optional = F [ccwf] standard_name = tunable_parameter_for_critical_cloud_workfunction_in_relaxed_arakawa_schubert_deep_convection long_name = multiplication factor for tical_cloud_workfunction @@ -260,7 +233,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -269,7 +241,6 @@ type = real kind = kind_phys intent = in - optional = F [dxmin] standard_name = min_grid_scale long_name = minimum scaling factor for critical relative humidity @@ -278,7 +249,6 @@ type = real kind = kind_phys intent = in - optional = F [dxinv] standard_name = reciprocal_of_grid_scale_range long_name = inverse scaling factor for critical relative humidity @@ -287,7 +257,6 @@ type = real kind = kind_phys intent = in - optional = F [psauras] standard_name = autoconversion_to_snow_coefficient_for_deep_convection long_name = conversion coefficient from cloud ice to snow in ras @@ -296,7 +265,6 @@ type = real kind = kind_phys intent = in - optional = F [prauras] standard_name = autoconversion_to_rain_coefficient_for_deep_convection long_name = conversion coefficient from cloud water to rain in ras @@ -305,7 +273,6 @@ type = real kind = kind_phys intent = in - optional = F [wminras] standard_name = cloud_condensate_autoconversion_threshold_coefficient_for_deep_convection long_name = conversion coefficient from cloud liquid and ice to precipitation in ras @@ -314,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = F [dlqf] standard_name = cloud_condensate_detrainment_coefficient long_name = condensate fraction detrained with in a updraft layers @@ -323,7 +289,6 @@ type = real kind = kind_phys intent = in - optional = F [flipv] standard_name = flag_flip long_name = vertical flip logical @@ -331,7 +296,6 @@ dimensions = () type = logical intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -339,7 +303,6 @@ dimensions = () type = integer intent = in - optional = F [rannum] standard_name = random_number long_name = random number array (0-1) @@ -348,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [nrcm] standard_name = number_of_random_numbers long_name = second dimension of random number stream for RAS @@ -356,7 +318,6 @@ dimensions = () type = integer intent = in - optional = F [mp_phys] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -364,7 +325,6 @@ dimensions = () type = integer intent = in - optional = F [mp_phys_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -372,7 +332,6 @@ dimensions = () type = integer intent = in - optional = F [ntk] standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer long_name = index for turbulent kinetic energy in the convectively transported tracer array @@ -380,7 +339,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -388,7 +346,6 @@ dimensions = () type = integer intent = in - optional = F [rhc] standard_name = critical_relative_humidity long_name = critical relative humidity @@ -397,7 +354,6 @@ type = real kind = kind_phys intent = in - optional = F [tin] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -406,7 +362,6 @@ type = real kind = kind_phys intent = inout - optional = F [qin] standard_name = specific_humidity_of_new_state long_name = updated vapor specific humidity @@ -415,7 +370,6 @@ type = real kind = kind_phys intent = inout - optional = F [uin] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -424,7 +378,6 @@ type = real kind = kind_phys intent = inout - optional = F [vin] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -433,7 +386,6 @@ type = real kind = kind_phys intent = inout - optional = F [ccin] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -442,7 +394,6 @@ type = real kind = kind_phys intent = inout - optional = F [fscav] standard_name = chemical_tracer_scavenging_fractions long_name = array of aerosol scavenging coefficients @@ -451,7 +402,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -460,7 +410,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -469,7 +418,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik] standard_name = dimensionless_exner_function_at_interface long_name = dimensionless Exner function at model layer interfaces @@ -478,7 +426,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -487,7 +434,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -496,7 +442,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -505,7 +450,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -513,7 +457,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [cdrag] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -522,7 +465,6 @@ type = real kind = kind_phys intent = in - optional = F [rainc] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -531,7 +473,6 @@ type = real kind = kind_phys intent = out - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -539,7 +480,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -547,7 +487,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -555,7 +494,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [ddvel] standard_name = enhancement_to_wind_speed_at_surface_adjacent_layer_due_to_convection long_name = surface wind enhancement due to convection @@ -564,7 +502,6 @@ type = real kind = kind_phys intent = out - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * dt @@ -573,7 +510,6 @@ type = real kind = kind_phys intent = out - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * dt @@ -582,7 +518,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * dt @@ -591,7 +526,6 @@ type = real kind = kind_phys intent = out - optional = F [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -600,7 +534,6 @@ type = real kind = kind_phys intent = inout - optional = F [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -609,7 +542,6 @@ type = real kind = kind_phys intent = inout - optional = F [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -618,7 +550,6 @@ type = real kind = kind_phys intent = inout - optional = F [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -627,7 +558,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -636,7 +566,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -645,7 +574,6 @@ type = real kind = kind_phys intent = inout - optional = F [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -654,7 +582,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -663,7 +590,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -672,7 +598,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -681,7 +606,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -690,7 +614,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -698,4 +621,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rayleigh_damp.meta b/physics/rayleigh_damp.meta index 3328d7772..4a08a1d64 100644 --- a/physics/rayleigh_damp.meta +++ b/physics/rayleigh_damp.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical layers @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [A] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = inout - optional = F [B] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = inout - optional = F [C] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = zonal wind @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = meridional wind @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [dt] standard_name = timestep_for_physics long_name = physics time step @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [levr] standard_name = vertical_dimension_for_radiation long_name = number of vertical layers for radiation calculations @@ -101,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -110,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mid-layer pressure @@ -119,7 +107,6 @@ type = real kind = kind_phys intent = in - optional = F [prslrd0] standard_name = air_pressure_at_bottom_extent_of_rayleigh_damping long_name = pressure level above which to apply Rayleigh damping @@ -128,7 +115,6 @@ type = real kind = kind_phys intent = in - optional = F [ral_ts] standard_name = timescale_for_rayleigh_damping long_name = time scale for Rayleigh damping @@ -137,7 +123,6 @@ type = real kind = kind_phys intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for calculating 3-D diagnostic fields @@ -145,7 +130,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -155,7 +139,6 @@ kind = kind_phys active = (flag_for_diagnostics_3D) intent = inout - optional = F [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 @@ -163,7 +146,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -171,7 +153,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -179,7 +160,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -187,7 +167,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -195,7 +174,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -204,7 +182,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -212,5 +189,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmg_lw_post.meta b/physics/rrtmg_lw_post.meta index 4e9ac0f4d..e2731faab 100644 --- a/physics/rrtmg_lw_post.meta +++ b/physics/rrtmg_lw_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ltp] standard_name = extra_top_layer long_name = extra top layers @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [lm] standard_name = vertical_dimension_for_radiation long_name = number of vertical layers for radiation calculation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [kd] standard_name = vertical_index_difference_between_inout_and_local long_name = vertical index difference between in/out and local @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [lslwr] standard_name = flag_for_calling_longwave_radiation long_name = logical flags for lw radiation calls @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [lwhtr] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output lw heating rate (Radtend%lwhc) @@ -62,7 +56,6 @@ dimensions = () type = logical intent = in - optional = F [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -71,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [htlwc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels long_name = total sky heating rate due to longwave radiation @@ -80,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [htlw0] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = clear sky heating rate due to longwave radiation @@ -89,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcflw] standard_name = surface_lw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = lw radiation fluxes at sfc @@ -97,7 +87,6 @@ dimensions = (horizontal_loop_extent) type = sfcflw_type intent = in - optional = F [tsflw] standard_name = air_temperature_at_surface_adjacent_layer_on_radiation_timestep long_name = surface air temp during lw calculation @@ -106,7 +95,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcdlw] standard_name = surface_downwelling_longwave_flux_on_radiation_timestep long_name = total sky sfc downward lw flux @@ -115,7 +103,6 @@ type = real kind = kind_phys intent = inout - optional = F [htrlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -124,7 +111,6 @@ type = real kind = kind_phys intent = inout - optional = F [lwhc] standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky lw heating rates @@ -133,7 +119,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -142,7 +127,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -150,5 +134,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmg_lw_pre.meta b/physics/rrtmg_lw_pre.meta index fb84cb4c9..affc45384 100644 --- a/physics/rrtmg_lw_pre.meta +++ b/physics/rrtmg_lw_pre.meta @@ -15,7 +15,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -23,4 +22,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmg_sw_post.meta b/physics/rrtmg_sw_post.meta index 81f066f53..819090937 100644 --- a/physics/rrtmg_sw_post.meta +++ b/physics/rrtmg_sw_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levr] standard_name = adjusted_vertical_layer_dimension_for_radiation long_name = adjusted number of vertical layers for radiation @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ltp] standard_name = extra_top_layer long_name = extra top layers @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [lm] standard_name = vertical_dimension_for_radiation long_name = number of vertical layers for radiation calculation @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [kd] standard_name = vertical_index_difference_between_inout_and_local long_name = vertical index difference between in/out and local @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -70,7 +63,6 @@ dimensions = () type = logical intent = in - optional = F [swhtr] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output sw heating rate (Radtend%swhc) @@ -78,7 +70,6 @@ dimensions = () type = logical intent = in - optional = F [sfcalb1] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam @@ -87,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb2] standard_name = surface_albedo_due_to_near_IR_diffused long_name = surface albedo due to near IR diffused beam @@ -96,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb3] standard_name = surface_albedo_due_to_UV_and_VIS_direct long_name = surface albedo due to UV+VIS direct beam @@ -105,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcalb4] standard_name = surface_albedo_due_to_UV_and_VIS_diffused long_name = surface albedo due to UV+VIS diffused beam @@ -114,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [htswc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels long_name = total sky heating rate due to shortwave radiation @@ -123,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [htsw0] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels long_name = clear sky heating rates due to shortwave radiation @@ -132,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [nirbmdi] standard_name = surface_downwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw downward flux @@ -141,7 +126,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirdfdi] standard_name = surface_downwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw downward flux @@ -150,7 +134,6 @@ type = real kind = kind_phys intent = inout - optional = F [visbmdi] standard_name = surface_downwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw downward flux @@ -159,7 +142,6 @@ type = real kind = kind_phys intent = inout - optional = F [visdfdi] standard_name = surface_downwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw downward flux @@ -168,7 +150,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirbmui] standard_name = surface_upwelling_direct_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir beam sw upward flux @@ -177,7 +158,6 @@ type = real kind = kind_phys intent = inout - optional = F [nirdfui] standard_name = surface_upwelling_diffuse_nir_shortwave_flux_on_radiation_timestep long_name = sfc nir diff sw upward flux @@ -186,7 +166,6 @@ type = real kind = kind_phys intent = inout - optional = F [visbmui] standard_name = surface_upwelling_direct_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis beam sw upward flux @@ -195,7 +174,6 @@ type = real kind = kind_phys intent = inout - optional = F [visdfui] standard_name = surface_upwelling_diffuse_uv_and_vis_shortwave_flux_on_radiation_timestep long_name = sfc uv+vis diff sw upward flux @@ -204,7 +182,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcdsw] standard_name = surface_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc downward sw flux @@ -213,7 +190,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux_on_radiation_timestep long_name = total sky sfc netsw flx into ground @@ -222,7 +198,6 @@ type = real kind = kind_phys intent = inout - optional = F [htrsw] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky sw heating rate @@ -231,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = F [swhc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_timestep long_name = clear sky sw heating rates @@ -240,7 +214,6 @@ type = real kind = kind_phys intent = inout - optional = F [scmpsw] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -248,7 +221,6 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = inout - optional = F [sfcfsw] standard_name = surface_sw_fluxes_assuming_total_and_clear_sky_on_radiation_timestep long_name = sw radiation fluxes at sfc @@ -256,7 +228,6 @@ dimensions = (horizontal_loop_extent) type = sfcfsw_type intent = inout - optional = F [topfsw] standard_name = sw_fluxes_top_atmosphere long_name = sw radiation fluxes at toa @@ -264,7 +235,6 @@ dimensions = (horizontal_loop_extent) type = topfsw_type intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -273,7 +243,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -281,5 +250,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmg_sw_pre.meta b/physics/rrtmg_sw_pre.meta index abf63a447..f980c6a3d 100644 --- a/physics/rrtmg_sw_pre.meta +++ b/physics/rrtmg_sw_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [lsswr] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -47,7 +43,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -56,7 +51,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -64,5 +58,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_aerosol_optics.meta b/physics/rrtmgp_lw_aerosol_optics.meta index f97aba9a7..843688266 100644 --- a/physics/rrtmgp_lw_aerosol_optics.meta +++ b/physics/rrtmgp_lw_aerosol_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [nTracer] standard_name = number_of_tracers long_name = number of tracers @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [nTracerAer] standard_name = number_of_aerosol_tracers_MG long_name = number of aerosol tracers for Morrison Gettelman MP @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -55,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -64,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [lsmask] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [aerfld] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [lon] standard_name = longitude long_name = longitude @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = inout - optional = F [lw_optical_props_aerosol] standard_name = longwave_optical_properties_for_aerosols long_name = Fortran DDT containing RRTMGP optical properties @@ -153,7 +137,6 @@ dimensions = () type = ty_optical_props_1scl intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -162,7 +145,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -170,4 +152,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_cloud_optics.meta b/physics/rrtmgp_lw_cloud_optics.meta index e36ee5146..4617912cc 100644 --- a/physics/rrtmgp_lw_cloud_optics.meta +++ b/physics/rrtmgp_lw_cloud_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [nrghice] standard_name = number_of_ice_roughness_categories long_name = number of ice-roughness categories in RRTMGP calculation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = inout - optional = F [rrtmgp_root_dir] standard_name = directory_for_rte_rrtmgp_source_code long_name = directory for rte+rrtmgp source code @@ -46,7 +42,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [rrtmgp_lw_file_clouds] standard_name = filename_of_rrtmgp_longwave_cloud_optics_coefficients @@ -55,7 +50,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [mpirank] standard_name = mpi_rank @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI rank @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -89,7 +80,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -97,7 +87,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -110,7 +99,6 @@ dimensions = () type = logical intent = in - optional = F [doG_cldoptics] standard_name = flag_to_calc_lw_cld_optics_using_RRTMG long_name = logical flag to control cloud optics scheme. @@ -118,7 +106,6 @@ dimensions = () type = logical intent = in - optional = F [icliq_lw] standard_name = flag_for_optical_property_for_liquid_clouds_for_longwave_radiation long_name = lw optical property for liquid clouds @@ -126,7 +113,6 @@ dimensions = () type = integer intent = in - optional = F [icice_lw] standard_name = flag_for_optical_property_for_ice_clouds_for_longwave_radiation long_name = lw optical property for ice clouds @@ -134,7 +120,6 @@ dimensions = () type = integer intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -142,7 +127,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -150,7 +134,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_lwscat] standard_name = flag_to_include_longwave_scattering_in_cloud_optics long_name = logical flag to control the addition of LW scattering in RRTMGP @@ -158,7 +141,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -166,7 +148,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -174,7 +155,6 @@ dimensions = () type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -255,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure layer @@ -264,7 +243,6 @@ type = real kind = kind_phys intent = in - optional = F [nbndsGPlw] standard_name = number_of_longwave_bands long_name = number of lw bands used in RRTMGP @@ -272,7 +250,6 @@ dimensions = () type = integer intent = in - optional = F [lon] standard_name = longitude long_name = longitude @@ -281,7 +258,6 @@ type = real kind = kind_phys intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -290,7 +266,6 @@ type = real kind = kind_phys intent = in - optional = F [cldtaulw] standard_name = cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth @@ -299,7 +274,6 @@ type = real kind = kind_phys intent = inout - optional = F [lw_optical_props_cloudsByBand] standard_name = longwave_optical_properties_for_cloudy_atmosphere_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -307,7 +281,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [lw_optical_props_precipByBand] standard_name = longwave_optical_properties_for_precipitation_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -315,7 +288,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -324,7 +296,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -332,5 +303,4 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_cloud_sampling.meta b/physics/rrtmgp_lw_cloud_sampling.meta index 21cc1eed6..c9fbee800 100644 --- a/physics/rrtmgp_lw_cloud_sampling.meta +++ b/physics/rrtmgp_lw_cloud_sampling.meta @@ -14,15 +14,13 @@ dimensions = () type = logical intent = in - optional = F [doGP_lwscat] standard_name = flag_to_include_longwave_scattering_in_cloud_optics long_name = logical flag to control the addition of LW scattering in RRTMGP units = flag dimensions = () - type = logical + type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_lw] standard_name = flag_for_lw_clouds_sub_grid_approximation long_name = flag for lw clouds sub-grid approximation @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_maxrand] standard_name = flag_for_maximum_random_cloud_overlap_method long_name = choice of maximum-random cloud overlap method @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exp] standard_name = flag_for_exponential_cloud_overlap_method long_name = choice of exponential cloud overlap method @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exprand] standard_name = flag_for_exponential_random_cloud_overlap_method long_name = choice of exponential-random cloud overlap method @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_rand] standard_name = flag_for_random_cloud_overlap_method long_name = choice of random cloud overlap method @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_max] standard_name = flag_for_maximum_cloud_overlap_method long_name = choice of maximum cloud overlap method @@ -102,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [icseed_lw] standard_name = random_number_seed_for_mcica_longwave long_name = seed for random number generation for longwave radiation @@ -110,7 +98,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -119,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -128,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -137,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -146,7 +130,6 @@ type = real kind = kind_phys intent = in - optional = F [lw_optical_props_cloudsByBand] standard_name = longwave_optical_properties_for_cloudy_atmosphere_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -154,7 +137,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [lw_optical_props_precipByBand] standard_name = longwave_optical_properties_for_precipitation_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -162,7 +144,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [lw_optical_props_clouds] standard_name = longwave_optical_properties_for_cloudy_atmosphere long_name = Fortran DDT containing RRTMGP optical properties @@ -170,7 +151,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [lw_optical_props_precip] standard_name = longwave_optical_properties_for_precipitation long_name = Fortran DDT containing RRTMGP optical properties @@ -178,7 +158,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -187,7 +166,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -195,4 +173,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_gas_optics.meta b/physics/rrtmgp_lw_gas_optics.meta index dbf416021..7a3d86eb8 100644 --- a/physics/rrtmgp_lw_gas_optics.meta +++ b/physics/rrtmgp_lw_gas_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [rrtmgp_lw_file_gas] standard_name = filename_of_rrtmgp_longwave_k_distribution @@ -23,7 +22,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [mpirank] standard_name = mpi_rank @@ -32,7 +30,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI rank @@ -40,7 +37,6 @@ dimensions = () type = integer intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -48,7 +44,6 @@ dimensions = () type = integer intent = in - optional = F [minGPpres] standard_name = minimum_pressure_in_RRTMGP long_name = minimum pressure allowed in RRTMGP @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = out - optional = F [maxGPpres] standard_name = maximum_pressure_in_RRTMGP long_name = maximum pressure allowed in RRTMGP @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = out - optional = F [minGPtemp] standard_name = minimum_temperature_in_RRTMGP long_name = minimum temperature allowed in RRTMGP @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = out - optional = F [maxGPtemp] standard_name = maximum_temperature_in_RRTMGP long_name = maximum temperature allowed in RRTMGP @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = out - optional = F [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP @@ -93,7 +84,6 @@ type = character kind = len=* intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -102,7 +92,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -110,7 +99,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -123,7 +111,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -131,7 +118,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -139,7 +125,6 @@ dimensions = () type = integer intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure layer @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature layer @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature level @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfg] standard_name = surface_ground_temperature_for_radiation long_name = surface ground temperature for radiation @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP @@ -193,7 +173,6 @@ type = character kind = len=* intent = in - optional = F [gas_concentrations] standard_name = Gas_concentrations_for_RRTMGP_suite long_name = DDT containing gas concentrations for RRTMGP radiation scheme @@ -201,7 +180,6 @@ dimensions = () type = ty_gas_concs intent = inout - optional = F [lw_optical_props_clrsky] standard_name = longwave_optical_properties_for_clear_sky long_name = Fortran DDT containing RRTMGP optical properties @@ -209,7 +187,6 @@ dimensions = () type = ty_optical_props_1scl intent = inout - optional = F [sources] standard_name = longwave_source_function long_name = Fortran DDT containing RRTMGP source functions @@ -217,7 +194,6 @@ dimensions = () type = ty_source_func_lw intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -226,7 +202,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -234,4 +209,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_pre.meta b/physics/rrtmgp_lw_pre.meta index 3918f85e4..be8a48a88 100644 --- a/physics/rrtmgp_lw_pre.meta +++ b/physics/rrtmgp_lw_pre.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_emiss_byband] standard_name = surface_emissivity_in_each_RRTMGP_LW_band long_name = surface emissivity in each RRTMGP LW band @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -41,7 +38,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -49,4 +45,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_lw_rte.meta b/physics/rrtmgp_lw_rte.meta index 3ffa24a30..bbf1bc62f 100644 --- a/physics/rrtmgp_lw_rte.meta +++ b/physics/rrtmgp_lw_rte.meta @@ -15,7 +15,6 @@ dimensions = () type = logical intent = in - optional = F [doLWclrsky] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output lw heating rate (Radtend%lwhc) @@ -23,7 +22,6 @@ dimensions = () type = logical intent = in - optional = F [use_LW_jacobian] standard_name = flag_to_calc_RRTMGP_LW_jacobian long_name = logical flag to control RRTMGP LW calculation @@ -31,7 +29,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_lwscat] standard_name = flag_to_include_longwave_scattering_in_cloud_optics long_name = logical flag to control the addition of LW scattering in RRTMGP @@ -39,7 +36,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -55,7 +50,6 @@ dimensions = () type = integer intent = in - optional = F [nGauss_angles] standard_name = number_of_gaussian_quadrature_angles_for_radiation long_name = Number of angles used in Gaussian quadrature @@ -63,7 +57,6 @@ dimensions = () type = integer intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -72,7 +65,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_emiss_byband] standard_name = surface_emissivity_in_each_RRTMGP_LW_band long_name = surface emissivity in each RRTMGP LW band @@ -81,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [lw_optical_props_clrsky] standard_name = longwave_optical_properties_for_clear_sky long_name = Fortran DDT containing RRTMGP optical properties @@ -89,7 +80,6 @@ dimensions = () type = ty_optical_props_1scl intent = inout - optional = F [lw_optical_props_clouds] standard_name = longwave_optical_properties_for_cloudy_atmosphere long_name = Fortran DDT containing RRTMGP optical properties @@ -97,7 +87,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [lw_optical_props_aerosol] standard_name = longwave_optical_properties_for_aerosols long_name = Fortran DDT containing RRTMGP optical properties @@ -105,7 +94,6 @@ dimensions = () type = ty_optical_props_1scl intent = inout - optional = F [sources] standard_name = longwave_source_function long_name = Fortran DDT containing RRTMGP source functions @@ -113,7 +101,6 @@ dimensions = () type = ty_source_func_lw intent = in - optional = F [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -122,7 +109,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxlwDOWN_allsky] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -131,7 +117,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -140,7 +125,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxlwDOWN_clrsky] standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile @@ -149,7 +133,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxlwUP_jac] standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile @@ -158,7 +141,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -167,7 +149,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -175,4 +156,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_sw_aerosol_optics.meta b/physics/rrtmgp_sw_aerosol_optics.meta index 93e5e7eea..606b122b5 100644 --- a/physics/rrtmgp_sw_aerosol_optics.meta +++ b/physics/rrtmgp_sw_aerosol_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [nTracer] standard_name = number_of_tracers long_name = number of tracers @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [nTracerAer] standard_name = number_of_aerosol_tracers_MG long_name = number of aerosol tracers for Morrison Gettelman MP @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -62,7 +56,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -71,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -80,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -89,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [tv_lay] standard_name = virtual_temperature long_name = layer virtual temperature @@ -98,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -107,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [lsmask] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -116,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [tracer] standard_name = chemical_tracers long_name = chemical tracers @@ -125,7 +112,6 @@ type = real kind = kind_phys intent = in - optional = F [aerfld] standard_name = mass_number_concentration_of_aerosol_from_gocart_climatology long_name = GOCART aerosol climatology number concentration @@ -134,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = F [lon] standard_name = longitude long_name = longitude @@ -143,7 +128,6 @@ type = real kind = kind_phys intent = in - optional = F [lat] standard_name = latitude long_name = latitude @@ -152,7 +136,6 @@ type = real kind = kind_phys intent = in - optional = F [aerodp] standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles long_name = vertical integrated optical depth for various aerosol species @@ -161,7 +144,6 @@ type = real kind = kind_phys intent = inout - optional = F [sw_optical_props_aerosol] standard_name = shortwave_optical_properties_for_aerosols long_name = Fortran DDT containing RRTMGP optical properties @@ -169,7 +151,6 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -178,7 +159,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -186,4 +166,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_sw_cloud_optics.meta b/physics/rrtmgp_sw_cloud_optics.meta index 3956579a4..eabd6fa7a 100644 --- a/physics/rrtmgp_sw_cloud_optics.meta +++ b/physics/rrtmgp_sw_cloud_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [nrghice] standard_name = number_of_ice_roughness_categories long_name = number of ice-roughness categories in RRTMGP calculation @@ -38,7 +35,6 @@ dimensions = () type = integer intent = inout - optional = F [rrtmgp_root_dir] standard_name = directory_for_rte_rrtmgp_source_code long_name = directory for rte+rrtmgp source code @@ -46,7 +42,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [rrtmgp_sw_file_clouds] standard_name = filename_of_rrtmgp_shortwave_cloud_optics_coefficients @@ -55,7 +50,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [mpirank] standard_name = mpi_rank @@ -64,7 +58,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI rank @@ -72,7 +65,6 @@ dimensions = () type = integer intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -80,7 +72,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -89,7 +80,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -97,7 +87,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] name = rrtmgp_sw_cloud_optics_run @@ -109,7 +98,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -117,7 +105,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -125,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [doG_cldoptics] standard_name = flag_to_calc_lw_cld_optics_using_RRTMG long_name = logical flag to control cloud optics scheme. @@ -133,7 +119,6 @@ dimensions = () type = logical intent = in - optional = F [icliq_sw] standard_name = control_for_shortwave_radiation_liquid_clouds long_name = sw optical property for liquid clouds @@ -141,7 +126,6 @@ dimensions = () type = integer intent = in - optional = F [icice_sw] standard_name = flag_for_optical_property_for_ice_clouds_for_shortwave_radiation long_name = sw optical property for ice clouds @@ -149,7 +133,6 @@ dimensions = () type = integer intent = in - optional = F [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -157,7 +140,6 @@ dimensions = () type = logical intent = in - optional = F [doGP_cldoptics_LUT] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_LUT long_name = logical flag to control cloud optics scheme. @@ -165,7 +147,6 @@ dimensions = () type = logical intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -174,7 +155,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_lwp] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path @@ -183,7 +163,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_reliq] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud @@ -192,7 +171,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_iwp] standard_name = cloud_ice_water_path long_name = layer cloud ice water path @@ -201,7 +179,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_reice] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud @@ -210,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_swp] standard_name = cloud_snow_water_path long_name = layer cloud snow water path @@ -219,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_resnow] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud @@ -228,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_rwp] standard_name = cloud_rain_water_path long_name = layer cloud rain water path @@ -237,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [cld_rerain] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud @@ -246,7 +219,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -255,7 +227,6 @@ type = real kind = kind_phys intent = in - optional = F [nbndsGPsw] standard_name = number_of_shortwave_bands long_name = number of sw bands used in RRTMGP @@ -263,7 +234,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -271,7 +241,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -279,7 +248,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [sw_optical_props_cloudsByBand] standard_name = shortwave_optical_properties_for_cloudy_atmosphere_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -287,7 +255,6 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F [sw_optical_props_precipByBand] standard_name = shortwave_optical_properties_for_precipitation_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -295,7 +262,6 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth @@ -304,7 +270,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -313,7 +278,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -321,4 +285,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_sw_cloud_sampling.meta b/physics/rrtmgp_sw_cloud_sampling.meta index f1452abf8..6c24b39bc 100644 --- a/physics/rrtmgp_sw_cloud_sampling.meta +++ b/physics/rrtmgp_sw_cloud_sampling.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [isubc_sw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -54,7 +49,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_maxrand] standard_name = flag_for_maximum_random_cloud_overlap_method long_name = choice of maximum-random cloud overlap method @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exp] standard_name = flag_for_exponential_cloud_overlap_method long_name = choice of exponential cloud overlap method @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_exprand] standard_name = flag_for_exponential_random_cloud_overlap_method long_name = choice of exponential-random cloud overlap method @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_rand] standard_name = flag_for_random_cloud_overlap_method long_name = choice of random cloud overlap method @@ -102,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [iovr_max] standard_name = flag_for_maximum_cloud_overlap_method long_name = choice of maximum cloud overlap method @@ -110,7 +98,6 @@ dimensions = () type = integer intent = in - optional = F [icseed_sw] standard_name = random_number_seed_for_mcica_shortwave long_name = seed for random number generation for shortwave radiation @@ -118,7 +105,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -127,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -136,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [cloud_overlap_param] standard_name = cloud_overlap_param long_name = cloud overlap parameter @@ -145,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [precip_overlap_param] standard_name = precip_overlap_param long_name = precipitation overlap parameter @@ -154,7 +137,6 @@ type = real kind = kind_phys intent = in - optional = F [sw_optical_props_cloudsByBand] standard_name = shortwave_optical_properties_for_cloudy_atmosphere_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -162,7 +144,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [sw_optical_props_precipByBand] standard_name = shortwave_optical_properties_for_precipitation_by_band long_name = Fortran DDT containing RRTMGP optical properties @@ -170,7 +151,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [sw_optical_props_clouds] standard_name = shortwave_optical_properties_for_cloudy_atmosphere long_name = Fortran DDT containing RRTMGP optical properties @@ -178,7 +158,6 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F [sw_optical_props_precip] standard_name = shortwave_optical_properties_for_precipitation long_name = Fortran DDT containing RRTMGP optical properties @@ -186,7 +165,6 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -195,7 +173,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -203,4 +180,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rrtmgp_sw_gas_optics.meta b/physics/rrtmgp_sw_gas_optics.meta index 7ca3f3951..36b1c9325 100644 --- a/physics/rrtmgp_sw_gas_optics.meta +++ b/physics/rrtmgp_sw_gas_optics.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [nThreads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available to scheme @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [rrtmgp_root_dir] standard_name = directory_for_rte_rrtmgp_source_code long_name = directory for rte+rrtmgp source code @@ -38,7 +35,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [rrtmgp_sw_file_gas] standard_name = filename_of_rrtmgp_shortwave_k_distribution @@ -47,7 +43,6 @@ dimensions = () type = character intent = in - optional = F kind = len=128 [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP @@ -57,7 +52,6 @@ type = character kind = len=* intent = in - optional = F [mpirank] standard_name = mpi_rank long_name = current MPI rank @@ -65,7 +59,6 @@ dimensions = () type = integer intent = in - optional = F [mpiroot] standard_name = mpi_root long_name = master MPI rank @@ -73,7 +66,6 @@ dimensions = () type = integer intent = in - optional = F [mpicomm] standard_name = mpi_communicator long_name = MPI communicator @@ -81,7 +73,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -90,7 +81,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -98,7 +88,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -111,7 +100,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -119,7 +107,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -127,7 +114,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -135,7 +121,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -143,7 +128,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [ngptsGPsw] standard_name = number_of_shortwave_spectral_points long_name = number of spectral points in RRTMGP SW calculation @@ -151,7 +135,6 @@ dimensions = () type = integer intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure layer @@ -160,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -169,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature layer @@ -178,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature level @@ -187,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [toa_src_sw] standard_name = toa_incident_sw_flux_by_spectral_point long_name = TOA shortwave incident flux at each spectral points @@ -196,7 +175,6 @@ type = real kind = kind_phys intent = out - optional = F [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP @@ -205,7 +183,6 @@ type = character kind = len=* intent = in - optional = F [gas_concentrations] standard_name = Gas_concentrations_for_RRTMGP_suite long_name = DDT containing gas concentrations for RRTMGP radiation scheme @@ -213,7 +190,6 @@ dimensions = () type = ty_gas_concs intent = inout - optional = F [solcon] standard_name = solar_constant long_name = solar constant @@ -222,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -231,7 +206,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -239,7 +213,6 @@ dimensions = () type = integer intent = out - optional = F [sw_optical_props_clrsky] standard_name = shortwave_optical_properties_for_clear_sky long_name = Fortran DDT containing RRTMGP optical properties @@ -247,4 +220,3 @@ dimensions = () type = ty_optical_props_2str intent = out - optional = F diff --git a/physics/rrtmgp_sw_rte.meta b/physics/rrtmgp_sw_rte.meta index 5ca34b285..0fefc39c7 100644 --- a/physics/rrtmgp_sw_rte.meta +++ b/physics/rrtmgp_sw_rte.meta @@ -15,7 +15,6 @@ dimensions = () type = logical intent = in - optional = F [doSWclrsky] standard_name = flag_for_output_of_tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep_assuming_clear_sky long_name = flag to output sw heating rate (Radtend%swhc) @@ -23,7 +22,6 @@ dimensions = () type = logical intent = in - optional = F [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [nLev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [nday] standard_name = daytime_points_dimension long_name = daytime points dimension @@ -47,7 +43,6 @@ dimensions = () type = integer intent = in - optional = F [idxday] standard_name = daytime_points long_name = daytime points @@ -55,7 +50,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [coszen] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = mean cos of zenith angle over rad call period @@ -64,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure layer @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure level @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature layer @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [sw_optical_props_clrsky] standard_name = shortwave_optical_properties_for_clear_sky long_name = Fortran DDT containing RRTMGP optical properties @@ -99,7 +89,6 @@ dimensions = () type = ty_optical_props_2str intent = inout - optional = F [sw_optical_props_clouds] standard_name = shortwave_optical_properties_for_cloudy_atmosphere long_name = Fortran DDT containing RRTMGP optical properties @@ -107,7 +96,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [sw_optical_props_aerosol] standard_name = shortwave_optical_properties_for_aerosols long_name = Fortran DDT containing RRTMGP optical properties @@ -115,7 +103,6 @@ dimensions = () type = ty_optical_props_2str intent = in - optional = F [sfc_alb_nir_dir] standard_name = surface_albedo_nearIR_direct long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir) @@ -124,7 +111,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_nir_dif] standard_name = surface_albedo_nearIR_diffuse long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif) @@ -133,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_uvvis_dir] standard_name = surface_albedo_uvvis_dir long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir) @@ -142,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_alb_uvvis_dif] standard_name = surface_albedo_uvvis_dif long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif) @@ -151,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [toa_src_sw] standard_name = toa_incident_sw_flux_by_spectral_point long_name = TOA shortwave incident flux at each spectral points @@ -160,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [scmpsw] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -168,7 +150,6 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = inout - optional = T [fluxswUP_allsky] standard_name = RRTMGP_sw_flux_profile_upward_allsky long_name = RRTMGP upward shortwave all-sky flux profile @@ -177,7 +158,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxswDOWN_allsky] standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile @@ -186,7 +166,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxswUP_clrsky] standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile @@ -195,7 +174,6 @@ type = real kind = kind_phys intent = inout - optional = F [fluxswDOWN_clrsky] standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile @@ -204,7 +182,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -213,7 +190,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -221,4 +197,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/rte-rrtmgp b/physics/rte-rrtmgp index 9588c7bd8..9c51cb7c3 160000 --- a/physics/rte-rrtmgp +++ b/physics/rte-rrtmgp @@ -1 +1 @@ -Subproject commit 9588c7bd89e4f51a924f766e313bc42830fb4479 +Subproject commit 9c51cb7c3e227c9e84c2bff29ce4f438c7a54ae6 diff --git a/physics/samfdeepcnv.f b/physics/samfdeepcnv.f index a7ea0009b..2f34041c2 100644 --- a/physics/samfdeepcnv.f +++ b/physics/samfdeepcnv.f @@ -151,7 +151,7 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & & dt2, dtmax, dtmin, & dxcrtas, dxcrtuf, & dv1h, dv2h, dv3h, - & dv1q, dv2q, dv3q, + & dv2q, & dz, dz1, e1, edtmax, & edtmaxl, edtmaxs, el2orc, elocp, & es, etah, @@ -243,7 +243,11 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & & uo(im,km), vo(im,km), qeso(im,km), & ctr(im,km,ntr), ctro(im,km,ntr) ! for aerosol transport - real(kind=kind_phys) qaero(im,km,ntc) +! real(kind=kind_phys) qaero(im,km,ntc) +c variables for tracer wet deposition, + real(kind=kind_phys), dimension(im,km,ntc) :: chem_c, chem_pw, + & wet_dep +! ! for updraft velocity calculation real(kind=kind_phys) wu2(im,km), buo(im,km), drag(im,km) real(kind=kind_phys) wc(im), scaldfunc(im), sigmagfm(im) @@ -266,6 +270,14 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & & pwo(im,km), pwdo(im,km), c0t(im,km), & tx1(im), sumx(im), cnvwt(im,km) &, rhbar(im) +! +! variables for Total Variation Diminishing (TVD) flux-limiter scheme +! on environmental subsidence and uplifting +! + real(kind=kind_phys) q_diff(im,0:km-1), e_diff(im,0:km-1,ntr), + & flxtvd(im,0:km-1) + real(kind=kind_phys) rrkp, phkp + real(kind=kind_phys) tsumn(im), tsump(im), rtnp(im) ! logical do_aerosols, totflg, cnvflg(im), asqecflg(im), flg(im) ! @@ -318,6 +330,10 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & c c initialize arrays c + chem_c = 0. + chem_pw = 0. + wet_dep = 0. +! do i=1,im cnvflg(i) = .true. sfcpbl(i) = sfclfac * hpbl(i) @@ -1164,7 +1180,12 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & enddo enddo if (.not.hwrf_samfdeep) then - do n = 1, ntr + if (do_aerosols) then + kk = itc -3 + else + kk = ntr + endif + do n = 1, kk do k = 2, km1 do i = 1, im if (cnvflg(i)) then @@ -1179,6 +1200,28 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & enddo enddo enddo + if (do_aerosols) then + do n = 1, ntc + kk = n + itc -3 + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < kmax(i)) then + dz = zi(i,k) - zi(i,k-1) + tem = 0.25 * (xlamue(i,k)+xlamue(i,k-1)) * dz + factor = 1. + tem + ecko(i,k,kk) = ((1. - tem) * ecko(i,k-1,kk) + tem * + & (ctro(i,k,kk) + ctro(i,k-1,kk))) / factor + chem_c(i,k,n) = fscav(n) * ecko(i,k,kk) + tem = chem_c(i,k,n) / (1. + c0t(i,k) * dz) + chem_pw(i,k,n) = c0t(i,k) * dz * tem * eta(i,k-1) + ecko(i,k,kk) = tem + ecko(i,k,kk) - chem_c(i,k,n) + endif + endif + enddo + enddo + enddo + endif endif c c taking account into convection inhibition due to existence of @@ -1749,8 +1792,8 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if (cnvflg(i)) then if(k > kb(i) .and. k <= ktcon(i)) then - shear= sqrt((uo(i,k)-uo(i,k-1)) ** 2 - & + (vo(i,k)-vo(i,k-1)) ** 2) + shear = sqrt((uo(i,k)-uo(i,k-1)) ** 2 + & + (vo(i,k)-vo(i,k-1)) ** 2) vshear(i) = vshear(i) + shear endif endif @@ -1949,18 +1992,18 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if (cnvflg(i) .and. k < jmin(i)) then gamma = el2orc * qeso(i,k) / to(i,k)**2 - dhh=hcdo(i,k) - dt=to(i,k) - dg=gamma - dh=heso(i,k) - dz=-1.*(zo(i,k+1)-zo(i,k)) + dhh = hcdo(i,k) + dt = to(i,k) + dg = gamma + dh = heso(i,k) + dz = zo(i,k) - zo(i,k+1) ! aa1(i)=aa1(i)+edto(i)*dz*etad(i,k) - aa1(i)=aa1(i)+edto(i)*dz - & *(grav/(cp*dt))*((dhh-dh)/(1.+dg)) - & *(1.+fv*cp*dg*dt/hvap) - val=0. + aa1(i) = aa1(i)+edto(i)*dz + & *(grav/(cp*dt))*((dhh-dh)/(1.+dg)) + & *(1.+fv*cp*dg*dt/hvap) + val = 0. ! aa1(i)=aa1(i)+edto(i)*dz*etad(i,k) - aa1(i)=aa1(i)+edto(i)*dz + aa1(i) = aa1(i)+edto(i)*dz & *grav*fv*max(val,(qeso(i,k)-qo(i,k))) endif enddo @@ -2007,14 +2050,11 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if(cnvflg(i)) then dp = 1000. * del(i,1) - dellah(i,1) = edto(i) * etad(i,1) * (hcdo(i,1) - & - heo(i,1)) * grav / dp - dellaq(i,1) = edto(i) * etad(i,1) * (qrcdo(i,1) - & - qo(i,1)) * grav / dp - dellau(i,1) = edto(i) * etad(i,1) * (ucdo(i,1) - & - uo(i,1)) * grav / dp - dellav(i,1) = edto(i) * etad(i,1) * (vcdo(i,1) - & - vo(i,1)) * grav / dp + tem = edto(i) * etad(i,1) * grav / dp + dellah(i,1) = tem * (hcdo(i,1) - heo(i,1)) + dellaq(i,1) = tem * qrcdo(i,1) + dellau(i,1) = tem * (ucdo(i,1) - uo(i,1)) + dellav(i,1) = tem * (vcdo(i,1) - vo(i,1)) endif enddo if (.not.hwrf_samfdeep) then @@ -2022,8 +2062,8 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if(cnvflg(i)) then dp = 1000. * del(i,1) - dellae(i,1,n) = edto(i) * etad(i,1) * (ecdo(i,1,n) - & - ctro(i,1,n)) * grav / dp + dellae(i,1,n) = edto(i) * etad(i,1) * ecdo(i,1,n) + & * grav / dp endif enddo enddo @@ -2044,9 +2084,7 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & dv1h = heo(i,k) dv2h = .5 * (heo(i,k) + heo(i,k-1)) dv3h = heo(i,k-1) - dv1q = qo(i,k) dv2q = .5 * (qo(i,k) + qo(i,k-1)) - dv3q = qo(i,k-1) c tem = 0.5 * (xlamue(i,k)+xlamue(i,k-1)) tem1 = 0.5 * (xlamud(i,k)+xlamud(i,k-1)) @@ -2058,6 +2096,8 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & ptem = xlamde ptem1 = xlamdd endif + + factor = grav / dp cj dellah(i,k) = dellah(i,k) + & ((aup*eta(i,k)-adw*edto(i)*etad(i,k))*dv1h @@ -2065,29 +2105,27 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & & - (aup*tem*eta(i,k-1)+adw*edto(i)*ptem*etad(i,k))*dv2h*dz & + aup*tem1*eta(i,k-1)*.5*(hcko(i,k)+hcko(i,k-1))*dz & + adw*edto(i)*ptem1*etad(i,k)*.5*(hcdo(i,k)+hcdo(i,k-1))*dz - & ) *grav/dp + & ) * factor cj dellaq(i,k) = dellaq(i,k) + - & ((aup*eta(i,k)-adw*edto(i)*etad(i,k))*dv1q - & - (aup*eta(i,k-1)-adw*edto(i)*etad(i,k-1))*dv3q - & - (aup*tem*eta(i,k-1)+adw*edto(i)*ptem*etad(i,k))*dv2q*dz + & (- (aup*tem*eta(i,k-1)+adw*edto(i)*ptem*etad(i,k))*dv2q*dz & + aup*tem1*eta(i,k-1)*.5*(qrcko(i,k)+qcko(i,k-1))*dz & + adw*edto(i)*ptem1*etad(i,k)*.5*(qrcdo(i,k)+qcdo(i,k-1))*dz - & ) *grav/dp + & ) * factor cj tem1=eta(i,k)*(uo(i,k)-ucko(i,k)) tem2=eta(i,k-1)*(uo(i,k-1)-ucko(i,k-1)) ptem1=etad(i,k)*(uo(i,k)-ucdo(i,k)) ptem2=etad(i,k-1)*(uo(i,k-1)-ucdo(i,k-1)) dellau(i,k) = dellau(i,k) + - & (aup*(tem1-tem2)-adw*edto(i)*(ptem1-ptem2))*grav/dp + & (aup*(tem1-tem2)-adw*edto(i)*(ptem1-ptem2))*factor cj tem1=eta(i,k)*(vo(i,k)-vcko(i,k)) tem2=eta(i,k-1)*(vo(i,k-1)-vcko(i,k-1)) ptem1=etad(i,k)*(vo(i,k)-vcdo(i,k)) ptem2=etad(i,k-1)*(vo(i,k-1)-vcdo(i,k-1)) dellav(i,k) = dellav(i,k) + - & (aup*(tem1-tem2)-adw*edto(i)*(ptem1-ptem2))*grav/dp + & (aup*(tem1-tem2)-adw*edto(i)*(ptem1-ptem2))*factor cj endif enddo @@ -2103,10 +2141,10 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & if(k > jmin(i)) adw = 0. dp = 1000. * del(i,k) cj - tem1=eta(i,k)*(ctro(i,k,n)-ecko(i,k,n)) - tem2=eta(i,k-1)*(ctro(i,k-1,n)-ecko(i,k-1,n)) - ptem1=etad(i,k)*(ctro(i,k,n)-ecdo(i,k,n)) - ptem2=etad(i,k-1)*(ctro(i,k-1,n)-ecdo(i,k-1,n)) + tem1 = -eta(i,k) * ecko(i,k,n) + tem2 = -eta(i,k-1) * ecko(i,k-1,n) + ptem1 = -etad(i,k) * ecdo(i,k,n) + ptem2 = -etad(i,k-1) * ecdo(i,k-1,n) dellae(i,k,n) = dellae(i,k,n) + & (aup*(tem1-tem2)-adw*edto(i)*(ptem1-ptem2))*grav/dp cj @@ -2122,21 +2160,15 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & if(cnvflg(i)) then indx = ktcon(i) dp = 1000. * del(i,indx) - dv1h = heo(i,indx-1) - dellah(i,indx) = eta(i,indx-1) * - & (hcko(i,indx-1) - dv1h) * grav / dp - dv1q = qo(i,indx-1) - dellaq(i,indx) = eta(i,indx-1) * - & (qcko(i,indx-1) - dv1q) * grav / dp - dellau(i,indx) = eta(i,indx-1) * - & (ucko(i,indx-1) - uo(i,indx-1)) * grav / dp - dellav(i,indx) = eta(i,indx-1) * - & (vcko(i,indx-1) - vo(i,indx-1)) * grav / dp + tem = eta(i,indx-1) * grav / dp + dellah(i,indx) = tem * (hcko(i,indx-1) - heo(i,indx-1)) + dellaq(i,indx) = tem * qcko(i,indx-1) + dellau(i,indx) = tem * (ucko(i,indx-1) - uo(i,indx-1)) + dellav(i,indx) = tem * (vcko(i,indx-1) - vo(i,indx-1)) c c cloud water c - dellal(i,indx) = eta(i,indx-1) * - & qlko_ktcon(i) * grav / dp + dellal(i,indx) = tem * qlko_ktcon(i) endif enddo if (.not.hwrf_samfdeep) then @@ -2146,10 +2178,179 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & indx = ktcon(i) dp = 1000. * del(i,indx) dellae(i,indx,n) = eta(i,indx-1) * - & (ecko(i,indx-1,n) - ctro(i,indx-1,n)) * grav / dp + & ecko(i,indx-1,n) * grav / dp + endif + enddo + enddo + endif +! +! compute change rates due to environmental subsidence & uplift +! using a positive definite TVD flux-limiter scheme +! +! for moisture +! + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + q_diff(i,k) = q1(i,k) - q1(i,k+1) + endif + enddo + enddo + do i=1,im + if(cnvflg(i)) then + if(q1(i,1) >= 0.) then + q_diff(i,0) = max(0.,2.*q1(i,1)-q1(i,2))- + & q1(i,1) + else + q_diff(i,0) = min(0.,2.*q1(i,1)-q1(i,2))- + & q1(i,1) + endif endif enddo +! + flxtvd = 0. + do k = 1, km1 + do i = 1, im + if(cnvflg(i) .and. k < ktcon(i)) then + tem = 0. + if(k >= kb(i)) tem = eta(i,k) + if(k <= jmin(i)) then + tem = tem - edto(i) * etad(i,k) + endif + if(tem > 0.) then + rrkp = 0. + if(abs(q_diff(i,k)) > 1.e-22) + & rrkp = q_diff(i,k+1) / q_diff(i,k) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = q1(i,k+1) + + & phkp*(qo(i,k)-q1(i,k+1)) + flxtvd(i,k) = tem * tem1 + elseif(tem < 0.) then + rrkp = 0. + if(abs(q_diff(i,k)) > 1.e-22) + & rrkp = q_diff(i,k-1) / q_diff(i,k) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = q1(i,k) + + & phkp*(qo(i,k)-q1(i,k)) + flxtvd(i,k) = tem * tem1 + else + tem1 = qo(i,k) + flxtvd(i,k) = 0. + endif +! +! subtract the double counting change rates at jmin+1 & kb beforehand +! + if(k == jmin(i)) then + dp = 1000. * del(i,k+1) + dellaq(i,k+1) = dellaq(i,k+1) - + & edto(i) * etad(i,k) * tem1 * grav/dp + endif + if(k == kb(i)) then + dp = 1000. * del(i,k) + dellaq(i,k) = dellaq(i,k) - + & eta(i,k) * tem1 * grav/dp + endif +! + endif + enddo + enddo +! + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + dp = 1000. * del(i,k) + dellaq(i,k) = dellaq(i,k) + + & (flxtvd(i,k) - flxtvd(i,k-1)) * grav/dp + endif + enddo + enddo +! +! for tracers including TKE & ozone +! + if (.not.hwrf_samfdeep) then +! + do n=1,ntr + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + e_diff(i,k,n) = ctr(i,k,n) - ctr(i,k+1,n) + endif + enddo + enddo + do i=1,im + if(cnvflg(i)) then + if(ctr(i,1,n) >= 0.) then + e_diff(i,0,n) = max(0.,2.*ctr(i,1,n)-ctr(i,2,n))- + & ctr(i,1,n) + else + e_diff(i,0,n) = min(0.,2.*ctr(i,1,n)-ctr(i,2,n))- + & ctr(i,1,n) + endif + endif + enddo + enddo +! + do n=1,ntr +! + flxtvd = 0. + do k = 1, km1 + do i = 1, im + if(cnvflg(i) .and. k < ktcon(i)) then + tem = 0. + if(k >= kb(i)) tem = eta(i,k) + if(k <= jmin(i)) then + tem = tem - edto(i) * etad(i,k) + endif + if(tem > 0.) then + rrkp = 0. + if(abs(e_diff(i,k,n)) > 1.e-22) + & rrkp = e_diff(i,k+1,n) / e_diff(i,k,n) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = ctr(i,k+1,n) + + & phkp*(ctro(i,k,n)-ctr(i,k+1,n)) + flxtvd(i,k) = tem * tem1 + elseif(tem < 0.) then + rrkp = 0. + if(abs(e_diff(i,k,n)) > 1.e-22) + & rrkp = e_diff(i,k-1,n) / e_diff(i,k,n) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = ctr(i,k,n) + + & phkp*(ctro(i,k,n)-ctr(i,k,n)) + flxtvd(i,k) = tem * tem1 + else + tem1 = ctro(i,k,n) + flxtvd(i,k) = 0. + endif +! +! subtract the double counting change rates at jmin+1 & kb beforehand +! + if(k == jmin(i)) then + dp = 1000. * del(i,k+1) + dellae(i,k+1,n) = dellae(i,k+1,n) - + & edto(i)*etad(i,k) * tem1 * grav/dp + endif + if(k == kb(i)) then + dp = 1000. * del(i,k) + dellae(i,k,n) = dellae(i,k,n) - + & eta(i,k) * tem1 * grav/dp + endif +! + endif + enddo + enddo +! + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + dp = 1000. * del(i,k) + dellae(i,k,n) = dellae(i,k,n) + + & (flxtvd(i,k) - flxtvd(i,k-1)) * grav/dp + endif + enddo + enddo +! enddo +! endif c c------- final changed variable per unit mass flux @@ -2431,19 +2632,19 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if (asqecflg(i) .and. k < jmin(i)) then gamma = el2orc * qeso(i,k) / to(i,k)**2 - dhh=hcdo(i,k) - dt= to(i,k) - dg= gamma - dh= heso(i,k) - dz=-1.*(zo(i,k+1)-zo(i,k)) + dhh = hcdo(i,k) + dt = to(i,k) + dg = gamma + dh = heso(i,k) + dz = zo(i,k) - zo(i,k+1) ! xaa0(i)=xaa0(i)+edtx(i)*dz*etad(i,k) - xaa0(i)=xaa0(i)+edtx(i)*dz - & *(grav/(cp*dt))*((dhh-dh)/(1.+dg)) - & *(1.+fv*cp*dg*dt/hvap) - val=0. + xaa0(i) = xaa0(i)+edtx(i)*dz + & *(grav/(cp*dt))*((dhh-dh)/(1.+dg)) + & *(1.+fv*cp*dg*dt/hvap) + val = 0. ! xaa0(i)=xaa0(i)+edtx(i)*dz*etad(i,k) - xaa0(i)=xaa0(i)+edtx(i)*dz - & *grav*fv*max(val,(qeso(i,k)-qo(i,k))) + xaa0(i) = xaa0(i)+edtx(i)*dz + & *grav*fv*max(val,(qeso(i,k)-qo(i,k))) endif enddo enddo @@ -2680,13 +2881,13 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & endif !> - Transport aerosols if present - - if (do_aerosols) - & call samfdeepcnv_aerosols(im, im, km, itc, ntc, ntr, delt, - & xlamde, xlamdd, cnvflg, jmin, kb, kmax, kd94, ktcon, fscav, - & edto, xlamd, xmb, c0t, eta, etad, zi, xlamue, xlamud, delp, - & qtr, qaero) - +! +! if (do_aerosols) +! & call samfdeepcnv_aerosols(im, im, km, itc, ntc, ntr, delt, +! & xlamde, xlamdd, cnvflg, jmin, kb, kmax, kd94, ktcon, fscav, +! & edto, xlamd, xmb, c0t, eta, etad, zi, xlamue, xlamud, delp, +! & qtr, qaero) +! c c restore to,qo,uo,vo to t1,q1,u1,v1 in case convection stops c @@ -2706,10 +2907,11 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & enddo if (.not.hwrf_samfdeep) then do n = 1, ntr + kk = n+2 do k = 1, km do i = 1, im if (cnvflg(i) .and. k <= kmax(i)) then - ctro(i,k,n) = ctr(i,k,n) + ctro(i,k,n) = qtr(i,k,kk) endif enddo enddo @@ -2744,40 +2946,184 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if (cnvflg(i) .and. k <= kmax(i)) then if(k <= ktcon(i)) then + tem2 = xmb(i) * dt2 dellat = (dellah(i,k) - hvap * dellaq(i,k)) / cp - t1(i,k) = t1(i,k) + dellat * xmb(i) * dt2 - q1(i,k) = q1(i,k) + dellaq(i,k) * xmb(i) * dt2 -! tem = 1./rcs(i) -! u1(i,k) = u1(i,k) + dellau(i,k) * xmb(i) * dt2 * tem -! v1(i,k) = v1(i,k) + dellav(i,k) * xmb(i) * dt2 * tem - u1(i,k) = u1(i,k) + dellau(i,k) * xmb(i) * dt2 - v1(i,k) = v1(i,k) + dellav(i,k) * xmb(i) * dt2 + t1(i,k) = t1(i,k) + tem2 * dellat + q1(i,k) = q1(i,k) + tem2 * dellaq(i,k) +! tem = tem2 / rcs(i) +! u1(i,k) = u1(i,k) + dellau(i,k) * tem +! v1(i,k) = v1(i,k) + dellav(i,k) * tem + u1(i,k) = u1(i,k) + tem2 * dellau(i,k) + v1(i,k) = v1(i,k) + tem2 * dellav(i,k) dp = 1000. * del(i,k) - delhbar(i) = delhbar(i) + dellah(i,k)*xmb(i)*dp/grav - delqbar(i) = delqbar(i) + dellaq(i,k)*xmb(i)*dp/grav - deltbar(i) = deltbar(i) + dellat*xmb(i)*dp/grav - delubar(i) = delubar(i) + dellau(i,k)*xmb(i)*dp/grav - delvbar(i) = delvbar(i) + dellav(i,k)*xmb(i)*dp/grav + tem = xmb(i) * dp / grav + delhbar(i) = delhbar(i) + tem * dellah(i,k) + delqbar(i) = delqbar(i) + tem * dellaq(i,k) + deltbar(i) = deltbar(i) + tem * dellat + delubar(i) = delubar(i) + tem * dellau(i,k) + delvbar(i) = delvbar(i) + tem * dellav(i,k) + endif + endif + enddo + enddo +! +! Negative moisture is set to zero after borrowing it from +! positive values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + if(q1(i,k) < 0.) tsumn(i) = tsumn(i) + q1(i,k) + if(q1(i,k) > 0.) tsump(i) = tsump(i) + q1(i,k) + endif + enddo + enddo + do i = 1,im + if(cnvflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,km + do i = 1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(q1(i,k) < 0.) q1(i,k) = 0. + if(q1(i,k) > 0.) q1(i,k) = (1.+rtnp(i))*q1(i,k) + else + if(q1(i,k) < 0.) q1(i,k) = (1.+rtnp(i))*q1(i,k) + if(q1(i,k) > 0.) q1(i,k) = 0. + endif endif endif enddo enddo +! if (.not.hwrf_samfdeep) then do n = 1, ntr - kk = n+2 +! do k = 1, km do i = 1, im if (cnvflg(i) .and. k <= kmax(i)) then if(k <= ktcon(i)) then ctr(i,k,n) = ctr(i,k,n)+dellae(i,k,n)*xmb(i)*dt2 + dp = 1000. * del(i,k) delebar(i,n)=delebar(i,n)+dellae(i,k,n)*xmb(i)*dp/grav - qtr(i,k,kk) = ctr(i,k,n) endif endif enddo enddo +! +! Negative TKE, ozone, and aerosols are set to zero after borrowing them +! from positive values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + if(ctr(i,k,n) < 0.) tsumn(i) = tsumn(i) + ctr(i,k,n) + if(ctr(i,k,n) > 0.) tsump(i) = tsump(i) + ctr(i,k,n) + endif + enddo + enddo + do i = 1,im + if(cnvflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,km + do i = 1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(ctr(i,k,n)<0.) ctr(i,k,n)=0. + if(ctr(i,k,n)>0.) ctr(i,k,n)=(1.+rtnp(i))*ctr(i,k,n) + else + if(ctr(i,k,n)<0.) ctr(i,k,n)=(1.+rtnp(i))*ctr(i,k,n) + if(ctr(i,k,n)>0.) ctr(i,k,n)=0. + endif + endif + endif + enddo + enddo +! + kk = n+2 + do k = 1, km + do i = 1, im + if(cnvflg(i) .and. k <= ktcon(i)) then + qtr(i,k,kk) = ctr(i,k,n) + endif + enddo + enddo +! enddo +! + if (do_aerosols) then +! + do n = 1, ntc +! +! convert wet deposition to total mass deposited over dt2 and dp + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < ktcon(i)) then + dp = 1000. * del(i,k) + wet_dep(i,k,n) = chem_pw(i,k,n)*grav/dp + wet_dep(i,k,n) = wet_dep(i,k,n)*xmb(i)*dt2*dp + endif + endif + enddo + enddo +! + kk = n + itc - 1 + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < ktcon(i)) then + dp = 1000. * del(i,k) + if (qtr(i,k,kk) < 0.) then +! borrow negative mass from wet deposition + tem = -qtr(i,k,kk)*dp + if(wet_dep(i,k,n) >= tem) then + wet_dep(i,k,n) = wet_dep(i,k,n) - tem + qtr(i,k,kk) = 0. + else + wet_dep(i,k,n) = 0. + qtr(i,k,kk) = qtr(i,k,kk)+wet_dep(i,k,n)/dp + endif + endif + endif + endif + enddo + enddo +! + enddo +! + endif +! endif +! !> - Recalculate saturation specific humidity using the updated temperature. do k = 1, km do i = 1, im @@ -2837,26 +3183,28 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & qcond(i) = evef * (q1(i,k) - qeso(i,k)) & / (1. + el2orc * qeso(i,k) / t1(i,k)**2) dp = 1000. * del(i,k) + tem = grav / dp + tem1 = dp / grav if(rn(i) > 0. .and. qcond(i) < 0.) then qevap(i) = -qcond(i) * (1.-exp(-.32*sqrt(dt2*rn(i)))) - qevap(i) = min(qevap(i), rn(i)*1000.*grav/dp) - delq2(i) = delqev(i) + .001 * qevap(i) * dp / grav + qevap(i) = min(qevap(i), rn(i)*1000.*tem) + delq2(i) = delqev(i) + .001 * qevap(i) * tem1 endif if(rn(i) > 0. .and. qcond(i) < 0. .and. & delq2(i) > rntot(i)) then - qevap(i) = 1000.* grav * (rntot(i) - delqev(i)) / dp + qevap(i) = 1000.* tem * (rntot(i) - delqev(i)) flg(i) = .false. endif if(rn(i) > 0. .and. qevap(i) > 0.) then q1(i,k) = q1(i,k) + qevap(i) t1(i,k) = t1(i,k) - elocp * qevap(i) - rn(i) = rn(i) - .001 * qevap(i) * dp / grav + rn(i) = rn(i) - .001 * qevap(i) * tem1 deltv(i) = - elocp*qevap(i)/dt2 delq(i) = + qevap(i)/dt2 - delqev(i) = delqev(i) + .001*dp*qevap(i)/grav + delqev(i) = delqev(i) + .001 * qevap(i) * tem1 endif - delqbar(i) = delqbar(i) + delq(i)*dp/grav - deltbar(i) = deltbar(i) + deltv(i)*dp/grav + delqbar(i) = delqbar(i) + delq(i) * tem1 + deltbar(i) = deltbar(i) + deltv(i) * tem1 endif endif enddo @@ -2869,11 +3217,14 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & enddo endif cj -! do i = 1, im +! do i = 1, 4 ! if(me == 31 .and. cnvflg(i)) then ! if(cnvflg(i)) then +! if(i==1) print*,'ntr:ntk= ',ntr,ntk ! print *, ' deep delhbar, delqbar, deltbar = ', ! & delhbar(i),hvap*delqbar(i),cp*deltbar(i) +! print *, ' deep delebar ozone = ',delebar(i,1) +! print *, ' deep delebar tke = ',delebar(i,2) ! print *, ' deep delubar, delvbar = ',delubar(i),delvbar(i) ! print *, ' precip =', hvap*rn(i)*1000./dt2 ! print*,'pdif= ',pfld(i,kbcon(i))-pfld(i,ktcon(i)) @@ -2975,27 +3326,38 @@ subroutine samfdeepcnv_run (im,km,itc,ntc,cliq,cp,cvap, & do i = 1, im if(cnvflg(i) .and. rn(i) <= 0.) then if (k <= kmax(i)) then - ctr(i,k,n)= ctro(i,k,n) - qtr(i,k,kk)= ctr(i,k,n) + qtr(i,k,kk)= ctro(i,k,n) endif endif enddo enddo enddo - -!> - Store aerosol concentrations if present if (do_aerosols) then do n = 1, ntc - kk = n + itc - 1 - do k = 1, km + do k = 2, km1 do i = 1, im - if(cnvflg(i) .and. rn(i) > 0.) then - if (k <= kmax(i)) qtr(i,k,kk) = qaero(i,k,n) + if(cnvflg(i) .and. rn(i) <= 0.) then + if (k <= ktcon(i)) then + wet_dep(i,k,n) = 0. + endif endif enddo enddo enddo - endif + endif +!> - Store aerosol concentrations if present +! if (do_aerosols) then +! do n = 1, ntc +! kk = n + itc - 1 +! do k = 1, km +! do i = 1, im +! if(cnvflg(i) .and. rn(i) > 0.) then +! if (k <= kmax(i)) qtr(i,k,kk) = qaero(i,k,n) +! endif +! enddo +! enddo +! enddo +! endif endif ! ! hchuang code change diff --git a/physics/samfdeepcnv.meta b/physics/samfdeepcnv.meta index 9ba69b1f2..d38203465 100644 --- a/physics/samfdeepcnv.meta +++ b/physics/samfdeepcnv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_samf] standard_name = identifer_for_scale_aware_mass_flux_deep_convection long_name = flag for SAMF deep convection scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -31,7 +29,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [ntc] standard_name = number_of_chemical_tracers long_name = number of chemical tracers @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = in - optional = F [cvap] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = physics time step @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [ntk] standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer long_name = index for turbulent kinetic energy in the convectively transported tracer array @@ -192,7 +172,6 @@ dimensions = () type = integer intent = in - optional = F [ntr] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -200,7 +179,6 @@ dimensions = () type = integer intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [prslp] standard_name = air_pressure long_name = mean layer pressure @@ -218,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [psp] standard_name = surface_air_pressure long_name = surface pressure @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = layer geopotential @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [qtr] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = inout - optional = F [q1] standard_name = specific_humidity_of_new_state long_name = updated vapor specific humidity @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = inout - optional = F [t1] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -263,7 +235,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -272,7 +243,6 @@ type = real kind = kind_phys intent = inout - optional = F [v1] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -281,7 +251,6 @@ type = real kind = kind_phys intent = inout - optional = F [fscav] standard_name = chemical_tracer_scavenging_fractions long_name = array of aerosol scavenging coefficients @@ -290,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [hwrf_samfdeep] standard_name = flag_for_hurricane_specific_code_in_scale_aware_mass_flux_deep_convection long_name = flag for hwrf samfdeepcnv scheme @@ -298,7 +266,6 @@ dimensions = () type = logical intent = in - optional = F [cldwrk] standard_name = cloud_work_function long_name = cloud work function @@ -307,7 +274,6 @@ type = real kind = kind_phys intent = out - optional = F [rn] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -316,7 +282,6 @@ type = real kind = kind_phys intent = out - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -324,7 +289,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -332,7 +296,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -340,7 +303,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [islimsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -348,7 +310,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [garea] standard_name = cell_area long_name = grid cell area @@ -357,7 +318,6 @@ type = real kind = kind_phys intent = in - optional = F [dot] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -366,7 +326,6 @@ type = real kind = kind_phys intent = in - optional = F [ncloud] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -374,7 +333,6 @@ dimensions = () type = integer intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL top height @@ -383,7 +341,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -392,7 +349,6 @@ type = real kind = kind_phys intent = out - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -401,7 +357,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -410,7 +365,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -419,7 +373,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -428,7 +381,6 @@ type = real kind = kind_phys intent = inout - optional = F [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -437,7 +389,6 @@ type = real kind = kind_phys intent = inout - optional = F [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -446,7 +397,6 @@ type = real kind = kind_phys intent = inout - optional = F [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -455,7 +405,6 @@ type = real kind = kind_phys intent = inout - optional = F [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -464,7 +413,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -473,7 +421,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -482,7 +429,6 @@ type = real kind = kind_phys intent = inout - optional = F [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -491,7 +437,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -500,7 +445,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -509,7 +453,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -518,7 +461,6 @@ type = real kind = kind_phys intent = inout - optional = F [mp_phys] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -526,7 +468,6 @@ dimensions = () type = integer intent = in - optional = F [mp_phys_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -534,7 +475,6 @@ dimensions = () type = integer intent = in - optional = F [clam] standard_name = entrainment_rate_coefficient_for_deep_convection long_name = entrainment rate coefficient for deep conv. @@ -543,7 +483,6 @@ type = real kind = kind_phys intent = in - optional = F [c0s] standard_name = rain_conversion_parameter_for_deep_convection long_name = convective rain conversion parameter for deep conv. @@ -552,7 +491,6 @@ type = real kind = kind_phys intent = in - optional = F [c1] standard_name = detrainment_conversion_parameter_for_deep_convection long_name = convective detrainment conversion parameter for deep conv. @@ -561,7 +499,6 @@ type = real kind = kind_phys intent = in - optional = F [betal] standard_name = downdraft_fraction_reaching_surface_over_land_for_deep_convection long_name = downdraft fraction reaching surface over land for deep conv. @@ -570,7 +507,6 @@ type = real kind = kind_phys intent = in - optional = F [betas] standard_name = downdraft_fraction_reaching_surface_over_water_for_deep_convection long_name = downdraft fraction reaching surface over water for deep conv. @@ -579,7 +515,6 @@ type = real kind = kind_phys intent = in - optional = F [evef] standard_name = rain_evaporation_coefficient_for_convection long_name = convective rain evaporation coefficient for convection @@ -588,7 +523,6 @@ type = real kind = kind_phys intent = in - optional = F [pgcon] standard_name = momentum_transport_reduction_factor_due_to_pressure_gradient_force_for_deep_convection long_name = reduction factor in momentum transport due to deep conv. induced pressure gradient force @@ -597,7 +531,6 @@ type = real kind = kind_phys intent = in - optional = F [asolfac] standard_name = aerosol_aware_multiplicative_rain_conversion_parameter_for_deep_convection long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep conv. @@ -606,7 +539,6 @@ type = real kind = kind_phys intent = in - optional = F [do_ca] standard_name = flag_for_cellular_automata long_name = cellular automata main switch @@ -614,7 +546,6 @@ dimensions = () type = logical intent = in - optional = F [ca_closure] standard_name = flag_for_global_cellular_automata_closure long_name = switch for ca on closure @@ -622,7 +553,6 @@ dimensions = () type = logical intent = in - optional = F [ca_entr] standard_name = flag_for_global_cellular_automata_deep_convective_entrainment long_name = switch for ca on entr @@ -630,7 +560,6 @@ dimensions = () type = logical intent = in - optional = F [ca_trigger] standard_name = flag_for_global_cellular_automata_trigger long_name = switch for ca on trigger @@ -638,7 +567,6 @@ dimensions = () type = logical intent = in - optional = F [nthresh] standard_name = cellular_automata_vertical_velocity_perturbation_threshold_for_deep_convection long_name = threshold used for perturbed vertical velocity @@ -647,7 +575,6 @@ type = real kind = kind_phys intent = in - optional = F [ca_deep] standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process long_name = fraction of cellular automata for deep convection @@ -656,7 +583,6 @@ type = real kind = kind_phys intent = in - optional = F [rainevap] standard_name = physics_field_for_coupling long_name = physics_field_for_coupling @@ -665,7 +591,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -674,7 +599,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -682,4 +606,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/samfshalcnv.f b/physics/samfshalcnv.f index c314809cc..846fb30c1 100644 --- a/physics/samfshalcnv.f +++ b/physics/samfshalcnv.f @@ -104,7 +104,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & & dq, dqsdp, dqsdt, dt, & dt2, dtmax, dtmin, dxcrt, & dv1h, dv2h, dv3h, - & dv1q, dv2q, dv3q, + & dv2q, & dz, dz1, e1, & el2orc, elocp, aafac, cm, & es, etah, h1, @@ -188,7 +188,12 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & & uo(im,km), vo(im,km), qeso(im,km), & ctr(im,km,ntr), ctro(im,km,ntr) ! for aerosol transport - real(kind=kind_phys) qaero(im,km,ntc) +! real(kind=kind_phys) qaero(im,km,ntc) +c variables for tracer wet deposition, + real(kind=kind_phys), dimension(im,km,ntc) :: chem_c, chem_pw, + & wet_dep + real(kind=kind_phys), parameter :: escav = 0.8 ! wet scavenging efficiency +! ! for updraft velocity calculation real(kind=kind_phys) wu2(im,km), buo(im,km), drag(im,km) real(kind=kind_phys) wc(im), scaldfunc(im), sigmagfm(im) @@ -208,6 +213,14 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & & zi(im,km), pwo(im,km), c0t(im,km), & sumx(im), tx1(im), cnvwt(im,km) &, rhbar(im) +! +! variables for Total Variation Diminishing (TVD) flux-limiter scheme +! on environmental subsidence and uplifting +! + real(kind=kind_phys) q_diff(im,0:km-1), e_diff(im,0:km-1,ntr), + & flxtvd(im,km-1) + real(kind=kind_phys) rrkp, phkp + real(kind=kind_phys) tsumn(im), tsump(im), rtnp(im) ! logical do_aerosols, totflg, cnvflg(im), flg(im) ! @@ -252,6 +265,11 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & c initialize arrays c !> - Initialize column-integrated and other single-value-per-column variable arrays. +! + chem_c = 0. + chem_pw = 0. + wet_dep = 0. +! if(hwrf_samfshal) then do i=1,im cnvflg(i) = .true. @@ -966,7 +984,12 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & enddo if (.not.hwrf_samfshal) then - do n = 1, ntr + if (do_aerosols) then + kk = itc -3 + else + kk = ntr + endif + do n = 1, kk do k = 2, km1 do i = 1, im if (cnvflg(i)) then @@ -981,6 +1004,28 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & enddo enddo enddo + if (do_aerosols) then + do n = 1, ntc + kk = n + itc -3 + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < kmax(i)) then + dz = zi(i,k) - zi(i,k-1) + tem = 0.25 * (xlamue(i,k)+xlamue(i,k-1)) * dz + factor = 1. + tem + ecko(i,k,kk) = ((1. - tem) * ecko(i,k-1,kk) + tem * + & (ctro(i,k,kk) + ctro(i,k-1,kk))) / factor + chem_c(i,k,n) = escav * fscav(n) * ecko(i,k,kk) + tem = chem_c(i,k,n) / (1. + c0t(i,k) * dz) + chem_pw(i,k,n) = c0t(i,k) * dz * tem * eta(i,k-1) + ecko(i,k,kk) = tem + ecko(i,k,kk) - chem_c(i,k,n) + endif + endif + enddo + enddo + enddo + endif endif c c taking account into convection inhibition due to existence of @@ -1520,32 +1565,31 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & dv1h = heo(i,k) dv2h = .5 * (heo(i,k) + heo(i,k-1)) dv3h = heo(i,k-1) - dv1q = qo(i,k) dv2q = .5 * (qo(i,k) + qo(i,k-1)) - dv3q = qo(i,k-1) c tem = 0.5 * (xlamue(i,k)+xlamue(i,k-1)) tem1 = xlamud(i) + + factor = grav / dp cj dellah(i,k) = dellah(i,k) + & ( eta(i,k)*dv1h - eta(i,k-1)*dv3h & - tem*eta(i,k-1)*dv2h*dz & + tem1*eta(i,k-1)*.5*(hcko(i,k)+hcko(i,k-1))*dz - & ) *grav/dp + & ) * factor cj dellaq(i,k) = dellaq(i,k) + - & ( eta(i,k)*dv1q - eta(i,k-1)*dv3q - & - tem*eta(i,k-1)*dv2q*dz + & ( - tem*eta(i,k-1)*dv2q*dz & + tem1*eta(i,k-1)*.5*(qrcko(i,k)+qcko(i,k-1))*dz - & ) *grav/dp + & ) * factor cj tem1=eta(i,k)*(uo(i,k)-ucko(i,k)) tem2=eta(i,k-1)*(uo(i,k-1)-ucko(i,k-1)) - dellau(i,k) = dellau(i,k) + (tem1-tem2) * grav/dp + dellau(i,k) = dellau(i,k) + (tem1-tem2) * factor cj tem1=eta(i,k)*(vo(i,k)-vcko(i,k)) tem2=eta(i,k-1)*(vo(i,k-1)-vcko(i,k-1)) - dellav(i,k) = dellav(i,k) + (tem1-tem2) * grav/dp + dellav(i,k) = dellav(i,k) + (tem1-tem2) * factor cj endif endif @@ -1559,8 +1603,8 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & if(k > kb(i) .and. k < ktcon(i)) then dp = 1000. * del(i,k) cj - tem1=eta(i,k)*(ctro(i,k,n)-ecko(i,k,n)) - tem2=eta(i,k-1)*(ctro(i,k-1,n)-ecko(i,k-1,n)) + tem1 = -eta(i,k) * ecko(i,k,n) + tem2 = -eta(i,k-1) * ecko(i,k-1,n) dellae(i,k,n) = dellae(i,k,n) + (tem1-tem2) * grav/dp cj endif @@ -1576,21 +1620,15 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & if(cnvflg(i)) then indx = ktcon(i) dp = 1000. * del(i,indx) - dv1h = heo(i,indx-1) - dellah(i,indx) = eta(i,indx-1) * - & (hcko(i,indx-1) - dv1h) * grav / dp - dv1q = qo(i,indx-1) - dellaq(i,indx) = eta(i,indx-1) * - & (qcko(i,indx-1) - dv1q) * grav / dp - dellau(i,indx) = eta(i,indx-1) * - & (ucko(i,indx-1) - uo(i,indx-1)) * grav / dp - dellav(i,indx) = eta(i,indx-1) * - & (vcko(i,indx-1) - vo(i,indx-1)) * grav / dp + tem = eta(i,indx-1) * grav / dp + dellah(i,indx) = tem * (hcko(i,indx-1) - heo(i,indx-1)) + dellaq(i,indx) = tem * qcko(i,indx-1) + dellau(i,indx) = tem * (ucko(i,indx-1) - uo(i,indx-1)) + dellav(i,indx) = tem * (vcko(i,indx-1) - vo(i,indx-1)) c c cloud water c - dellal(i,indx) = eta(i,indx-1) * - & qlko_ktcon(i) * grav / dp + dellal(i,indx) = tem * qlko_ktcon(i) endif enddo if (.not.hwrf_samfshal) then @@ -1600,12 +1638,125 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & indx = ktcon(i) dp = 1000. * del(i,indx) dellae(i,indx,n) = eta(i,indx-1) * - & (ecko(i,indx-1,n) - ctro(i,indx-1,n)) * grav / dp + & ecko(i,indx-1,n) * grav / dp endif enddo enddo endif ! +! compute change rates due to environmental subsidence & uplift +! using a positive definite TVD flux-limiter scheme +! +! for moisture +! + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + q_diff(i,k) = q1(i,k) - q1(i,k+1) + endif + enddo + enddo + do i=1,im + if(cnvflg(i)) then + if(q1(i,1) >= 0.) then + q_diff(i,0) = max(0.,2.*q1(i,1)-q1(i,2))- + & q1(i,1) + else + q_diff(i,0) = min(0.,2.*q1(i,1)-q1(i,2))- + & q1(i,1) + endif + endif + enddo +! + flxtvd = 0. + do k = 1, km1 + do i = 1, im + if(cnvflg(i) .and. + & (k >= kb(i) .and. k < ktcon(i))) then + if(eta(i,k) > 0.) then + rrkp = 0. + if(abs(q_diff(i,k)) > 1.e-22) + & rrkp = q_diff(i,k+1) / q_diff(i,k) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = q1(i,k+1) + + & phkp*(qo(i,k)-q1(i,k+1)) + flxtvd(i,k) = eta(i,k) * tem1 + endif + endif + enddo + enddo +! + do k = 2, km1 + do i = 1, im + if(cnvflg(i) .and. + & (k > kb(i) .and. k <= ktcon(i))) then + dp = 1000. * del(i,k) + dellaq(i,k) = dellaq(i,k) + + & (flxtvd(i,k) - flxtvd(i,k-1)) * grav/dp + endif + enddo + enddo +! +! for tracers including TKE & ozone +! + if (.not.hwrf_samfshal) then +! + do n=1,ntr + do k=1,km1 + do i=1,im + if(cnvflg(i) .and. k <= ktcon(i)) then + e_diff(i,k,n) = ctr(i,k,n) - ctr(i,k+1,n) + endif + enddo + enddo + do i=1,im + if(cnvflg(i)) then + if(ctr(i,1,n) >= 0.) then + e_diff(i,0,n) = max(0.,2.*ctr(i,1,n)-ctr(i,2,n))- + & ctr(i,1,n) + else + e_diff(i,0,n) = min(0.,2.*ctr(i,1,n)-ctr(i,2,n))- + & ctr(i,1,n) + endif + endif + enddo + enddo +! + do n=1,ntr +! + flxtvd = 0. + do k= 1, km1 + do i = 1, im + if(cnvflg(i) .and. + & (k >= kb(i) .and. k < ktcon(i))) then + if(eta(i,k) > 0.) then + rrkp = 0. + if(abs(e_diff(i,k,n)) > 1.e-22) + & rrkp = e_diff(i,k+1,n) / e_diff(i,k,n) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + tem1 = ctr(i,k+1,n) + + & phkp*(ctro(i,k,n)-ctr(i,k+1,n)) + flxtvd(i,k) = eta(i,k) * tem1 + endif + endif + enddo + enddo +! + do k = 2, km1 + do i = 1, im + if(cnvflg(i) .and. + & (k > kb(i) .and. k <= ktcon(i))) then + dp = 1000. * del(i,k) + dellae(i,k,n) = dellae(i,k,n) + + & (flxtvd(i,k) - flxtvd(i,k-1)) * grav/dp + endif + enddo + enddo +! + enddo +! + endif +! ! compute convective turn-over time ! !> - Following Bechtold et al. (2008) \cite bechtold_et_al_2008, calculate the convective turnover time using the mean updraft velocity (wc) and the cloud depth. It is also proportional to the grid size (gdx). @@ -1694,15 +1845,15 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & ! !> - Transport aerosols if present ! - if (.not.hwrf_samfshal) then - if (do_aerosols) - & call samfshalcnv_aerosols(im, im, km, itc, ntc, ntr, delt, -! & xlamde, xlamdd, cnvflg, jmin, kb, kmax, kbcon, ktcon, fscav, - & cnvflg, kb, kmax, kbcon, ktcon, fscav, -! & edto, xlamd, xmb, c0t, eta, etad, zi, xlamue, xlamud, delp, - & xmb, c0t, eta, zi, xlamue, xlamud, delp, - & qtr, qaero) - endif +! if (.not.hwrf_samfshal) then +! if (do_aerosols) +! & call samfshalcnv_aerosols(im, im, km, itc, ntc, ntr, delt, +!! & xlamde, xlamdd, cnvflg, jmin, kb, kmax, kbcon, ktcon, fscav, +! & cnvflg, kb, kmax, ktcon, fscav, +!! & edto, xlamd, xmb, c0t, eta, etad, zi, xlamue, xlamud, delp, +! & xmb, c0t, eta, zi, xlamue, xlamud, delp, +! & qtr, qaero) +! endif ! !> ## For the "feedback control", calculate updated values of the state variables by multiplying the cloud base mass flux and the tendencies calculated per unit cloud base mass flux from the static control. !! - Recalculate saturation specific humidity. @@ -1752,30 +1903,183 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & u1(i,k) = u1(i,k) + dellau(i,k) * xmb(i) * dt2 v1(i,k) = v1(i,k) + dellav(i,k) * xmb(i) * dt2 dp = 1000. * del(i,k) - delhbar(i) = delhbar(i) + dellah(i,k)*xmb(i)*dp/grav - delqbar(i) = delqbar(i) + dellaq(i,k)*xmb(i)*dp/grav - deltbar(i) = deltbar(i) + dellat*xmb(i)*dp/grav - delubar(i) = delubar(i) + dellau(i,k)*xmb(i)*dp/grav - delvbar(i) = delvbar(i) + dellav(i,k)*xmb(i)*dp/grav + tem = xmb(i) * dp / grav + delhbar(i) = delhbar(i) + tem * dellah(i,k) + delqbar(i) = delqbar(i) + tem * dellaq(i,k) + deltbar(i) = deltbar(i) + tem * dellat + delubar(i) = delubar(i) + tem * dellau(i,k) + delvbar(i) = delvbar(i) + tem * dellav(i,k) + endif + endif + enddo + enddo +! +! Negative moisture is set to zero after borrowing it from +! positive values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then + if(q1(i,k) < 0.) tsumn(i) = tsumn(i) + q1(i,k) + if(q1(i,k) > 0.) tsump(i) = tsump(i) + q1(i,k) endif endif enddo enddo + do i = 1,im + if(cnvflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,km + do i = 1,im + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(q1(i,k) < 0.) q1(i,k)= 0. + if(q1(i,k) > 0.) q1(i,k)=(1.+rtnp(i))*q1(i,k) + else + if(q1(i,k) < 0.) q1(i,k)=(1.+rtnp(i))*q1(i,k) + if(q1(i,k) > 0.) q1(i,k)=0. + endif + endif + endif + endif + enddo + enddo +! if (.not.hwrf_samfshal) then +! do n = 1, ntr - kk = n+2 - do k = 1, km +! + do k = 1, km + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then + ctr(i,k,n) = ctr(i,k,n)+dellae(i,k,n)*xmb(i)*dt2 + dp = 1000. * del(i,k) + delebar(i,n)=delebar(i,n)+dellae(i,k,n)*xmb(i)*dp/grav + endif + endif + enddo + enddo +! +! Negative TKE, ozone, and aerosols are set to zero after borrowing them +! from positive values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then + if(ctr(i,k,n) < 0.) tsumn(i) = tsumn(i) + ctr(i,k,n) + if(ctr(i,k,n) > 0.) tsump(i) = tsump(i) + ctr(i,k,n) + endif + endif + enddo + enddo + do i = 1,im + if(cnvflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,km + do i = 1,im + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(ctr(i,k,n)<0.) ctr(i,k,n)=0. + if(ctr(i,k,n)>0.) ctr(i,k,n)=(1.+rtnp(i))*ctr(i,k,n) + else + if(ctr(i,k,n)<0.) ctr(i,k,n)=(1.+rtnp(i))*ctr(i,k,n) + if(ctr(i,k,n)>0.) ctr(i,k,n)=0. + endif + endif + endif + endif + enddo + enddo +! + kk = n+2 + do k = 1, km do i = 1, im - if (cnvflg(i) .and. k <= kmax(i)) then - if(k <= ktcon(i)) then - ctr(i,k,n) = ctr(i,k,n)+dellae(i,k,n)*xmb(i)*dt2 - delebar(i,n)=delebar(i,n)+dellae(i,k,n)*xmb(i)*dp/grav + if (cnvflg(i)) then + if(k > kb(i) .and. k <= ktcon(i)) then qtr(i,k,kk) = ctr(i,k,n) endif endif enddo + enddo +! enddo - enddo +! + if (do_aerosols) then +! + do n = 1, ntc +! +! convert wet deposition to total mass deposited over dt2 and dp + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < ktcon(i)) then + dp = 1000. * del(i,k) + wet_dep(i,k,n) = chem_pw(i,k,n)*grav/dp + wet_dep(i,k,n) = wet_dep(i,k,n)*xmb(i)*dt2*dp + endif + endif + enddo + enddo +! + kk = n + itc - 1 + do k = 2, km1 + do i = 1, im + if (cnvflg(i)) then + if(k > kb(i) .and. k < ktcon(i)) then + dp = 1000. * del(i,k) + if (qtr(i,k,kk) < 0.) then +! borrow negative mass from wet deposition + tem = -qtr(i,k,kk)*dp + if(wet_dep(i,k,n) >= tem) then + wet_dep(i,k,n) = wet_dep(i,k,n) - tem + qtr(i,k,kk) = 0. + else + wet_dep(i,k,n) = 0. + qtr(i,k,kk) = qtr(i,k,kk)+wet_dep(i,k,n)/dp + endif + endif + endif + endif + enddo + enddo +! + enddo +! + endif +! endif ! !> - Recalculate saturation specific humidity using the updated temperature. @@ -1832,10 +2136,11 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & qcond(i) = evef * (q1(i,k) - qeso(i,k)) & / (1. + el2orc * qeso(i,k) / t1(i,k)**2) dp = 1000. * del(i,k) + factor = dp / grav if(rn(i) > 0. .and. qcond(i) < 0.) then qevap(i) = -qcond(i) * (1.-exp(-.32*sqrt(dt2*rn(i)))) qevap(i) = min(qevap(i), rn(i)*1000.*grav/dp) - delq2(i) = delqev(i) + .001 * qevap(i) * dp / grav + delq2(i) = delqev(i) + .001 * qevap(i) * factor endif if(rn(i) > 0. .and. qcond(i) < 0. .and. & delq2(i) > rntot(i)) then @@ -1843,7 +2148,7 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & flg(i) = .false. endif if(rn(i) > 0. .and. qevap(i) > 0.) then - tem = .001 * dp / grav + tem = .001 * factor tem1 = qevap(i) * tem if(tem1 > rn(i)) then qevap(i) = rn(i) / tem @@ -1855,10 +2160,10 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & t1(i,k) = t1(i,k) - elocp * qevap(i) deltv(i) = - elocp*qevap(i)/dt2 delq(i) = + qevap(i)/dt2 - delqev(i) = delqev(i) + .001*dp*qevap(i)/grav + delqev(i) = delqev(i) + tem * qevap(i) endif - delqbar(i) = delqbar(i) + delq(i)*dp/grav - deltbar(i) = deltbar(i) + deltv(i)*dp/grav + delqbar(i) = delqbar(i) + delq(i) * factor + deltbar(i) = deltbar(i) + deltv(i) * factor endif endif enddo @@ -1946,20 +2251,20 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & ! endif !> - Store aerosol concentrations if present - if (.not. hwrf_samfshal) then - if (do_aerosols) then - do n = 1, ntc - kk = n + itc - 1 - do k = 1, km - do i = 1, im - if(cnvflg(i) .and. rn(i) > 0.) then - if (k <= kmax(i)) qtr(i,k,kk) = qaero(i,k,n) - endif - enddo - enddo - enddo - endif - endif +! if (.not. hwrf_samfshal) then +! if (do_aerosols) then +! do n = 1, ntc +! kk = n + itc - 1 +! do k = 1, km +! do i = 1, im +! if(cnvflg(i) .and. rn(i) > 0.) then +! if (k <= kmax(i)) qtr(i,k,kk) = qaero(i,k,n) +! endif +! enddo +! enddo +! enddo +! endif +! endif ! ! hchuang code change ! diff --git a/physics/samfshalcnv.meta b/physics/samfshalcnv.meta index d72bb73cf..cdc61c1a3 100644 --- a/physics/samfshalcnv.meta +++ b/physics/samfshalcnv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_samf] standard_name = identifier_for_scale_aware_mass_flux_shallow_convection long_name = flag for SAMF shallow convection scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -31,7 +29,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [ntc] standard_name = number_of_chemical_tracers long_name = number of chemical tracers @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = in - optional = F [cvap] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = physics time step @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [ntk] standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer long_name = index for turbulent kinetic energy in the convectively transported tracer array @@ -192,7 +172,6 @@ dimensions = () type = integer intent = in - optional = F [ntr] standard_name = number_of_tracers_for_samf long_name = number of tracers for scale-aware mass flux schemes @@ -200,7 +179,6 @@ dimensions = () type = integer intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [prslp] standard_name = air_pressure long_name = mean layer pressure @@ -218,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [psp] standard_name = surface_air_pressure long_name = surface pressure @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = layer geopotential @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [qtr] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = inout - optional = F [q1] standard_name = specific_humidity_of_new_state long_name = updated vapor specific humidity @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = inout - optional = F [t1] standard_name = air_temperature_of_new_state long_name = updated temperature @@ -263,7 +235,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -272,7 +243,6 @@ type = real kind = kind_phys intent = inout - optional = F [v1] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -281,7 +251,6 @@ type = real kind = kind_phys intent = inout - optional = F [fscav] standard_name = chemical_tracer_scavenging_fractions long_name = array of aerosol scavenging coefficients @@ -290,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [rn] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep @@ -299,7 +267,6 @@ type = real kind = kind_phys intent = out - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index at cloud base @@ -307,7 +274,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index at cloud top @@ -315,7 +281,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -323,7 +288,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [islimsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -331,7 +295,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [garea] standard_name = cell_area long_name = grid cell area @@ -340,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = F [dot] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [ncloud] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -357,7 +318,6 @@ dimensions = () type = integer intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL top height @@ -366,7 +326,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -375,7 +334,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -384,7 +342,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -393,7 +350,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -402,7 +358,6 @@ type = real kind = kind_phys intent = out - optional = F [clam] standard_name = entrainment_rate_coefficient_for_shallow_convection long_name = entrainment rate coefficient for shal conv. @@ -411,7 +366,6 @@ type = real kind = kind_phys intent = in - optional = F [c0s] standard_name = rain_conversion_parameter_for_shallow_convection long_name = convective rain conversion parameter for shal conv. @@ -420,7 +374,6 @@ type = real kind = kind_phys intent = in - optional = F [c1] standard_name = detrainment_conversion_parameter_for_shallow_convection long_name = convective detrainment conversion parameter for shal conv. @@ -429,7 +382,6 @@ type = real kind = kind_phys intent = in - optional = F [evef] standard_name = rain_evaporation_coefficient_for_convection long_name = convective rain evaporation coefficient for convection @@ -438,7 +390,6 @@ type = real kind = kind_phys intent = in - optional = F [pgcon] standard_name = momentum_transport_reduction_factor_due_to_pressure_gradient_force_for_shallow_convection long_name = reduction factor in momentum transport due to shal conv. induced pressure gradient force @@ -447,7 +398,6 @@ type = real kind = kind_phys intent = in - optional = F [asolfac] standard_name = aerosol_aware_multiplicative_rain_conversion_parameter_for_shallow_convection long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shal conv. @@ -456,7 +406,6 @@ type = real kind = kind_phys intent = in - optional = F [hwrf_samfshal] standard_name = flag_for_hurricane_specific_code_in_scale_aware_mass_flux_shallow_convection long_name = flag for hwrf samfshalcnv scheme @@ -464,7 +413,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -473,7 +421,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -481,4 +428,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sascnvn.meta b/physics/sascnvn.meta index 1ad5fa124..082b87d09 100644 --- a/physics/sascnvn.meta +++ b/physics/sascnvn.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [imfdeepcnv_sas] standard_name = identifier_for_simplified_arakawa_schubert_deep_convection long_name = flag for SAS deep convection scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -31,7 +29,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -39,7 +36,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -53,7 +49,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -62,7 +57,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -71,7 +65,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -80,7 +73,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -89,7 +81,6 @@ type = real kind = kind_phys intent = in - optional = F [t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -98,7 +89,6 @@ type = real kind = kind_phys intent = in - optional = F [rgas] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -107,7 +97,6 @@ type = real kind = kind_phys intent = in - optional = F [cvap] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -116,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -125,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -134,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -143,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -151,7 +136,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -159,7 +143,6 @@ dimensions = () type = integer intent = in - optional = F [jcap] standard_name = number_of_spectral_wave_truncation_for_simplified_arakawa_schubert_convection long_name = number of spectral wave trancation used only by sascnv and sascnvn @@ -167,7 +150,6 @@ dimensions = () type = integer intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = physics timestep @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [prslp] standard_name = air_pressure long_name = mean layer pressure @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [psp] standard_name = surface_air_pressure long_name = surface pressure @@ -203,7 +182,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -212,7 +190,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -221,7 +198,6 @@ type = real kind = kind_phys intent = inout - optional = F [qli] 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 @@ -230,7 +206,6 @@ type = real kind = kind_phys intent = inout - optional = F [q1] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -239,7 +214,6 @@ type = real kind = kind_phys intent = inout - optional = F [t1] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -248,7 +222,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -257,7 +230,6 @@ type = real kind = kind_phys intent = inout - optional = F [v1] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -266,7 +238,6 @@ type = real kind = kind_phys intent = inout - optional = F [cldwrk] standard_name = cloud_work_function long_name = cloud work function @@ -275,7 +246,6 @@ type = real kind = kind_phys intent = out - optional = F [rn] standard_name = lwe_thickness_of_deep_convective_precipitation_amount long_name = deep convective rainfall amount on physics timestep @@ -284,7 +254,6 @@ type = real kind = kind_phys intent = out - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -292,7 +261,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -300,7 +268,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -308,7 +275,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [islimsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -316,7 +282,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dot] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -325,7 +290,6 @@ type = real kind = kind_phys intent = in - optional = F [ncloud] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -333,7 +297,6 @@ dimensions = () type = integer intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -342,7 +305,6 @@ type = real kind = kind_phys intent = out - optional = F [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -351,7 +313,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -360,7 +321,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -369,7 +329,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -378,7 +337,6 @@ type = real kind = kind_phys intent = inout - optional = F [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -387,7 +345,6 @@ type = real kind = kind_phys intent = inout - optional = F [qicn] standard_name = mass_fraction_of_convective_cloud_ice long_name = mass fraction of convective cloud ice water @@ -396,7 +353,6 @@ type = real kind = kind_phys intent = inout - optional = F [w_upi] standard_name = vertical_velocity_for_updraft long_name = vertical velocity for updraft @@ -405,7 +361,6 @@ type = real kind = kind_phys intent = inout - optional = F [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -414,7 +369,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_mfd] standard_name = detrained_mass_flux long_name = detrained mass flux @@ -423,7 +377,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_dqldt] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -432,7 +385,6 @@ type = real kind = kind_phys intent = inout - optional = F [clcn] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -441,7 +393,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_fice] standard_name = ice_fraction_in_convective_tower long_name = ice fraction in convective tower @@ -450,7 +401,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_ndrop] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -459,7 +409,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnv_nice] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -468,7 +417,6 @@ type = real kind = kind_phys intent = inout - optional = F [mp_phys] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -476,7 +424,6 @@ dimensions = () type = integer intent = in - optional = F [mp_phys_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -484,7 +431,6 @@ dimensions = () type = integer intent = in - optional = F [clam] standard_name = entrainment_rate_coefficient_for_deep_convection long_name = entrainment rate coefficient for deep convection @@ -493,7 +439,6 @@ type = real kind = kind_phys intent = in - optional = F [c0] standard_name = rain_conversion_parameter_for_deep_convection long_name = convective rain conversion parameter for deep convection @@ -502,7 +447,6 @@ type = real kind = kind_phys intent = in - optional = F [c1] standard_name = detrainment_conversion_parameter_for_deep_convection long_name = convective detrainment conversion parameter for deep convection @@ -511,7 +455,6 @@ type = real kind = kind_phys intent = in - optional = F [betal] standard_name = downdraft_fraction_reaching_surface_over_land_for_deep_convection long_name = downdraft fraction reaching surface over land for deep convection @@ -520,7 +463,6 @@ type = real kind = kind_phys intent = in - optional = F [betas] standard_name = downdraft_fraction_reaching_surface_over_water_for_deep_convection long_name = downdraft fraction reaching surface over water for deep convection @@ -529,7 +471,6 @@ type = real kind = kind_phys intent = in - optional = F [evfact] standard_name = rain_evaporation_coefficient_over_ocean_for_deep_convection long_name = convective rain evaporation coefficient for deep convection @@ -538,7 +479,6 @@ type = real kind = kind_phys intent = in - optional = F [evfactl] standard_name = rain_evaporation_coefficient_over_land_for_deep_convection long_name = convective rain evaporation coefficient over land for deep convection @@ -547,7 +487,6 @@ type = real kind = kind_phys intent = in - optional = F [pgcon] standard_name = momentum_transport_reduction_factor_due_to_pressure_gradient_force_for_deep_convection long_name = reduction factor in momentum transport due to deep convection induced pressure gradient force @@ -556,7 +495,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -565,7 +503,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -573,4 +510,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/satmedmfvdif.meta b/physics/satmedmfvdif.meta index 6f7c10357..be9aa23fe 100644 --- a/physics/satmedmfvdif.meta +++ b/physics/satmedmfvdif.meta @@ -14,9 +14,7 @@ dimensions = () type = logical intent = in - optional = F intent = in - optional = F [isatmedmf] standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL long_name = choice of scale-aware TKE moist EDMF PBL scheme @@ -24,7 +22,6 @@ dimensions = () type = integer intent = in - optional = F [isatmedmf_vdif] standard_name = choice_of_original_scale_aware_TKE_moist_EDMF_PBL long_name = choice of original scale-aware TKE moist EDMF PBL scheme @@ -32,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -41,7 +37,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -49,7 +44,6 @@ dimensions = () type = integer intent = out - optional = F ##################################################################### [ccpp-arg-table] @@ -62,7 +56,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -70,7 +63,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -78,7 +70,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_for_liquid_cloud_condensate_vertical_diffusion_tracer long_name = tracer index for cloud condensate (or liquid water) @@ -86,7 +77,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_for_ice_cloud_condensate_vertical_diffusion_tracer long_name = tracer index for ice water in the vertically diffused tracer array @@ -94,7 +84,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer long_name = index for turbulent kinetic energy in the vertically diffused tracer array @@ -102,7 +91,6 @@ dimensions = () type = integer intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -111,7 +99,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -120,7 +107,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -129,7 +115,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -138,7 +123,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -147,7 +131,6 @@ type = real kind = kind_phys intent = in - optional = F [hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -156,7 +139,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -165,7 +147,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -174,7 +155,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -183,7 +163,6 @@ type = real kind = kind_phys intent = in - optional = F [dv] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -192,7 +171,6 @@ type = real kind = kind_phys intent = inout - optional = F [du] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -201,7 +179,6 @@ type = real kind = kind_phys intent = inout - optional = F [tdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -210,7 +187,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtg] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -219,7 +195,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = x component of layer wind @@ -228,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = y component of layer wind @@ -237,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = layer mean air temperature @@ -246,7 +219,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -255,7 +227,6 @@ type = real kind = kind_phys intent = in - optional = F [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate @@ -264,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [hlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky longwave heating rate @@ -273,7 +243,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -282,7 +251,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of the grid cell @@ -291,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [psk] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the surface interface @@ -300,7 +267,6 @@ type = real kind = kind_phys intent = in - optional = F [rbsoil] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -309,7 +275,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -318,7 +283,6 @@ type = real kind = kind_phys intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -327,7 +291,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -336,7 +299,6 @@ type = real kind = kind_phys intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -345,7 +307,6 @@ type = real kind = kind_phys intent = in - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -354,7 +315,6 @@ type = real kind = kind_phys intent = in - optional = F [tsea] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -363,7 +323,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -372,7 +331,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -381,7 +339,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -390,7 +347,6 @@ type = real kind = kind_phys intent = in - optional = F [spd1] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -399,7 +355,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -407,7 +362,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -416,7 +370,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -425,7 +378,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -434,7 +386,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -443,7 +394,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -452,7 +402,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -461,7 +410,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -470,7 +418,6 @@ type = real kind = kind_phys intent = in - optional = F [dspheat] standard_name = flag_TKE_dissipation_heating long_name = flag for using TKE dissipation heating @@ -478,7 +425,6 @@ dimensions = () type = logical intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -487,7 +433,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -496,7 +441,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -505,7 +449,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -514,7 +457,6 @@ type = real kind = kind_phys intent = out - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -523,7 +465,6 @@ type = real kind = kind_phys intent = out - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -531,7 +472,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [xkzm_m] standard_name = atmosphere_momentum_diffusivity_due_to_background long_name = background value of momentum diffusivity @@ -540,7 +480,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_h] standard_name = atmosphere_heat_diffusivity_due_to_background long_name = background value of heat diffusivity @@ -549,7 +488,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_s] standard_name = sigma_pressure_threshold_at_upper_extent_of_background_diffusion long_name = sigma level threshold for background diffusivity @@ -558,7 +496,6 @@ type = real kind = kind_phys intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -567,7 +504,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -575,7 +511,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -583,7 +518,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -591,7 +525,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -599,7 +532,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -607,7 +539,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -615,7 +546,6 @@ dimensions = () type = integer intent = in - optional = F [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -623,7 +553,6 @@ dimensions = () type = integer intent = in - optional = F [gen_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies @@ -631,7 +560,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -639,7 +567,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -648,7 +575,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -656,4 +582,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/satmedmfvdifq.F b/physics/satmedmfvdifq.F index bb02ccba9..6e0c1bd80 100644 --- a/physics/satmedmfvdifq.F +++ b/physics/satmedmfvdifq.F @@ -67,7 +67,7 @@ end subroutine satmedmfvdifq_finalize !! (mfscuq.f). !! \section detail_satmedmfvidfq GFS satmedmfvdifq Detailed Algorithm !! @{ - subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & + subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntrw,ntiw,ntke, & & grav,rd,cp,rv,hvap,hfus,fv,eps,epsm1, & & dv,du,tdt,rtg,u1,v1,t1,q1,swh,hlw,xmu,garea,zvfun, & & psk,rbsoil,zorl,u10m,v10m,fm,fh, & @@ -76,7 +76,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & & dspheat,dusfc,dvsfc,dtsfc,dqsfc,hpbl,dkt,dku, & & kinver,xkzm_m,xkzm_h,xkzm_s,dspfac,bl_upfr,bl_dnfr, & & rlmx,elmx,sfc_rlm, & - & ntoz,ntqv,dtend,dtidx,index_of_temperature,index_of_x_wind, & + & ntqv,dtend,dtidx,index_of_temperature,index_of_x_wind, & & index_of_y_wind,index_of_process_pbl,gen_tend,ldiag3d, & & errmsg,errflg) ! @@ -86,7 +86,8 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & implicit none ! !---------------------------------------------------------------------- - integer, intent(in) :: im, km, ntrac, ntcw, ntiw, ntke, ntoz,ntqv + integer, intent(in) :: im, km, ntrac, ntcw, ntrw, ntiw, & + & ntke, ntqv integer, intent(in) :: sfc_rlm integer, intent(in) :: kinver(:) integer, intent(out) :: kpbl(:) @@ -134,7 +135,8 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & !*** !*** local variables !*** - integer i,is,k,kk,n,ndt,km1,kmpbl,kmscu,ntrac1,idtend + integer i,is,k,n,ndt,km1,kmpbl,kmscu,ntrac1,idtend + integer kps,kbx,kmx integer lcld(im),kcld(im),krad(im),mrad(im) integer kx1(im), kpblx(im) ! @@ -187,6 +189,15 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & real(kind=kind_phys) tcdo(im,km), qcdo(im,km,ntrac), & ucdo(im,km), vcdo(im,km), & buod(im,km), xmfd(im,km) +! +! variables for Total Variation Diminishing (TVD) flux-limiter scheme +! + real(kind=kind_phys) e_half(im,km-1), e_diff(im,0:km-1), + & q_half(im,km-1,ntrac-1), + & qh(im,km-1,ntrac-1), + & q_diff(im,0:km-1,ntrac-1) + real(kind=kind_phys) rrkp, phkp + real(kind=kind_phys) tsumn(im), tsump(im), rtnp(im) ! logical pblflg(im), sfcflg(im), flg(im) logical scuflg(im), pcnvflg(im) @@ -241,7 +252,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & parameter(qmin=1.e-8,qlmin=1.e-12,zfmin=1.e-8) parameter(aphi5=5.,aphi16=16.) parameter(elmfac=1.0,elefac=1.0,cql=100.) - parameter(dw2min=1.e-4,dkmax=1000.,xkgdx=3000.) + parameter(dw2min=1.e-4,dkmax=1000.,xkgdx=1000.) parameter(qlcr=3.5e-5,zstblmax=2500.) parameter(xkinv1=0.15,xkinv2=0.3) parameter(h1=0.33333333,hcrinv=250.) @@ -249,15 +260,15 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & parameter(ce0=0.4,cs0=0.2) parameter(rchck=1.5,ndt=20) - gravi=1.0/grav - g=grav - gocp=g/cp + gravi = 1.0 / grav + g = grav + gocp = g / cp ! cont=cp/g ! conq=hvap/g ! conw=1.0/g ! for del in pa !! parameter(cont=1000.*cp/g,conq=1000.*hvap/g,conw=1000./g) !kpa - elocp=hvap/cp - el2orc=hvap*hvap/(rv*cp) + elocp = hvap / cp + el2orc = hvap * hvap / (rv * cp) ! !************************************************************************ ! Initialize CCPP error handling variables @@ -450,11 +461,11 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & cfly(i,k) = 0. clwt = 1.0e-6 * (plyr(i,k)*0.001) if (qlx(i,k) > clwt) then - onemrh= max(1.e-10, 1.0-rhly(i,k)) - tem1 = min(max((onemrh*qstl(i,k))**0.49,0.0001),1.0) - tem1 = cql / tem1 - value = max(min( tem1*qlx(i,k), 50.0), 0.0) - tem2 = sqrt(sqrt(rhly(i,k))) + onemrh = max(1.e-10, 1.0-rhly(i,k)) + tem1 = min(max((onemrh*qstl(i,k))**0.49,0.0001),1.0) + tem1 = cql / tem1 + value = max(min( tem1*qlx(i,k), 50.0), 0.0) + tem2 = sqrt(sqrt(rhly(i,k))) cfly(i,k) = min(max(tem2*(1.0-exp(-value)), 0.0), 1.0) endif enddo @@ -815,14 +826,14 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & endif enddo enddo - do kk = 1, ntrac1 + do n = 1, ntrac1 do k = 1, km do i = 1, im if(pcnvflg(i)) then - qcko(i,k,kk) = q1(i,k,kk) + qcko(i,k,n) = q1(i,k,n) endif if(scuflg(i)) then - qcdo(i,k,kk) = q1(i,k,kk) + qcdo(i,k,n) = q1(i,k,n) endif enddo enddo @@ -1302,6 +1313,126 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo enddo ! +!-------------------------------------------------------- +! compute variables for TVD flux-limiter scheme +! on environmental subsidence and uplifting +! + kps = max(kmpbl, kmscu) +! +! for moisture and tracers including hydrometeors +! + do n=1,ntrac1 + do k=1,kps + do i=1,im + qh(i,k,n) = 0.5 * (q1(i,k,n)+q1(i,k+1,n)) + enddo + enddo + do k=1,kps + do i=1,im + q_diff(i,k,n) = q1(i,k,n) - q1(i,k+1,n) + enddo + enddo + do i=1,im + if(q1(i,1,n) >= 0.) then + q_diff(i,0,n) = max(0.,2.*q1(i,1,n)-q1(i,2,n))- + & q1(i,1,n) + else + q_diff(i,0,n) = min(0.,2.*q1(i,1,n)-q1(i,2,n))- + & q1(i,1,n) + endif + enddo + enddo +! + do n = 1, ntrac1 +! + do k = 1, kps + do i = 1, im + kmx = max(kpbl(i), krad(i)) + q_half(i,k,n) = qh(i,k,n) + if((pcnvflg(i) .or. scuflg(i)) .and. k < kmx) then + tem = 0. + if(pcnvflg(i) .and. k < kpbl(i)) then + tem = xmf(i,k) + endif + if(scuflg(i) .and. + & (k >= mrad(i) .and. k < krad(i))) then + tem = tem - xmfd(i,k) + endif + if(tem > 0.) then + rrkp = 0. + if(abs(q_diff(i,k,n)) > 1.e-22) + & rrkp = q_diff(i,k+1,n) / q_diff(i,k,n) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + q_half(i,k,n) = q1(i,k+1,n) + + & phkp*(qh(i,k,n)-q1(i,k+1,n)) + elseif (tem < 0.) then + rrkp = 0. + if(abs(q_diff(i,k,n)) > 1.e-22) + & rrkp = q_diff(i,k-1,n) / q_diff(i,k,n) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + q_half(i,k,n) = q1(i,k,n) + + & phkp*(qh(i,k,n)-q1(i,k,n)) + endif + endif + enddo + enddo +! + enddo +! +! for tke +! + do k=1,kps + do i=1,im + tkeh(i,k) = 0.5 * (tke(i,k)+tke(i,k+1)) + enddo + enddo + do k=1,kps + do i=1,im + e_diff(i,k) = tke(i,k) - tke(i,k+1) + enddo + enddo + do i=1,im + if(tke(i,1) >= 0.) then + e_diff(i,0) = max(0.,2.*tke(i,1)-tke(i,2))- + & tke(i,1) + else + e_diff(i,0) = min(0.,2.*tke(i,1)-tke(i,2))- + & tke(i,1) + endif + enddo +! + do k = 1, kps + do i = 1, im + kmx = max(kpbl(i), krad(i)) + e_half(i,k) = tkeh(i,k) + if((pcnvflg(i) .or. scuflg(i)) .and. (k < kmx)) then + tem = 0. + if(pcnvflg(i) .and. k < kpbl(i)) then + tem = xmf(i,k) + endif + if(scuflg(i) .and. + & (k >= mrad(i) .and. k < krad(i))) then + tem = tem - xmfd(i,k) + endif + if(tem > 0.) then + rrkp = 0. + if(abs(e_diff(i,k)) > 1.e-22) + & rrkp = e_diff(i,k+1) / e_diff(i,k) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + e_half(i,k) = tke(i,k+1) + + & phkp*(tkeh(i,k)-tke(i,k+1)) + elseif (tem < 0.) then + rrkp = 0. + if(abs(e_diff(i,k)) > 1.e-22) + & rrkp = e_diff(i,k-1) / e_diff(i,k) + phkp = (rrkp+abs(rrkp)) / (1.+abs(rrkp)) + e_half(i,k) = tke(i,k) + + & phkp*(tkeh(i,k)-tke(i,k)) + endif + endif + enddo + enddo +! !---------------------------------------------------------------------- !> - Compute tridiagonal matrix elements for turbulent kinetic energy ! @@ -1328,10 +1459,9 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & ptem = 0.5 * tem2 * xmf(i,k) ptem1 = dtodsd * ptem ptem2 = dtodsu * ptem - tem = tke(i,k) + tke(i,k+1) ptem = qcko(i,k,ntke) + qcko(i,k+1,ntke) - f1(i,k) = f1(i,k)-(ptem-tem)*ptem1 - f1(i,k+1) = tke(i,k+1)+(ptem-tem)*ptem2 + f1(i,k) = f1(i,k) - ptem * ptem1 + f1(i,k+1) = tke(i,k+1) + ptem * ptem2 else f1(i,k+1) = tke(i,k+1) endif @@ -1341,12 +1471,20 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & ptem = 0.5 * tem2 * xmfd(i,k) ptem1 = dtodsd * ptem ptem2 = dtodsu * ptem - tem = tke(i,k) + tke(i,k+1) ptem = qcdo(i,k,ntke) + qcdo(i,k+1,ntke) - f1(i,k) = f1(i,k) + (ptem - tem) * ptem1 - f1(i,k+1) = f1(i,k+1) - (ptem - tem) * ptem2 + f1(i,k) = f1(i,k) + ptem * ptem1 + f1(i,k+1) = f1(i,k+1) - ptem * ptem2 endif endif +! + kmx = max(kpbl(i), krad(i)) + if((pcnvflg(i) .or. scuflg(i)) .and. (k < kmx)) then + ptem = tem2 * (xmf(i,k) - xmfd(i,k)) + ptem1 = dtodsd * ptem + ptem2 = dtodsu * ptem + f1(i,k) = f1(i,k) + e_half(i,k) * ptem1 + f1(i,k+1) = f1(i,k+1) - e_half(i,k) * ptem2 + endif ! enddo enddo @@ -1354,6 +1492,109 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & !> - Call tridit() to solve tridiagonal problem for TKE c call tridit(im,km,1,al,ad,au,f1,au,f1) +! +! Negative TKE is set to zero after borrowing it from positive +! values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(f1(i,k) < 0.) tsumn(i) = tsumn(i) + f1(i,k) + if(f1(i,k) > 0.) tsump(i) = tsump(i) + f1(i,k) + endif + enddo + enddo + do i = 1,im + if(pcnvflg(i) .or. scuflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f1(i,k) < 0.) f1(i,k) = 0. + if(f1(i,k) > 0.) f1(i,k) = (1.+rtnp(i))*f1(i,k) + else + if(f1(i,k) < 0.) f1(i,k) = (1.+rtnp(i))*f1(i,k) + if(f1(i,k) > 0.) f1(i,k) = 0. + endif + endif + endif + enddo + enddo +! +! To remove negative TKEs which were leaked out of the mass-flux transport layers +! by eddy diffusion or potential negative TKEs from the diffusion scheme, +! positive TKEs are borrowed again now from the entire layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if(f1(i,k) < 0.) tsumn(i) = tsumn(i) + f1(i,k) + if(f1(i,k) > 0.) tsump(i) = tsump(i) + f1(i,k) + enddo + enddo + do i = 1,im + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + enddo + do k = 1,km + do i = 1,im + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f1(i,k) < 0.) f1(i,k) = 0. + if(f1(i,k) > 0.) f1(i,k) = (1.+rtnp(i))*f1(i,k) + else + if(f1(i,k) < 0.) f1(i,k) = (1.+rtnp(i))*f1(i,k) + if(f1(i,k) > 0.) f1(i,k) = 0. + endif + endif + enddo + enddo c !> - Recover the tendency of tke c @@ -1380,10 +1621,10 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & f2(i,1) = q1(i,1,1) + dtdz1(i) * evap(i) enddo if(ntrac1 >= 2) then - do kk = 2, ntrac1 - is = (kk-1) * km + do n = 2, ntrac1 + is = (n-1) * km do i = 1, im - f2(i,1+is) = q1(i,1,kk) + f2(i,1+is) = q1(i,1,n) enddo enddo endif @@ -1411,10 +1652,9 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & ptem = tcko(i,k) + tcko(i,k+1) f1(i,k) = f1(i,k)+dtodsd*dsdzt-(ptem-tem)*ptem1 f1(i,k+1) = t1(i,k+1)-dtodsu*dsdzt+(ptem-tem)*ptem2 - tem = q1(i,k,1) + q1(i,k+1,1) ptem = qcko(i,k,1) + qcko(i,k+1,1) - f2(i,k) = f2(i,k) - (ptem - tem) * ptem1 - f2(i,k+1) = q1(i,k+1,1) + (ptem - tem) * ptem2 + f2(i,k) = f2(i,k) - ptem * ptem1 + f2(i,k+1) = q1(i,k+1,1) + ptem * ptem2 else f1(i,k) = f1(i,k)+dtodsd*dsdzt f1(i,k+1) = t1(i,k+1)-dtodsu*dsdzt @@ -1430,51 +1670,64 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & tem = t1(i,k) + t1(i,k+1) f1(i,k) = f1(i,k) + (ptem - tem) * ptem1 f1(i,k+1) = f1(i,k+1) - (ptem - tem) * ptem2 - tem = q1(i,k,1) + q1(i,k+1,1) ptem = qcdo(i,k,1) + qcdo(i,k+1,1) - f2(i,k) = f2(i,k) + (ptem - tem) * ptem1 - f2(i,k+1) = f2(i,k+1) - (ptem - tem) * ptem2 + f2(i,k) = f2(i,k) + ptem * ptem1 + f2(i,k+1) = f2(i,k+1) - ptem * ptem2 endif endif +! + kmx = max(kpbl(i), krad(i)) + if((pcnvflg(i) .or. scuflg(i)) .and. (k < kmx)) then + ptem = tem2 * (xmf(i,k) - xmfd(i,k)) + ptem1 = dtodsd * ptem + ptem2 = dtodsu * ptem + f2(i,k) = f2(i,k) + q_half(i,k,1) * ptem1 + f2(i,k+1) = f2(i,k+1) - q_half(i,k,1) * ptem2 + endif +! enddo enddo ! if(ntrac1 >= 2) then - do kk = 2, ntrac1 - is = (kk-1) * km + do n = 2, ntrac1 + is = (n-1) * km do k = 1, km1 do i = 1, im + dtodsd = dt2/del(i,k) + dtodsu = dt2/del(i,k+1) + dsig = prsl(i,k)-prsl(i,k+1) + tem2 = dsig * rdzt(i,k) +! if(pcnvflg(i) .and. k < kpbl(i)) then - dtodsd = dt2/del(i,k) - dtodsu = dt2/del(i,k+1) - dsig = prsl(i,k)-prsl(i,k+1) - tem = dsig * rdzt(i,k) - ptem = 0.5 * tem * xmf(i,k) + ptem = 0.5 * tem2 * xmf(i,k) ptem1 = dtodsd * ptem ptem2 = dtodsu * ptem - tem1 = qcko(i,k,kk) + qcko(i,k+1,kk) - tem2 = q1(i,k,kk) + q1(i,k+1,kk) - f2(i,k+is) = f2(i,k+is) - (tem1 - tem2) * ptem1 - f2(i,k+1+is)= q1(i,k+1,kk) + (tem1 - tem2) * ptem2 + ptem = qcko(i,k,n) + qcko(i,k+1,n) + f2(i,k+is) = f2(i,k+is) - ptem * ptem1 + f2(i,k+1+is)= q1(i,k+1,n) + ptem * ptem2 else - f2(i,k+1+is) = q1(i,k+1,kk) + f2(i,k+1+is) = q1(i,k+1,n) endif ! if(scuflg(i)) then if(k >= mrad(i) .and. k < krad(i)) then - dtodsd = dt2/del(i,k) - dtodsu = dt2/del(i,k+1) - dsig = prsl(i,k)-prsl(i,k+1) - tem = dsig * rdzt(i,k) - ptem = 0.5 * tem * xmfd(i,k) + ptem = 0.5 * tem2 * xmfd(i,k) ptem1 = dtodsd * ptem ptem2 = dtodsu * ptem - tem1 = qcdo(i,k,kk) + qcdo(i,k+1,kk) - tem2 = q1(i,k,kk) + q1(i,k+1,kk) - f2(i,k+is) = f2(i,k+is) + (tem1 - tem2) * ptem1 - f2(i,k+1+is)= f2(i,k+1+is) - (tem1 - tem2) * ptem2 + ptem = qcdo(i,k,n) + qcdo(i,k+1,n) + f2(i,k+is) = f2(i,k+is) + ptem * ptem1 + f2(i,k+1+is)= f2(i,k+1+is) - ptem * ptem2 endif endif +! + kmx = max(kpbl(i), krad(i)) + if((pcnvflg(i) .or. scuflg(i)) .and. (k < kmx)) then + ptem = tem2 * (xmf(i,k) - xmfd(i,k)) + ptem1 = dtodsd * ptem + ptem2 = dtodsu * ptem + f2(i,k+is) = f2(i,k+is) + q_half(i,k,n) * ptem1 + f2(i,k+1+is) = f2(i,k+1+is) - q_half(i,k,n) * ptem2 + endif ! enddo enddo @@ -1484,6 +1737,296 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & !> - Call tridin() to solve tridiagonal problem for heat and moisture c call tridin(im,km,ntrac1,al,ad,au,f1,f2,au,f1,f2) +! +! Negative moisture is set to zero after borrowing it from +! positive values within the mass-flux transport layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(f2(i,k) < 0.) tsumn(i) = tsumn(i) + f2(i,k) + if(f2(i,k) > 0.) tsump(i) = tsump(i) + f2(i,k) + endif + enddo + enddo + do i = 1,im + if(pcnvflg(i) .or. scuflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f2(i,k) < 0.) f2(i,k) = 0. + if(f2(i,k) > 0.) f2(i,k) = (1.+rtnp(i))*f2(i,k) + else + if(f2(i,k) < 0.) f2(i,k) = (1.+rtnp(i))*f2(i,k) + if(f2(i,k) > 0.) f2(i,k) = 0. + endif + endif + endif + enddo + enddo +! +! To remove negative moistures which were leaked out of the mass-flux transport layers +! by eddy diffusion or potential negative moistures from the diffusion scheme +! especially due to downward surface latent heat flux during nighttime, +! positive moistures are borrowed again now from the entire layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if(f2(i,k) < 0.) tsumn(i) = tsumn(i) + f2(i,k) + if(f2(i,k) > 0.) tsump(i) = tsump(i) + f2(i,k) + enddo + enddo + do i = 1,im + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + enddo + do k = 1,km + do i = 1,im + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f2(i,k) < 0.) f2(i,k) = 0. + if(f2(i,k) > 0.) f2(i,k) = (1.+rtnp(i))*f2(i,k) + else + if(f2(i,k) < 0.) f2(i,k) = (1.+rtnp(i))*f2(i,k) + if(f2(i,k) > 0.) f2(i,k) = 0. + endif + endif + enddo + enddo +! +! Negative hydrometeors & tracers are set to zero after +! borrowing them from positive values within the mass-flux +! transport layers +! +! For the negative liquid water, first borrow water from vapor +! and then borrow it from the other layers if there is still +! negative water +! + if(ntrac1 >= 2) then + is = (ntcw-1) * km + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(f2(i,k+is) < 0.) then + tem = f2(i,k) + f2(i,k+is) + if(tem >= 0.0) then + f2(i,k) = tem + f1(i,k) = f1(i,k) - elocp * f2(i,k+is) + f2(i,k+is) = 0. + elseif (f2(i,k) > 0.0) then + f2(i,k+is) = tem + f1(i,k) = f1(i,k) + elocp * f2(i,k) + f2(i,k) = 0. + endif + endif + endif + enddo + enddo + endif +! +! For the negative rain water, first borrow water from vapor +! and then borrow it from the other layers if there is still +! negative water +! + if(ntrac1 >= 2 .and. ntrw > 0) then + is = (ntrw-1) * km + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(f2(i,k+is) < 0.) then + tem = f2(i,k) + f2(i,k+is) + if(tem >= 0.0) then + f2(i,k) = tem + f1(i,k) = f1(i,k) - elocp * f2(i,k+is) + f2(i,k+is) = 0. + elseif (f2(i,k) > 0.0) then + f2(i,k+is) = tem + f1(i,k) = f1(i,k) + elocp * f2(i,k) + f2(i,k) = 0. + endif + endif + endif + enddo + enddo + endif +! + if(ntrac1 >= 2) then + do n = 2, ntrac1 + is = (n-1) * km +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(f2(i,k+is) < 0.) tsumn(i) = tsumn(i) + f2(i,k+is) + if(f2(i,k+is) > 0.) tsump(i) = tsump(i) + f2(i,k+is) + endif + enddo + enddo + do i = 1,im + if(pcnvflg(i) .or. scuflg(i)) then + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + endif + enddo + do k = 1,kps + do i = 1,im + if(pcnvflg(i) .and. scuflg(i)) then + kbx = 1 + kmx = max(kpbl(i), krad(i)) + elseif(pcnvflg(i) .and. .not. scuflg(i)) then + kbx = 1 + kmx = kpbl(i) + elseif(.not. pcnvflg(i) .and. scuflg(i)) then + kbx = mrad(i) + kmx = krad(i) + endif + if((pcnvflg(i) .or. scuflg(i)) .and. + & (k >= kbx .and. k <= kmx)) then + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f2(i,k+is)<0.) f2(i,k+is)=0. + if(f2(i,k+is)>0.) f2(i,k+is)=(1.+rtnp(i))*f2(i,k+is) + else + if(f2(i,k+is)<0.) f2(i,k+is)=(1.+rtnp(i))*f2(i,k+is) + if(f2(i,k+is)>0.) f2(i,k+is)=0. + endif + endif + endif + enddo + enddo +! +! To remove negative hydrometeors & tracers which were leaked out of the mass-flux transport layers +! by eddy diffusion or potential negative hydrometeors & tracers from the diffusion scheme +! especially due to downward surface fluxes during nighttime, +! positive hydrometeors & tracers are borrowed again now from the entire layers +! + do i = 1,im + tsumn(i) = 0. + tsump(i) = 0. + rtnp(i) = 1. + enddo + do k = 1,km + do i = 1,im + if(f2(i,k+is) < 0.) tsumn(i) = tsumn(i) + f2(i,k+is) + if(f2(i,k+is) > 0.) tsump(i) = tsump(i) + f2(i,k+is) + enddo + enddo + do i = 1,im + if(tsump(i) > 0. .and. tsumn(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + rtnp(i) = tsumn(i) / tsump(i) + else + rtnp(i) = tsump(i) / tsumn(i) + endif + endif + enddo + do k = 1,km + do i = 1,im + if(rtnp(i) < 0.) then + if(tsump(i) > abs(tsumn(i))) then + if(f2(i,k+is)<0.) f2(i,k+is)=0. + if(f2(i,k+is)>0.) f2(i,k+is)=(1.+rtnp(i))*f2(i,k+is) + else + if(f2(i,k+is)<0.) f2(i,k+is)=(1.+rtnp(i))*f2(i,k+is) + if(f2(i,k+is)>0.) f2(i,k+is)=0. + endif + endif + enddo + enddo +! + enddo + endif c !> - Recover the tendencies of heat and moisture c @@ -1503,7 +2046,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo ! if(ldiag3d .and. .not. gen_tend) then - idtend=dtidx(index_of_temperature,index_of_process_pbl) + idtend = dtidx(index_of_temperature,index_of_process_pbl) if(idtend>=1) then do k = 1,km do i = 1,im @@ -1513,7 +2056,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo endif ! Send tendencies just for QV; other tracers are below. - idtend=dtidx(100+ntqv,index_of_process_pbl) + idtend = dtidx(100+ntqv,index_of_process_pbl) if(idtend>=1) then do k = 1,km do i = 1,im @@ -1525,25 +2068,25 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & endif ! if(ntrac1 >= 2) then - do kk = 2, ntrac1 - is = (kk-1) * km + do n = 2, ntrac1 + is = (n-1) * km do k = 1, km do i = 1, im - qtend = (f2(i,k+is)-q1(i,k,kk))*rdt - rtg(i,k,kk) = rtg(i,k,kk)+qtend + qtend = (f2(i,k+is)-q1(i,k,n))*rdt + rtg(i,k,n) = rtg(i,k,n)+qtend enddo enddo enddo if(ldiag3d .and. .not. gen_tend) then ! Send tendencies for all tracers that were selected. - do kk = 2, ntrac1 - is = (kk-1) * km - idtend = dtidx(kk+100,index_of_process_pbl) + do n = 2, ntrac1 + is = (n-1) * km + idtend = dtidx(n+100,index_of_process_pbl) if(idtend>=1) then - if(kk/=ntke) then + if(n/=ntke) then do k = 1, km do i = 1, im - qtend = (f2(i,k+is)-q1(i,k,kk))*rdt + qtend = (f2(i,k+is)-q1(i,k,n))*rdt dtend(i,k,idtend) = dtend(i,k,idtend)+qtend*delt enddo enddo @@ -1565,7 +2108,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo enddo if(ldiag3d .and. .not. gen_tend) then - idtend=dtidx(index_of_temperature,index_of_process_pbl) + idtend = dtidx(index_of_temperature,index_of_process_pbl) if(idtend>=1) then do k = 1,km1 do i = 1,im @@ -1657,7 +2200,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo ! if(ldiag3d .and. .not. gen_tend) then - idtend=dtidx(index_of_x_wind,index_of_process_pbl) + idtend = dtidx(index_of_x_wind,index_of_process_pbl) if(idtend>=1) then do k = 1,km do i = 1,im @@ -1667,7 +2210,7 @@ subroutine satmedmfvdifq_run(im,km,ntrac,ntcw,ntiw,ntke, & enddo endif - idtend=dtidx(index_of_y_wind,index_of_process_pbl) + idtend = dtidx(index_of_y_wind,index_of_process_pbl) if(idtend>=1) then do k = 1,km do i = 1,im diff --git a/physics/satmedmfvdifq.meta b/physics/satmedmfvdifq.meta index c80684542..153a81bd4 100644 --- a/physics/satmedmfvdifq.meta +++ b/physics/satmedmfvdifq.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [isatmedmf] standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL long_name = choice of scale-aware TKE moist EDMF PBL scheme @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [isatmedmf_vdifq] standard_name = choice_of_updated_scale_aware_TKE_moist_EDMF_PBL long_name = choice of updated scale-aware TKE moist EDMF PBL scheme @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -39,7 +36,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -47,7 +43,6 @@ dimensions = () type = integer intent = out - optional = F ##################################################################### [ccpp-arg-table] @@ -60,7 +55,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -68,7 +62,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -76,7 +69,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_for_liquid_cloud_condensate_vertical_diffusion_tracer long_name = tracer index for cloud condensate (or liquid water) @@ -84,7 +76,13 @@ dimensions = () type = integer intent = in - optional = F +[ntrw] + standard_name = index_for_rain_water_vertical_diffusion_tracer + long_name = tracer index for rain water in the vertically diffused tracer array + units = index + dimensions = () + type = integer + intent = in [ntiw] standard_name = index_for_ice_cloud_condensate_vertical_diffusion_tracer long_name = tracer index for ice water in the vertically diffused tracer array @@ -92,7 +90,6 @@ dimensions = () type = integer intent = in - optional = F [ntke] standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer long_name = index for turbulent kinetic energy in the vertically diffused tracer array @@ -100,7 +97,6 @@ dimensions = () type = integer intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -109,7 +105,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -118,7 +113,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -127,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -136,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -145,7 +137,6 @@ type = real kind = kind_phys intent = in - optional = F [hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -154,7 +145,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -163,7 +153,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -172,7 +161,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -181,7 +169,6 @@ type = real kind = kind_phys intent = in - optional = F [dv] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -190,7 +177,6 @@ type = real kind = kind_phys intent = inout - optional = F [du] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -199,7 +185,6 @@ type = real kind = kind_phys intent = inout - optional = F [tdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -208,7 +193,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtg] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -217,7 +201,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind long_name = x component of layer wind @@ -226,7 +209,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind long_name = y component of layer wind @@ -235,7 +217,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature long_name = layer mean air temperature @@ -244,7 +225,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = vertically_diffused_tracer_concentration long_name = tracer concentration diffused by PBL scheme @@ -253,7 +233,6 @@ type = real kind = kind_phys intent = in - optional = F [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate @@ -262,7 +241,6 @@ type = real kind = kind_phys intent = in - optional = F [hlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky longwave heating rate @@ -271,7 +249,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -280,7 +257,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of the grid cell @@ -289,7 +265,6 @@ type = real kind = kind_phys intent = in - optional = F [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -298,7 +273,6 @@ type = real kind = kind_phys intent = in - optional = F [psk] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the surface interface @@ -307,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = F [rbsoil] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -316,7 +289,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -325,7 +297,6 @@ type = real kind = kind_phys intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -334,7 +305,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -343,7 +313,6 @@ type = real kind = kind_phys intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -352,7 +321,6 @@ type = real kind = kind_phys intent = in - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -361,7 +329,6 @@ type = real kind = kind_phys intent = in - optional = F [tsea] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -370,7 +337,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -379,7 +345,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -388,7 +353,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -397,7 +361,6 @@ type = real kind = kind_phys intent = in - optional = F [spd1] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -406,7 +369,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -414,7 +376,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -423,7 +384,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = pres(k) - pres(k+1) @@ -432,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -441,7 +400,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -450,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -459,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -468,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = time step for physics @@ -477,7 +432,6 @@ type = real kind = kind_phys intent = in - optional = F [dspheat] standard_name = flag_TKE_dissipation_heating long_name = flag for using TKE dissipation heating @@ -485,7 +439,6 @@ dimensions = () type = logical intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -494,7 +447,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -503,7 +455,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -512,7 +463,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -521,7 +471,6 @@ type = real kind = kind_phys intent = out - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -530,7 +479,6 @@ type = real kind = kind_phys intent = out - optional = F [dkt] standard_name = atmosphere_heat_diffusivity long_name = atmospheric heat diffusivity @@ -539,7 +487,6 @@ type = real kind = kind_phys intent = out - optional = F [dku] standard_name = atmosphere_momentum_diffusivity long_name = atmospheric momentum diffusivity @@ -548,7 +495,6 @@ type = real kind = kind_phys intent = out - optional = F [kinver] standard_name = index_of_highest_temperature_inversion long_name = index of highest temperature inversion @@ -556,7 +502,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [xkzm_m] standard_name = atmosphere_momentum_diffusivity_due_to_background long_name = background value of momentum diffusivity @@ -565,7 +510,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_h] standard_name = atmosphere_heat_diffusivity_due_to_background long_name = background value of heat diffusivity @@ -574,7 +518,6 @@ type = real kind = kind_phys intent = in - optional = F [xkzm_s] standard_name = sigma_pressure_threshold_at_upper_extent_of_background_diffusion long_name = sigma level threshold for background diffusivity @@ -583,7 +526,6 @@ type = real kind = kind_phys intent = in - optional = F [dspfac] standard_name = multiplicative_tuning_parameter_for_tke_dissipative_heating long_name = tke dissipative heating factor @@ -592,7 +534,6 @@ type = real kind = kind_phys intent = in - optional = F [bl_upfr] standard_name = updraft_area_fraction_in_scale_aware_tke_moist_edmf_pbl_scheme long_name = updraft fraction in boundary layer mass flux scheme @@ -601,7 +542,6 @@ type = real kind = kind_phys intent = in - optional = F [bl_dnfr] standard_name = downdraft_area_fraction_in_scale_aware_tke_moist_edmf_pbl_scheme long_name = downdraft fraction in boundary layer mass flux scheme @@ -610,7 +550,6 @@ type = real kind = kind_phys intent = in - optional = F [rlmx] standard_name = maximum_allowed_mixing_length_in_boundary_layer_mass_flux_scheme long_name = maximum allowed mixing length in boundary layer mass flux scheme @@ -619,7 +558,6 @@ type = real kind = kind_phys intent = in - optional = F [elmx] standard_name = maximum_allowed_dissipation_mixing_length_in_boundary_layer_mass_flux_scheme long_name = maximum allowed dissipation mixing length in boundary layer mass flux scheme @@ -628,7 +566,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_rlm] standard_name = choice_of_near_surface_mixing_length_in_boundary_layer_mass_flux_scheme long_name = choice of near surface mixing length in boundary layer mass flux scheme @@ -636,15 +573,6 @@ dimensions = () type = integer intent = in - optional = F -[ntoz] - standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array - long_name = tracer index for ozone mixing ratio - units = index - dimensions = () - type = integer - intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -652,7 +580,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -661,7 +588,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -669,7 +595,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -677,7 +602,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -685,7 +609,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -693,7 +616,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -701,7 +623,6 @@ dimensions = () type = integer intent = in - optional = F [gen_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies @@ -709,7 +630,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -717,7 +637,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -726,7 +645,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -734,4 +652,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/scm_sfc_flux_spec.meta b/physics/scm_sfc_flux_spec.meta index d7b29a4c0..9ff2f15c4 100644 --- a/physics/scm_sfc_flux_spec.meta +++ b/physics/scm_sfc_flux_spec.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ################################# [ccpp-arg-table] @@ -45,7 +42,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = y component of 1st model layer wind @@ -54,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [z1] standard_name = height_above_ground_at_lowest_model_layer long_name = height above ground at 1st model layer @@ -63,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -72,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = 1st model layer specific humidity @@ -81,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [p1] standard_name = air_pressure_at_surface_adjacent_layer long_name = Model layer 1 mean pressure @@ -90,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [roughness_length] standard_name = surface_roughness_length long_name = surface roughness length @@ -99,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [spec_sh_flux] standard_name = specified_surface_upward_temperature_flux long_name = specified kinematic surface upward sensible heat flux @@ -108,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [spec_lh_flux] standard_name = specified_surface_upward_specific_humidity_flux long_name = specified kinematic surface upward latent heat flux @@ -117,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [exner_inverse] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -126,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [T_surf] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -135,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -144,7 +130,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -153,7 +138,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of vaporization of water at 0C @@ -162,7 +146,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -171,7 +154,6 @@ type = real kind = kind_phys intent = in - optional = F [fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -180,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [vonKarman] standard_name = von_karman_constant long_name = Von Karman constant @@ -189,7 +170,6 @@ type = real kind = kind_phys intent = in - optional = F [sh_flux] standard_name = surface_upward_temperature_flux long_name = surface upward sensible heat flux @@ -198,7 +178,6 @@ type = real kind = kind_phys intent = out - optional = F [lh_flux] standard_name = surface_upward_specific_humidity_flux long_name = surface upward evaporation flux @@ -207,7 +186,6 @@ type = real kind = kind_phys intent = out - optional = F [sh_flux_chs] 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 @@ -216,7 +194,6 @@ type = real kind = kind_phys intent = out - optional = F [u_star] standard_name = surface_friction_velocity long_name = boundary layer parameter @@ -225,7 +202,6 @@ type = real kind = kind_phys intent = out - optional = F [sfc_stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -234,7 +210,6 @@ type = real kind = kind_phys intent = out - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -243,7 +218,6 @@ type = real kind = kind_phys intent = out - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air long_name = surface exchange coeff heat & moisture @@ -252,7 +226,6 @@ type = real kind = kind_phys intent = out - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -261,7 +234,6 @@ type = real kind = kind_phys intent = out - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -270,7 +242,6 @@ type = real kind = kind_phys intent = out - optional = F [rb] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -279,7 +250,6 @@ type = real kind = kind_phys intent = out - optional = F [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -288,7 +258,6 @@ type = real kind = kind_phys intent = out - optional = F [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -297,7 +266,6 @@ type = real kind = kind_phys intent = out - optional = F [wind1] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -306,7 +274,6 @@ type = real kind = kind_phys intent = out - optional = F [qss] standard_name = surface_specific_humidity long_name = surface air saturation specific humidity @@ -315,7 +282,6 @@ type = real kind = kind_phys intent = out - optional = F [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -324,7 +290,6 @@ type = real kind = kind_phys intent = out - optional = F [q2m] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity @@ -333,7 +298,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -342,7 +306,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -350,4 +313,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_cice.meta b/physics/sfc_cice.meta index 7c8b72b85..fd259111a 100644 --- a/physics/sfc_cice.meta +++ b/physics/sfc_cice.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -49,7 +45,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -58,7 +53,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = surface layer mean temperature @@ -67,7 +61,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = surface layer mean specific humidity @@ -76,7 +69,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = surface layer mean pressure @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -120,7 +108,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -128,7 +115,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dqsfc] standard_name = surface_upward_latent_heat_flux_from_coupled_process long_name = sfc latent heat flux for coupling @@ -137,7 +123,6 @@ type = real kind = kind_phys intent = in - optional = F [dtsfc] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -146,7 +131,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -155,7 +139,6 @@ type = real kind = kind_phys intent = in - optional = F [dvsfc] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -164,7 +147,6 @@ type = real kind = kind_phys intent = in - optional = F [snowd] standard_name = lwe_surface_snow_from_coupled_process long_name = sfc snow depth in meters over sea ice for coupling @@ -173,7 +155,6 @@ type = real kind = kind_phys intent = in - optional = F [qsurf] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -182,7 +163,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice long_name = momentum exchange coefficient over ice @@ -191,7 +171,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice long_name = thermal exchange coefficient over ice @@ -200,7 +179,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -218,7 +195,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -263,7 +235,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -271,4 +242,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_diag.meta b/physics/sfc_diag.meta index f897996ef..d19a62542 100644 --- a/physics/sfc_diag.meta +++ b/physics/sfc_diag.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = in - optional = F [u1] standard_name = x_wind_of_new_state_at_surface_adjacent_layer long_name = x component of 1st model layer wind @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_of_new_state_at_surface_adjacent_layer long_name = y component of 1st model layer wind @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_of_new_state_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_of_new_state_at_surface_adjacent_layer long_name = 1st model layer specific humidity @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = surface upward evaporation flux @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity parameter for momentum @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [fh] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity parameter for heat @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m long_name = Monin-Obukhov similarity parameter for momentum @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [fh2] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m long_name = Monin-Obukhov similarity parameter for heat @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin] standard_name = surface_skin_temperature long_name = surface skin temperature @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [qsurf] standard_name = surface_specific_humidity long_name = surface specific humidity @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [thsfc_loc] standard_name = flag_for_reference_pressure_theta long_name = flag for reference pressure in theta calculation @@ -175,7 +157,6 @@ dimensions = () type = logical intent = in - optional = F [f10m] standard_name = ratio_of_wind_at_surface_adjacent_layer_to_wind_at_10m long_name = ratio of fm10 and fm @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = out - optional = F [u10m] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -193,7 +173,6 @@ type = real kind = kind_phys intent = out - optional = F [v10m] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -202,7 +181,6 @@ type = real kind = kind_phys intent = out - optional = F [t2m] standard_name = air_temperature_at_2m long_name = temperature at 2 m @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = out - optional = F [q2m] standard_name = specific_humidity_at_2m long_name = specific humidity at 2 m @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -229,7 +205,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -237,4 +212,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_diag_post.meta b/physics/sfc_diag_post.meta index 8f4378566..d66a468fa 100644 --- a/physics/sfc_diag_post.meta +++ b/physics/sfc_diag_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -38,7 +35,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -46,7 +42,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -55,7 +50,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -64,7 +58,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -73,7 +66,6 @@ type = real kind = kind_phys intent = in - optional = F [pgr] standard_name = surface_air_pressure long_name = surface pressure @@ -82,7 +74,6 @@ type = real kind = kind_phys intent = in - optional = F [t2mmp] standard_name = temperature_at_2m_from_noahmp long_name = 2 meter temperature from noahmp @@ -91,7 +82,6 @@ type = real kind = kind_phys intent = in - optional = F [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [t2m] standard_name = air_temperature_at_2m long_name = 2 meter temperature @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = inout - optional = F [q2m] standard_name = specific_humidity_at_2m long_name = 2 meter specific humidity @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = inout - optional = F [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [tmpmin] standard_name = minimum_temperature_at_2m long_name = min temperature at 2m height @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = inout - optional = F [tmpmax] standard_name = maximum_temperature_at_2m long_name = max temperature at 2m height @@ -154,7 +138,6 @@ type = real kind = kind_phys intent = inout - optional = F [spfhmin] standard_name = minimum_specific_humidity_at_2m long_name = minimum specific humidity at 2m height @@ -163,7 +146,6 @@ type = real kind = kind_phys intent = inout - optional = F [spfhmax] standard_name = maximum_specific_humidity_at_2m long_name = maximum specific humidity at 2m height @@ -172,7 +154,6 @@ type = real kind = kind_phys intent = inout - optional = F [wind10mmax] standard_name = maximum_wind_at_10m long_name = maximum wind speed at 10 m @@ -181,7 +162,6 @@ type = real kind = kind_phys intent = inout - optional = F [u10mmax] standard_name = maximum_x_wind_at_10m long_name = maximum x wind at 10 m @@ -190,7 +170,6 @@ type = real kind = kind_phys intent = inout - optional = F [v10mmax] standard_name = maximum_y_wind_at_10m long_name = maximum y wind at 10 m @@ -199,7 +178,6 @@ type = real kind = kind_phys intent = inout - optional = F [dpt2m] standard_name = dewpoint_temperature_at_2m long_name = 2 meter dewpoint temperature @@ -208,7 +186,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -217,7 +194,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -225,4 +201,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_diff.meta b/physics/sfc_diff.meta index e04fb5d3e..86268392d 100644 --- a/physics/sfc_diff.meta +++ b/physics/sfc_diff.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = 1st model layer specific humidity @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [z1] standard_name = height_above_ground_at_lowest_model_layer long_name = height above ground at 1st model layer @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [garea] standard_name = cell_area long_name = area of the grid cell @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = out - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = Model layer 1 mean pressure @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the ground surface @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at the lowest model layer @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [vegtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -166,7 +149,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractnl cover of green veg @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -183,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [z0pert] standard_name = perturbation_of_momentum_roughness_length long_name = perturbation of momentum roughness length @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = in - optional = F [ztpert] standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio long_name = perturbation of heat to momentum roughness length ratio @@ -201,7 +180,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -209,7 +187,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [redrag] standard_name = flag_for_limited_surface_roughness_length_over_ocean long_name = flag for reduced drag coefficient over sea @@ -217,7 +194,6 @@ dimensions = () type = logical intent = in - optional = F [u10m] standard_name = x_wind_at_10m long_name = 10 meter u wind speed @@ -226,7 +202,6 @@ type = real kind = kind_phys intent = in - optional = F [v10m] standard_name = y_wind_at_10m long_name = 10 meter v wind speed @@ -235,7 +210,6 @@ type = real kind = kind_phys intent = in - optional = F [sfc_z0_type] standard_name = flag_for_surface_roughness_option_over_water long_name = surface roughness options over water @@ -243,7 +217,6 @@ dimensions = () type = integer intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -251,7 +224,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -259,7 +231,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -267,7 +238,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [thsfc_loc] standard_name = flag_for_reference_pressure_theta long_name = flag for reference pressure in theta calculation @@ -275,7 +245,6 @@ dimensions = () type = logical intent = in - optional = F [tskin_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -284,7 +253,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -293,7 +261,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -302,7 +269,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -311,7 +277,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -320,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -329,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [z0rl_wat] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water (temporary use as interstitial) @@ -338,7 +301,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -347,7 +309,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -356,7 +317,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_wav] standard_name = surface_roughness_length_from_wave_model long_name = surface roughness length from wave model @@ -365,7 +325,6 @@ type = real kind = kind_phys intent = in - optional = F [ustar_wat] standard_name = surface_friction_velocity_over_water long_name = surface friction velocity over water @@ -374,7 +333,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_lnd] standard_name = surface_friction_velocity_over_land long_name = surface friction velocity over land @@ -383,7 +341,6 @@ type = real kind = kind_phys intent = inout - optional = F [ustar_ice] standard_name = surface_friction_velocity_over_ice long_name = surface friction velocity over ice @@ -392,7 +349,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_wat] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -401,7 +357,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -410,7 +365,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -419,7 +373,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_wat] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -428,7 +381,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -437,7 +389,6 @@ type = real kind = kind_phys intent = inout - optional = F [ch_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -446,7 +397,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_wat] standard_name = bulk_richardson_number_at_lowest_model_level_over_water long_name = bulk Richardson number at the surface over water @@ -455,7 +405,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_lnd] standard_name = bulk_richardson_number_at_lowest_model_level_over_land long_name = bulk Richardson number at the surface over land @@ -464,7 +413,6 @@ type = real kind = kind_phys intent = inout - optional = F [rb_ice] standard_name = bulk_richardson_number_at_lowest_model_level_over_ice long_name = bulk Richardson number at the surface over ice @@ -473,7 +421,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_wat] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -482,7 +429,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_lnd] standard_name = surface_wind_stress_over_land long_name = surface wind stress over land @@ -491,7 +437,6 @@ type = real kind = kind_phys intent = inout - optional = F [stress_ice] standard_name = surface_wind_stress_over_ice long_name = surface wind stress over ice @@ -500,7 +445,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -509,7 +453,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land long_name = Monin-Obukhov similarity function for momentum over land @@ -518,7 +461,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice long_name = Monin-Obukhov similarity function for momentum over ice @@ -527,7 +469,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_over_water long_name = Monin-Obukhov similarity function for heat over water @@ -536,7 +477,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_over_land long_name = Monin-Obukhov similarity function for heat over land @@ -545,7 +485,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice long_name = Monin-Obukhov similarity function for heat over ice @@ -554,7 +493,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_wat] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -563,7 +501,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_lnd] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land long_name = Monin-Obukhov similarity parameter for momentum at 10m over land @@ -572,7 +509,6 @@ type = real kind = kind_phys intent = inout - optional = F [fm10_ice] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice @@ -581,7 +517,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_wat] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water long_name = Monin-Obukhov similarity parameter for heat at 2m over water @@ -590,7 +525,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_lnd] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land long_name = Monin-Obukhov similarity parameter for heat at 2m over land @@ -599,7 +533,6 @@ type = real kind = kind_phys intent = inout - optional = F [fh2_ice] standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice long_name = Monin-Obukhov similarity parameter for heat at 2m over ice @@ -608,7 +541,6 @@ type = real kind = kind_phys intent = inout - optional = F [ztmax_wat] standard_name = bounded_surface_roughness_length_for_heat_over_water long_name = bounded surface roughness length for heat over water @@ -617,7 +549,6 @@ type = real kind = kind_phys intent = inout - optional = F [ztmax_lnd] standard_name = bounded_surface_roughness_length_for_heat_over_land long_name = bounded surface roughness length for heat over land @@ -626,7 +557,6 @@ type = real kind = kind_phys intent = inout - optional = F [ztmax_ice] standard_name = bounded_surface_roughness_length_for_heat_over_ice long_name = bounded surface roughness length for heat over ice @@ -635,7 +565,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -644,7 +573,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -652,4 +580,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_drv.meta b/physics/sfc_drv.meta index 11a5aa293..6463a3ed7 100644 --- a/physics/sfc_drv.meta +++ b/physics/sfc_drv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noah] standard_name = identifier_for_noah_land_surface_scheme long_name = flag for NOAH land surface model @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [pores] standard_name = maximum_soil_moisture_content_for_land_surface_model long_name = maximum soil moisture for a given soil type for land surface model @@ -79,7 +73,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -87,7 +80,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -101,7 +93,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -109,7 +100,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -122,7 +112,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -130,7 +119,6 @@ dimensions = () type = integer intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -139,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -148,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -157,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -166,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -175,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -184,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -193,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -202,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -211,7 +191,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = 1st model layer specific humidity @@ -220,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [soiltyp] standard_name = soil_type_classification long_name = soil type at each grid cell @@ -228,7 +206,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [vegtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -236,7 +213,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -245,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -254,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land long_name = total sky surface downward longwave flux absorbed by the ground over land @@ -263,7 +237,6 @@ type = real kind = kind_phys intent = in - optional = F [dswsfc] standard_name = surface_downwelling_shortwave_flux long_name = total sky surface downward shortwave flux @@ -272,7 +245,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_dynamics long_name = dynamics time step @@ -281,7 +253,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = bottom soil temperature @@ -290,7 +261,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -299,7 +269,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -308,7 +277,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = Model layer 1 mean pressure @@ -317,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -326,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [zf] standard_name = height_above_ground_at_lowest_model_layer long_name = height above ground at 1st model layer @@ -335,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [land] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -343,7 +308,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -352,7 +316,6 @@ type = real kind = kind_phys intent = in - optional = F [slopetyp] standard_name = surface_slope_classification long_name = surface slope type at each grid cell @@ -360,7 +323,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [shdmin] standard_name = min_vegetation_area_fraction long_name = min fractional coverage of green veg @@ -369,7 +331,6 @@ type = real kind = kind_phys intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractnl cover of green veg (not used) @@ -378,7 +339,6 @@ type = real kind = kind_phys intent = in - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = upper bound on max albedo over deep snow @@ -387,7 +347,6 @@ type = real kind = kind_phys intent = in - optional = F [sfalb] standard_name = surface_albedo_for_diffused_shortwave_on_radiation_timestep long_name = mean surface diffused shortwave albedo @@ -396,7 +355,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -404,7 +362,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -412,7 +369,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [lheatstrg] standard_name = flag_for_canopy_heat_storage_in_land_surface_scheme long_name = flag for canopy heat storage parameterization @@ -420,7 +376,6 @@ dimensions = () type = logical intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -428,7 +383,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -436,7 +390,6 @@ dimensions = () type = integer intent = in - optional = F [bexppert] standard_name = perturbation_of_soil_type_b_parameter long_name = perturbation of soil type "b" parameter @@ -445,7 +398,6 @@ type = real kind = kind_phys intent = in - optional = F [xlaipert] standard_name = perturbation_of_leaf_area_index long_name = perturbation of leaf area index @@ -454,7 +406,6 @@ type = real kind = kind_phys intent = in - optional = F [vegfpert] standard_name = perturbation_of_vegetation_fraction long_name = perturbation of vegetation fraction @@ -463,7 +414,6 @@ type = real kind = kind_phys intent = in - optional = F [pertvegf] standard_name = magnitude_of_perturbation_of_vegetation_fraction long_name = magnitude of perturbation of vegetation fraction @@ -472,7 +422,6 @@ type = real kind = kind_phys intent = in - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -481,7 +430,6 @@ type = real kind = kind_phys intent = in - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -490,7 +438,6 @@ type = real kind = kind_phys intent = in - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -499,7 +446,6 @@ type = real kind = kind_phys intent = in - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -508,7 +454,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisbmd] standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time @@ -517,7 +462,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirbmd] standard_name = surface_downwelling_direct_near_infrared_shortwave_flux long_name = surface downwelling beam near-infrared shortwave flux at current time @@ -526,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = F [adjvisdfd] standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time @@ -535,7 +478,6 @@ type = real kind = kind_phys intent = in - optional = F [adjnirdfd] standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux long_name = surface downwelling diffuse near-infrared shortwave flux at current time @@ -544,7 +486,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land @@ -553,7 +494,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -562,7 +502,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -571,7 +510,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land long_name = total precipitation amount in each time step over land @@ -580,7 +518,6 @@ type = real kind = kind_phys intent = inout - optional = F [srflag] standard_name = precipitation_type long_name = flag for snow or rain precipitation @@ -589,7 +526,6 @@ type = real kind = kind_phys intent = inout - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = volumetric fraction of soil moisture @@ -598,7 +534,6 @@ type = real kind = kind_phys intent = inout - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -607,7 +542,6 @@ type = real kind = kind_phys intent = inout - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = volume fraction of unfrozen soil moisture @@ -616,7 +550,6 @@ type = real kind = kind_phys intent = inout - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy moisture content @@ -625,7 +558,6 @@ type = real kind = kind_phys intent = inout - optional = F [trans] standard_name = transpiration_flux long_name = total plant transpiration rate @@ -634,7 +566,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -643,7 +574,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorl] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land @@ -652,7 +582,6 @@ type = real kind = kind_phys intent = inout - optional = F [sncovr1] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -661,7 +590,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsurf] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -670,7 +598,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land @@ -679,7 +606,6 @@ type = real kind = kind_phys intent = inout - optional = F [drain] standard_name = subsurface_runoff_flux long_name = subsurface runoff flux @@ -688,7 +614,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -697,7 +622,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -706,7 +630,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_land long_name = surface upward potential latent heat flux over land @@ -715,7 +638,6 @@ type = real kind = kind_phys intent = inout - optional = F [runoff] standard_name = surface_runoff_flux long_name = surface runoff flux @@ -724,7 +646,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land long_name = momentum exchange coefficient over land @@ -733,7 +654,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land long_name = thermal exchange coefficient over land @@ -742,7 +662,6 @@ type = real kind = kind_phys intent = inout - optional = F [evbs] standard_name = soil_upward_latent_heat_flux long_name = soil upward latent heat flux @@ -751,7 +670,6 @@ type = real kind = kind_phys intent = inout - optional = F [evcw] standard_name = canopy_upward_latent_heat_flux long_name = canopy upward latent heat flux @@ -760,7 +678,6 @@ type = real kind = kind_phys intent = inout - optional = F [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -769,7 +686,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowc] standard_name = surface_snow_area_fraction long_name = surface snow area fraction @@ -778,7 +694,6 @@ type = real kind = kind_phys intent = inout - optional = F [stm] standard_name = soil_moisture_content long_name = soil moisture content @@ -787,7 +702,6 @@ type = real kind = kind_phys intent = inout - optional = F [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -796,7 +710,6 @@ type = real kind = kind_phys intent = inout - optional = F [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = soil water fraction at wilting point @@ -805,7 +718,6 @@ type = real kind = kind_phys intent = inout - optional = F [smcref2] standard_name = threshold_volume_fraction_of_condensed_water_in_soil long_name = soil moisture threshold @@ -814,7 +726,6 @@ type = real kind = kind_phys intent = inout - optional = F [wet1] standard_name = normalized_soil_wetness long_name = normalized soil wetness @@ -823,7 +734,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -832,7 +742,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -840,4 +749,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_drv_ruc.meta b/physics/sfc_drv_ruc.meta index e37e1ea36..30c05b81f 100644 --- a/physics/sfc_drv_ruc.meta +++ b/physics/sfc_drv_ruc.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -54,7 +49,6 @@ dimensions = () type = logical intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -62,7 +56,6 @@ dimensions = () type = logical intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -71,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -80,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_dimension long_name = horizontal dimension @@ -88,7 +79,6 @@ dimensions = () type = integer intent = in - optional = F [lsoil_ruc] standard_name = vertical_dimension_of_soil_internal_to_land_surface_scheme long_name = number of soil layers internal to land surface model @@ -96,7 +86,6 @@ dimensions = () type = integer intent = in - optional = F [lsoil] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -104,7 +93,6 @@ dimensions = () type = integer intent = in - optional = F [kice] standard_name = vertical_dimension_of_sea_ice long_name = vertical loop extent for ice levels, start at 1 @@ -112,7 +100,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -120,7 +107,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -128,7 +114,6 @@ dimensions = () type = integer intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -136,7 +121,6 @@ dimensions = () type = integer intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -145,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type for lsm @@ -153,7 +136,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type for lsm @@ -161,7 +143,6 @@ dimensions = (horizontal_dimension) type = integer intent = in - optional = F [landfrac] standard_name = land_area_fraction long_name = fraction of horizontal grid area occupied by land @@ -170,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer @@ -179,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -188,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -197,7 +175,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -206,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfc_wat] standard_name = sea_surface_temperature long_name = surface skin temperature over water @@ -215,7 +191,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -224,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -233,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -242,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -251,7 +223,6 @@ type = real kind = kind_phys intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -260,7 +231,6 @@ type = real kind = kind_phys intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -269,7 +239,6 @@ type = real kind = kind_phys intent = in - optional = F [sncovr_lnd] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction over land @@ -278,7 +247,6 @@ type = real kind = kind_phys intent = in - optional = F [sncovr_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice @@ -287,7 +255,6 @@ type = real kind = kind_phys intent = in - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -296,7 +263,6 @@ type = real kind = kind_phys intent = in - optional = F [facsf] standard_name = strong_cosz_area_fraction long_name = fractional coverage with strong cosz dependency @@ -305,7 +271,6 @@ type = real kind = kind_phys intent = in - optional = F [facwf] standard_name = weak_cosz_area_fraction long_name = fractional coverage with weak cosz dependency @@ -314,7 +279,6 @@ type = real kind = kind_phys intent = in - optional = F [alvsf] standard_name = vis_albedo_strong_cosz long_name = mean vis albedo with strong cosz dependency @@ -323,7 +287,6 @@ type = real kind = kind_phys intent = in - optional = F [alvwf] standard_name = vis_albedo_weak_cosz long_name = mean vis albedo with weak cosz dependency @@ -332,7 +295,6 @@ type = real kind = kind_phys intent = in - optional = F [alnsf] standard_name = nir_albedo_strong_cosz long_name = mean nir albedo with strong cosz dependency @@ -341,7 +303,6 @@ type = real kind = kind_phys intent = in - optional = F [alnwf] standard_name = nir_albedo_weak_cosz long_name = mean nir albedo with weak cosz dependency @@ -350,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcqv_lnd] standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land @@ -359,7 +319,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -368,7 +327,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfalb_lnd_bck] standard_name =surface_snow_free_albedo_over_land long_name = surface snow-free albedo over ice @@ -377,7 +335,6 @@ type = real kind = kind_phys intent = inout - optional = F [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction @@ -386,7 +343,6 @@ type = real kind = kind_phys intent = out - optional = F [semis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -395,7 +351,6 @@ type = real kind = kind_phys intent = inout - optional = F [semis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -404,7 +359,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -413,7 +367,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -422,7 +375,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -431,7 +383,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -440,7 +391,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice @@ -449,7 +399,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -458,7 +407,6 @@ type = real kind = kind_phys intent = inout - optional = F [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -467,7 +415,6 @@ type = real kind = kind_phys intent = inout - optional = F [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -476,7 +423,6 @@ type = real kind = kind_phys intent = inout - optional = F [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -485,7 +431,6 @@ type = real kind = kind_phys intent = out - optional = F [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -494,7 +439,6 @@ type = real kind = kind_phys intent = inout - optional = F [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -503,7 +447,6 @@ type = real kind = kind_phys intent = inout - optional = F [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -512,7 +455,6 @@ type = real kind = kind_phys intent = inout - optional = F [smois] standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm @@ -521,7 +463,6 @@ type = real kind = kind_phys intent = inout - optional = F [wetness] standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness @@ -530,7 +471,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -539,7 +479,6 @@ type = real kind = kind_phys intent = inout - optional = F [pores] standard_name = maximum_soil_moisture_content_for_land_surface_model long_name = maximum soil moisture for a given soil type for land surface model @@ -564,7 +503,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -572,7 +510,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -586,7 +523,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -594,7 +530,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -607,7 +542,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -615,7 +549,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = master MPI-rank @@ -623,7 +556,6 @@ dimensions = () type = integer intent = in - optional = F [delt] standard_name = timestep_for_dynamics long_name = physics time step @@ -632,7 +564,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current number of time steps @@ -640,7 +571,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -648,7 +578,6 @@ dimensions = () type = integer intent = in - optional = F [nlev] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -656,7 +585,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model @@ -664,7 +592,6 @@ dimensions = () type = integer intent = in - optional = F [lsm] standard_name = control_for_land_surface_scheme long_name = flag for land surface model @@ -672,7 +599,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -680,7 +606,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_gfdl] standard_name = identifier_for_gfdl_microphysics_scheme long_name = choice of GFDL microphysics scheme @@ -688,7 +613,6 @@ dimensions = () type = integer intent = in - optional = F [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -696,7 +620,6 @@ dimensions = () type = integer intent = in - optional = F [do_mynnsfclay] standard_name = flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme long_name = flag to activate MYNN surface layer @@ -704,7 +627,6 @@ dimensions = () type = logical intent = in - optional = F [lsoil_ruc] standard_name = vertical_dimension_of_soil_internal_to_land_surface_scheme long_name = number of soil layers internal to land surface model @@ -712,7 +634,6 @@ dimensions = () type = integer intent = in - optional = F [lsoil] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -720,7 +641,6 @@ dimensions = () type = integer intent = in - optional = F [rdlai] standard_name = flag_for_reading_leaf_area_index_from_input long_name = flag for reading leaf area index from initial conditions for RUC LSM @@ -728,7 +648,6 @@ dimensions = () type = logical intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -737,7 +656,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon_d] standard_name = longitude_in_degree long_name = longitude in degree east @@ -746,7 +664,6 @@ type = real kind = kind_phys intent = in - optional = F [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -755,7 +672,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer @@ -764,7 +680,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer @@ -773,7 +688,6 @@ type = real kind = kind_phys intent = in - optional = F [qc] standard_name = cloud_liquid_water_mixing_ratio_at_surface_adjacent_layer long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) at lowest model layer @@ -782,7 +696,6 @@ type = real kind = kind_phys intent = in - optional = F [stype] standard_name = soil_type_classification long_name = soil type at each grid cell @@ -790,7 +703,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [vtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -798,7 +710,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [sigmaf] standard_name = vegetation_area_fraction long_name = areal fractional cover of green vegetation @@ -807,7 +718,6 @@ type = real kind = kind_phys intent = in - optional = F [laixy] standard_name = leaf_area_index long_name = leaf area index @@ -816,7 +726,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -825,7 +734,6 @@ type = real kind = kind_phys intent = in - optional = F [dswsfc] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -834,7 +742,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -843,7 +750,6 @@ type = real kind = kind_phys intent = in - optional = F [coszen] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time @@ -852,7 +758,6 @@ type = real kind = kind_phys intent = in - optional = F [land] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -860,7 +765,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -868,7 +772,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [use_lake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -876,7 +779,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [rainnc] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -885,7 +787,6 @@ type = real kind = kind_phys intent = in - optional = F [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -894,7 +795,6 @@ type = real kind = kind_phys intent = in - optional = F [ice] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -903,7 +803,6 @@ type = real kind = kind_phys intent = in - optional = F [snow] standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep @@ -912,7 +811,6 @@ type = real kind = kind_phys intent = in - optional = F [graupel] standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep @@ -921,7 +819,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -930,7 +827,6 @@ type = real kind = kind_phys intent = in - optional = F [zf] standard_name = height_above_ground_at_lowest_model_layer long_name = layer 1 height above ground (not MSL) @@ -939,7 +835,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -948,7 +843,6 @@ type = real kind = kind_phys intent = in - optional = F [shdmin] standard_name = min_vegetation_area_fraction long_name = min fractional coverage of green vegetation @@ -957,7 +851,6 @@ type = real kind = kind_phys intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractional coverage of green vegetation @@ -966,7 +859,6 @@ type = real kind = kind_phys intent = in - optional = F [srflag] standard_name = precipitation_type long_name = snow/rain flag for precipitation @@ -975,7 +867,6 @@ type = real kind = kind_phys intent = in - optional = F [sfalb_lnd_bck] standard_name =surface_snow_free_albedo_over_land long_name = surface snow-free albedo over ice @@ -984,7 +875,6 @@ type = real kind = kind_phys intent = in - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -993,7 +883,6 @@ type = real kind = kind_phys intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -1001,7 +890,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -1009,7 +897,6 @@ dimensions = () type = integer intent = in - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = ice fraction over open water @@ -1018,7 +905,6 @@ type = real kind = kind_phys intent = inout - optional = F [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = soil water fraction at wilting point @@ -1027,7 +913,6 @@ type = real kind = kind_phys intent = inout - optional = F [smcref2] standard_name = threshold_volume_fraction_of_condensed_water_in_soil long_name = soil moisture threshold @@ -1036,7 +921,6 @@ type = real kind = kind_phys intent = inout - optional = F [min_lakeice] standard_name = min_lake_ice_area_fraction long_name = minimum lake ice value @@ -1045,7 +929,6 @@ type = real kind = kind_phys intent = in - optional = F [min_seaice] standard_name = min_sea_ice_area_fraction long_name = minimum sea ice value @@ -1054,7 +937,6 @@ type = real kind = kind_phys intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -1063,7 +945,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat !of dry air at constant pressure @@ -1072,7 +953,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -1081,7 +961,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -1090,7 +969,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -1099,7 +977,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -1108,7 +985,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of vaporization/sublimation (hvap) @@ -1117,7 +993,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -1126,7 +1001,6 @@ type = real kind = kind_phys intent = in - optional = F [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction @@ -1135,7 +1009,6 @@ type = real kind = kind_phys intent = inout - optional = F [semis_lnd] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -1144,7 +1017,6 @@ type = real kind = kind_phys intent = inout - optional = F [semis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -1153,7 +1025,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfalb_lnd] standard_name = surface_diffused_shortwave_albedo_over_land long_name = mean surface diffused sw albedo over land @@ -1162,7 +1033,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfalb_ice] standard_name = surface_diffused_shortwave_albedo_over_ice long_name = mean surface diffused sw albedo over ice @@ -1171,7 +1041,6 @@ type = real kind = kind_phys intent = inout - optional = F [sncovr1_lnd] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction over land @@ -1180,7 +1049,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd_lnd] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land @@ -1189,7 +1057,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph_lnd] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -1198,7 +1065,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin_lnd] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -1207,7 +1073,6 @@ type = real kind = kind_phys intent = inout - optional = F [sncovr1_ice] standard_name = surface_snow_area_fraction_over_ice long_name = surface snow area fraction over ice @@ -1216,7 +1081,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd_ice] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -1225,7 +1089,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph_ice] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -1234,7 +1097,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -1243,7 +1105,6 @@ type = real kind = kind_phys intent = inout - optional = F [smois] standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm @@ -1252,7 +1113,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1261,7 +1121,6 @@ type = real kind = kind_phys intent = inout - optional = F [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -1270,7 +1129,6 @@ type = real kind = kind_phys intent = inout - optional = F [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -1279,7 +1137,6 @@ type = real kind = kind_phys intent = inout - optional = F [keepfr] standard_name = control_for_frozen_soil_physics long_name = flag for frozen soil physics (RUC) @@ -1288,7 +1145,6 @@ type = real kind = kind_phys intent = inout - optional = F [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -1297,7 +1153,6 @@ type = real kind = kind_phys intent = inout - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -1306,7 +1161,6 @@ type = real kind = kind_phys intent = inout - optional = F [trans] standard_name = transpiration_flux long_name = total plant transpiration rate @@ -1315,7 +1169,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf_lnd] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -1324,7 +1177,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsnow_lnd] standard_name = temperature_in_surface_snow_at_surface_adjacent_layer_over_land long_name = snow temperature at the bottom of first snow layer over land @@ -1333,7 +1185,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -1342,7 +1193,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcqc_lnd] standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_land long_name = moist cloud water mixing ratio at surface over land @@ -1351,7 +1201,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcqv_lnd] standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land @@ -1360,7 +1209,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsurf_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -1369,7 +1217,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux_lnd] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land @@ -1378,7 +1225,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap_lnd] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward evaporation flux over land @@ -1387,7 +1233,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_lnd] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1396,7 +1241,6 @@ type = real kind = kind_phys intent = inout - optional = F [runof] standard_name = surface_runoff_flux long_name = surface runoff flux @@ -1405,7 +1249,6 @@ type = real kind = kind_phys intent = inout - optional = F [runoff] standard_name = total_runoff long_name = total water runoff @@ -1414,7 +1257,6 @@ type = real kind = kind_phys intent = inout - optional = F [srunoff] standard_name = surface_runoff long_name = surface water runoff (from lsm) @@ -1423,7 +1265,6 @@ type = real kind = kind_phys intent = inout - optional = F [drain] standard_name = subsurface_runoff_flux long_name = subsurface runoff flux @@ -1432,7 +1273,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_lnd] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -1441,7 +1281,6 @@ type = real kind = kind_phys intent = in - optional = F [ch_lnd] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -1450,7 +1289,6 @@ type = real kind = kind_phys intent = in - optional = F [evbs] standard_name = soil_upward_latent_heat_flux long_name = soil upward latent heat flux @@ -1459,7 +1297,6 @@ type = real kind = kind_phys intent = inout - optional = F [evcw] standard_name = canopy_upward_latent_heat_flux long_name = canopy upward latent heat flux @@ -1468,7 +1305,6 @@ type = real kind = kind_phys intent = inout - optional = F [stm] standard_name = soil_moisture_content long_name = soil moisture content @@ -1477,7 +1313,6 @@ type = real kind = kind_phys intent = inout - optional = F [wetness] standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness @@ -1486,7 +1321,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowfallac_lnd] standard_name = surface_snow_amount_over_land long_name = run-total snow accumulation on the ground over land @@ -1495,7 +1329,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_lnd] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -1504,7 +1337,6 @@ type = real kind = kind_phys intent = out - optional = F [albdnir_lnd] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -1513,7 +1345,6 @@ type = real kind = kind_phys intent = out - optional = F [albivis_lnd] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -1522,7 +1353,6 @@ type = real kind = kind_phys intent = out - optional = F [albinir_lnd] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -1531,7 +1361,6 @@ type = real kind = kind_phys intent = out - optional = F [sfcqc_ice] standard_name = cloud_condensed_water_mixing_ratio_at_surface_over_ice long_name = moist cloud water mixing ratio at surface over ice @@ -1540,7 +1369,6 @@ type = real kind = kind_phys intent = inout - optional = F [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -1549,7 +1377,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -1558,7 +1385,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsnow_ice] standard_name = temperature_in_surface_snow_at_surface_adjacent_layer_over_ice long_name = snow temperature at the bottom of first snow layer over ice @@ -1567,7 +1393,6 @@ type = real kind = kind_phys intent = inout - optional = F [z0rl_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -1576,7 +1401,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsurf_ice] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -1585,7 +1409,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux_ice] standard_name = upward_heat_flux_in_soil_over_ice long_name = soil heat flux over ice @@ -1594,7 +1417,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap_ice] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -1603,7 +1425,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep1d_ice] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -1612,7 +1433,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx_ice] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -1621,7 +1441,6 @@ type = real kind = kind_phys intent = inout - optional = F [cm_ice] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -1630,7 +1449,6 @@ type = real kind = kind_phys intent = in - optional = F [ch_ice] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -1639,7 +1457,6 @@ type = real kind = kind_phys intent = in - optional = F [snowfallac_ice] standard_name = surface_snow_amount_over_ice long_name = run-total snow accumulation on the ground over ice @@ -1648,7 +1465,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis_ice] standard_name = surface_albedo_direct_visible_over_ice long_name = direct surface albedo visible band over ice @@ -1657,7 +1473,6 @@ type = real kind = kind_phys intent = out - optional = F [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -1666,7 +1481,6 @@ type = real kind = kind_phys intent = out - optional = F [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -1675,7 +1489,6 @@ type = real kind = kind_phys intent = out - optional = F [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -1684,7 +1497,6 @@ type = real kind = kind_phys intent = out - optional = F [rhosnf] standard_name = frozen_precipitation_density long_name = density of frozen precipitation @@ -1693,7 +1505,6 @@ type = real kind = kind_phys intent = inout - optional = F [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -1702,7 +1513,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm_lnd] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land long_name = momentum exchange coefficient over land @@ -1711,7 +1521,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh_lnd] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land long_name = thermal exchange coefficient over land @@ -1720,7 +1529,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm_ice] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice long_name = momentum exchange coefficient over ice @@ -1729,7 +1537,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh_ice] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice long_name = thermal exchange coefficient over ice @@ -1738,7 +1545,6 @@ type = real kind = kind_phys intent = inout - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -1746,7 +1552,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -1754,7 +1559,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -1762,7 +1566,6 @@ dimensions = () type = logical intent = in - optional = F [flag_restart] standard_name = flag_for_restart long_name = flag for restart (warmstart) or coldstart @@ -1770,7 +1573,6 @@ dimensions = () type = logical intent = in - optional = F [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -1778,7 +1580,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -1786,7 +1587,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1795,7 +1595,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1803,4 +1602,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_noah_wrfv4.F90 b/physics/sfc_noah_wrfv4.F90 deleted file mode 100644 index 038adf1c6..000000000 --- a/physics/sfc_noah_wrfv4.F90 +++ /dev/null @@ -1,262 +0,0 @@ -!> \file sfc_noah_wrfv4.F90 -!! This file contains the Noah land surface scheme driver for the version of the scheme found in WRF v4.0. - -!> This module contains the CCPP-compliant Noah land surface scheme driver for -!! the version found in WRF v4.0. - module sfc_noah_wrfv4 - - implicit none - - private - - public :: sfc_noah_wrfv4_init, sfc_noah_wrfv4_run, sfc_noah_wrfv4_finalize - - contains - -!> \ingroup NOAH_LSM_WRFv4 -!! \section arg_table_sfc_noah_wrfv4_init Argument Table -!! \htmlinclude sfc_noah_wrfv4_init.html -!! - subroutine sfc_noah_wrfv4_init(lsm, lsm_noah_wrfv4, nsoil, ua_phys, fasdas, restart, errmsg, errflg) - - use machine, only : kind_phys - - implicit none - - integer, intent(in) :: lsm, lsm_noah_wrfv4, nsoil, fasdas - logical, intent(in) :: ua_phys, restart - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - - if (lsm/=lsm_noah_wrfv4) then - write(errmsg,'(*(a))') "Logic error: namelist choice of LSM is different from NOAH WRFv4" - errflg = 1 - return - end if - - if (nsoil < 2) then - write(errmsg,'(*(a))') "The NOAH WRFv4 scheme expects at least 2 soil layers." - errflg = 1 - return - end if - - if (ua_phys) then - write(errmsg,'(*(a))') "The NOAH WRFv4 scheme has not been tested with ua_phys = T" - errflg = 1 - return - end if - - - if (fasdas > 0) then - write(errmsg,'(*(a))') "The NOAH WRFv4 scheme has not been tested with fasdas > 0" - errflg = 1 - return - end if - - if (restart) then - !GJF: for restart functionality, the host model will need to write/read snotime (time_since_last_snowfall (s)) - write(errmsg,'(*(a))') "The NOAH WRFv4 scheme has not been configured for restarts." - errflg = 1 - return - end if - - !GJF: check for rdlai != F? - !GJF: check for usemonalb != T? - - end subroutine sfc_noah_wrfv4_init - - -!! \section arg_table_sfc_noah_wrfv4_finalize Argument Table -!! \htmlinclude sfc_noah_wrfv4_finalize.html -!! - subroutine sfc_noah_wrfv4_finalize(errmsg, errflg) - - implicit none - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - - end subroutine sfc_noah_wrfv4_finalize - - -!> \defgroup NOAH_LSM_WRFv4 Noah LSM Model from WRF v4.0 -!! \section arg_table_sfc_noah_wrfv4_run Argument Table -!! \htmlinclude sfc_noah_wrfv4_run.html -!! -!> \section general_noah_wrfv4_drv NOAH LSM WRFv4 General Algorithm -!> @{ - subroutine sfc_noah_wrfv4_run ( & - im, isice, flag_lsm, flag_lsm_glacier, srflag, isurban, rdlai, & - ua_phys, usemonalb, aoasis, fasdas, dt, zlvl, & - nsoil, sthick, lwdn, soldn, solnet, sfcprs, prcp, sfctmp, q1k, & - th1, qs1, dqsdt2, vegtyp, soiltyp, slopetyp, shdfac, shmin, & - shmax, albbrd, snoalb, tbot, z0brd, z0k, emissi, embrd, cmc, t1,& - stc, smc, swc, snowhk, sneqv, chk, cp, rd, sigma, cph2o, cpice, & - lsubf, sheat, eta, ec, edir, ett, esnow, etp, ssoil, & - flx1, flx2, flx3, sncovr, runoff1, runoff2, soilm, qsurf, ribb, & - smcwlt, smcref, smcmax, opt_thcnd, snotime, errmsg, errflg) - - use machine , only : kind_phys - use module_sf_noahlsm, only: sflx, lutype, sltype - use module_sf_noahlsm_glacial_only, only: sflx_glacial - - implicit none - - integer, intent(in) :: im, isice, isurban, nsoil, opt_thcnd, fasdas - logical, intent(in) :: rdlai, ua_phys, usemonalb - !GJF: usemonalb = True if the surface diffused shortwave albedo is EITHER read from input OR - ! provided by a previous scheme (like radiation: as is done in GFS_rrtmgp_sw_pre) - real(kind=kind_phys), intent(in) :: aoasis - - real(kind=kind_phys), intent(in) :: dt, cp, rd, sigma, cph2o, cpice, lsubf - - integer, dimension(:), intent(in) :: vegtyp, soiltyp, slopetyp - logical, dimension(:), intent(in) :: flag_lsm, flag_lsm_glacier - real(kind=kind_phys), dimension(:), intent(in) :: srflag, zlvl, lwdn, soldn, solnet, & - sfcprs, prcp, sfctmp, q1k, th1, qs1, & - dqsdt2, shmin, shmax, snoalb, tbot - real(kind=kind_phys), dimension(:), intent(in) :: sthick - - real(kind=kind_phys), dimension(:), intent(inout) :: shdfac, albbrd, z0brd, z0k, emissi, & - cmc, t1, snowhk, sneqv, chk, flx1, & - flx2, flx3, ribb, snotime - real(kind=kind_phys), dimension(:,:), intent(inout) :: stc, smc, swc - - !variables that are intent(out) in module_sf_noahlsm, but are inout here due to being set within an IF statement - real(kind=kind_phys), dimension(:), intent(inout) :: embrd, sheat, eta, ec, & - edir, ett, esnow, etp, ssoil, sncovr, & - runoff1, runoff2, soilm, qsurf, smcwlt, & - smcref, smcmax - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - !GJF: There is some confusion regarding specific humidities vs mixing ratios in NOAH LSM. - ! Looking at module_sf_noahlsm.F, sometimes the comments say mixing ratio and sometimes - ! specific humidity. The WRF code (module_sf_noahdrv.F) specifically converts from mixing - ! ratio to specific humidity in preparation for calling SFLX, so I am assuming that - ! all inputs/outputs into SFLX should be specific humidities, despite some comments in - ! module_sf_noahdrv.F describing arguments saying "mixing ratios". This applies to many - ! arguments into SFLX (q1k, qs1, dqsdt2, eta, qsurf, etc.). - -! local Variables - integer :: i, k - logical, parameter :: local = .false. !(not actually used in SFLX) described in module_sf_noahlsm as: - ! Flag for local-site simulation (where there is no maps for albedo, veg fraction, and roughness - ! true: all LSM parameters (inluding albedo, veg fraction and roughness length) will be defined by three tables - - real(kind=kind_phys) :: dummy - - !GJF: The following variables are part of the interface to SFLX but not required as diagnostic - ! output or otherwise outside of this subroutine (at least as part of a GFS-based suite). - ! If any of these variables are needed by other schemes or diagnostics, one needs to add it to - ! the host model and CCPP metadata. Alternatively, none of these variables NEED to be allocated - ! and one could also just pass in dummy arguments. - ! - ! The variables descriptions are from module_sf_noahlsm.F: - ! - ! albedok (output from SFLX): surface albedo including snow effect (unitless fraction) - ! =snow-free albedo (alb) when sneqv=0, or - ! =fct(msnoalb,alb,vegtyp,shdfac,shdmin) when sneqv>0 - ! eta_kinematic (output from SFLX), eta is what is passed out instead of eta_kinematic - ! fdown (output from SFLX) : Radiation forcing at the surface (W m-2) = SOLDN*(1-alb)+LWDN - ! et (output from SFLX): plant transpiration from a particular root (soil) layer (W m-2) - ! drip (output from SFLX): through-fall of precip and/or dew in excess of canopy water-holding capacity (m) - ! dew (output from SFLX): dewfall (or frostfall for t<273.15) (m) - ! beta (output from SFLX): ratio of actual/potential evap (dimensionless) - ! snomlt (output from SFLX): snow melt (m) (water equivalent) - ! runoff3 (output from SFLX): numerical trunctation in excess of porosity (smcmax) for a given soil layer at the end of a time step (m s-1). - ! rc (output from SFLX): canopy resistance (s m-1) - ! pc (output from SFLX): plant coefficient (unitless fraction, 0-1) where pc*etp = actual transp - ! rsmin (output from SFLX): minimum canopy resistance (s m-1) - ! xlai (output from SFLX): leaf area index (dimensionless) - ! rcs (output from SFLX): incoming solar rc factor (dimensionless) - ! rct (output from SFLX): air temperature rc factor (dimensionless) - ! rcq (output from SFLX): atmos vapor pressure deficit rc factor (dimensionless) - ! rcsoil (output from SFLX): soil moisture rc factor (dimensionless) - ! soilw (output from SFLX): available soil moisture in root zone (unitless fraction between smcwlt and smcmax) - ! smav (output from SFLX): soil moisture availability for each layer, as a fraction between smcwlt and smcmax. - ! smcdry (output from SFLX): dry soil moisture threshold where direct evap frm top layer ends (volumetric) - ! smcmax (output from SFLX): porosity, i.e. saturated value of soil moisture (volumetric) - ! nroot (output from SFLX): number of root layers, a function of veg type, determined in subroutine redprm. - - integer :: nroot - real(kind=kind_phys) :: albedok, eta_kinematic, fdown, drip, dew, beta, snomlt, & - runoff3, rc, pc, rsmin, xlai, rcs, rct, rcq, & - rcsoil, soilw, smcdry - real (kind=kind_phys), dimension(nsoil) :: et, smav - real(kind=kind_phys) :: sfcheadrt, infxsrt, etpnd1 !don't appear to be used unless WRF_HYDRO preprocessor directive is defined and no documentation - real(kind=kind_phys) :: xsda_qfx, hfx_phy, qfx_phy, xqnorm, hcpct_fasdas !only used if fasdas = 1 - - !variables associated with UA_PHYS (not used for now) - real(kind=kind_phys) :: flx4, fvb, fbur, fgsn - - errmsg = '' - errflg = 0 - - do i=1, im - if (flag_lsm(i)) then - !GJF: Why do LSMs want the dynamics time step instead of the physics time step? - call sflx (i, 1, srflag(i), & - isurban, dt, zlvl(i), nsoil, sthick, & !c - local, & !L - lutype, sltype, & !CL - lwdn(i), soldn(i), solnet(i), sfcprs(i), prcp(i), & !F - sfctmp(i), q1k(i), dummy, dummy, dummy, dummy, & !F - th1(i), qs1(i), dqsdt2(i), & !I - vegtyp(i), soiltyp(i), slopetyp(i), shdfac(i), & !I - shmin(i), shmax(i), & !I - albbrd(i), snoalb(i), tbot(i), z0brd(i), z0k(i), & !S - emissi(i), embrd(i), & !S - cmc(i), t1(i), stc(i,:), smc(i,:), swc(i,:), & !H - snowhk(i), sneqv(i), albedok, chk(i), dummy, & !H - cp, rd, sigma, cph2o, cpice, lsubf, & - eta(i), sheat(i), eta_kinematic, fdown, & !O - ec(i), edir(i), et, ett(i), esnow(i), drip, dew, & !O - beta, etp(i), ssoil(i), flx1(i), flx2(i), flx3(i),& !O - flx4, fvb, fbur, fgsn, ua_phys, & !UA - snomlt, sncovr(i), runoff1(i), runoff2(i),runoff3,& !O - rc, pc, rsmin, xlai, rcs, rct, rcq, rcsoil, & !O - soilw, soilm(i), qsurf(i), smav, & !D - rdlai, usemonalb, snotime(i), ribb(i), & - smcwlt(i), smcdry, smcref(i), smcmax(i), nroot, & - sfcheadrt, infxsrt, etpnd1, opt_thcnd, aoasis, & - xsda_qfx, hfx_phy, qfx_phy, xqnorm, fasdas, & !fasdas - hcpct_fasdas, & !fasdas - errflg, errmsg) - if (errflg > 0) return - else if (flag_lsm_glacier(i)) then - !set values that sflx updates, but sflx_glacial does not - soilm(i) = 0.0 - runoff2(i) = 0.0 - swc(i,:) = 1.0 - smc(i,:) = 1.0 - - call sflx_glacial (i, 1, isice, srflag(i), dt, zlvl(i), & - nsoil, sthick, lwdn(i), solnet(i), sfcprs(i), & - prcp(i), sfctmp(i), q1k(i), th1(i), qs1(i), & - dqsdt2(i), albbrd(i), snoalb(i), tbot(i), & - z0brd(i), z0k(i), emissi(i), embrd(i), t1(i), & - stc(i,:), snowhk(i), sneqv(i), albedok, chk(i), & - cp, rd, sigma, cph2o, cpice, lsubf, & - eta(i), sheat(i), eta_kinematic, fdown, esnow(i), & - dew, etp(i), ssoil(i), flx1(i), flx2(i), flx3(i), & - snomlt, sncovr(i), runoff1(i), qsurf(i), & - snotime(i), ribb(i), errflg, errmsg) - if (errflg > 0) return - end if - end do - - end subroutine sfc_noah_wrfv4_run -!> @} - -end module sfc_noah_wrfv4 diff --git a/physics/sfc_noah_wrfv4.meta b/physics/sfc_noah_wrfv4.meta deleted file mode 100644 index 23415695c..000000000 --- a/physics/sfc_noah_wrfv4.meta +++ /dev/null @@ -1,770 +0,0 @@ -[ccpp-table-properties] - name = sfc_noah_wrfv4 - type = scheme - dependencies = machine.F,module_sf_noahlsm_glacial_only.F90,module_sf_noahlsm.F90 - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_init - type = scheme -[lsm] - standard_name = control_for_land_surface_scheme - long_name = flag for land surface model - units = flag - dimensions = () - type = integer - intent = in - optional = F -[lsm_noah_wrfv4] - standard_name = identifier_for_noah_wrfv4_land_surface_scheme - long_name = flag for NOAH WRFv4 land surface model - units = flag - dimensions = () - type = integer - intent = in - optional = F -[nsoil] - standard_name = vertical_dimension_of_soil - long_name = soil vertical layer dimension - units = count - dimensions = () - type = integer - intent = in - optional = F -[ua_phys] - standard_name = flag_for_noah_lsm_ua_extension - long_name = flag for using University of Arizona(?) extension for NOAH LSM (see module_sf_noahlsm.F) - units = flag - dimensions = () - type = logical - intent = in - optional = F -[fasdas] - standard_name = control_for_flux_adjusting_surface_data_assimilation_system - long_name = flag to use the flux adjusting surface data assimilation system for NOAH LSM WRFv4 (see module_sf_noahlsm.F) - units = flag - dimensions = () - type = integer - intent = in - optional = F -[restart] - standard_name = flag_for_restart - long_name = flag for restart (warmstart) or coldstart - units = flag - dimensions = () - type = logical - intent = in - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_finalize - type = scheme -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_run - type = scheme -[im] - standard_name = horizontal_loop_extent - long_name = horizontal loop extent - units = count - dimensions = () - type = integer - intent = in - optional = F -[isice] - standard_name = index_of_ice_vegetation_category - long_name = index of the permanent snow/ice category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = in - optional = F -[flag_lsm] - standard_name = flag_for_calling_land_surface_model - long_name = flag for calling land surface model - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[flag_lsm_glacier] - standard_name = flag_for_calling_land_surface_model_glacier - long_name = flag for calling land surface model over glacier - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[srflag] - standard_name = precipitation_type - long_name = flag for snow or rain precipitation - units = flag - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[isurban] - standard_name = index_of_urban_vegetation_category - long_name = index of the urban vegetation category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = in - optional = F -[rdlai] - standard_name = flag_for_reading_leaf_area_index_from_input - long_name = flag for reading leaf area index from initial conditions - units = flag - dimensions = () - type = logical - intent = in - optional = F -[ua_phys] - standard_name = flag_for_noah_lsm_ua_extension - long_name = flag for using University of Arizona(?) extension for NOAH LSM (see module_sf_noahlsm.F) - units = flag - dimensions = () - type = logical - intent = in - optional = F -[usemonalb] - standard_name = flag_for_reading_surface_albedo_for_diffused_shortwave_from_input - long_name = flag for reading surface diffused shortwave albedo for NOAH LSM WRFv4 (see module_sf_noahlsm.F) - units = flag - dimensions = () - type = logical - intent = in - optional = F -[aoasis] - standard_name = multiplicative_tuning_parameter_for_potential_evaporation - long_name = potential evaporation multiplicative factor for NOAH LSM WRFv4 (see module_sf_noahlsm.F) - units = none - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[fasdas] - standard_name = control_for_flux_adjusting_surface_data_assimilation_system - long_name = flag to use the flux adjusting surface data assimilation system for NOAH LSM WRFv4 (see module_sf_noahlsm.F) - units = flag - dimensions = () - type = integer - intent = in - optional = F -[dt] - standard_name = timestep_for_dynamics - long_name = dynamics timestep - units = s - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[zlvl] - standard_name = height_above_ground_at_lowest_model_layer - long_name = height above ground at 1st model layer - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[nsoil] - standard_name = vertical_dimension_of_soil - long_name = soil vertical layer dimension - units = count - dimensions = () - type = integer - intent = in - optional = F -[sthick] - standard_name = thickness_of_soil_layers_for_land_surface_model - long_name = soil layer thickness - units = m - dimensions = (vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[lwdn] - standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land - long_name = total sky surface downward longwave flux absorbed by the ground over land - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[soldn] - standard_name = surface_downwelling_shortwave_flux - long_name = total sky surface downward shortwave flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[solnet] - standard_name = surface_net_downwelling_shortwave_flux - long_name = total sky surface net shortwave flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[sfcprs] - standard_name = air_pressure_at_surface_adjacent_layer - long_name = Model layer 1 mean pressure - units = Pa - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[prcp] - standard_name = total_precipitation_rate_on_dynamics_timestep_over_land - long_name = total precipitation rate in each time step over land - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[sfctmp] - standard_name = air_temperature_at_surface_adjacent_layer - long_name = 1st model layer air temperature - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[q1k] - standard_name = bounded_specific_humidity_at_lowest_model_layer_over_land - long_name = specific humidity at lowest model layer over land bounded between a nonzero epsilon and saturation - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[th1] - standard_name = potential_temperature_at_lowest_model_layer - long_name = potential_temperature_at_lowest_model_layer - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[qs1] - standard_name = saturation_specific_humidity_at_lowest_model_layer - long_name = saturation specific humidity at lowest model layer - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[dqsdt2] - standard_name = saturation_specific_humidity_slope - long_name = saturation specific humidity slope at lowest model layer - units = K-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[vegtyp] - standard_name = vegetation_type_classification - long_name = vegetation type at each grid cell - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = in - optional = F -[soiltyp] - standard_name = soil_type_classification - long_name = soil type at each grid cell - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = in - optional = F -[slopetyp] - standard_name = surface_slope_classification - long_name = surface slope type at each grid cell - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = in - optional = F -[shdfac] - standard_name = bounded_vegetation_area_fraction - long_name = areal fractional cover of green vegetation bounded on the bottom - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[shmin] - standard_name = min_vegetation_area_fraction - long_name = min fractional coverage of green vegetation - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[shmax] - standard_name = max_vegetation_area_fraction - long_name = max fractional coverage of green vegetation - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[albbrd] - standard_name = surface_albedo_for_diffused_shortwave_on_radiation_timestep - long_name = mean surface diffused shortwave albedo - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snoalb] - standard_name = upper_bound_of_max_albedo_assuming_deep_snow - long_name = maximum snow albedo - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[tbot] - standard_name = deep_soil_temperature - long_name = bottom soil temperature - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[z0brd] - standard_name = baseline_surface_roughness_length - long_name = baseline surface roughness length for momentum in meter - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[z0k] - standard_name = surface_roughness_length_over_land - long_name = surface roughness length over land - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[emissi] - standard_name = surface_longwave_emissivity_over_land - long_name = surface lw emissivity in fraction over land - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[embrd] - standard_name = baseline_surface_longwave_emissivity - long_name = baseline surface lw emissivity in fraction - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[cmc] - standard_name = canopy_water_amount_in_m - long_name = canopy water amount in m - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[t1] - standard_name = surface_skin_temperature_after_iteration_over_land - long_name = surface skin temperature after iteration over land - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[stc] - standard_name = soil_temperature - long_name = soil temperature - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[smc] - standard_name = volume_fraction_of_condensed_water_in_soil - long_name = volumetric fraction of soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[swc] - standard_name = volume_fraction_of_unfrozen_water_in_soil - long_name = volume fraction of unfrozen soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[snowhk] - standard_name = actual_snow_depth - long_name = actual snow depth - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[sneqv] - standard_name = water_equivalent_accumulated_snow_depth_over_land - long_name = water equiv of acc snow depth over land - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[chk] - standard_name = surface_conductance_for_heat_and_moisture_in_air_over_land - long_name = surface conductance for heat & moisture over land - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[cp] - standard_name = specific_heat_of_dry_air_at_constant_pressure - long_name = specific heat of dry air at constant pressure - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[rd] - standard_name = gas_constant_of_dry_air - long_name = ideal gas constant for dry air - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[sigma] - standard_name = stefan_boltzmann_constant - long_name = Steffan-Boltzmann constant - units = W m-2 K-4 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[cph2o] - standard_name = specific_heat_of_liquid_water_at_constant_pressure - long_name = specific heat of liquid water at constant pressure - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[cpice] - standard_name = specific_heat_of_ice_at_constant_pressure - long_name = specific heat of ice at constant pressure - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[lsubf] - standard_name = latent_heat_of_fusion_of_water_at_0C - long_name = latent heat of fusion - units = J kg-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[sheat] - standard_name = instantaneous_surface_upward_sensible_heat_flux - long_name = surface upward sensible heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[eta] - standard_name = instantaneous_surface_upward_latent_heat_flux - long_name = surface upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[ec] - standard_name = canopy_upward_latent_heat_flux - long_name = canopy upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[edir] - standard_name = soil_upward_latent_heat_flux - long_name = soil upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[ett] - standard_name = transpiration_flux - long_name = total plant transpiration rate - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[esnow] - standard_name = snow_deposition_sublimation_upward_latent_heat_flux - long_name = latent heat flux from snow depo/subl - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[etp] - standard_name = surface_upward_potential_latent_heat_flux_over_land - long_name = surface upward potential latent heat flux over land - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[ssoil] - standard_name = upward_heat_flux_in_soil_over_land - long_name = soil heat flux over land - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[flx1] - standard_name = latent_heat_flux_from_precipitating_snow - long_name = latent heat flux due to precipitating snow - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[flx2] - standard_name = latent_heat_flux_from_freezing_rain - long_name = latent heat flux due to freezing rain - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[flx3] - standard_name = latent_heat_flux_due_to_snowmelt - long_name = latent heat flux due to snowmelt phase change - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[sncovr] - standard_name = surface_snow_area_fraction_over_land - long_name = surface snow area fraction - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[runoff1] - standard_name = surface_runoff_flux_in_m_sm1 - long_name = surface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[runoff2] - standard_name = subsurface_runoff_flux_in_m_sm1 - long_name = subsurface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[soilm] - standard_name = soil_moisture_content_in_m - long_name = soil moisture in meters - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[qsurf] - standard_name = surface_specific_humidity_over_land - long_name = surface air saturation specific humidity over land - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[ribb] - standard_name = bulk_richardson_number_at_lowest_model_level_over_land - long_name = bulk Richardson number at the surface over land - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[smcwlt] - standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point - long_name = soil water fraction at wilting point - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[smcref] - standard_name = threshold_volume_fraction_of_condensed_water_in_soil - long_name = soil moisture threshold - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[smcmax] - standard_name = soil_porosity - long_name = volumetric soil porosity - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[opt_thcnd] - standard_name = control_for_land_surface_scheme_thermal_conductivity_option - long_name = choice for thermal conductivity option (see module_sf_noahlsm) - units = index - dimensions = () - type = integer - intent = in - optional = F -[snotime] - standard_name = time_since_last_snowfall - long_name = elapsed time since last snowfall - units = s - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F diff --git a/physics/sfc_noah_wrfv4_interstitial.F90 b/physics/sfc_noah_wrfv4_interstitial.F90 deleted file mode 100644 index ee66b0092..000000000 --- a/physics/sfc_noah_wrfv4_interstitial.F90 +++ /dev/null @@ -1,759 +0,0 @@ -!> \file sfc_noah_wrfv4_interstitial.F90 -!! This file contains data preparation for the WRFv4 version of Noah LSM as part of a GFS-based suite. - -!> This module contains the CCPP-compliant data preparation for the WRFv4 version of Noah LSM. - module sfc_noah_wrfv4_pre - - implicit none - - public :: sfc_noah_wrfv4_pre_init, sfc_noah_wrfv4_pre_run, sfc_noah_wrfv4_pre_finalize - - private - - logical :: is_initialized = .false. - - contains - -!> \ingroup NOAH_LSM_WRFv4 -!! \section arg_table_sfc_noah_wrfv4_pre_init Argument Table -!! \htmlinclude sfc_noah_wrfv4_pre_init.html -!! - subroutine sfc_noah_wrfv4_pre_init(lsm, lsm_noah_wrfv4, veg_data_choice, & - soil_data_choice, isurban, isice, iswater, errmsg, errflg) - - use machine, only : kind_phys - - implicit none - - integer, intent(in) :: lsm, lsm_noah_wrfv4, & - veg_data_choice, soil_data_choice - - integer, intent(inout) :: isurban, isice, iswater - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - ! Local variables - - character(len=256) :: mminlu, mminsl - - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - - if (is_initialized) return - - if (lsm/=lsm_noah_wrfv4) then - write(errmsg,'(*(a))') "Logic error: namelist choice of LSM is different from NOAH WRFv4" - errflg = 1 - return - end if - - select case (veg_data_choice) - case (0) - mminlu = 'USGS' - isurban = 1 - isice = 24 - iswater = 16 - case (1) - mminlu = 'MODIFIED_IGBP_MODIS_NOAH' - isurban = 13 - isice = 15 - iswater = 17 - case (3) - mminlu = 'NLCD40' - isurban = 13 - isice = 15 !or 22? - iswater = 17 !or 21? - case (4) - mminlu = 'USGS-RUC' - isurban = 1 - isice = 24 - iswater = 16 - case (5) - mminlu = 'MODI-RUC' - isurban = 13 - isice = 15 - iswater = 17 - case default - errmsg = 'The value of the ivegsrc physics namelist parameter is incompatible with this version of NOAH LSM' - errflg = 1 - return - end select - - select case (soil_data_choice) - case (1) - mminsl = 'STAS' - case (2) - mminsl = 'STAS-RUC' - case default - errmsg = 'The value of the isot physics namelist parameter is incompatible with this version of NOAH LSM' - errflg = 1 - return - end select - - call soil_veg_gen_parm(trim(mminlu), trim(mminsl), errmsg, errflg) - - is_initialized = .true. - - end subroutine sfc_noah_wrfv4_pre_init - - -!! \section arg_table_sfc_noah_wrfv4_pre_finalize Argument Table -!! \htmlinclude sfc_noah_wrfv4_pre_finalize.html -!! - subroutine sfc_noah_wrfv4_pre_finalize(errmsg, errflg) - - implicit none - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - - end subroutine sfc_noah_wrfv4_pre_finalize - - -!> \ingroup NOAH_LSM_WRFv4 Noah LSM from WRFv4 pre-scheme data preparation -!! \section arg_table_sfc_noah_wrfv4_pre_run Argument Table -!! \htmlinclude sfc_noah_wrfv4_pre_run.html -!! -!> \section general_noah_wrfv4_pre NOAH LSM WRFv4 pre-scheme data preparation General Algorithm -!> @{ - subroutine sfc_noah_wrfv4_pre_run (im, nsoil, ialb, isice, land, & - flag_guess, flag_iter, restart, first_time_step, flag_lsm, & - flag_lsm_glacier, dt, rhowater, rd, rvrdm1, eps, epsm1, sfcprs, tprcp, & - sfctmp, q1, prslki, wind, snwdph, cm, ch, weasd, tsfc, vtype, smc, & - stc, slc, snoalb, prcp, q2k, rho1, qs1, th1, dqsdt2, canopy, cmc, & - snowhk, chk, cmm, chh, weasd_save, snwdph_save, tsfc_save, canopy_save,& - smc_save, stc_save, slc_save, ep, evap, hflx, gflux, drain, evbs, evcw,& - trans, sbsno, snowc, snohf, sthick, errmsg, errflg) - - use machine , only : kind_phys - use funcphys, only : fpvs - use module_sf_noahlsm, only: maxalb - - implicit none - - !GJF: Data preparation and output preparation from SFLX follows the GFS physics code (sfc_drv.F) - ! rather than the WRF code (module_sf_noahdrv.F) in order to "fit in" with other GFS physics-based - ! suites. Another version of this scheme (and the associated post) could potentially be - ! created from the WRF version. No attempt was made to test sensitivities to either approach. - ! Note that the version of NOAH LSM expected here is "generic" - there are no urban, fasdas, or - ! or University of Arizona(?) additions. - - integer, intent(in) :: im, nsoil, ialb, isice - logical, intent(in) :: restart, first_time_step - real(kind=kind_phys), intent(in) :: dt, rhowater, rd, rvrdm1, eps, epsm1 - - logical, dimension(:), intent(in) :: flag_guess, flag_iter, land - real(kind=kind_phys), dimension(:), intent(in) :: sfcprs, tprcp, sfctmp, q1, prslki, wind, cm, ch, snwdph - real(kind=kind_phys), dimension(:), intent(in) :: weasd, tsfc - integer , dimension(:), intent(in) :: vtype - real(kind=kind_phys), dimension(:,:), intent(in) :: smc, stc, slc - - logical, dimension(:), intent(inout) :: flag_lsm, flag_lsm_glacier - real(kind=kind_phys), dimension(:), intent(inout) :: snoalb, prcp, q2k, rho1, qs1, th1, dqsdt2, canopy, cmc, snowhk, chk, cmm, chh - real(kind=kind_phys), dimension(:), intent(inout) :: weasd_save, snwdph_save, tsfc_save, canopy_save - real(kind=kind_phys), dimension(:,:), intent(inout) :: smc_save, stc_save, slc_save - real(kind=kind_phys), dimension(:), intent(inout) :: ep, evap, hflx, gflux, drain, evbs, evcw, trans, sbsno, snowc, snohf - real(kind=kind_phys), dimension(:), intent(inout) :: sthick - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - -! local Variables - integer :: i, k - real(kind=kind_phys) :: sneqv - - REAL, PARAMETER :: A2=17.67,A3=273.15,A4=29.65, & - A23M4=A2*(A3-A4) - real(kind=kind_phys), parameter, dimension(4) :: zsoil = (/ -0.1,-0.4,-1.0,-2.0/) !what if nsoil /= 4? - -!> - Initialize CCPP error handling variables - - errmsg = '' - errflg = 0 - - !from module_sf_noahdrv.F/lsminit - if (.not. restart .and. first_time_step .and. ialb == 0) then - do i = 1, im - snoalb(i) = maxalb(vtype(i))*0.01 - end do - end if - - do i=1, im - if (land(i) .and. flag_guess(i)) then - weasd_save(i) = weasd(i) - snwdph_save(i) = snwdph(i) - tsfc_save(i) = tsfc(i) - canopy_save(i) = canopy(i) - - do k=1,nsoil - smc_save(i,k) = smc(i,k) - stc_save(i,k) = stc(i,k) - slc_save(i,k) = slc(i,k) - end do - end if - end do - - sthick(1) = - zsoil(1) - do k = 2, nsoil - sthick(k) = zsoil(k-1) - zsoil(k) - enddo - - flag_lsm(:) = .false. - flag_lsm_glacier(:) = .false. - do i=1, im - if (flag_iter(i) .and. land(i)) then - if (vtype(i) == isice) then - flag_lsm_glacier(i) = .true. - else - flag_lsm(i) = .true. - end if - !GJF: module_sf_noahdrv.F from WRF has hardcoded slopetyp = 1; why? replicate here? - !GJF: shdfac is zeroed out for particular combinations of vegetation table source and vegetation types; replicate here? - - ep(i) = 0.0 - evap (i) = 0.0 - hflx (i) = 0.0 - gflux(i) = 0.0 - drain(i) = 0.0 - - evbs (i) = 0.0 - evcw (i) = 0.0 - trans(i) = 0.0 - sbsno(i) = 0.0 - snowc(i) = 0.0 - snohf(i) = 0.0 - - !GJF: could potentially pass in pre-calculated rates instead of calculating here - prcp(i) = rhowater * tprcp(i) / dt - - !GJF: The GFS version of NOAH prepares the specific humidity in sfc_drv.f as follows: - q2k(i) = max(q1(i), 1.e-8) - rho1(i) = sfcprs(i) / (rd*sfctmp(i)*(1.0+rvrdm1*q2k(i))) - - qs1(i) = fpvs( sfctmp(i) ) - qs1(i) = max(eps*qs1(i) / (sfcprs(i)+epsm1*qs1(i)), 1.e-8) - q2k(i) = min(qs1(i), q2k(i)) - - !GJF: could potentially pass in pre-calcualted potential temperature if other schemes also need it (to avoid redundant calculation) - th1(i) = sfctmp(i) * prslki(i) - - !GJF: module_sf_noahdrv.F from WRF modifies dqsdt2 if the surface has snow. - dqsdt2(i)=qs1(i)*a23m4/(sfctmp(i)-a4)**2 - - !GJF: convert canopy moisture from kg m-2 to m - canopy(i) = max(canopy(i), 0.0) !check for positive values in sfc_drv.f - cmc(i) = canopy(i)/rhowater - - !GJF: snow depth passed in to NOAH is conditionally modified differently in GFS and WRF: - sneqv = weasd(i) * 0.001 - snowhk(i) = snwdph(i) * 0.001 - if ( (sneqv /= 0.0 .and. snowhk(i) == 0.) .or. (snowhk(i) <= sneqv) ) then - snowhk(i) = 5.*sneqv - end if - !GJF: GFS version: - ! if (sneqv(i) /= 0.0 .and. snwdph(i) == 0.0) then - ! snowhk(i) = 10.0 * sneqv(i) - ! endif - - !GJF: calculate conductance from surface exchange coefficient - chk(i) = ch(i) * wind(i) - - chh(i) = chk(i) * rho1(i) - cmm(i) = cm(i) * wind(i) - - -!GJF: If the perturbations of vegetation fraction is desired, one could uncomment this code -! and add appropriate arguments to make this work. This is from the GFS version of NOAH LSM -! in sfc_drv.f. - -!> - Call surface_perturbation::ppfbet() to perturb vegetation fraction that goes into gsflx(). -! perturb vegetation fraction that goes into sflx, use the same -! perturbation strategy as for albedo (percentile matching) -!! Following Gehne et al. (2018) \cite gehne_et_al_2018, a perturbation of vegetation -!! fraction is added to account for the uncertainty. A percentile matching technique -!! is applied to guarantee the perturbed vegetation fraction is bounded between 0 and -!! 1. The standard deviation of the perturbations is 0.25 for vegetation fraction of -!! 0.5 and the perturbations go to zero as vegetation fraction approaches its upper -!! or lower bound. - ! vegfp = vegfpert(i) ! sfc-perts, mgehne - ! if (pertvegf(1)>0.0) then - ! ! compute beta distribution parameters for vegetation fraction - ! mv = shdfac - ! sv = pertvegf(1)*mv*(1.-mv) - ! alphav = mv*mv*(1.0-mv)/(sv*sv)-mv - ! betav = alphav*(1.0-mv)/mv - ! ! compute beta distribution value corresponding - ! ! to the given percentile albPpert to use as new albedo - ! call ppfbet(vegfp,alphav,betav,iflag,vegftmp) - ! shdfac = vegftmp - ! endif -! *** sfc-perts, mgehne - endif - end do - - - end subroutine sfc_noah_wrfv4_pre_run - - subroutine soil_veg_gen_parm( mminlu, mminsl, errmsg, errflg) - !this routine is mostly taken from module_sf_noahdrv.F in WRF - use module_sf_noahlsm, only: shdtbl, nrotbl, rstbl, rgltbl, hstbl, snuptbl, & ! begin land use / vegetation variables - maxalb, laimintbl, laimaxtbl, z0mintbl, z0maxtbl, & - albedomintbl, albedomaxtbl, ztopvtbl,zbotvtbl, & - emissmintbl, emissmaxtbl, topt_data, cmcmax_data, & - cfactr_data, rsmax_data, bare, natural, & - low_density_residential, high_density_residential, & - high_intensity_industrial, lucats, lutype, & !end land use / vegetation variables - bb,drysmc,f11, & ! begin soil variables - maxsmc, refsmc,satpsi,satdk,satdw, wltsmc,qtz,& - slcats, sltype, & ! end soil variables - slope_data, sbeta_data,fxexp_data,csoil_data,salp_data,refdk_data, & ! begin NOAH "general" variables - refkdt_data,frzk_data,zbot_data, smlow_data,smhigh_data, & - czil_data, lvcoef_data, slpcats ! end NOAH "general" variables - implicit none - - character(len=*), intent(in) :: mminlu, mminsl - character(len=*), intent(inout) :: errmsg - integer, intent(inout) :: errflg - - integer :: lumatch, iindex, lc, num_slope, iunit_noah - integer :: ierr - integer , parameter :: open_ok = 0 - logical :: opened - - character*128 :: mess , message - character*256 :: a_string - integer , parameter :: loop_max = 10 - integer :: loop_count, i - -!-----SPECIFY VEGETATION RELATED CHARACTERISTICS : -! ALBBCK: SFC albedo (in percentage) -! Z0: Roughness length (m) -! SHDFAC: Green vegetation fraction (in percentage) -! Note: The ALBEDO, Z0, and SHDFAC values read from the following table -! ALBEDO, amd Z0 are specified in LAND-USE TABLE; and SHDFAC is -! the monthly green vegetation data -! CMXTBL: MAX CNPY Capacity (m) -! NROTBL: Rooting depth (layer) -! RSMIN: Mimimum stomatal resistance (s m-1) -! RSMAX: Max. stomatal resistance (s m-1) -! RGL: Parameters used in radiation stress function -! HS: Parameter used in vapor pressure deficit functio -! TOPT: Optimum transpiration air temperature. (K) -! CMCMAX: Maximum canopy water capacity -! CFACTR: Parameter used in the canopy inteception calculati -! SNUP: Threshold snow depth (in water equivalent m) that -! implies 100% snow cover -! LAI: Leaf area index (dimensionless) -! MAXALB: Upper bound on maximum albedo over deep snow -! -!-----READ IN VEGETAION PROPERTIES FROM VEGPARM.TBL -! - iunit_noah = -1 - do i = 20,99 - inquire ( i , opened = opened ) - if ( .not. opened ) then - iunit_noah = i - exit - endif - enddo - - if ( iunit_noah < 0 ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: '// & - 'can not find unused fortran unit to read.' - return - endif - - open(iunit_noah, file='VEGPARM.TBL',form='formatted',status='old',iostat=ierr) - if(ierr .ne. open_ok ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: failure opening VEGPARM.TBL' - return - end if - - lumatch=0 - - loop_count = 0 - read (iunit_noah,fmt='(a)',end=2002) a_string - find_lutype : do while (lumatch == 0) - read (iunit_noah,*,end=2002)lutype - read (iunit_noah,*)lucats,iindex - if(lutype.eq.mminlu)then - !write( mess , * ) 'landuse type = ' // trim ( lutype ) // ' found', lucats,' categories' - !call wrf_message( mess ) - lumatch=1 - else - loop_count = loop_count+1 - !call wrf_message ( "skipping over lutype = " // trim ( lutype ) ) - find_vegetation_parameter_flag : do - read (iunit_noah,fmt='(a)', end=2002) a_string - if ( a_string(1:21) .eq. 'Vegetation Parameters' ) then - exit find_vegetation_parameter_flag - else if ( loop_count .ge. loop_max ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: too many loops in VEGPARM.TBL' - return - endif - enddo find_vegetation_parameter_flag - endif - enddo find_lutype - -! prevent possible array overwrite, Bill Bovermann, IBM, May 6, 2008 - if ( size(shdtbl) < lucats .or. & - size(nrotbl) < lucats .or. & - size(rstbl) < lucats .or. & - size(rgltbl) < lucats .or. & - size(hstbl) < lucats .or. & - size(snuptbl) < lucats .or. & - size(maxalb) < lucats .or. & - size(laimintbl) < lucats .or. & - size(laimaxtbl) < lucats .or. & - size(z0mintbl) < lucats .or. & - size(z0maxtbl) < lucats .or. & - size(albedomintbl) < lucats .or. & - size(albedomaxtbl) < lucats .or. & - size(ztopvtbl) < lucats .or. & - size(zbotvtbl) < lucats .or. & - size(emissmintbl ) < lucats .or. & - size(emissmaxtbl ) < lucats ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: table sizes too small for value of lucats' - return - endif - - if(lutype.eq.mminlu)then - do lc=1,lucats - read (iunit_noah,*)iindex,shdtbl(lc), & - nrotbl(lc),rstbl(lc),rgltbl(lc),hstbl(lc), & - snuptbl(lc),maxalb(lc), laimintbl(lc), & - laimaxtbl(lc),emissmintbl(lc), & - emissmaxtbl(lc), albedomintbl(lc), & - albedomaxtbl(lc), z0mintbl(lc), z0maxtbl(lc),& - ztopvtbl(lc), zbotvtbl(lc) - enddo - - read (iunit_noah,*) - read (iunit_noah,*)topt_data - read (iunit_noah,*) - read (iunit_noah,*)cmcmax_data - read (iunit_noah,*) - read (iunit_noah,*)cfactr_data - read (iunit_noah,*) - read (iunit_noah,*)rsmax_data - read (iunit_noah,*) - read (iunit_noah,*)bare - read (iunit_noah,*) - read (iunit_noah,*)natural - read (iunit_noah,*) - read (iunit_noah,*) - read (iunit_noah,fmt='(a)') a_string - if ( a_string(1:21) .eq. 'Vegetation Parameters' ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: expected low and high density residential, and high density industrial information in VEGPARM.TBL' - return - endif - read (iunit_noah,*)low_density_residential - read (iunit_noah,*) - read (iunit_noah,*)high_density_residential - read (iunit_noah,*) - read (iunit_noah,*)high_intensity_industrial - endif - -2002 continue - - close (iunit_noah) - if (lumatch == 0) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: land use dataset '//mminlu//' not found in VEGPARM.TBL.' - return - endif - - - !CALL wrf_dm_bcast_string ( LUTYPE , 4 ) - !CALL wrf_dm_bcast_integer ( LUCATS , 1 ) - !CALL wrf_dm_bcast_integer ( IINDEX , 1 ) - !CALL wrf_dm_bcast_integer ( LUMATCH , 1 ) - !CALL wrf_dm_bcast_real ( SHDTBL , NLUS ) - !CALL wrf_dm_bcast_real ( NROTBL , NLUS ) - !CALL wrf_dm_bcast_real ( RSTBL , NLUS ) - !CALL wrf_dm_bcast_real ( RGLTBL , NLUS ) - !CALL wrf_dm_bcast_real ( HSTBL , NLUS ) - !CALL wrf_dm_bcast_real ( SNUPTBL , NLUS ) - !CALL wrf_dm_bcast_real ( LAIMINTBL , NLUS ) - !CALL wrf_dm_bcast_real ( LAIMAXTBL , NLUS ) - !CALL wrf_dm_bcast_real ( Z0MINTBL , NLUS ) - !CALL wrf_dm_bcast_real ( Z0MAXTBL , NLUS ) - !CALL wrf_dm_bcast_real ( EMISSMINTBL , NLUS ) - !CALL wrf_dm_bcast_real ( EMISSMAXTBL , NLUS ) - !CALL wrf_dm_bcast_real ( ALBEDOMINTBL , NLUS ) - !CALL wrf_dm_bcast_real ( ALBEDOMAXTBL , NLUS ) - !CALL wrf_dm_bcast_real ( ZTOPVTBL , NLUS ) - !CALL wrf_dm_bcast_real ( ZBOTVTBL , NLUS ) - !CALL wrf_dm_bcast_real ( MAXALB , NLUS ) - !CALL wrf_dm_bcast_real ( TOPT_DATA , 1 ) - !CALL wrf_dm_bcast_real ( CMCMAX_DATA , 1 ) - !CALL wrf_dm_bcast_real ( CFACTR_DATA , 1 ) - !CALL wrf_dm_bcast_real ( RSMAX_DATA , 1 ) - !CALL wrf_dm_bcast_integer ( BARE , 1 ) - !CALL wrf_dm_bcast_integer ( NATURAL , 1 ) - !CALL wrf_dm_bcast_integer ( LOW_DENSITY_RESIDENTIAL , 1 ) - !CALL wrf_dm_bcast_integer ( HIGH_DENSITY_RESIDENTIAL , 1 ) - !CALL wrf_dm_bcast_integer ( HIGH_INTENSITY_INDUSTRIAL , 1 ) - -! -!-----READ IN SOIL PROPERTIES FROM SOILPARM.TBL -! - - open(iunit_noah, file='SOILPARM.TBL',form='formatted',status='old',iostat=ierr) - if(ierr .ne. open_ok ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: failure opening SOILPARM.TBL' - return - end if - - !write(mess,*) 'input soil texture classification = ', trim ( mminsl ) - !call wrf_message( mess ) - - lumatch=0 - - read (iunit_noah,*) - read (iunit_noah,2000,end=2003)sltype -2000 format (a4) - read (iunit_noah,*)slcats,iindex - if(sltype.eq.mminsl)then - !write( mess , * ) 'soil texture classification = ', trim ( sltype ) , ' found', & - ! slcats,' categories' - !call wrf_message ( mess ) - lumatch=1 - endif -! prevent possible array overwrite, bill bovermann, ibm, may 6, 2008 - if ( size(bb ) < slcats .or. & - size(drysmc) < slcats .or. & - size(f11 ) < slcats .or. & - size(maxsmc) < slcats .or. & - size(refsmc) < slcats .or. & - size(satpsi) < slcats .or. & - size(satdk ) < slcats .or. & - size(satdw ) < slcats .or. & - size(wltsmc) < slcats .or. & - size(qtz ) < slcats ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: table sizes too small for value of slcats' - return - endif - if(sltype.eq.mminsl)then - do lc=1,slcats - read (iunit_noah,*) iindex,bb(lc),drysmc(lc),f11(lc),maxsmc(lc),& - refsmc(lc),satpsi(lc),satdk(lc), satdw(lc), & - wltsmc(lc), qtz(lc) - enddo - endif - -2003 continue - - close (iunit_noah) - - - ! CALL wrf_dm_bcast_integer ( LUMATCH , 1 ) - ! CALL wrf_dm_bcast_string ( SLTYPE , 4 ) - ! CALL wrf_dm_bcast_string ( MMINSL , 4 ) ! since this is reset above, see oct2 ^ - ! CALL wrf_dm_bcast_integer ( SLCATS , 1 ) - ! CALL wrf_dm_bcast_integer ( IINDEX , 1 ) - ! CALL wrf_dm_bcast_real ( BB , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( DRYSMC , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( F11 , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( MAXSMC , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( REFSMC , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( SATPSI , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( SATDK , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( SATDW , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( WLTSMC , NSLTYPE ) - ! CALL wrf_dm_bcast_real ( QTZ , NSLTYPE ) - - if(lumatch.eq.0)then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: soil texture dataset '//mminsl//' not found in SOILPARM.TBL.' - return - endif - -! -!-----READ IN GENERAL PARAMETERS FROM GENPARM.TBL -! - - open(iunit_noah, file='GENPARM.TBL',form='formatted',status='old',iostat=ierr) - if(ierr .ne. open_ok ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: failure opening GENPARM.TBL' - return - end if - - read (iunit_noah,*) - read (iunit_noah,*) - read (iunit_noah,*) num_slope - - slpcats=num_slope -! prevent possible array overwrite, bill bovermann, ibm, may 6, 2008 - if ( size(slope_data) < num_slope ) then - errflg = 1 - errmsg = 'sfc_noah_wrfv4_interstitial: set_soil_veg_parm: num_slope too large for slope_data array' - return - endif - - do lc=1,slpcats - read (iunit_noah,*)slope_data(lc) - enddo - - read (iunit_noah,*) - read (iunit_noah,*)sbeta_data - read (iunit_noah,*) - read (iunit_noah,*)fxexp_data - read (iunit_noah,*) - read (iunit_noah,*)csoil_data - read (iunit_noah,*) - read (iunit_noah,*)salp_data - read (iunit_noah,*) - read (iunit_noah,*)refdk_data - read (iunit_noah,*) - read (iunit_noah,*)refkdt_data - read (iunit_noah,*) - read (iunit_noah,*)frzk_data - read (iunit_noah,*) - read (iunit_noah,*)zbot_data - read (iunit_noah,*) - read (iunit_noah,*)czil_data - read (iunit_noah,*) - read (iunit_noah,*)smlow_data - read (iunit_noah,*) - read (iunit_noah,*)smhigh_data - read (iunit_noah,*) - read (iunit_noah,*)lvcoef_data - close (iunit_noah) - - - ! call wrf_dm_bcast_integer ( num_slope , 1 ) - ! call wrf_dm_bcast_integer ( slpcats , 1 ) - ! call wrf_dm_bcast_real ( slope_data , nslope ) - ! call wrf_dm_bcast_real ( sbeta_data , 1 ) - ! call wrf_dm_bcast_real ( fxexp_data , 1 ) - ! call wrf_dm_bcast_real ( csoil_data , 1 ) - ! call wrf_dm_bcast_real ( salp_data , 1 ) - ! call wrf_dm_bcast_real ( refdk_data , 1 ) - ! call wrf_dm_bcast_real ( refkdt_data , 1 ) - ! call wrf_dm_bcast_real ( frzk_data , 1 ) - ! call wrf_dm_bcast_real ( zbot_data , 1 ) - ! call wrf_dm_bcast_real ( czil_data , 1 ) - ! call wrf_dm_bcast_real ( smlow_data , 1 ) - ! call wrf_dm_bcast_real ( smhigh_data , 1 ) - ! call wrf_dm_bcast_real ( lvcoef_data , 1 ) - - end subroutine soil_veg_gen_parm -!----------------------------- -!> @} - - end module sfc_noah_wrfv4_pre - - module sfc_noah_wrfv4_post - - implicit none - - private - - public :: sfc_noah_wrfv4_post_init, sfc_noah_wrfv4_post_run, sfc_noah_wrfv4_post_finalize - - contains - - subroutine sfc_noah_wrfv4_post_init () - end subroutine sfc_noah_wrfv4_post_init - - subroutine sfc_noah_wrfv4_post_finalize () - end subroutine sfc_noah_wrfv4_post_finalize - -!! \section arg_table_sfc_noah_wrfv4_post_run Argument Table -!! \htmlinclude sfc_noah_wrfv4_post_run.html -!! - subroutine sfc_noah_wrfv4_post_run (im, nsoil, land, flag_guess, flag_lsm, & - rhowater, cp, hvap, cmc, rho1, sheat, eta, flx1, flx2, flx3, sncovr, runoff1,& - runoff2, soilm, snowhk, weasd_save, snwdph_save, tsfc_save, tsurf, & - canopy_save, smc_save, stc_save, slc_save, smcmax, canopy, shflx, & - lhflx, snohf, snowc, runoff, drain, stm, weasd, snwdph, tsfc, smc, stc,& - slc, wet1, errmsg, errflg) - - use machine, only : kind_phys - - implicit none - - integer, intent(in) :: im, nsoil - logical, dimension(:), intent(in) :: land, flag_guess, flag_lsm - real(kind=kind_phys), intent(in) :: rhowater, cp, hvap - real(kind=kind_phys), dimension(:), intent(in) :: cmc, rho1, sheat, eta, & - flx1, flx2, flx3, sncovr, runoff1, runoff2, soilm, snowhk - real(kind=kind_phys), dimension(:), intent(in) :: weasd_save, snwdph_save, tsfc_save, tsurf, canopy_save, smcmax - real(kind=kind_phys), dimension(:,:), intent(in) :: smc_save, stc_save, slc_save - - real(kind=kind_phys), dimension(:), intent(inout) :: canopy, shflx, lhflx, & - snohf, snowc, runoff, drain, stm, wet1 - real(kind=kind_phys), dimension(:), intent(inout) :: weasd, snwdph, tsfc - real(kind=kind_phys), dimension(:,:), intent(inout) :: smc, stc, slc - - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - !local variables - integer :: i, k - - ! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - - do i=1, im - if (flag_lsm(i)) then - canopy(i) = cmc(i)*rhowater - snwdph(i) = 1000.0*snowhk(i) - - shflx(i) = sheat(i) / (cp*rho1(i)) - lhflx(i) = eta(i) / (hvap*rho1(i)) - - !aggregating several outputs into one like GFS sfc_drv.F - snohf(i) = flx1(i) + flx2(i) + flx3(i) - - snowc(i) = sncovr(i) !GJF: redundant? - - !convert from m s-1 to kg m-2 s-1 by multiplying by rhowater - runoff(i) = runoff1(i) * rhowater - drain(i) = runoff2(i) * rhowater - - stm(i) = soilm(i) * rhowater - - wet1(i) = smc(i,1) / smcmax(i) !Sarah Lu added 09/09/2010 (for GOCART) - end if - end do - - do i=1, im - if (land(i)) then - if (flag_guess(i)) then - weasd(i) = weasd_save(i) - snwdph(i) = snwdph_save(i) - tsfc(i) = tsfc_save(i) - canopy(i) = canopy_save(i) - - do k=1,nsoil - smc(i,k) = smc_save(i,k) - stc(i,k) = stc_save(i,k) - slc(i,k) = slc_save(i,k) - end do - - else - tsfc(i) = tsurf(i) - end if - end if - end do - - end subroutine sfc_noah_wrfv4_post_run - - end module sfc_noah_wrfv4_post diff --git a/physics/sfc_noah_wrfv4_interstitial.meta b/physics/sfc_noah_wrfv4_interstitial.meta deleted file mode 100644 index e2d98e15a..000000000 --- a/physics/sfc_noah_wrfv4_interstitial.meta +++ /dev/null @@ -1,1109 +0,0 @@ -[ccpp-table-properties] - name = sfc_noah_wrfv4_pre - type = scheme - dependencies = machine.F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_pre_init - type = scheme -[lsm] - standard_name = control_for_land_surface_scheme - long_name = flag for land surface model - units = flag - dimensions = () - type = integer - intent = in - optional = F -[lsm_noah_wrfv4] - standard_name = identifier_for_noah_wrfv4_land_surface_scheme - long_name = flag for NOAH WRFv4 land surface model - units = flag - dimensions = () - type = integer - intent = in - optional = F -[veg_data_choice] - standard_name = control_for_vegetation_dataset - long_name = land use dataset choice - units = index - dimensions = () - type = integer - intent = in - optional = F -[soil_data_choice] - standard_name = control_for_soil_type_dataset - long_name = soil type dataset choice - units = index - dimensions = () - type = integer - intent = in - optional = F -[isurban] - standard_name = index_of_urban_vegetation_category - long_name = index of the urban vegetation category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = inout - optional = F -[isice] - standard_name = index_of_ice_vegetation_category - long_name = index of the permanent snow/ice category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = inout - optional = F -[iswater] - standard_name = index_of_water_vegetation_category - long_name = index of the water body vegetation category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = inout - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_pre_finalize - type = scheme -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_pre_run - type = scheme -[im] - standard_name = horizontal_loop_extent - long_name = horizontal loop extent - units = count - dimensions = () - type = integer - intent = in - optional = F -[nsoil] - standard_name = vertical_dimension_of_soil - long_name = soil vertical layer dimension - units = count - dimensions = () - type = integer - intent = in - optional = F -[ialb] - standard_name = control_for_surface_albedo - long_name = flag for using climatology alb, based on sfc type - units = flag - dimensions = () - type = integer - intent = in - optional = F -[isice] - standard_name = index_of_ice_vegetation_category - long_name = index of the permanent snow/ice category in the chosen vegetation dataset - units = index - dimensions = () - type = integer - intent = in - optional = F -[land] - standard_name = flag_nonzero_land_surface_fraction - long_name = flag indicating presence of some land surface area fraction - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[flag_guess] - standard_name = flag_for_guess_run - long_name = flag for guess run - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[flag_iter] - standard_name = flag_for_iteration - long_name = flag for iteration - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[restart] - standard_name = flag_for_restart - long_name = flag for restart (warmstart) or coldstart - units = flag - dimensions = () - type = logical - intent = in - optional = F -[first_time_step] - standard_name = flag_for_first_timestep - long_name = flag for first time step for time integration loop (cold/warmstart) - units = flag - dimensions = () - type = logical - intent = in - optional = F -[flag_lsm] - standard_name = flag_for_calling_land_surface_model - long_name = flag for calling land surface model - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = inout - optional = F -[flag_lsm_glacier] - standard_name = flag_for_calling_land_surface_model_glacier - long_name = flag for calling land surface model over glacier - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = inout - optional = F -[dt] - standard_name = timestep_for_dynamics - long_name = dynamics timestep - units = s - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[rhowater] - standard_name = fresh_liquid_water_density_at_0c - long_name = density of liquid water - units = kg m-3 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[rd] - standard_name = gas_constant_of_dry_air - long_name = ideal gas constant for dry air - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[rvrdm1] - standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one - long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) - units = none - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[eps] - standard_name = ratio_of_dry_air_to_water_vapor_gas_constants - long_name = rd/rv - units = none - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[epsm1] - standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one - long_name = (rd/rv) - 1 - units = none - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[sfcprs] - standard_name = air_pressure_at_surface_adjacent_layer - long_name = Model layer 1 mean pressure - units = Pa - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[tprcp] - standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land - long_name = total precipitation amount in each time step over land - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[sfctmp] - standard_name = air_temperature_at_surface_adjacent_layer - long_name = 1st model layer air temperature - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[q1] - standard_name = specific_humidity_at_surface_adjacent_layer - long_name = 1st model layer specific humidity - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[prslki] - standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer - long_name = Exner function ratio bt midlayer and interface at 1st layer - units = ratio - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[wind] - standard_name = wind_speed_at_lowest_model_layer - long_name = wind speed at lowest model level - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[snwdph] - standard_name = surface_snow_thickness_water_equivalent_over_land - long_name = water equivalent snow depth over land - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[cm] - standard_name = surface_drag_coefficient_for_momentum_in_air_over_land - long_name = surface exchange coeff for momentum over land - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[ch] - standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land - long_name = surface exchange coeff heat & moisture over land - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[weasd] - standard_name = water_equivalent_accumulated_snow_depth_over_land - long_name = water equiv of acc snow depth over land - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[tsfc] - standard_name = surface_skin_temperature_over_land - long_name = surface skin temperature over land - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[vtype] - standard_name = vegetation_type_classification - long_name = vegetation type for lsm - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = in - optional = F -[smc] - standard_name = volume_fraction_of_condensed_water_in_soil - long_name = volumetric fraction of soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[stc] - standard_name = soil_temperature - long_name = soil temperature - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[slc] - standard_name = volume_fraction_of_unfrozen_water_in_soil - long_name = liquid soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[snoalb] - standard_name = upper_bound_of_max_albedo_assuming_deep_snow - long_name = maximum snow albedo - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[prcp] - standard_name = total_precipitation_rate_on_dynamics_timestep_over_land - long_name = total precipitation rate in each time step over land - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[q2k] - standard_name = bounded_specific_humidity_at_lowest_model_layer_over_land - long_name = specific humidity at lowest model layer over land bounded between a nonzero epsilon and saturation - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[rho1] - standard_name = air_density_at_lowest_model_layer - long_name = air density at lowest model layer - units = kg m-3 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[qs1] - standard_name = saturation_specific_humidity_at_lowest_model_layer - long_name = saturation specific humidity at lowest model layer - units = kg kg-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[th1] - standard_name = potential_temperature_at_lowest_model_layer - long_name = potential_temperature_at_lowest_model_layer - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[dqsdt2] - standard_name = saturation_specific_humidity_slope - long_name = saturation specific humidity slope at lowest model layer - units = K-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[canopy] - standard_name = canopy_water_amount - long_name = canopy moisture content - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[cmc] - standard_name = canopy_water_amount_in_m - long_name = canopy water amount in m - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snowhk] - standard_name = actual_snow_depth - long_name = actual snow depth - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[chk] - standard_name = surface_conductance_for_heat_and_moisture_in_air_over_land - long_name = surface conductance for heat & moisture over land - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[cmm] - standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land - long_name = momentum exchange coefficient over land - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[chh] - standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land - long_name = thermal exchange coefficient over land - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[weasd_save] - standard_name = water_equivalent_accumulated_snow_depth_over_land_save - long_name = water equiv of acc snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snwdph_save] - standard_name = surface_snow_thickness_water_equivalent_over_land_save - long_name = water equivalent snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[tsfc_save] - standard_name = surface_skin_temperature_over_land_save - long_name = surface skin temperature over land before entering a physics scheme - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[canopy_save] - standard_name = canopy_water_amount_save - long_name = canopy water amount before entering a physics scheme - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[smc_save] - standard_name = volume_fraction_of_soil_moisture_save - long_name = total soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[stc_save] - standard_name = soil_temperature_save - long_name = soil temperature before entering a physics scheme - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[slc_save] - standard_name = volume_fraction_of_unfrozen_soil_moisture_save - long_name = liquid soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[ep] - standard_name = surface_upward_potential_latent_heat_flux_over_land - long_name = surface upward potential latent heat flux over land - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[evap] - standard_name = kinematic_surface_upward_latent_heat_flux_over_land - long_name = kinematic surface upward latent heat flux over land - units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[hflx] - standard_name = kinematic_surface_upward_sensible_heat_flux_over_land - long_name = kinematic surface upward sensible heat flux over land - units = K m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[gflux] - standard_name = upward_heat_flux_in_soil_over_land - long_name = soil heat flux over land - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[drain] - standard_name = subsurface_runoff_flux - long_name = subsurface runoff flux - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[evbs] - standard_name = soil_upward_latent_heat_flux - long_name = soil upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[evcw] - standard_name = canopy_upward_latent_heat_flux - long_name = canopy upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[trans] - standard_name = transpiration_flux - long_name = total plant transpiration rate - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[sbsno] - standard_name = snow_deposition_sublimation_upward_latent_heat_flux - long_name = latent heat flux from snow depo/subl - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snowc] - standard_name = surface_snow_area_fraction - long_name = surface snow area fraction - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snohf] - standard_name = snow_freezing_rain_upward_latent_heat_flux - long_name = latent heat flux due to snow and frz rain - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[sthick] - standard_name = thickness_of_soil_layers_for_land_surface_model - long_name = soil layer thickness - units = m - dimensions = (vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F - -######################################################################## -[ccpp-table-properties] - name = sfc_noah_wrfv4_post - type = scheme - dependencies = machine.F - -######################################################################## -[ccpp-arg-table] - name = sfc_noah_wrfv4_post_run - type = scheme -[im] - standard_name = horizontal_loop_extent - long_name = horizontal loop extent - units = count - dimensions = () - type = integer - intent = in - optional = F -[nsoil] - standard_name = vertical_dimension_of_soil - long_name = soil vertical layer dimension - units = count - dimensions = () - type = integer - intent = in - optional = F -[land] - standard_name = flag_nonzero_land_surface_fraction - long_name = flag indicating presence of some land surface area fraction - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[flag_guess] - standard_name = flag_for_guess_run - long_name = flag for guess run - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[flag_lsm] - standard_name = flag_for_calling_land_surface_model - long_name = flag for calling land surface model - units = flag - dimensions = (horizontal_loop_extent) - type = logical - intent = in - optional = F -[rhowater] - standard_name = fresh_liquid_water_density_at_0c - long_name = density of liquid water - units = kg m-3 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[cp] - standard_name = specific_heat_of_dry_air_at_constant_pressure - long_name = specific heat of dry air at constant pressure - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[hvap] - standard_name = latent_heat_of_vaporization_of_water_at_0C - long_name = latent heat of evaporation/sublimation - units = J kg-1 - dimensions = () - type = real - kind = kind_phys - intent = in - optional = F -[cmc] - standard_name = canopy_water_amount_in_m - long_name = canopy water amount in m - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[rho1] - standard_name = air_density_at_lowest_model_layer - long_name = air density at lowest model layer - units = kg m-3 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[sheat] - standard_name = instantaneous_surface_upward_sensible_heat_flux - long_name = surface upward sensible heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[eta] - standard_name = instantaneous_surface_upward_latent_heat_flux - long_name = surface upward latent heat flux - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[flx1] - standard_name = latent_heat_flux_from_precipitating_snow - long_name = latent heat flux due to precipitating snow - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[flx2] - standard_name = latent_heat_flux_from_freezing_rain - long_name = latent heat flux due to freezing rain - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[flx3] - standard_name = latent_heat_flux_due_to_snowmelt - long_name = latent heat flux due to snowmelt phase change - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[sncovr] - standard_name = surface_snow_area_fraction_over_land - long_name = surface snow area fraction - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[runoff1] - standard_name = surface_runoff_flux_in_m_sm1 - long_name = surface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[runoff2] - standard_name = subsurface_runoff_flux_in_m_sm1 - long_name = subsurface runoff flux in m s-1 - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[soilm] - standard_name = soil_moisture_content_in_m - long_name = soil moisture in meters - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[snowhk] - standard_name = actual_snow_depth - long_name = actual snow depth - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[weasd_save] - standard_name = water_equivalent_accumulated_snow_depth_over_land_save - long_name = water equiv of acc snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[snwdph_save] - standard_name = surface_snow_thickness_water_equivalent_over_land_save - long_name = water equivalent snow depth over land before entering a physics scheme - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[tsfc_save] - standard_name = surface_skin_temperature_over_land_save - long_name = surface skin temperature over land before entering a physics scheme (temporary use as interstitial) - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[tsurf] - standard_name = surface_skin_temperature_after_iteration_over_land - long_name = surface skin temperature after iteration over land - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[canopy_save] - standard_name = canopy_water_amount_save - long_name = canopy water amount before entering a physics scheme - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[smc_save] - standard_name = volume_fraction_of_soil_moisture_save - long_name = total soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[stc_save] - standard_name = soil_temperature_save - long_name = soil temperature before entering a physics scheme - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[slc_save] - standard_name = volume_fraction_of_unfrozen_soil_moisture_save - long_name = liquid soil moisture before entering a physics scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = in - optional = F -[smcmax] - standard_name = soil_porosity - long_name = volumetric soil porosity - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = F -[canopy] - standard_name = canopy_water_amount - long_name = canopy moisture content - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[shflx] - standard_name = kinematic_surface_upward_sensible_heat_flux_over_land - long_name = kinematic surface upward sensible heat flux over land - units = K m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[lhflx] - standard_name = kinematic_surface_upward_latent_heat_flux_over_land - long_name = kinematic surface upward latent heat flux over land - units = kg kg-1 m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snohf] - standard_name = snow_freezing_rain_upward_latent_heat_flux - long_name = latent heat flux due to snow and frz rain - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snowc] - standard_name = surface_snow_area_fraction - long_name = surface snow area fraction - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[runoff] - standard_name = surface_runoff_flux - long_name = surface runoff flux - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[drain] - standard_name = subsurface_runoff_flux - long_name = subsurface runoff flux - units = kg m-2 s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[stm] - standard_name = soil_moisture_content - long_name = soil moisture - units = kg m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[weasd] - standard_name = water_equivalent_accumulated_snow_depth_over_land - long_name = water equiv of acc snow depth over land - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[snwdph] - standard_name = surface_snow_thickness_water_equivalent_over_land - long_name = water equivalent snow depth over land - units = mm - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[tsfc] - standard_name = surface_skin_temperature_over_land - long_name = surface skin temperature over land - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[smc] - standard_name = volume_fraction_of_condensed_water_in_soil - long_name = volumetric fraction of soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[stc] - standard_name = soil_temperature - long_name = soil temperature - units = K - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[slc] - standard_name = volume_fraction_of_unfrozen_water_in_soil - long_name = liquid soil moisture - units = frac - dimensions = (horizontal_loop_extent,vertical_dimension_of_soil) - type = real - kind = kind_phys - intent = inout - optional = F -[wet1] - standard_name = normalized_soil_wetness - long_name = normalized soil wetness - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F diff --git a/physics/sfc_noahmp_drv.F90 b/physics/sfc_noahmp_drv.F90 index 129601e94..3ac72a4fa 100644 --- a/physics/sfc_noahmp_drv.F90 +++ b/physics/sfc_noahmp_drv.F90 @@ -1467,19 +1467,20 @@ subroutine penman (sfctmp,sfcprs,ch,t2v,th2,prcp,fdown,ssoil, & ! ---------------------------------------------------------------------- ! subroutine penman ! ---------------------------------------------------------------------- + use machine, only: kind_phys implicit none logical, intent(in) :: snowng, frzgra - real, intent(in) :: ch, dqsdt2,fdown,prcp,ffrozp, & + real(kind=kind_phys), intent(in) :: ch, dqsdt2,fdown,prcp,ffrozp, & & q2, q2sat,ssoil, sfcprs, sfctmp, & & t2v, th2,emissi_in,sncovr - real, intent(out) :: etp - real :: epsca,flx2,rch,rr,t24 - real :: a, delta, fnet,rad,rho,emissi,elcp1,lvs - - real, parameter :: elcp = 2.4888e+3, lsubc = 2.501000e+6,cp = 1004.6 - real, parameter :: lsubs = 2.83e+6, rd = 287.05, cph2o = 4.1855e+3 - real, parameter :: cpice = 2.106e+3, lsubf = 3.335e5 - real, parameter :: sigma = 5.6704e-8 + real(kind=kind_phys), intent(out) :: etp + real(kind=kind_phys) :: epsca,flx2,rch,rr,t24 + real(kind=kind_phys) :: a, delta, fnet,rad,rho,emissi,elcp1,lvs + + real(kind=kind_phys), parameter :: elcp = 2.4888e+3, lsubc = 2.501000e+6,cp = 1004.6 + real(kind=kind_phys), parameter :: lsubs = 2.83e+6, rd = 287.05, cph2o = 4.1855e+3 + real(kind=kind_phys), parameter :: cpice = 2.106e+3, lsubf = 3.335e5 + real(kind=kind_phys), parameter :: sigma = 5.6704e-8 ! ---------------------------------------------------------------------- ! executable code begins here: diff --git a/physics/sfc_noahmp_drv.meta b/physics/sfc_noahmp_drv.meta index bed1a3de2..52b354739 100644 --- a/physics/sfc_noahmp_drv.meta +++ b/physics/sfc_noahmp_drv.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [lsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [isot] standard_name = control_for_soil_type_dataset long_name = soil type dataset choice @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [ivegsrc] standard_name = control_for_vegetation_dataset long_name = land use dataset choice @@ -46,7 +42,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for file opens @@ -54,7 +49,6 @@ dimensions = () type = integer intent = in - optional = F [pores] standard_name = maximum_soil_moisture_content_for_land_surface_model long_name = maximum soil moisture for a given soil type for land surface model @@ -79,7 +73,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -87,7 +80,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -100,7 +92,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_dimension_of_soil long_name = soil vertical layer dimension @@ -108,7 +99,6 @@ dimensions = () type = integer intent = in - optional = F [lsnowl] standard_name = lower_bound_of_vertical_dimension_of_surface_snow long_name = lower bound of of snow-related arrays for land surface model @@ -116,7 +106,6 @@ dimensions = () type = integer intent = in - optional = F [itime] standard_name = index_of_timestep long_name = current forecast iteration @@ -124,7 +113,6 @@ dimensions = () type = integer intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -133,7 +121,6 @@ type = real kind = kind_phys intent = in - optional = F [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = zonal wind at lowest model layer @@ -142,7 +129,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = meridional wind at lowest model layer @@ -151,7 +137,6 @@ type = real kind = kind_phys intent= in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer @@ -160,7 +145,6 @@ type = real kind = kind_phys intent= in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = water vapor specific humidity at lowest model layer @@ -169,7 +153,6 @@ type = real kind = kind_phys intent= in - optional = F [soiltyp] standard_name = soil_type_classification long_name = soil type at each grid cell @@ -177,7 +160,6 @@ dimensions = (horizontal_loop_extent) type = integer intent= in - optional = F [vegtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -185,7 +167,6 @@ dimensions = (horizontal_loop_extent) type = integer intent= in - optional = F [sigmaf] standard_name = bounded_vegetation_area_fraction long_name = areal fractional cover of green vegetation bounded on the bottom @@ -194,7 +175,6 @@ type = real kind = kind_phys intent= in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -203,7 +183,6 @@ type = real kind = kind_phys intent = in - optional = F [dswsfc] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -212,7 +191,6 @@ type = real kind = kind_phys intent= in - optional = F [snet] standard_name = surface_net_downwelling_shortwave_flux long_name = surface net downwelling shortwave flux at current time @@ -221,7 +199,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -230,7 +207,6 @@ type = real kind = kind_phys intent = in - optional = F [tg3] standard_name = deep_soil_temperature long_name = deep soil temperature @@ -239,7 +215,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_land long_name = surface exchange coeff for momentum over land @@ -248,7 +223,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land long_name = surface exchange coeff heat & moisture over land @@ -257,7 +231,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -266,7 +239,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -275,7 +247,6 @@ type = real kind = kind_phys intent = in - optional = F [zf] standard_name = height_above_ground_at_lowest_model_layer long_name = layer 1 height above ground (not MSL) @@ -284,7 +255,6 @@ type = real kind = kind_phys intent = in - optional = F [dry] standard_name = flag_nonzero_land_surface_fraction long_name = flag indicating presence of some land surface area fraction @@ -292,7 +262,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -301,7 +270,6 @@ type = real kind = kind_phys intent = in - optional = F [slopetyp] standard_name = surface_slope_classification long_name = surface slope type at each grid cell @@ -309,7 +277,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [shdmin] standard_name = min_vegetation_area_fraction long_name = min fractional coverage of green vegetation @@ -318,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = F [shdmax] standard_name = max_vegetation_area_fraction long_name = max fractional coverage of green vegetation @@ -327,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = F [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -336,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = F [sfalb] standard_name = surface_albedo_for_diffused_shortwave_on_radiation_timestep long_name = mean surface diffused sw albedo @@ -345,7 +309,6 @@ type = real kind = kind_phys intent = inout - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -353,7 +316,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -361,7 +323,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [idveg] standard_name = control_for_land_surface_scheme_dynamic_vegetation long_name = choice for dynamic vegetation option (see noahmp module for definition) @@ -369,7 +330,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_crs] standard_name = control_for_land_surface_scheme_canopy_stomatal_resistance long_name = choice for canopy stomatal resistance option (see noahmp module for definition) @@ -377,7 +337,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_btr] standard_name = control_for_land_surface_scheme_soil_moisture_factor_stomatal_resistance long_name = choice for soil moisture factor for canopy stomatal resistance option (see noahmp module for definition) @@ -385,7 +344,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_run] standard_name = control_for_land_surface_scheme_runoff_and_groundwater long_name = choice for runoff and groundwater option (see noahmp module for definition) @@ -393,7 +351,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_sfc] standard_name = control_for_land_surface_scheme_surface_layer_drag_coefficient long_name = choice for surface layer drag coefficient option (see noahmp module for definition) @@ -401,7 +358,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_frz] standard_name = control_for_land_surface_scheme_supercooled_liquid_water long_name = choice for supercooled liquid water option (see noahmp module for definition) @@ -409,7 +365,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_inf] standard_name = control_for_land_surface_scheme_frozen_soil_permeability long_name = choice for frozen soil permeability option (see noahmp module for definition) @@ -417,7 +372,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_rad] standard_name = control_for_land_surface_scheme_radiative_transfer long_name = choice for radiation transfer option (see noahmp module for definition) @@ -425,7 +379,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_alb] standard_name = control_for_land_surface_scheme_surface_snow_albedo long_name = choice for ground snow surface albedo option (see noahmp module for definition) @@ -433,7 +386,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_snf] standard_name = control_for_land_surface_scheme_precipitation_type_partition long_name = choice for precipitation partition option (see noahmp module for definition) @@ -441,7 +393,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_tbot] standard_name = control_for_land_surface_scheme_lower_boundary_soil_temperature long_name = choice for lower boundary soil temperature option (see noahmp module for definition) @@ -449,7 +400,6 @@ dimensions = () type = integer intent = in - optional = F [iopt_stc] standard_name = control_for_land_surface_scheme_soil_and_snow_temperature_time_integration long_name = choice for soil and snow temperature time stepping option (see noahmp module for definition) @@ -457,7 +407,6 @@ dimensions = () type = integer intent = in - optional = F [xlatin] standard_name = latitude long_name = latitude @@ -466,7 +415,6 @@ type = real kind = kind_phys intent = in - optional = F [xcoszin] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of zenith angle at current time @@ -475,7 +423,6 @@ type = real kind = kind_phys intent = in - optional = F [iyrlen] standard_name = number_of_days_in_current_year long_name = number of days in a year @@ -483,7 +430,6 @@ dimensions = () type = integer intent = in - optional = F [julian] standard_name = forecast_julian_day long_name = julian day @@ -492,7 +438,6 @@ type = real kind = kind_phys intent = in - optional = F [rainn_mp] standard_name = explicit_precipitation_rate_on_previous_timestep long_name = explicit rainfall rate previous timestep @@ -501,7 +446,6 @@ type = real kind = kind_phys intent = in - optional = F [rainc_mp] standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep @@ -510,7 +454,6 @@ type = real kind = kind_phys intent = in - optional = F [snow_mp] standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep @@ -519,7 +462,6 @@ type = real kind = kind_phys intent = in - optional = F [graupel_mp] standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep @@ -528,7 +470,6 @@ type = real kind = kind_phys intent = in - optional = F [ice_mp] standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep @@ -537,7 +478,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -546,7 +486,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -555,7 +494,6 @@ type = real kind = kind_phys intent = in - optional = F [con_jcal] standard_name = joules_per_calorie_constant long_name = joules per calorie constant @@ -564,7 +502,6 @@ type = real kind = kind_phys intent = in - optional = F [rhoh2o] standard_name = fresh_liquid_water_density_at_0c long_name = density of liquid water @@ -573,7 +510,6 @@ type = real kind = kind_phys intent = in - optional = F [con_eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -582,7 +518,6 @@ type = real kind = kind_phys intent = in - optional = F [con_epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -591,7 +526,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -600,7 +534,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -609,7 +542,6 @@ type = real kind = kind_phys intent = in - optional = F [con_hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -618,7 +550,6 @@ type = real kind = kind_phys intent = in - optional = F [weasd] standard_name = water_equivalent_accumulated_snow_depth_over_land long_name = water equiv of acc snow depth over land @@ -627,7 +558,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_land long_name = water equivalent snow depth over land @@ -636,7 +566,6 @@ type = real kind = kind_phys intent = inout - optional = F [tskin] standard_name = surface_skin_temperature_over_land long_name = surface skin temperature over land @@ -645,7 +574,6 @@ type = real kind = kind_phys intent = inout - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land long_name = total precipitation amount in each time step over land @@ -654,7 +582,6 @@ type = real kind = kind_phys intent = inout - optional = F [srflag] standard_name = precipitation_type long_name = snow/rain flag for precipitation @@ -663,7 +590,6 @@ type = real kind = kind_phys intent = inout - optional = F [smc] standard_name = volume_fraction_of_condensed_water_in_soil long_name = total soil moisture @@ -672,7 +598,6 @@ type = real kind = kind_phys intent = inout - optional = F [stc] standard_name = soil_temperature long_name = soil temperature @@ -681,7 +606,6 @@ type = real kind = kind_phys intent = inout - optional = F [slc] standard_name = volume_fraction_of_unfrozen_water_in_soil long_name = liquid soil moisture @@ -690,7 +614,6 @@ type = real kind = kind_phys intent = inout - optional = F [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -699,7 +622,6 @@ type = real kind = kind_phys intent = inout - optional = F [trans] standard_name = transpiration_flux long_name = total plant transpiration rate @@ -708,7 +630,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf] standard_name = surface_skin_temperature_after_iteration_over_land long_name = surface skin temperature after iteration over land @@ -717,7 +638,6 @@ type = real kind = kind_phys intent = inout - optional = F [zorl] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -726,7 +646,6 @@ type = real kind = kind_phys intent = inout - optional = F [snowxy] standard_name = number_of_snow_layers long_name = number of snow layers @@ -735,7 +654,6 @@ type = real kind = kind_phys intent = inout - optional = F [tvxy] standard_name = canopy_temperature long_name = vegetation temperature @@ -744,7 +662,6 @@ type = real kind = kind_phys intent = inout - optional = F [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -753,7 +670,6 @@ type = real kind = kind_phys intent = inout - optional = F [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -762,7 +678,6 @@ type = real kind = kind_phys intent = inout - optional = F [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -771,7 +686,6 @@ type = real kind = kind_phys intent = inout - optional = F [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -780,7 +694,6 @@ type = real kind = kind_phys intent = inout - optional = F [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -789,7 +702,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -798,7 +710,6 @@ type = real kind = kind_phys intent = inout - optional = F [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -807,7 +718,6 @@ type = real kind = kind_phys intent = inout - optional = F [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -816,7 +726,6 @@ type = real kind = kind_phys intent = inout - optional = F [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -825,7 +734,6 @@ type = real kind = kind_phys intent = inout - optional = F [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -834,7 +742,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -843,7 +750,6 @@ type = real kind = kind_phys intent = inout - optional = F [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -852,7 +758,6 @@ type = real kind = kind_phys intent = inout - optional = F [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -861,7 +766,6 @@ type = real kind = kind_phys intent = inout - optional = F [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -870,7 +774,6 @@ type = real kind = kind_phys intent = inout - optional = F [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -879,7 +782,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -888,7 +790,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -897,7 +798,6 @@ type = real kind = kind_phys intent = inout - optional = F [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = lwe_thickness_of_ice_in_surface_snow @@ -906,7 +806,6 @@ type = real kind = kind_phys intent = inout - optional = F [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -915,7 +814,6 @@ type = real kind = kind_phys intent = inout - optional = F [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -924,7 +822,6 @@ type = real kind = kind_phys intent = inout - optional = F [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -933,7 +830,6 @@ type = real kind = kind_phys intent = inout - optional = F [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -942,7 +838,6 @@ type = real kind = kind_phys intent = inout - optional = F [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -951,7 +846,6 @@ type = real kind = kind_phys intent = inout - optional = F [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -960,7 +854,6 @@ type = real kind = kind_phys intent = inout - optional = F [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -969,7 +862,6 @@ type = real kind = kind_phys intent = inout - optional = F [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -978,7 +870,6 @@ type = real kind = kind_phys intent = inout - optional = F [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -987,7 +878,6 @@ type = real kind = kind_phys intent = inout - optional = F [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -996,7 +886,6 @@ type = real kind = kind_phys intent = inout - optional = F [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -1005,7 +894,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1014,7 +902,6 @@ type = real kind = kind_phys intent = inout - optional = F [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -1023,7 +910,6 @@ type = real kind = kind_phys intent = inout - optional = F [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -1032,7 +918,6 @@ type = real kind = kind_phys intent = inout - optional = F [albdvis] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -1041,7 +926,6 @@ type = real kind = kind_phys intent = out - optional = F [albdnir] standard_name = surface_albedo_direct_NIR_over_land long_name = direct surface albedo NIR band over land @@ -1050,7 +934,6 @@ type = real kind = kind_phys intent = out - optional = F [albivis] standard_name = surface_albedo_diffuse_visible_over_land long_name = diffuse surface albedo visible band over land @@ -1059,7 +942,6 @@ type = real kind = kind_phys intent = out - optional = F [albinir] standard_name = surface_albedo_diffuse_NIR_over_land long_name = diffuse surface albedo NIR band over land @@ -1068,7 +950,6 @@ type = real kind = kind_phys intent = out - optional = F [emiss] standard_name = surface_longwave_emissivity_over_land long_name = surface lw emissivity in fraction over land @@ -1077,7 +958,6 @@ type = real kind = kind_phys intent = out - optional = F [sncovr1] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction @@ -1086,7 +966,6 @@ type = real kind = kind_phys intent = out - optional = F [qsurf] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -1095,7 +974,6 @@ type = real kind = kind_phys intent = out - optional = F [gflux] standard_name = upward_heat_flux_in_soil_over_land long_name = soil heat flux over land @@ -1104,7 +982,6 @@ type = real kind = kind_phys intent = out - optional = F [drain] standard_name = subsurface_runoff_flux long_name = subsurface runoff flux @@ -1113,7 +990,6 @@ type = real kind = kind_phys intent = out - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_land long_name = kinematic surface upward latent heat flux over land @@ -1122,7 +998,6 @@ type = real kind = kind_phys intent = out - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_land long_name = kinematic surface upward sensible heat flux over land @@ -1131,7 +1006,6 @@ type = real kind = kind_phys intent = out - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_land long_name = surface upward potential latent heat flux over land @@ -1140,7 +1014,6 @@ type = real kind = kind_phys intent = out - optional = F [runoff] standard_name = surface_runoff_flux long_name = surface runoff flux @@ -1149,7 +1022,6 @@ type = real kind = kind_phys intent = out - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land long_name = momentum exchange coefficient over land @@ -1158,7 +1030,6 @@ type = real kind = kind_phys intent = out - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land long_name = thermal exchange coefficient over land @@ -1167,7 +1038,6 @@ type = real kind = kind_phys intent = out - optional = F [evbs] standard_name = soil_upward_latent_heat_flux long_name = soil upward latent heat flux @@ -1176,7 +1046,6 @@ type = real kind = kind_phys intent = out - optional = F [evcw] standard_name = canopy_upward_latent_heat_flux long_name = canopy upward latent heat flux @@ -1185,7 +1054,6 @@ type = real kind = kind_phys intent = out - optional = F [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -1194,7 +1062,6 @@ type = real kind = kind_phys intent = out - optional = F [snowc] standard_name = surface_snow_area_fraction long_name = surface snow area fraction @@ -1203,7 +1070,6 @@ type = real kind = kind_phys intent = out - optional = F [stm] standard_name = soil_moisture_content long_name = soil moisture @@ -1212,7 +1078,6 @@ type = real kind = kind_phys intent = out - optional = F [snohf] standard_name = snow_freezing_rain_upward_latent_heat_flux long_name = latent heat flux due to snow and frz rain @@ -1221,7 +1086,6 @@ type = real kind = kind_phys intent = out - optional = F [smcwlt2] standard_name = volume_fraction_of_condensed_water_in_soil_at_wilting_point long_name = wilting point (volumetric) @@ -1230,7 +1094,6 @@ type = real kind = kind_phys intent = out - optional = F [smcref2] standard_name = threshold_volume_fraction_of_condensed_water_in_soil long_name = soil moisture threshold (volumetric) @@ -1239,7 +1102,6 @@ type = real kind = kind_phys intent = out - optional = F [wet1] standard_name = normalized_soil_wetness long_name = normalized soil wetness @@ -1248,7 +1110,6 @@ type = real kind = kind_phys intent = out - optional = F [t2mmp] standard_name = temperature_at_2m_from_noahmp long_name = 2 meter temperature from noahmp @@ -1257,7 +1118,6 @@ type = real kind = kind_phys intent = out - optional = F [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -1266,7 +1126,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1275,7 +1134,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1283,4 +1141,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_nst.meta b/physics/sfc_nst.meta index 5bc0774f8..7d5fcfca5 100644 --- a/physics/sfc_nst.meta +++ b/physics/sfc_nst.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [hfus] standard_name = latent_heat_of_fusion_of_water_at_0C long_name = latent heat of fusion @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [jcal] standard_name = joules_per_calorie_constant long_name = joules per calorie constant @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [rhw0] standard_name = sea_water_reference_density long_name = sea water reference density @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [tgice] standard_name = freezing_point_temperature_of_seawater long_name = freezing point temperature of seawater @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [sbc] standard_name = stefan_boltzmann_constant long_name = Stefan-Boltzmann constant @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = x component of surface layer wind @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = y component of surface layer wind @@ -149,7 +134,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = surface layer mean temperature @@ -158,7 +142,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = surface layer mean specific humidity @@ -167,7 +150,6 @@ type = real kind = kind_phys intent = in - optional = F [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -176,7 +158,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -185,7 +166,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -194,7 +174,6 @@ type = real kind = kind_phys intent = in - optional = F [lseaspray] standard_name = flag_for_sea_spray long_name = flag for sea spray parameterization @@ -202,7 +181,6 @@ dimensions = () type = logical intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = surface layer mean pressure @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -238,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the ground surface @@ -247,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at the lowest model layer @@ -256,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -264,7 +236,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -272,7 +243,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -281,7 +251,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of latitude @@ -290,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress_over_water long_name = surface wind stress over water @@ -299,7 +267,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water @@ -308,7 +275,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water long_name = total sky surface downward longwave flux absorbed by the ground over water @@ -317,7 +283,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux long_name = total sky sfc net sw flx into ocean @@ -326,7 +291,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water long_name = total precipitation amount in each time step over water @@ -335,7 +299,6 @@ type = real kind = kind_phys intent = in - optional = F [timestep] standard_name = timestep_for_dynamics long_name = timestep interval @@ -344,7 +307,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -352,7 +314,6 @@ dimensions = () type = integer intent = in - optional = F [solhr] standard_name = forecast_utc_hour long_name = time in hours after 00z at the current timestep @@ -361,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [xcosz] standard_name = instantaneous_cosine_of_zenith_angle long_name = cosine of solar zenith angle @@ -370,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -379,7 +338,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -387,7 +345,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [flag_guess] standard_name = flag_for_guess_run long_name = flag for guess run @@ -395,7 +352,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [nstf_name1] standard_name = control_for_nsstm long_name = NSSTM flag: off/uncoupled/coupled=0/1/2 @@ -403,7 +359,6 @@ dimensions = () type = integer intent = in - optional = F [nstf_name4] standard_name = lower_bound_for_depth_of_sea_temperature_for_nsstm long_name = zsea1 @@ -411,7 +366,6 @@ dimensions = () type = integer intent = in - optional = F [nstf_name5] standard_name = upper_bound_for_depth_of_sea_temperature_for_nsstm long_name = zsea2 @@ -419,7 +373,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = flag for printing diagnostics to output @@ -427,7 +380,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -435,7 +387,6 @@ dimensions = () type = integer intent = in - optional = F [thsfc_loc] standard_name = flag_for_reference_pressure_theta long_name = flag for reference pressure in theta calculation @@ -443,7 +394,6 @@ dimensions = () type = logical intent = in - optional = F [tskin] standard_name = surface_skin_temperature_for_nsst long_name = ocean surface skin temperature @@ -452,7 +402,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsurf] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -461,7 +410,6 @@ type = real kind = kind_phys intent = inout - optional = F [xt] standard_name = heat_content_in_diurnal_thermocline long_name = heat content in diurnal thermocline layer @@ -470,7 +418,6 @@ type = real kind = kind_phys intent = inout - optional = F [xs] standard_name = sea_water_salinity_in_diurnal_thermocline long_name = salinity content in diurnal thermocline layer @@ -479,7 +426,6 @@ type = real kind = kind_phys intent = inout - optional = F [xu] standard_name = x_current_in_diurnal_thermocline long_name = u-current content in diurnal thermocline layer @@ -488,7 +434,6 @@ type = real kind = kind_phys intent = inout - optional = F [xv] standard_name = y_current_in_diurnal_thermocline long_name = v-current content in diurnal thermocline layer @@ -497,7 +442,6 @@ type = real kind = kind_phys intent = inout - optional = F [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -506,7 +450,6 @@ type = real kind = kind_phys intent = inout - optional = F [zm] standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness @@ -515,7 +458,6 @@ type = real kind = kind_phys intent = inout - optional = F [xtts] standard_name = derivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperature long_name = d(xt)/d(ts) @@ -524,7 +466,6 @@ type = real kind = kind_phys intent = inout - optional = F [xzts] standard_name = derivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperature long_name = d(xz)/d(ts) @@ -533,7 +474,6 @@ type = real kind = kind_phys intent = inout - optional = F [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -542,7 +482,6 @@ type = real kind = kind_phys intent = inout - optional = F [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -551,7 +490,6 @@ type = real kind = kind_phys intent = inout - optional = F [c_0] standard_name = coefficient_c_0 long_name = coefficient1 to calculate d(tz)/d(ts) @@ -560,7 +498,6 @@ type = real kind = kind_phys intent = inout - optional = F [c_d] standard_name = coefficient_c_d long_name = coefficient2 to calculate d(tz)/d(ts) @@ -569,7 +506,6 @@ type = real kind = kind_phys intent = inout - optional = F [w_0] standard_name = coefficient_w_0 long_name = coefficient3 to calculate d(tz)/d(ts) @@ -578,7 +514,6 @@ type = real kind = kind_phys intent = inout - optional = F [w_d] standard_name = coefficient_w_d long_name = coefficient4 to calculate d(tz)/d(ts) @@ -587,7 +522,6 @@ type = real kind = kind_phys intent = inout - optional = F [d_conv] standard_name = free_convection_layer_thickness_in_sea_water long_name = thickness of free convection layer @@ -596,7 +530,6 @@ type = real kind = kind_phys intent = inout - optional = F [ifd] standard_name = control_for_diurnal_thermocline_calculation long_name = index to start dtlm run or not @@ -605,7 +538,6 @@ type = real kind = kind_phys intent = inout - optional = F [qrain] standard_name = surface_sensible_heat_due_to_rainfall long_name = sensible heat flux due to rainfall @@ -614,7 +546,6 @@ type = real kind = kind_phys intent = inout - optional = F [qsurf] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -623,7 +554,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux] standard_name = upward_heat_flux_in_soil_over_water long_name = soil heat flux over water @@ -632,7 +562,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water @@ -641,7 +570,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water long_name = thermal exchange coefficient over water @@ -650,7 +578,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -659,7 +586,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -668,7 +594,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water @@ -677,7 +602,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -686,7 +610,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -694,7 +617,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -713,7 +635,6 @@ dimensions = () type = integer intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -721,7 +642,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [tgice] standard_name = freezing_point_temperature_of_seawater long_name = freezing point temperature of seawater @@ -730,7 +650,6 @@ type = real kind = kind_phys intent = in - optional = F [tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature @@ -739,7 +658,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -748,7 +666,6 @@ type = real kind = kind_phys intent = inout - optional = F [tseal] standard_name = surface_skin_temperature_for_nsst long_name = ocean surface skin temperature @@ -757,7 +674,6 @@ type = real kind = kind_phys intent = inout - optional = F [xt] standard_name = heat_content_in_diurnal_thermocline long_name = heat content in diurnal thermocline layer @@ -766,7 +682,6 @@ type = real kind = kind_phys intent = in - optional = F [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -775,7 +690,6 @@ type = real kind = kind_phys intent = in - optional = F [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -784,7 +698,6 @@ type = real kind = kind_phys intent = in - optional = F [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -793,7 +706,6 @@ type = real kind = kind_phys intent = in - optional = F [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -802,7 +714,6 @@ type = real kind = kind_phys intent = inout - optional = F [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) @@ -810,7 +721,6 @@ dimensions = () type = logical intent = in - optional = F [oceanfrac] standard_name = sea_area_fraction long_name = fraction of horizontal grid area occupied by ocean @@ -819,7 +729,6 @@ type = real kind = kind_phys intent = in - optional = F [nthreads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -827,7 +736,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -836,7 +744,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -844,7 +751,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-table-properties] @@ -863,7 +769,6 @@ dimensions = () type = integer intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current time step index @@ -871,7 +776,6 @@ dimensions = () type = integer intent = in - optional = F [rlapse] standard_name = air_temperature_lapse_rate_constant long_name = environmental air temperature lapse rate constant @@ -880,7 +784,6 @@ type = real kind = kind_phys intent = in - optional = F [tgice] standard_name = freezing_point_temperature_of_seawater long_name = freezing point temperature of seawater @@ -889,7 +792,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -897,7 +799,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -905,7 +806,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [icy] standard_name = flag_nonzero_sea_ice_surface_fraction long_name = flag indicating presence of some sea ice surface area fraction @@ -913,7 +813,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [oro] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level @@ -922,7 +821,6 @@ type = real kind = kind_phys intent = in - optional = F [oro_uf] standard_name = unfiltered_height_above_mean_sea_level long_name = unfiltered height_above_mean_sea_level @@ -931,7 +829,6 @@ type = real kind = kind_phys intent = in - optional = F [nstf_name1] standard_name = control_for_nsstm long_name = NSSTM flag: off/uncoupled/coupled=0/1/2 @@ -939,7 +836,6 @@ dimensions = () type = integer intent = in - optional = F [nstf_name4] standard_name = lower_bound_for_depth_of_sea_temperature_for_nsstm long_name = zsea1 @@ -947,7 +843,6 @@ dimensions = () type = integer intent = in - optional = F [nstf_name5] standard_name = upper_bound_for_depth_of_sea_temperature_for_nsstm long_name = zsea2 @@ -955,7 +850,6 @@ dimensions = () type = integer intent = in - optional = F [xt] standard_name = heat_content_in_diurnal_thermocline long_name = heat content in diurnal thermocline layer @@ -964,7 +858,6 @@ type = real kind = kind_phys intent = in - optional = F [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -973,7 +866,6 @@ type = real kind = kind_phys intent = in - optional = F [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -982,7 +874,6 @@ type = real kind = kind_phys intent = in - optional = F [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -991,7 +882,6 @@ type = real kind = kind_phys intent = in - optional = F [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -1000,7 +890,6 @@ type = real kind = kind_phys intent = in - optional = F [xlon] standard_name = longitude long_name = longitude @@ -1009,7 +898,6 @@ type = real kind = kind_phys intent = in - optional = F [tsurf_wat] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -1018,7 +906,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -1027,7 +914,6 @@ type = real kind = kind_phys intent = inout - optional = F [nthreads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes @@ -1035,7 +921,6 @@ dimensions = () type = integer intent = in - optional = F [dtzm] standard_name = mean_change_over_depth_in_sea_water_temperature long_name = mean of dT(z) (zsea1 to zsea2) @@ -1044,7 +929,6 @@ type = real kind = kind_phys intent = out - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1053,7 +937,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1061,4 +944,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_ocean.meta b/physics/sfc_ocean.meta index 67862ef57..85a891644 100644 --- a/physics/sfc_ocean.meta +++ b/physics/sfc_ocean.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -32,7 +30,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -41,7 +38,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -50,7 +46,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -59,7 +54,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -68,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -77,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = F [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = x component of surface layer wind @@ -86,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = F [v1] standard_name = y_wind_at_surface_adjacent_layer long_name = y component of surface layer wind @@ -95,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = surface layer mean temperature @@ -104,7 +94,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = surface layer mean specific humidity @@ -113,7 +102,6 @@ type = real kind = kind_phys intent = in - optional = F [tskin] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -122,7 +110,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -131,7 +118,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water @@ -140,7 +126,6 @@ type = real kind = kind_phys intent = in - optional = F [lseaspray] standard_name = flag_for_sea_spray long_name = flag for sea spray parameterization @@ -148,7 +133,6 @@ dimensions = () type = logical intent = in - optional = F [fm] standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water long_name = Monin-Obukhov similarity function for momentum over water @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [fm10] standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water long_name = Monin-Obukhov similarity parameter for momentum at 10m over water @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = surface layer mean pressure @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction @@ -192,7 +172,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -200,7 +179,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -217,7 +194,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [qsurf] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -226,7 +202,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water @@ -235,7 +210,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water long_name = thermal exchange coefficient over water @@ -244,7 +218,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux] standard_name = upward_heat_flux_in_soil_over_water long_name = soil heat flux over water @@ -253,7 +226,6 @@ type = real kind = kind_phys intent = inout - optional = F [evap] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -262,7 +234,6 @@ type = real kind = kind_phys intent = inout - optional = F [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -271,7 +242,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_water long_name = surface upward potential latent heat flux over water @@ -280,7 +250,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -289,7 +258,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -297,4 +265,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sfc_sice.meta b/physics/sfc_sice.meta index f87afeac0..c2a215a03 100644 --- a/physics/sfc_sice.meta +++ b/physics/sfc_sice.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [kice] standard_name = vertical_dimension_of_sea_ice long_name = vertical loop extent for ice levels, start at 1 @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [sbc] standard_name = stefan_boltzmann_constant long_name = Stefan-Boltzmann constant @@ -31,7 +29,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -40,7 +37,6 @@ type = real kind = kind_phys intent = in - optional = F [tgice] standard_name = freezing_point_temperature_of_seawater long_name = freezing point temperature of seawater @@ -49,7 +45,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -58,7 +53,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -67,7 +61,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -76,7 +69,6 @@ type = real kind = kind_phys intent = in - optional = F [rvrdm1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -85,7 +77,6 @@ type = real kind = kind_phys intent = in - optional = F [grav] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -94,7 +85,6 @@ type = real kind = kind_phys intent = in - optional = F [t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -103,7 +93,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -112,7 +101,6 @@ type = real kind = kind_phys intent = in - optional = F [ps] standard_name = surface_air_pressure long_name = surface pressure @@ -121,7 +109,6 @@ type = real kind = kind_phys intent = in - optional = F [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = surface layer mean temperature @@ -130,7 +117,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity_at_surface_adjacent_layer long_name = surface layer mean specific humidity @@ -139,7 +125,6 @@ type = real kind = kind_phys intent = in - optional = F [delt] standard_name = timestep_for_dynamics long_name = time step @@ -148,7 +133,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcemis] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -157,7 +141,6 @@ type = real kind = kind_phys intent = in - optional = F [dlwflx] standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_ice long_name = total sky surface downward longwave flux absorbed by the ground over ice @@ -166,7 +149,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcnsw] standard_name = surface_net_downwelling_shortwave_flux long_name = total sky sfc netsw flx into ground @@ -175,7 +157,6 @@ type = real kind = kind_phys intent = in - optional = F [sfcdsw] standard_name = surface_downwelling_shortwave_flux long_name = total sky sfc downward sw flux @@ -184,7 +165,6 @@ type = real kind = kind_phys intent = in - optional = F [srflag] standard_name = precipitation_type long_name = snow/rain flag for precipitation @@ -193,7 +173,6 @@ type = real kind = kind_phys intent = in - optional = F [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice long_name = surface exchange coeff for momentum over ice @@ -202,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = F [ch] standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice long_name = surface exchange coeff heat & moisture over ice @@ -211,7 +189,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = surface layer mean pressure @@ -220,7 +197,6 @@ type = real kind = kind_phys intent = in - optional = F [prslki] standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer long_name = Exner function ratio bt midlayer and interface at 1st layer @@ -229,7 +205,6 @@ type = real kind = kind_phys intent = in - optional = F [prsik1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at the ground surface @@ -238,7 +213,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk1] standard_name = dimensionless_exner_function_at_surface_adjacent_layer long_name = dimensionless Exner function at the lowest model layer @@ -247,7 +221,6 @@ type = real kind = kind_phys intent = in - optional = F [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -256,7 +229,6 @@ type = real kind = kind_phys intent = in - optional = F [flag_iter] standard_name = flag_for_iteration long_name = flag for iteration @@ -264,7 +236,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [use_flake] standard_name = flag_for_using_flake long_name = flag indicating lake points using flake model @@ -272,7 +243,6 @@ dimensions = (horizontal_loop_extent) type = logical intent = in - optional = F [lprnt] standard_name = flag_print long_name = switch for printing sample column to stdout @@ -280,7 +250,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -288,7 +257,6 @@ dimensions = () type = integer intent = in - optional = F [thsfc_loc] standard_name = flag_for_reference_pressure_theta long_name = flag for reference pressure in theta calculation @@ -296,7 +264,6 @@ dimensions = () type = logical intent = in - optional = F [hice] standard_name = sea_ice_thickness long_name = sea-ice thickness @@ -305,7 +272,6 @@ type = real kind = kind_phys intent = inout - optional = F [fice] standard_name = sea_ice_area_fraction_of_sea_area_fraction long_name = sea-ice concentration [0,1] @@ -314,7 +280,6 @@ type = real kind = kind_phys intent = inout - optional = F [tice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -323,7 +288,6 @@ type = real kind = kind_phys intent = inout - optional = F [weasd] standard_name = water_equivalent_accumulated_snow_depth_over_ice long_name = water equiv of acc snow depth over ice @@ -332,7 +296,6 @@ type = real kind = kind_phys intent = inout - optional = F [tsfc_wat] standard_name = surface_skin_temperature_over_water long_name = surface skin temperature over water @@ -341,7 +304,6 @@ type = real kind = kind_phys intent = in - optional = F [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice long_name = total precipitation amount in each time step over ice @@ -350,7 +312,6 @@ type = real kind = kind_phys intent = inout - optional = F [tiice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -359,7 +320,6 @@ type = real kind = kind_phys intent = inout - optional = F [ep] standard_name = surface_upward_potential_latent_heat_flux_over_ice long_name = surface upward potential latent heat flux over ice @@ -368,7 +328,6 @@ type = real kind = kind_phys intent = inout - optional = F [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -377,7 +336,6 @@ type = real kind = kind_phys intent = inout - optional = F [qss_i] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice @@ -386,7 +344,6 @@ type = real kind = kind_phys intent = in - optional = F [qss_w] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -395,7 +352,6 @@ type = real kind = kind_phys intent = in - optional = F [snowmt] standard_name = surface_snow_melt long_name = snow melt during timestep @@ -404,7 +360,6 @@ type = real kind = kind_phys intent = inout - optional = F [gflux] standard_name = upward_heat_flux_in_soil_over_ice long_name = soil heat flux over ice @@ -413,7 +368,6 @@ type = real kind = kind_phys intent = inout - optional = F [cmm] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice long_name = momentum exchange coefficient over ice @@ -422,7 +376,6 @@ type = real kind = kind_phys intent = inout - optional = F [chh] standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice long_name = thermal exchange coefficient over ice @@ -431,7 +384,6 @@ type = real kind = kind_phys intent = inout - optional = F [evapi] standard_name = kinematic_surface_upward_latent_heat_flux_over_ice long_name = kinematic surface upward latent heat flux over ice @@ -440,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [evapw] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -449,7 +400,6 @@ type = real kind = kind_phys intent = in - optional = F [hflxi] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -458,7 +408,6 @@ type = real kind = kind_phys intent = in - optional = F [hflxw] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -467,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [islmsk] standard_name = sea_land_ice_mask_cice long_name = sea/land/ice mask cice (=0/1/2) @@ -475,7 +423,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -484,7 +431,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -492,4 +438,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/sflx.f b/physics/sflx.f index 2740a70ff..56bfc04c9 100644 --- a/physics/sflx.f +++ b/physics/sflx.f @@ -3994,8 +3994,8 @@ subroutine frh2o & do while ( (nlog < 10) .and. (kcount == 0) ) nlog = nlog + 1 - df = alog( (psis*gs2/lsubf) * ( (1.0 + ck*swl)**2.0 ) & - & * (smcmax/(smc-swl))**bx ) - alog(-(tkelv-tfreez)/tkelv) + df = log( (psis*gs2/lsubf) * ( (1.0 + ck*swl)**2.0 ) & + & * (smcmax/(smc-swl))**bx ) - log(-(tkelv-tfreez)/tkelv) denom = 2.0*ck/(1.0 + ck*swl) + bx/(smc - swl) swlk = swl - df/denom diff --git a/physics/shalcnv.meta b/physics/shalcnv.meta index 2db08a9e1..0f91a043a 100644 --- a/physics/shalcnv.meta +++ b/physics/shalcnv.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [shal_cnv] standard_name = flag_for_simplified_arakawa_schubert_shallow_convection long_name = flag for calling shallow convection @@ -22,7 +21,6 @@ dimensions = () type = logical intent = in - optional = F [imfshalcnv] standard_name = control_for_shallow_convection_scheme long_name = flag for mass-flux shallow convection scheme @@ -30,7 +28,6 @@ dimensions = () type = integer intent = in - optional = F [imfshalcnv_sas] standard_name = identifier_for_simplified_arakawa_schubert_shallow_convection long_name = flag for SAS shallow convection scheme @@ -38,7 +35,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -47,7 +43,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -55,7 +50,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -69,7 +63,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -78,7 +71,6 @@ type = real kind = kind_phys intent = in - optional = F [hvap] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -87,7 +79,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -96,7 +87,6 @@ type = real kind = kind_phys intent = in - optional = F [fv] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) @@ -105,7 +95,6 @@ type = real kind = kind_phys intent = in - optional = F [t0c] standard_name = temperature_at_zero_celsius long_name = temperature at 0 degree Celsius @@ -114,7 +103,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -123,7 +111,6 @@ type = real kind = kind_phys intent = in - optional = F [cvap] standard_name = specific_heat_of_water_vapor_at_constant_pressure long_name = specific heat of water vapor at constant pressure @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = in - optional = F [cliq] standard_name = specific_heat_of_liquid_water_at_constant_pressure long_name = specific heat of liquid water at constant pressure @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = in - optional = F [eps] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -150,7 +135,6 @@ type = real kind = kind_phys intent = in - optional = F [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -159,7 +143,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -167,7 +150,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -175,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [jcap] standard_name = number_of_spectral_wave_truncation_for_simplified_arakawa_schubert_convection long_name = number of spectral wave trancation used only by sascnv and shalcnv @@ -183,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [delt] standard_name = timestep_for_physics long_name = physics timestep @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = in - optional = F [delp] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -201,7 +180,6 @@ type = real kind = kind_phys intent = in - optional = F [prslp] standard_name = air_pressure long_name = mean layer pressure @@ -210,7 +188,6 @@ type = real kind = kind_phys intent = in - optional = F [psp] standard_name = surface_air_pressure long_name = surface pressure @@ -219,7 +196,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -228,7 +204,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -237,7 +212,6 @@ type = real kind = kind_phys intent = inout - optional = F [qli] 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 @@ -246,7 +220,6 @@ type = real kind = kind_phys intent = inout - optional = F [q1] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -255,7 +228,6 @@ type = real kind = kind_phys intent = inout - optional = F [t1] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -264,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [u1] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -273,7 +244,6 @@ type = real kind = kind_phys intent = inout - optional = F [v1] standard_name = y_wind_of_new_state long_name = meridional wind updated by physics @@ -282,7 +252,6 @@ type = real kind = kind_phys intent = inout - optional = F [rn] standard_name = lwe_thickness_of_shallow_convective_precipitation_amount long_name = shallow convective rainfall amount on physics timestep @@ -291,7 +260,6 @@ type = real kind = kind_phys intent = out - optional = F [kbot] standard_name = vertical_index_at_cloud_base long_name = index for cloud base @@ -299,7 +267,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [ktop] standard_name = vertical_index_at_cloud_top long_name = index for cloud top @@ -307,7 +274,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [kcnv] standard_name = flag_deep_convection long_name = deep convection: 0=no, 1=yes @@ -315,7 +281,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = F [islimsk] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -323,7 +288,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dot] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -332,7 +296,6 @@ type = real kind = kind_phys intent = in - optional = F [ncloud] standard_name = number_of_condensate_species long_name = number of cloud condensate types @@ -340,7 +303,6 @@ dimensions = () type = integer intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = pbl height @@ -349,7 +311,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -358,7 +319,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -367,7 +327,6 @@ type = real kind = kind_phys intent = in - optional = F [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * delt @@ -376,7 +335,6 @@ type = real kind = kind_phys intent = out - optional = F [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt @@ -385,7 +343,6 @@ type = real kind = kind_phys intent = out - optional = F [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -394,7 +351,6 @@ type = real kind = kind_phys intent = inout - optional = F [cnvc] standard_name = convective_cloud_cover long_name = convective cloud cover @@ -403,7 +359,6 @@ type = real kind = kind_phys intent = inout - optional = F [clam] standard_name = entrainment_rate_coefficient_for_shallow_convection long_name = entrainment rate coefficient for shallow convection @@ -412,7 +367,6 @@ type = real kind = kind_phys intent = in - optional = F [c0] standard_name = rain_conversion_parameter_for_shallow_convection long_name = convective rain conversion parameter for shallow convection @@ -421,7 +375,6 @@ type = real kind = kind_phys intent = in - optional = F [c1] standard_name = detrainment_conversion_parameter_for_shallow_convection long_name = convective detrainment conversion parameter for shallow convection @@ -430,7 +383,6 @@ type = real kind = kind_phys intent = in - optional = F [pgcon] standard_name = momentum_transport_reduction_factor_due_to_pressure_gradient_force_for_shallow_convection long_name = reduction factor in momentum transport due to shallow convection induced pressure gradient force @@ -439,7 +391,6 @@ type = real kind = kind_phys intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -448,7 +399,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -456,4 +406,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/shinhongvdif.meta b/physics/shinhongvdif.meta index eac3fc715..7e160c8a2 100644 --- a/physics/shinhongvdif.meta +++ b/physics/shinhongvdif.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [ux] standard_name = x_wind long_name = x component of layer wind @@ -61,7 +56,6 @@ type = real kind = kind_phys intent = in - optional = F [vx] standard_name = y_wind long_name = y component of layer wind @@ -70,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [tx] standard_name = air_temperature long_name = layer mean air temperature @@ -79,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [qx] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -88,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [p2d] standard_name = air_pressure long_name = mean layer pressure @@ -97,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [p2di] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -106,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [pi2d] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -115,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [karman] standard_name = von_karman_constant long_name = von karman constant @@ -123,7 +111,6 @@ dimensions = () type = real intent = in - optional = F [utnp] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = inout - optional = F [vtnp] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = inout - optional = F [ttnp] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -150,7 +135,6 @@ type = real kind = kind_phys intent = inout - optional = F [qtnp] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers due to model physics @@ -159,7 +143,6 @@ type = real kind = kind_phys intent = inout - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -167,7 +150,6 @@ dimensions = () type = integer intent = in - optional = F [ndiff] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -175,7 +157,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -183,7 +164,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -191,7 +171,6 @@ dimensions = () type = integer intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -200,7 +179,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -209,7 +187,6 @@ type = real kind = kind_phys intent = in - optional = F [psfcpa] standard_name = surface_air_pressure long_name = surface pressure @@ -218,7 +195,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = out - optional = F [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = in - optional = F [psih] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -263,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [landmask] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -271,7 +242,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [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 @@ -280,7 +250,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -289,7 +258,6 @@ type = real kind = kind_phys intent = in - optional = F [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -298,7 +266,6 @@ type = real kind = kind_phys intent = in - optional = F [br] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -307,7 +274,6 @@ type = real kind = kind_phys intent = in - optional = F [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -316,7 +282,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -325,7 +290,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -334,7 +298,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -343,7 +306,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -352,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [ep2] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -361,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [xlv] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -370,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -379,7 +338,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -388,7 +346,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -397,7 +354,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -406,7 +362,6 @@ type = real kind = kind_phys intent = out - optional = F [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -415,7 +370,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl1d] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -423,7 +377,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [u10] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -432,7 +385,6 @@ type = real kind = kind_phys intent = in - optional = F [v10] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -441,7 +393,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -450,7 +401,6 @@ type = real kind = kind_phys intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -479,7 +429,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -487,7 +436,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -496,7 +444,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -504,7 +451,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -512,7 +458,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -520,7 +465,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -528,7 +472,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -536,7 +479,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -545,7 +487,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -553,4 +494,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/ugwpv1_gsldrag.meta b/physics/ugwpv1_gsldrag.meta index aaf652e35..64d6b0d64 100644 --- a/physics/ugwpv1_gsldrag.meta +++ b/physics/ugwpv1_gsldrag.meta @@ -15,7 +15,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -23,7 +22,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for opening namelist file @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [input_nml_file] standard_name = filename_of_internal_namelist long_name = character string to store full namelist contents @@ -40,7 +37,6 @@ type = character kind = len=* intent = in - optional = F [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -48,7 +44,6 @@ dimensions = () type = integer intent = in - optional = F [fn_nml2] standard_name = filename_of_namelist long_name = namelist filename for ugwp @@ -57,7 +52,6 @@ type = character kind = len=* intent = in - optional = F [jdat] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -65,7 +59,6 @@ dimensions = (8) type = integer intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -73,7 +66,6 @@ dimensions = () type = integer intent = in - optional = F [latr] standard_name = number_of_latitude_points long_name = number of global points in y-dir (j) along the meridian @@ -81,7 +73,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -89,7 +80,6 @@ dimensions = () type = integer intent = in - optional = F [ak] standard_name = sigma_pressure_hybrid_coordinate_a_coefficient long_name = a parameter for sigma pressure level calculations @@ -98,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [bk] standard_name = sigma_pressure_hybrid_coordinate_b_coefficient long_name = b parameter for sigma pressure level calculations @@ -107,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -116,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -125,7 +112,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rerth] standard_name = radius_of_earth long_name = radius of earth @@ -134,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = F [con_p0] standard_name = standard_atmospheric_pressure long_name = standard atmospheric pressure @@ -143,7 +128,6 @@ type = real kind = kind_phys intent = in - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -152,7 +136,6 @@ type = real kind = kind_phys intent = in - optional = F [con_omega] standard_name = angular_velocity_of_earth long_name = angular velocity of earth @@ -161,7 +144,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat !of dry air at constant pressure @@ -170,7 +152,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -179,7 +160,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -188,7 +168,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -197,7 +176,6 @@ type = real kind = kind_phys intent = in - optional = F [do_ugwp] standard_name = flag_for_unified_gravity_wave_physics_gravity_wave_drag_scheme long_name = flag to activate CIRES UGWP @@ -205,7 +183,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0] standard_name = flag_for_ugwp_version_0 long_name = flag to activate ver 0 CIRES UGWP @@ -213,7 +190,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_orog_only] standard_name = flag_for_ugwp_version_0_orographic_gwd long_name = flag to activate ver 0 CIRES UGWP - orographic GWD only @@ -221,7 +197,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ls_bl] standard_name = flag_for_gsl_drag_suite_large_scale_orographic_and_blocking_drag long_name = flag to activate GSL drag suite - large-scale GWD and blocking @@ -229,7 +204,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ss] standard_name = flag_for_gsl_drag_suite_small_scale_orographic_drag long_name = flag to activate GSL drag suite - small-scale GWD @@ -237,7 +211,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_tofd] standard_name = flag_for_gsl_drag_suite_turbulent_orographic_form_drag long_name = flag to activate GSL drag suite - turb orog form drag @@ -245,7 +218,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -253,7 +225,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1_orog_only] standard_name = flag_for_ugwp_version_1_orographic_gwd long_name = flag to activate ver 1 CIRES UGWP - orographic GWD only @@ -261,7 +232,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1_w_gsldrag] standard_name = flag_for_ugwp_version_1_nonorographic_gwd long_name = flag to activate ver 1 CIRES UGWP - with OGWD of GSL @@ -269,7 +239,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -278,7 +247,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -286,7 +254,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -300,7 +267,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -308,7 +274,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -321,7 +286,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -329,7 +293,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal @@ -337,7 +300,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -345,7 +307,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -353,7 +314,6 @@ dimensions = () type = integer intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -361,7 +321,6 @@ dimensions = () type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -370,7 +329,6 @@ type = real kind = kind_phys intent = in - optional = F [fhzero] standard_name = period_of_diagnostics_reset long_name = hours between clearing of diagnostic buckets @@ -379,7 +337,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -387,7 +344,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -395,7 +351,6 @@ dimensions = () type = logical intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -403,7 +358,6 @@ dimensions = () type = logical intent = in - optional = F [flag_for_gwd_generic_tend] standard_name = flag_for_generic_tendency_due_to_gravity_wave_drag long_name = true if GFS_GWD_generic should calculate tendencies @@ -411,7 +365,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ls_bl] standard_name = flag_for_gsl_drag_suite_large_scale_orographic_and_blocking_drag long_name = flag to activate GSL drag suite - large-scale GWD and blocking @@ -419,7 +372,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ss] standard_name = flag_for_gsl_drag_suite_small_scale_orographic_drag long_name = flag to activate GSL drag suite - small-scale GWD @@ -427,7 +379,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_tofd] standard_name = flag_for_gsl_drag_suite_turbulent_orographic_form_drag long_name = flag to activate GSL drag suite - turb orog form drag @@ -435,7 +386,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1] standard_name = flag_for_ugwp_version_1 long_name = flag to activate ver 1 CIRES UGWP @@ -443,7 +393,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1_orog_only] standard_name = flag_for_ugwp_version_1_orographic_gwd long_name = flag to activate ver 1 CIRES UGWP - orographic GWD only @@ -451,7 +400,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v1_w_gsldrag] standard_name = flag_for_ugwp_version_1_nonorographic_gwd long_name = flag to activate ver 1 CIRES UGWP - with OGWD of GSL @@ -459,7 +407,6 @@ dimensions = () type = logical intent = in - optional = F [gwd_opt] standard_name = control_for_drag_suite_gravity_wave_drag long_name = flag to choose gwd scheme @@ -467,7 +414,6 @@ dimensions = () type = integer intent = in - optional = F [do_tofd] standard_name = flag_for_turbulent_orographic_form_drag_in_unified_gravity_wave_physics_gravitiy_wave_drag_scheme long_name = flag for turbulent orographic form drag @@ -475,7 +421,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag_ugwp] standard_name = flag_for_unified_gravity_wave_physics_diagnostics long_name = flag for CIRES UGWP Diagnostics @@ -483,7 +428,6 @@ dimensions = () type = logical intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplication factors for cdmb and gwd @@ -492,7 +436,6 @@ type = real kind = kind_phys intent = in - optional = F [jdat] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -500,7 +443,6 @@ dimensions = (8) type = integer intent = in - optional = F [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of topographic variables in GWD @@ -508,7 +450,6 @@ dimensions = () type = integer intent = in - optional = F [hprime] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -517,7 +458,6 @@ type = real kind = kind_phys intent = in - optional = F [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -526,7 +466,6 @@ type = real kind = kind_phys intent = in - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with_respect to east of maximum subgrid orographic variations @@ -535,7 +474,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -544,7 +482,6 @@ type = real kind = kind_phys intent = in - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -553,7 +490,6 @@ type = real kind = kind_phys intent = in - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -562,7 +498,6 @@ type = real kind = kind_phys intent = in - optional = F [clx] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -571,7 +506,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -580,7 +514,6 @@ type = real kind = kind_phys intent = in - optional = F [varss] standard_name = standard_deviation_of_subgrid_orography_small_scale long_name = standard deviation of subgrid height_above_mean_sea_level small scale @@ -589,7 +522,6 @@ type = real kind = kind_phys intent = in - optional = F [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -598,7 +530,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -607,7 +538,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -616,7 +546,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -625,7 +554,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat] standard_name = latitude long_name = grid latitude @@ -634,7 +562,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -643,7 +570,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of the grid latitude @@ -652,7 +578,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of the grid latitude @@ -661,7 +586,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -670,7 +594,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -679,7 +602,6 @@ type = real kind = kind_phys intent = in - optional = F [br1] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -688,7 +610,6 @@ type = real kind = kind_phys intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -697,7 +618,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -705,7 +625,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -714,7 +633,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -723,7 +641,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -732,7 +649,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -741,7 +657,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -750,7 +665,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -759,7 +673,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -768,7 +681,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -777,7 +689,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -786,7 +697,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -795,7 +705,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -804,7 +713,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux @@ -813,7 +721,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_ogw] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = x momentum tendency from meso scale ogw @@ -822,7 +729,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y momentum tendency from meso scale ogw @@ -831,7 +737,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -840,7 +745,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -849,7 +753,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_obl] standard_name = tendency_of_x_momentum_due_to_blocking_drag long_name = x momentum tendency from blocking drag @@ -858,7 +761,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_obl] standard_name = tendency_of_y_momentum_due_to_blocking_drag long_name = y momentum tendency from blocking drag @@ -867,7 +769,6 @@ type = real kind = kind_phys intent = out - optional = F [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -876,7 +777,6 @@ type = real kind = kind_phys intent = out - optional = F [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -885,7 +785,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_oss] standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag long_name = x momentum tendency from small scale gwd @@ -894,7 +793,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_oss] standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag long_name = y momentum tendency from small scale gwd @@ -903,7 +801,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -912,7 +809,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -921,7 +817,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_ofd] standard_name = tendency_of_x_momentum_due_to_form_drag long_name = x momentum tendency from form drag @@ -930,7 +825,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_ofd] standard_name = tendency_of_y_momentum_due_to_form_drag long_name = y momentum tendency from form drag @@ -939,7 +833,6 @@ type = real kind = kind_phys intent = out - optional = F [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -948,7 +841,6 @@ type = real kind = kind_phys intent = out - optional = F [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -957,7 +849,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -966,7 +857,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -975,7 +865,6 @@ type = real kind = kind_phys intent = out - optional = F [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -984,7 +873,6 @@ type = real kind = kind_phys intent = out - optional = F [kdis_ngw] standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag long_name = eddy mixing due to non-stationary GWs @@ -993,7 +881,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_gw] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to all GWs @@ -1002,7 +889,6 @@ type = real kind = kind_phys intent = out - optional = F [dvdt_gw] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to all GWs @@ -1011,7 +897,6 @@ type = real kind = kind_phys intent = out - optional = F [dtdt_gw] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to all GWs @@ -1020,7 +905,6 @@ type = real kind = kind_phys intent = out - optional = F [kdis_gw] standard_name = atmosphere_momentum_diffusivity_due_to_gravity_wave_drag long_name = eddy mixing due to all GWs @@ -1029,7 +913,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -1038,7 +921,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -1047,7 +929,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_oss] standard_name = momentum_flux_due_to_subgrid_scale_orographic_gravity_wave_drag long_name = momentum flux or stress due to SSO including OBL-OSS-OFD @@ -1056,7 +937,6 @@ type = real kind = kind_phys intent = out - optional = F [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity waves @@ -1065,7 +945,6 @@ type = real kind = kind_phys intent = out - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking for OGWs @@ -1074,7 +953,6 @@ type = real kind = kind_phys intent = out - optional = F [zobl] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag_v1 @@ -1083,7 +961,6 @@ type = real kind = kind_phys intent = out - optional = F [zngw] standard_name = height_of_launch_level_of_nonorographic_gravity_waves long_name = height of launch level of non-stationary GWs @@ -1092,7 +969,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfcg] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -1101,7 +977,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfcg] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -1110,9 +985,7 @@ type = real kind = kind_phys intent = out - optional = F intent = out - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -1121,7 +994,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -1130,7 +1002,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -1139,7 +1010,6 @@ type = real kind = kind_phys intent = inout - optional = F [rdxzb] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -1148,7 +1018,6 @@ type = real kind = kind_phys intent = out - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -1157,7 +1026,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1165,7 +1033,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -1173,7 +1040,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -1181,7 +1047,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1189,7 +1054,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1197,7 +1061,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_nonorographic_gwd] standard_name = index_of_nonorographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of nonorographic gravity wave drag process in second dimension of array cumulative change index @@ -1205,7 +1068,6 @@ dimensions = () type = integer intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -1213,7 +1075,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -1221,7 +1082,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1230,7 +1090,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1238,6 +1097,5 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/ugwpv1_gsldrag_post.meta b/physics/ugwpv1_gsldrag_post.meta index 8b0716e8e..2021fdb42 100644 --- a/physics/ugwpv1_gsldrag_post.meta +++ b/physics/ugwpv1_gsldrag_post.meta @@ -14,7 +14,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -22,7 +21,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag_ugwp] standard_name = flag_for_unified_gravity_wave_physics_diagnostics long_name = flag for CIRES UGWP Diagnostics @@ -30,7 +28,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -39,7 +36,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_gw] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to all GWs @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [dvdt_gw] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to all GWs @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [dtdt_gw] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to all GWs @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = in - optional = F [zobl] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag_v1 @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = in - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking for OGWs @@ -128,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_obl] standard_name = tendency_of_x_momentum_due_to_blocking_drag long_name = x momentum tendency from blocking drag @@ -137,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_ofd] standard_name = tendency_of_x_momentum_due_to_form_drag long_name = x momentum tendency from form drag @@ -146,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_ogw] standard_name = tendency_of_x_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = x momentum tendency from meso scale ogw @@ -155,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [tot_zmtb] standard_name = time_integral_of_height_of_mountain_blocking long_name = time integral of height of mountain blocking drag @@ -164,7 +148,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zlwb] standard_name = time_integral_of_height_of_low_level_wave_breaking long_name = time integral of height of drag due to low level wave breaking @@ -173,7 +156,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zogw] standard_name = time_integral_of_height_of_launch_level_of_orographic_gravity_wave long_name = time integral of height of launch level of orographic gravity wave @@ -182,7 +164,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_tofd] standard_name = time_integral_of_momentum_flux_due_to_turbulent_orographic_form_drag long_name = time integral of momentum flux due to TOFD @@ -191,7 +172,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_mtb] standard_name = time_integral_of_momentum_flux_due_to_mountain_blocking_drag long_name = time integral of momentum flux due to mountain blocking drag @@ -200,7 +180,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ogw] standard_name = time_integral_of_momentum_flux_due_to_orographic_gravity_wave_drag long_name = time integral of momentum flux due to orographic gravity wave drag @@ -209,7 +188,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ngw] standard_name = time_integral_of_momentum_flux_due_to_nonstationary_gravity_wave long_name = time integral of momentum flux due to nonstationary gravity waves @@ -218,7 +196,6 @@ type = real kind = kind_phys intent = inout - optional = F [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag @@ -227,7 +204,6 @@ type = real kind = kind_phys intent = inout - optional = F [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,7 +212,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -245,7 +220,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -254,7 +228,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -263,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -272,7 +244,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -281,7 +252,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -290,7 +260,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -299,7 +268,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -307,4 +275,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/unified_ugwp.meta b/physics/unified_ugwp.meta index d4a0bfedd..547256681 100644 --- a/physics/unified_ugwp.meta +++ b/physics/unified_ugwp.meta @@ -17,7 +17,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -25,7 +24,6 @@ dimensions = () type = integer intent = in - optional = F [nlunit] standard_name = iounit_of_namelist long_name = fortran unit number for opening namelist file @@ -33,7 +31,6 @@ dimensions = () type = integer intent = in - optional = F [input_nml_file] standard_name = filename_of_internal_namelist long_name = character string to store full namelist contents @@ -42,7 +39,6 @@ type = character kind = len=* intent = in - optional = F [logunit] standard_name = iounit_of_log long_name = fortran unit number for writing logfile @@ -50,7 +46,6 @@ dimensions = () type = integer intent = in - optional = F [fn_nml2] standard_name = filename_of_namelist long_name = namelist filename for ugwp @@ -59,7 +54,6 @@ type = character kind = len=* intent = in - optional = F [jdat] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -67,7 +61,6 @@ dimensions = (8) type = integer intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -75,7 +68,6 @@ dimensions = () type = integer intent = in - optional = F [latr] standard_name = number_of_latitude_points long_name = number of global points in y-dir (j) along the meridian @@ -83,7 +75,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -91,7 +82,6 @@ dimensions = () type = integer intent = in - optional = F [ak] standard_name = sigma_pressure_hybrid_coordinate_a_coefficient long_name = a parameter for sigma pressure level calculations @@ -100,7 +90,6 @@ type = real kind = kind_phys intent = in - optional = F [bk] standard_name = sigma_pressure_hybrid_coordinate_b_coefficient long_name = b parameter for sigma pressure level calculations @@ -109,7 +98,6 @@ type = real kind = kind_phys intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -118,7 +106,6 @@ type = real kind = kind_phys intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplication factors for cdmb and gwd @@ -127,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = F [cgwf] standard_name = tunable_parameters_for_convective_gravity_wave_drag long_name = multiplication factor for convective GWD @@ -136,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -145,7 +130,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rerth] standard_name = radius_of_earth long_name = radius of earth @@ -154,7 +138,6 @@ type = real kind = kind_phys intent = in - optional = F [pa_rf_in] standard_name = air_pressure_at_bottom_extent_of_rayleigh_damping long_name = pressure level from which Rayleigh Damping is applied @@ -163,7 +146,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_rf_in] standard_name = timescale_for_rayleigh_damping long_name = time scale for Rayleigh damping in days @@ -172,7 +154,6 @@ type = real kind = kind_phys intent = in - optional = F [con_p0] standard_name = standard_atmospheric_pressure long_name = standard atmospheric pressure @@ -181,7 +162,6 @@ type = real kind = kind_phys intent = in - optional = F [do_ugwp] standard_name = flag_for_unified_gravity_wave_physics_gravity_wave_drag_scheme long_name = flag to activate CIRES UGWP @@ -189,7 +169,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0] standard_name = flag_for_ugwp_version_0 long_name = flag to activate ver 0 CIRES UGWP @@ -197,7 +176,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_orog_only] standard_name = flag_for_ugwp_version_0_orographic_gwd long_name = flag to activate ver 0 CIRES UGWP - orographic GWD only @@ -205,7 +183,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_nst_only] standard_name = flag_for_ugwp_version_0_nonorographic_gwd long_name = flag to activate ver 0 CIRES UGWP - non-stationary GWD only @@ -213,7 +190,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ls_bl] standard_name = flag_for_gsl_drag_suite_large_scale_orographic_and_blocking_drag long_name = flag to activate GSL drag suite - large-scale GWD and blocking @@ -221,7 +197,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ss] standard_name = flag_for_gsl_drag_suite_small_scale_orographic_drag long_name = flag to activate GSL drag suite - small-scale GWD @@ -229,7 +204,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_tofd] standard_name = flag_for_gsl_drag_suite_turbulent_orographic_form_drag long_name = flag to activate GSL drag suite - turb orog form drag @@ -237,7 +211,6 @@ dimensions = () type = logical intent = in - optional = F [gwd_opt] standard_name = control_for_drag_suite_gravity_wave_drag long_name = flag to choose gwd scheme @@ -245,7 +218,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -254,7 +226,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -262,7 +233,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -275,7 +245,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_nst_only] standard_name = flag_for_ugwp_version_0_nonorographic_gwd long_name = flag to activate ver 0 CIRES UGWP - non-stationary GWD only @@ -283,7 +252,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -292,7 +260,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -300,7 +267,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -313,7 +279,6 @@ dimensions = () type = integer intent = in - optional = F [master] standard_name = mpi_root long_name = MPI rank of master process @@ -321,7 +286,6 @@ dimensions = () type = integer intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal @@ -329,7 +293,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -337,7 +300,6 @@ dimensions = () type = integer intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -345,7 +307,6 @@ dimensions = () type = integer intent = in - optional = F [dtp] standard_name = timestep_for_physics long_name = physics timestep @@ -354,7 +315,6 @@ type = real kind = kind_phys intent = in - optional = F [fhzero] standard_name = period_of_diagnostics_reset long_name = hours between clearing of diagnostic buckets @@ -363,7 +323,6 @@ type = real kind = kind_phys intent = in - optional = F [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -371,7 +330,6 @@ dimensions = () type = integer intent = in - optional = F [lonr] standard_name = number_of_equatorial_longitude_points long_name = number of global points in x-dir (i) along the equator @@ -379,7 +337,6 @@ dimensions = () type = integer intent = in - optional = F [oro] standard_name = height_above_mean_sea_level long_name = height_above_mean_sea_level @@ -388,7 +345,6 @@ type = real kind = kind_phys intent = in - optional = F [oro_uf] standard_name = unfiltered_height_above_mean_sea_level long_name = unfiltered height_above_mean_sea_level @@ -397,7 +353,6 @@ type = real kind = kind_phys intent = in - optional = F [hprime] standard_name = standard_deviation_of_subgrid_orography long_name = standard deviation of subgrid height_above_mean_sea_level @@ -406,7 +361,6 @@ type = real kind = kind_phys intent = in - optional = F [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of topographic variables in GWD @@ -414,7 +368,6 @@ dimensions = () type = integer intent = in - optional = F [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -423,7 +376,6 @@ type = real kind = kind_phys intent = in - optional = F [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with_respect to east of maximum subgrid orographic variations @@ -432,7 +384,6 @@ type = real kind = kind_phys intent = in - optional = F [sigma] standard_name = slope_of_subgrid_orography long_name = slope of subgrid height_above_mean_sea_level @@ -441,7 +392,6 @@ type = real kind = kind_phys intent = in - optional = F [gamma] standard_name = anisotropy_of_subgrid_orography long_name = anisotropy of subgrid height_above_mean_sea_level @@ -450,7 +400,6 @@ type = real kind = kind_phys intent = in - optional = F [elvmax] standard_name = maximum_subgrid_orography long_name = maximum of subgrid height_above_mean_sea_level @@ -459,7 +408,6 @@ type = real kind = kind_phys intent = inout - optional = F [clx] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height @@ -468,7 +416,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4] standard_name = asymmetry_of_subgrid_orography long_name = asymmetry of subgrid height_above_mean_sea_level @@ -477,7 +424,6 @@ type = real kind = kind_phys intent = in - optional = F [varss] standard_name = standard_deviation_of_subgrid_orography_small_scale long_name = standard deviation of subgrid height_above_mean_sea_level small scale @@ -486,7 +432,6 @@ type = real kind = kind_phys intent = in - optional = F [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -495,7 +440,6 @@ type = real kind = kind_phys intent = in - optional = F [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -504,7 +448,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -513,7 +456,6 @@ type = real kind = kind_phys intent = in - optional = F [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -522,7 +464,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc_ls] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from large scale gwd @@ -531,7 +472,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_ls] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from large scale gwd @@ -540,7 +480,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc_bl] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -549,7 +488,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_bl] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -558,7 +496,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -567,7 +504,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -576,7 +512,6 @@ type = real kind = kind_phys intent = out - optional = F [dusfc_fd] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -585,7 +520,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc_fd] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -594,7 +528,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_ls] 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 @@ -603,7 +536,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_ls] 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 @@ -612,7 +544,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_bl] standard_name = tendency_of_x_momentum_due_to_blocking_drag long_name = x momentum tendency from blocking drag @@ -621,7 +552,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_bl] standard_name = tendency_of_y_momentum_due_to_blocking_drag long_name = y momentum tendency from blocking drag @@ -630,7 +560,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_ss] standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag long_name = x momentum tendency from small scale gwd @@ -639,7 +568,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_ss] standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag long_name = y momentum tendency from small scale gwd @@ -648,7 +576,6 @@ type = real kind = kind_phys intent = out - optional = F [dtaux2d_fd] standard_name = tendency_of_x_momentum_due_to_form_drag long_name = x momentum tendency from form drag @@ -657,7 +584,6 @@ type = real kind = kind_phys intent = out - optional = F [dtauy2d_fd] standard_name = tendency_of_y_momentum_due_to_form_drag long_name = y momentum tendency from form drag @@ -666,7 +592,6 @@ type = real kind = kind_phys intent = out - optional = F [br1] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -675,7 +600,6 @@ type = real kind = kind_phys intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -684,7 +608,6 @@ type = real kind = kind_phys intent = in - optional = F [slmsk] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 @@ -693,7 +616,6 @@ type = real kind = kind_phys intent = in - optional = F [do_tofd] standard_name = flag_for_turbulent_orographic_form_drag_in_unified_gravity_wave_physics_gravitiy_wave_drag_scheme long_name = flag for turbulent orographic form drag @@ -701,7 +623,6 @@ dimensions = () type = logical intent = in - optional = F [ldiag_ugwp] standard_name = flag_for_unified_gravity_wave_physics_diagnostics long_name = flag for CIRES UGWP Diagnostics @@ -709,7 +630,6 @@ dimensions = () type = logical intent = in - optional = F [cdmbgwd] standard_name = multiplicative_tunable_parameters_for_mountain_blocking_and_orographic_gravity_wave_drag long_name = multiplication factors for cdmb and gwd @@ -718,7 +638,6 @@ type = real kind = kind_phys intent = in - optional = F [jdat] standard_name = date_and_time_of_forecast_in_united_states_order long_name = current forecast date and time @@ -726,7 +645,6 @@ dimensions = (8) type = integer intent = in - optional = F [xlat] standard_name = latitude long_name = grid latitude @@ -735,7 +653,6 @@ type = real kind = kind_phys intent = in - optional = F [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -744,7 +661,6 @@ type = real kind = kind_phys intent = in - optional = F [sinlat] standard_name = sine_of_latitude long_name = sine of the grid latitude @@ -753,7 +669,6 @@ type = real kind = kind_phys intent = in - optional = F [coslat] standard_name = cosine_of_latitude long_name = cosine of the grid latitude @@ -762,7 +677,6 @@ type = real kind = kind_phys intent = in - optional = F [area] standard_name = cell_area long_name = area of the grid cell @@ -771,7 +685,6 @@ type = real kind = kind_phys intent = in - optional = F [ugrs] standard_name = x_wind long_name = zonal wind @@ -780,7 +693,6 @@ type = real kind = kind_phys intent = in - optional = F [vgrs] standard_name = y_wind long_name = meridional wind @@ -789,7 +701,6 @@ type = real kind = kind_phys intent = in - optional = F [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -798,7 +709,6 @@ type = real kind = kind_phys intent = in - optional = F [q1] standard_name = specific_humidity long_name = mid-layer specific humidity of water vapor @@ -807,7 +717,6 @@ type = real kind = kind_phys intent = in - optional = F [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -816,7 +725,6 @@ type = real kind = kind_phys intent = in - optional = F [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -825,7 +733,6 @@ type = real kind = kind_phys intent = in - optional = F [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -834,7 +741,6 @@ type = real kind = kind_phys intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -843,7 +749,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -852,7 +757,6 @@ type = real kind = kind_phys intent = in - optional = F [del] standard_name = air_pressure_difference_between_midlayers long_name = air pressure difference between midlayers @@ -861,7 +765,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = vertical index at top atmospheric boundary layer @@ -869,7 +772,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [dusfcg] standard_name = instantaneous_x_stress_due_to_gravity_wave_drag long_name = zonal surface stress due to orographic gravity wave drag @@ -878,7 +780,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfcg] standard_name = instantaneous_y_stress_due_to_gravity_wave_drag long_name = meridional surface stress due to orographic gravity wave drag @@ -887,9 +788,7 @@ type = real kind = kind_phys intent = out - optional = F intent = out - optional = F [gw_dudt] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to UGWP @@ -898,7 +797,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_dvdt] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to UGWP @@ -907,7 +805,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_dtdt] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to UGWP @@ -916,7 +813,6 @@ type = real kind = kind_phys intent = out - optional = F [gw_kdis] standard_name = atmosphere_momentum_diffusivity_due_to_gravity_wave_drag long_name = eddy mixing due to UGWP @@ -925,7 +821,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_tofd] standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag long_name = momentum flux or stress due to TOFD @@ -934,7 +829,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_mtb] standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag long_name = momentum flux or stress due to mountain blocking drag @@ -943,7 +837,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -952,7 +845,6 @@ type = real kind = kind_phys intent = out - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -961,7 +853,6 @@ type = real kind = kind_phys intent = out - optional = F [zmtb] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag @@ -970,7 +861,6 @@ type = real kind = kind_phys intent = out - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking @@ -979,7 +869,6 @@ type = real kind = kind_phys intent = out - optional = F [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity wave @@ -988,7 +877,6 @@ type = real kind = kind_phys intent = out - optional = F [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 @@ -997,7 +885,6 @@ type = real kind = kind_phys intent = out - optional = F [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -1006,7 +893,6 @@ type = real kind = kind_phys intent = out - optional = F [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag @@ -1015,7 +901,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1024,7 +909,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1033,7 +917,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -1042,7 +925,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -1051,7 +933,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -1060,7 +941,6 @@ type = real kind = kind_phys intent = inout - optional = F [rdxzb] standard_name = level_of_dividing_streamline long_name = level of the dividing streamline @@ -1069,7 +949,6 @@ type = real kind = kind_phys intent = out - optional = F [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -1078,7 +957,6 @@ type = real kind = kind_phys intent = in - optional = F [con_omega] standard_name = angular_velocity_of_earth long_name = angular velocity of earth @@ -1087,7 +965,6 @@ type = real kind = kind_phys intent = in - optional = F [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -1096,7 +973,6 @@ type = real kind = kind_phys intent = in - optional = F [con_cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat !of dry air at constant pressure @@ -1105,7 +981,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -1114,7 +989,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -1123,7 +997,6 @@ type = real kind = kind_phys intent = in - optional = F [con_rerth] standard_name = radius_of_earth long_name = radius of earth @@ -1132,7 +1005,6 @@ type = real kind = kind_phys intent = in - optional = F [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -1141,7 +1013,6 @@ type = real kind = kind_phys intent = in - optional = F [rain] standard_name = lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total rain at this time step @@ -1150,7 +1021,6 @@ type = real kind = kind_phys intent = in - optional = F [ntke] standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array long_name = tracer index for turbulent kinetic energy @@ -1158,7 +1028,6 @@ dimensions = () type = integer intent = in - optional = F [q_tke] standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy @@ -1167,7 +1036,6 @@ type = real kind = kind_phys intent = in - optional = F [dqdt_tke] standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy long_name = turbulent kinetic energy tendency due to model physics @@ -1176,7 +1044,6 @@ type = real kind = kind_phys intent = in - optional = F [lprnt] standard_name = flag_print long_name = control flag for diagnostic print out @@ -1184,7 +1051,6 @@ dimensions = () type = logical intent = in - optional = F [ipr] standard_name = horizontal_index_of_printed_column long_name = horizontal index of printed column @@ -1192,7 +1058,6 @@ dimensions = () type = integer intent = in - optional = F [ldiag3d] standard_name = flag_for_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -1200,7 +1065,6 @@ dimensions = () type = logical intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -1209,7 +1073,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -1217,7 +1080,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -1225,7 +1087,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1233,7 +1094,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -1241,7 +1101,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -1249,7 +1108,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_process_nonorographic_gwd] standard_name = index_of_nonorographic_gravity_wave_drag_process_in_cumulative_change_index long_name = index of nonorographic gravity wave drag process in second dimension of array cumulative change index @@ -1257,7 +1115,6 @@ dimensions = () type = integer intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -1265,7 +1122,6 @@ dimensions = () type = logical intent = in - optional = F [flag_for_gwd_generic_tend] standard_name = flag_for_generic_tendency_due_to_gravity_wave_drag long_name = true if GFS_GWD_generic should calculate tendencies @@ -1273,7 +1129,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0] standard_name = flag_for_ugwp_version_0 long_name = flag to activate ver 0 CIRES UGWP @@ -1281,7 +1136,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_orog_only] standard_name = flag_for_ugwp_version_0_orographic_gwd long_name = flag to activate ver 0 CIRES UGWP - orographic GWD only @@ -1289,7 +1143,6 @@ dimensions = () type = logical intent = in - optional = F [do_ugwp_v0_nst_only] standard_name = flag_for_ugwp_version_0_nonorographic_gwd long_name = flag to activate ver 0 CIRES UGWP - non-stationary GWD only @@ -1297,7 +1150,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ls_bl] standard_name = flag_for_gsl_drag_suite_large_scale_orographic_and_blocking_drag long_name = flag to activate GSL drag suite - large-scale GWD and blocking @@ -1305,7 +1157,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_ss] standard_name = flag_for_gsl_drag_suite_small_scale_orographic_drag long_name = flag to activate GSL drag suite - small-scale GWD @@ -1313,7 +1164,6 @@ dimensions = () type = logical intent = in - optional = F [do_gsl_drag_tofd] standard_name = flag_for_gsl_drag_suite_turbulent_orographic_form_drag long_name = flag to activate GSL drag suite - turb orog form drag @@ -1321,7 +1171,6 @@ dimensions = () type = logical intent = in - optional = F [gwd_opt] standard_name = control_for_drag_suite_gravity_wave_drag long_name = flag to choose gwd scheme @@ -1329,7 +1178,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -1338,7 +1186,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -1346,4 +1193,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/unified_ugwp_post.meta b/physics/unified_ugwp_post.meta index a340c8c1d..e2723821b 100644 --- a/physics/unified_ugwp_post.meta +++ b/physics/unified_ugwp_post.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -23,7 +22,6 @@ type = real kind = kind_phys intent = in - optional = F [im] standard_name = horizontal_loop_extent long_name = horizontal loop extent @@ -31,7 +29,6 @@ dimensions = () type = integer intent = in - optional = F [levs] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -39,7 +36,6 @@ dimensions = () type = integer intent = in - optional = F [gw_dtdt] standard_name = tendency_of_air_temperature_due_to_gravity_wave_drag long_name = air temperature tendency due to UGWP @@ -48,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = F [gw_dudt] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to UGWP @@ -57,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = F [gw_dvdt] standard_name = tendency_of_y_wind_due_to_gravity_wave_drag long_name = meridional wind tendency due to UGWP @@ -66,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_tofd] standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag long_name = momentum flux or stress due to TOFD @@ -75,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_mtb] standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag long_name = momentum flux or stress due to mountain blocking drag @@ -84,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ogw] standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag long_name = momentum flux or stress due to orographic gravity wave drag @@ -93,7 +84,6 @@ type = real kind = kind_phys intent = in - optional = F [tau_ngw] standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave long_name = momentum flux or stress due to nonstationary gravity waves @@ -102,7 +92,6 @@ type = real kind = kind_phys intent = in - optional = F [zmtb] standard_name = height_of_mountain_blocking long_name = height of mountain blocking drag @@ -111,7 +100,6 @@ type = real kind = kind_phys intent = in - optional = F [zlwb] standard_name = height_of_low_level_wave_breaking long_name = height of low level wave breaking @@ -120,7 +108,6 @@ type = real kind = kind_phys intent = in - optional = F [zogw] standard_name = height_of_launch_level_of_orographic_gravity_wave long_name = height of launch level of orographic gravity wave @@ -129,7 +116,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -138,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -147,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = F [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD @@ -156,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = F [tot_zmtb] standard_name = time_integral_of_height_of_mountain_blocking long_name = time integral of height of mountain blocking drag @@ -165,7 +148,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zlwb] standard_name = time_integral_of_height_of_low_level_wave_breaking long_name = time integral of height of drag due to low level wave breaking @@ -174,7 +156,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_zogw] standard_name = time_integral_of_height_of_launch_level_of_orographic_gravity_wave long_name = time integral of height of launch level of orographic gravity wave @@ -183,7 +164,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_tofd] standard_name = time_integral_of_momentum_flux_due_to_turbulent_orographic_form_drag long_name = time integral of momentum flux due to TOFD @@ -192,7 +172,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_mtb] standard_name = time_integral_of_momentum_flux_due_to_mountain_blocking_drag long_name = time integral of momentum flux due to mountain blocking drag @@ -201,7 +180,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ogw] standard_name = time_integral_of_momentum_flux_due_to_orographic_gravity_wave_drag long_name = time integral of momentum flux due to orographic gravity wave drag @@ -210,7 +188,6 @@ type = real kind = kind_phys intent = inout - optional = F [tot_ngw] standard_name = time_integral_of_momentum_flux_due_to_nonstationary_gravity_wave long_name = time integral of momentum flux due to nonstationary gravity waves @@ -219,7 +196,6 @@ type = real kind = kind_phys intent = inout - optional = F [du3dt_mtb] standard_name = time_integral_of_change_in_x_wind_due_to_mountain_blocking_drag long_name = time integral of change in x wind due to mountain blocking drag @@ -228,7 +204,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -237,7 +212,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -246,7 +220,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -255,7 +228,6 @@ type = real kind = kind_phys intent = inout - optional = F [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 @@ -264,7 +236,6 @@ type = real kind = kind_phys intent = inout - optional = F [dtdt] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = air temperature tendency due to model physics @@ -273,7 +244,6 @@ type = real kind = kind_phys intent = inout - optional = F [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = zonal wind tendency due to model physics @@ -282,7 +252,6 @@ type = real kind = kind_phys intent = inout - optional = F [dvdt] standard_name = process_split_cumulative_tendency_of_y_wind long_name = meridional wind tendency due to model physics @@ -291,7 +260,6 @@ type = real kind = kind_phys intent = inout - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -300,7 +268,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -308,4 +275,3 @@ dimensions = () type = integer intent = out - optional = F diff --git a/physics/ysuvdif.meta b/physics/ysuvdif.meta index c2c3fbf0a..6585fae13 100644 --- a/physics/ysuvdif.meta +++ b/physics/ysuvdif.meta @@ -14,7 +14,6 @@ dimensions = () type = logical intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -23,7 +22,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -31,7 +29,6 @@ dimensions = () type = integer intent = out - optional = F ######################################################################## [ccpp-arg-table] @@ -44,7 +41,6 @@ dimensions = () type = integer intent = in - optional = F [km] standard_name = vertical_layer_dimension long_name = vertical layer dimension @@ -52,7 +48,6 @@ dimensions = () type = integer intent = in - optional = F [ux] standard_name = x_wind long_name = x component of layer wind @@ -61,7 +56,6 @@ type = real kind = kind_phys intent = in - optional = F [vx] standard_name = y_wind long_name = y component of layer wind @@ -70,7 +64,6 @@ type = real kind = kind_phys intent = in - optional = F [tx] standard_name = air_temperature long_name = layer mean air temperature @@ -79,7 +72,6 @@ type = real kind = kind_phys intent = in - optional = F [qx] standard_name = tracer_concentration long_name = model layer mean tracer concentration @@ -88,7 +80,6 @@ type = real kind = kind_phys intent = in - optional = F [p2d] standard_name = air_pressure long_name = mean layer pressure @@ -97,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = F [p2di] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -106,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = F [pi2d] standard_name = dimensionless_exner_function long_name = Exner function at layers @@ -115,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = F [karman] standard_name = von_karman_constant long_name = von karman constant @@ -123,7 +111,6 @@ dimensions = () type = real intent = in - optional = F [utnp] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind @@ -132,7 +119,6 @@ type = real kind = kind_phys intent = inout - optional = F [vtnp] standard_name = process_split_cumulative_tendency_of_y_wind long_name = updated tendency of the y wind @@ -141,7 +127,6 @@ type = real kind = kind_phys intent = inout - optional = F [ttnp] standard_name = process_split_cumulative_tendency_of_air_temperature long_name = updated tendency of the temperature @@ -150,7 +135,6 @@ type = real kind = kind_phys intent = inout - optional = F [qtnp] standard_name = process_split_cumulative_tendency_of_tracers long_name = updated tendency of the tracers due to model physics @@ -159,7 +143,6 @@ type = real kind = kind_phys intent = inout - optional = F [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate @@ -168,7 +151,6 @@ type = real kind = kind_phys intent = in - optional = F [hlw] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky longwave heating rate @@ -177,7 +159,6 @@ type = real kind = kind_phys intent = in - optional = F [xmu] standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes long_name = zenith angle temporal adjustment factor for shortwave @@ -186,7 +167,6 @@ type = real kind = kind_phys intent = in - optional = F [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -194,7 +174,6 @@ dimensions = () type = integer intent = in - optional = F [ndiff] standard_name = number_of_vertical_diffusion_tracers long_name = number of tracers to diffuse vertically @@ -202,7 +181,6 @@ dimensions = () type = integer intent = in - optional = F [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -210,7 +188,6 @@ dimensions = () type = integer intent = in - optional = F [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -218,7 +195,6 @@ dimensions = () type = integer intent = in - optional = F [phii] standard_name = geopotential_at_interface long_name = geopotential at model layer interfaces @@ -227,7 +203,6 @@ type = real kind = kind_phys intent = in - optional = F [phil] standard_name = geopotential long_name = geopotential at model layer centers @@ -236,7 +211,6 @@ type = real kind = kind_phys intent = in - optional = F [psfcpa] standard_name = surface_air_pressure long_name = surface pressure @@ -245,7 +219,6 @@ type = real kind = kind_phys intent = in - optional = F [zorl] standard_name = surface_roughness_length long_name = surface roughness length in cm @@ -254,7 +227,6 @@ type = real kind = kind_phys intent = in - optional = F [stress] standard_name = surface_wind_stress long_name = surface wind stress @@ -263,7 +235,6 @@ type = real kind = kind_phys intent = in - optional = F [hpbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -272,7 +243,6 @@ type = real kind = kind_phys intent = out - optional = F [psim] standard_name = Monin_Obukhov_similarity_function_for_momentum long_name = Monin-Obukhov similarity function for momentum @@ -281,7 +251,6 @@ type = real kind = kind_phys intent = in - optional = F [psih] standard_name = Monin_Obukhov_similarity_function_for_heat long_name = Monin-Obukhov similarity function for heat @@ -290,7 +259,6 @@ type = real kind = kind_phys intent = in - optional = F [landmask] standard_name = sea_land_ice_mask long_name = landmask: sea/land/ice=0/1/2 @@ -298,7 +266,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = F [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 @@ -307,7 +274,6 @@ type = real kind = kind_phys intent = in - optional = F [evap] standard_name = surface_upward_specific_humidity_flux long_name = kinematic surface upward latent heat flux @@ -316,7 +282,6 @@ type = real kind = kind_phys intent = in - optional = F [wspd] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -325,7 +290,6 @@ type = real kind = kind_phys intent = in - optional = F [br] standard_name = bulk_richardson_number_at_lowest_model_level long_name = bulk Richardson number at the surface @@ -334,7 +298,6 @@ type = real kind = kind_phys intent = in - optional = F [g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -343,7 +306,6 @@ type = real kind = kind_phys intent = in - optional = F [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -352,7 +314,6 @@ type = real kind = kind_phys intent = in - optional = F [cp] standard_name = specific_heat_of_dry_air_at_constant_pressure long_name = specific heat of dry air at constant pressure @@ -361,7 +322,6 @@ type = real kind = kind_phys intent = in - optional = F [rv] standard_name = gas_constant_water_vapor long_name = ideal gas constant for water vapor @@ -370,7 +330,6 @@ type = real kind = kind_phys intent = in - optional = F [ep1] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) @@ -379,7 +338,6 @@ type = real kind = kind_phys intent = in - optional = F [ep2] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants long_name = rd/rv @@ -388,7 +346,6 @@ type = real kind = kind_phys intent = in - optional = F [xlv] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -397,7 +354,6 @@ type = real kind = kind_phys intent = in - optional = F [dusfc] standard_name = instantaneous_surface_x_momentum_flux long_name = x momentum flux @@ -406,7 +362,6 @@ type = real kind = kind_phys intent = out - optional = F [dvsfc] standard_name = instantaneous_surface_y_momentum_flux long_name = y momentum flux @@ -415,7 +370,6 @@ type = real kind = kind_phys intent = out - optional = F [dtsfc] standard_name = instantaneous_surface_upward_sensible_heat_flux long_name = surface upward sensible heat flux @@ -424,7 +378,6 @@ type = real kind = kind_phys intent = out - optional = F [dqsfc] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux @@ -433,7 +386,6 @@ type = real kind = kind_phys intent = out - optional = F [dt] standard_name = timestep_for_physics long_name = time step for physics @@ -442,7 +394,6 @@ type = real kind = kind_phys intent = in - optional = F [kpbl1d] standard_name = vertical_index_at_top_of_atmosphere_boundary_layer long_name = PBL top model level index @@ -450,7 +401,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = F [u10] standard_name = x_wind_at_10m long_name = x component of wind at 10 m @@ -459,7 +409,6 @@ type = real kind = kind_phys intent = in - optional = F [v10] standard_name = y_wind_at_10m long_name = y component of wind at 10 m @@ -468,7 +417,6 @@ type = real kind = kind_phys intent = in - optional = F [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -504,7 +452,6 @@ dimensions = () type = integer intent = in - optional = F [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -512,7 +459,6 @@ dimensions = () type = integer intent = in - optional = F [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -521,7 +467,6 @@ type = real kind = kind_phys intent = in - optional = F [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 @@ -529,7 +474,6 @@ dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in - optional = F [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 @@ -537,7 +481,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -545,7 +488,6 @@ dimensions = () type = integer intent = in - optional = F [index_of_y_wind] standard_name = index_of_y_wind_in_cumulative_change_index long_name = index of x-wind in first dimension of array cumulative change index @@ -553,7 +495,6 @@ dimensions = () type = integer intent = in - optional = F [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 @@ -561,7 +502,6 @@ dimensions = () type = integer intent = in - optional = F [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -570,7 +510,6 @@ type = character kind = len=* intent = out - optional = F [errflg] standard_name = ccpp_error_flag long_name = error flag for error handling in CCPP @@ -578,4 +517,3 @@ dimensions = () type = integer intent = out - optional = F