diff --git a/CMakeLists.txt b/CMakeLists.txt index 715af8afe..ce1ab6d62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,6 +58,19 @@ foreach(typedef_module ${TYPEDEFS}) endforeach() #------------------------------------------------------------------------------ +# Set the sources: kinds file +# DJS2024: This file is autogenerated by the framework (Capgen) +if(CAPGEN) + set(KINDS $ENV{CCPP_KINDS}) + if(KINDS) + message(STATUS "Got CCPP KINDS from environment variable") + else(KINDS) + include(${CMAKE_CURRENT_BINARY_DIR}/CCPP_KINDS.cmake) + message(STATUS "Got CCPP KINDS from cmakefile include file") + endif(KINDS) + list(REMOVE_DUPLICATES KINDS) +endif() + # Set the sources: physics schemes set(SCHEMES $ENV{CCPP_SCHEMES}) if(SCHEMES) @@ -170,7 +183,12 @@ endif() #------------------------------------------------------------------------------ -add_library(ccpp_physics STATIC ${SCHEMES} ${SCHEMES_OPENMP_OFF} ${SCHEMES_DYNAMICS} ${CAPS}) +if(CAPGEN) + add_library(ccpp_physics STATIC ${KINDS} ${SCHEMES} ${SCHEMES_OPENMP_OFF} ${SCHEMES_DYNAMICS} ${CAPS}) +else() + add_library(ccpp_physics STATIC ${SCHEMES} ${SCHEMES_OPENMP_OFF} ${SCHEMES_DYNAMICS} ${CAPS}) +endif() + # Generate list of Fortran modules from defined sources foreach(source_f90 ${CAPS}) get_filename_component(tmp_source_f90 ${source_f90} NAME) diff --git a/physics/CONV/C3/cu_c3_driver.meta b/physics/CONV/C3/cu_c3_driver.meta index af411cb6b..0c98be7b4 100644 --- a/physics/CONV/C3/cu_c3_driver.meta +++ b/physics/CONV/C3/cu_c3_driver.meta @@ -36,20 +36,6 @@ dimensions = () type = integer intent = in -[mpirank] - standard_name = mpi_rank - long_name = current MPI-rank - units = index - dimensions = () - type = integer - intent = in -[mpiroot] - standard_name = mpi_root - long_name = master MPI-rank - units = index - dimensions = () - type = integer - intent = in [progsigma] standard_name = do_prognostic_updraft_area_fraction long_name = flag for prognostic sigma in cumuls scheme @@ -64,6 +50,20 @@ dimensions = () type = integer intent = in +[mpirank] + standard_name = mpi_rank + long_name = current MPI-rank + units = index + dimensions = () + type = integer + intent = in +[mpiroot] + standard_name = mpi_root + long_name = master MPI-rank + units = index + dimensions = () + type = integer + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -189,6 +189,14 @@ type = real kind = kind_phys intent = in +[r_d] + 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 [xlv] standard_name = latent_heat_of_vaporization_of_water_at_0C long_name = latent heat of evaporation/sublimation @@ -205,14 +213,6 @@ type = real kind = kind_phys intent = in -[r_d] - 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 [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -231,6 +231,30 @@ kind = kind_phys intent = in optional = True +[phil] + standard_name = geopotential + long_name = layer geopotential + units = m2 s-2 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[delp] + standard_name = air_pressure_difference_between_midlayers + long_name = pres(k) - pres(k+1) + units = Pa + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[raincv] + standard_name = lwe_thickness_of_deep_convective_precipitation_amount + long_name = deep convective rainfall amount on physics timestep + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out [tmf] standard_name = tendency_of_vertically_diffused_tracer_concentration long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme @@ -257,15 +281,6 @@ kind = kind_phys intent = in optional = True -[sigmaout] - standard_name = updraft_area_fraction_updated_by_physics - long_name = convective updraft area fraction updated by physics - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = True [betascu] standard_name = tuning_param_for_shallow_cu long_name = tuning param for shallow cu in case prognostic closure is used @@ -289,30 +304,6 @@ dimensions = () type = real intent = in -[phil] - standard_name = geopotential - long_name = layer geopotential - units = m2 s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[delp] - standard_name = air_pressure_difference_between_midlayers - long_name = pres(k) - pres(k+1) - units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[raincv] - standard_name = lwe_thickness_of_deep_convective_precipitation_amount - long_name = deep convective rainfall amount on physics timestep - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out [qv_spechum] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -462,6 +453,23 @@ type = real kind = kind_phys intent = inout +[ca_deep] + standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process + long_name = fraction of cellular automata for deep convection + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in + optional = True +[rainevap] + standard_name = physics_field_for_coupling + long_name = physics_field_for_coupling + units = m2 s-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out [pbl] standard_name = atmosphere_boundary_layer_thickness long_name = PBL thickness @@ -555,16 +563,16 @@ dimensions = () type = integer intent = in -[ntcw] - standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array - long_name = tracer index for cloud condensate (or liquid water) +[ntiw] + standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array + long_name = tracer index for ice water units = index dimensions = () type = integer intent = in -[ntiw] - standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array - long_name = tracer index for ice water +[ntcw] + standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array + long_name = tracer index for cloud condensate (or liquid water) units = index dimensions = () type = integer @@ -604,29 +612,6 @@ dimensions = () type = integer intent = in -[dfi_radar_max_intervals] - standard_name = maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals - long_name = maximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression - units = count - dimensions = () - type = integer - intent = in -[ldiag3d] - standard_name = flag_for_diagnostics_3D - long_name = flag for 3d diagnostic fields - units = flag - dimensions = () - type = logical - intent = in -[qci_conv] - standard_name = convective_cloud_condesate_after_rainout - long_name = convective cloud condesate after rainout - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [fhour] standard_name = forecast_time long_name = current forecast time @@ -635,13 +620,6 @@ type = real kind = kind_phys intent = in -[do_cap_suppress] - standard_name = flag_for_radar_derived_convection_suppression - long_name = flag for radar-derived convection suppression - units = flag - dimensions = () - type = logical - intent = in [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals @@ -673,23 +651,45 @@ kind = kind_phys intent = in optional = True -[ca_deep] - standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process - long_name = fraction of cellular automata for deep convection - units = frac - dimensions = (horizontal_loop_extent) +[dfi_radar_max_intervals] + standard_name = maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals + long_name = maximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression + units = count + dimensions = () + type = integer + intent = in +[ldiag3d] + standard_name = flag_for_diagnostics_3D + long_name = flag for 3d diagnostic fields + units = flag + dimensions = () + type = logical + intent = in +[qci_conv] + standard_name = convective_cloud_condesate_after_rainout + long_name = convective cloud condesate after rainout + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = in + intent = inout optional = True -[rainevap] - standard_name = physics_field_for_coupling - long_name = physics_field_for_coupling - units = m2 s-2 - dimensions = (horizontal_loop_extent) +[do_cap_suppress] + standard_name = flag_for_radar_derived_convection_suppression + long_name = flag for radar-derived convection suppression + units = flag + dimensions = () + type = logical + intent = in +[sigmaout] + standard_name = updraft_area_fraction_updated_by_physics + long_name = convective updraft area fraction updated by physics + units = frac + dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = out + optional = True [maxupmf] standard_name = maximum_convective_updraft_mass_flux long_name = maximum convective updraft mass flux within a column diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.meta b/physics/CONV/Grell_Freitas/cu_gf_driver.meta index f76d0c30c..0e1803f87 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.meta @@ -445,16 +445,16 @@ dimensions = () type = integer intent = in -[ntcw] - standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array - long_name = tracer index for cloud condensate (or liquid water) +[ntiw] + standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array + long_name = tracer index for ice water units = index dimensions = () type = integer intent = in -[ntiw] - standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array - long_name = tracer index for ice water +[ntcw] + standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array + long_name = tracer index for cloud condensate (or liquid water) units = index dimensions = () type = integer @@ -494,29 +494,6 @@ dimensions = () type = integer intent = in -[dfi_radar_max_intervals] - standard_name = maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals - long_name = maximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression - units = count - dimensions = () - type = integer - intent = in -[ldiag3d] - standard_name = flag_for_diagnostics_3D - long_name = flag for 3d diagnostic fields - units = flag - dimensions = () - type = logical - intent = in -[qci_conv] - standard_name = convective_cloud_condesate_after_rainout - long_name = convective cloud condesate after rainout - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [fhour] standard_name = forecast_time long_name = current forecast time @@ -525,13 +502,6 @@ type = real kind = kind_phys intent = in -[do_cap_suppress] - standard_name = flag_for_radar_derived_convection_suppression - long_name = flag for radar-derived convection suppression - units = flag - dimensions = () - type = logical - intent = in [fh_dfi_radar] standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals long_name = forecast lead times bounding radar derived temperature or convection suppression intervals @@ -563,6 +533,36 @@ kind = kind_phys intent = in optional = True +[dfi_radar_max_intervals] + standard_name = maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals + long_name = maximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression + units = count + dimensions = () + type = integer + intent = in +[ldiag3d] + standard_name = flag_for_diagnostics_3D + long_name = flag for 3d diagnostic fields + units = flag + dimensions = () + type = logical + intent = in +[qci_conv] + standard_name = convective_cloud_condesate_after_rainout + long_name = convective cloud condesate after rainout + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[do_cap_suppress] + standard_name = flag_for_radar_derived_convection_suppression + long_name = flag for radar-derived convection suppression + units = flag + dimensions = () + type = logical + intent = in [maxupmf] standard_name = maximum_convective_updraft_mass_flux long_name = maximum convective updraft mass flux within a column @@ -609,6 +609,13 @@ dimensions = () type = integer intent = in +[spp_cu_deep] + standard_name = control_for_deep_convection_spp_perturbations + long_name = control for deep convection spp perturbations + units = count + dimensions = () + type = integer + intent = in [spp_wts_cu_deep] standard_name = spp_weights_for_cu_deep_scheme long_name = spp weights for cu deep scheme @@ -618,13 +625,6 @@ kind = kind_phys intent = in optional = True -[spp_cu_deep] - standard_name = control_for_deep_convection_spp_perturbations - long_name = control for deep convection spp perturbations - units = count - dimensions = () - type = integer - intent = in [nchem] standard_name = number_of_chemical_species_vertically_mixed long_name = number of chemical species vertically mixed @@ -649,13 +649,6 @@ type = real kind = kind_phys intent = in -[do_smoke_transport] - standard_name = do_smoke_conv_transport - long_name = flag for rrfs smoke convective transport - units = flag - dimensions = () - type = logical - intent = in [wetdpc_deep] standard_name = conv_wet_deposition_smoke_dust long_name = convective wet removal of smoke and dust @@ -665,6 +658,13 @@ kind = kind_phys intent = inout optional = True +[do_smoke_transport] + standard_name = do_smoke_conv_transport + long_name = flag for rrfs smoke convective transport + units = flag + dimensions = () + type = logical + intent = in [kdt] standard_name = index_of_timestep long_name = current forecast iteration diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta index 302fec1d7..e03c41ebb 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta @@ -117,14 +117,6 @@ dimensions = () type = integer 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 [chem3d] standard_name = chem3d_mynn_pbl_transport long_name = mynn pbl transport of smoke and dust @@ -142,6 +134,14 @@ type = real kind = kind_phys intent = inout +[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_code long_name = error code for error handling in CCPP diff --git a/physics/CONV/SAMF/samfdeepcnv.f b/physics/CONV/SAMF/samfdeepcnv.f index 7c2d9acf8..215924825 100644 --- a/physics/CONV/SAMF/samfdeepcnv.f +++ b/physics/CONV/SAMF/samfdeepcnv.f @@ -11,6 +11,9 @@ module samfdeepcnv contains +!! \section arg_table_samfdeepcnv_init Argument Table +!! \htmlinclude samfdeepcnv_init.html +!! subroutine samfdeepcnv_init(imfdeepcnv,imfdeepcnv_samf, & & errmsg, errflg) diff --git a/physics/CONV/SAMF/samfdeepcnv.meta b/physics/CONV/SAMF/samfdeepcnv.meta index 3652a0d27..9ecc628f9 100644 --- a/physics/CONV/SAMF/samfdeepcnv.meta +++ b/physics/CONV/SAMF/samfdeepcnv.meta @@ -437,63 +437,6 @@ type = real kind = kind_phys intent = inout -[sigmain] - standard_name = prognostic_updraft_area_fraction_in_convection - long_name = convective updraft area fraction - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True -[sigmaout] - standard_name = updraft_area_fraction_updated_by_physics - long_name = convective updraft area fraction updated by physics - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = out - optional = True -[betascu] - standard_name = tuning_param_for_shallow_cu - long_name = tuning param for shallow cu in case prognostic closure is used - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[betamcu] - standard_name = tuning_param_for_midlevel_cu - long_name = tuning param for midlevel cu in case prognostic closure is used - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[betadcu] - standard_name = tuning_param_for_deep_cu - long_name = tuning param for deep cu in case prognostic closure is used - units = none - dimensions = () - type = real - intent = in -[maxMF] - standard_name = maximum_mass_flux - long_name = maximum mass flux within a column - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = True -[do_mynnedmf] - standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme - long_name = flag to activate MYNN-EDMF - units = flag - dimensions = () - type = logical - intent = in [qlcn] standard_name = mass_fraction_of_convective_cloud_liquid_water long_name = mass fraction of convective cloud liquid water @@ -715,6 +658,63 @@ type = real kind = kind_phys intent = out +[sigmain] + standard_name = prognostic_updraft_area_fraction_in_convection + long_name = convective updraft area fraction + units = frac + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True +[sigmaout] + standard_name = updraft_area_fraction_updated_by_physics + long_name = convective updraft area fraction updated by physics + units = frac + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = True +[betadcu] + standard_name = tuning_param_for_deep_cu + long_name = tuning param for deep cu in case prognostic closure is used + units = none + dimensions = () + type = real + intent = in +[betamcu] + standard_name = tuning_param_for_midlevel_cu + long_name = tuning param for midlevel cu in case prognostic closure is used + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[betascu] + standard_name = tuning_param_for_shallow_cu + long_name = tuning param for shallow cu in case prognostic closure is used + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[maxMF] + standard_name = maximum_mass_flux + long_name = maximum mass flux within a column + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in + optional = True +[do_mynnedmf] + standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme + long_name = flag to activate MYNN-EDMF + units = flag + dimensions = () + type = logical + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/SAMF/samfshalcnv.f b/physics/CONV/SAMF/samfshalcnv.f index 184f302cd..56aaa494f 100644 --- a/physics/CONV/SAMF/samfshalcnv.f +++ b/physics/CONV/SAMF/samfshalcnv.f @@ -9,6 +9,9 @@ module samfshalcnv contains +!! \section arg_table_samfshalcnv_init Argument Table +!! \htmlinclude samfshalcnv_init.html +!! subroutine samfshalcnv_init(imfshalcnv, imfshalcnv_samf, & & errmsg, errflg) diff --git a/physics/CONV/SAMF/samfshalcnv.meta b/physics/CONV/SAMF/samfshalcnv.meta index 4dfa8ac20..3548ebb54 100644 --- a/physics/CONV/SAMF/samfshalcnv.meta +++ b/physics/CONV/SAMF/samfshalcnv.meta @@ -55,37 +55,6 @@ dimensions = () type = integer intent = in -[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 -[restart] - standard_name = flag_for_restart - long_name = flag for restart (warmstart) or coldstart - units = flag - dimensions = () - type = logical - intent = in -[tmf] - standard_name = tendency_of_vertically_diffused_tracer_concentration - long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme - units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) - type = real - kind = kind_phys - intent = in -[qmicro] - standard_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics - long_name = moisture tendency due to microphysics - units = kg kg-1 s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True [itc] standard_name = index_of_first_chemical_tracer_for_convection long_name = index of first chemical tracer transported/scavenged by convection @@ -218,6 +187,44 @@ type = real kind = kind_phys intent = in +[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 +[restart] + standard_name = flag_for_restart + long_name = flag for restart (warmstart) or coldstart + units = flag + dimensions = () + type = logical + intent = in +[tmf] + standard_name = tendency_of_vertically_diffused_tracer_concentration + long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) + type = real + kind = kind_phys + intent = in +[qmicro] + standard_name = instantaneous_tendency_of_specific_humidity_due_to_microphysics + long_name = moisture tendency due to microphysics + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True +[progsigma] + standard_name = do_prognostic_updraft_area_fraction + long_name = flag for prognostic sigma in cumulus scheme + units = flag + dimensions = () + type = logical + intent = in [prslp] standard_name = air_pressure long_name = mean layer pressure @@ -462,13 +469,6 @@ dimensions = () type = logical intent = in -[progsigma] - standard_name = do_prognostic_updraft_area_fraction - long_name = flag for prognostic sigma in cumulus scheme - units = flag - dimensions = () - type = logical - intent = in [sigmain] standard_name = prognostic_updraft_area_fraction_in_convection long_name = convective updraft area fraction @@ -487,9 +487,9 @@ kind = kind_phys intent = out optional = True -[betascu] - standard_name = tuning_param_for_shallow_cu - long_name = tuning param for shallow cu in case prognostic closure is used +[betadcu] + standard_name = tuning_param_for_deep_cu + long_name = tuning param for deep cu in case prognostic closure is used units = none dimensions = () type = real @@ -503,12 +503,13 @@ type = real kind = kind_phys intent = in -[betadcu] - standard_name = tuning_param_for_deep_cu - long_name = tuning param for deep cu in case prognostic closure is used +[betascu] + standard_name = tuning_param_for_shallow_cu + long_name = tuning param for shallow cu in case prognostic closure is used units = none dimensions = () type = real + kind = kind_phys intent = in [errmsg] standard_name = ccpp_error_message diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta index 30bc93ccd..6390c4221 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_post.meta @@ -50,6 +50,13 @@ dimensions = () type = logical intent = in +[cscnv] + standard_name = flag_for_Chikira_Sugiyama_deep_convection + long_name = flag for Chikira-Sugiyama convection + units = flag + dimensions = () + type = logical + intent = in [frain] standard_name = dynamics_to_physics_timestep_ratio long_name = ratio of dynamics timestep to physics timestep @@ -155,73 +162,6 @@ type = real kind = kind_phys intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[dtidx] - standard_name = cumulative_change_of_state_variables_outer_index - long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[ntqv] - standard_name = index_of_specific_humidity_in_tracer_concentration_array - long_name = tracer index for water vapor (specific humidity) - units = index - dimensions = () - type = integer - 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 -[save_q] - standard_name = tracer_concentration_save - long_name = tracer concentration before entering a physics scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) - type = real - kind = kind_phys - intent = in [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -301,6 +241,73 @@ kind = kind_phys intent = inout optional = True +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True +[dtidx] + standard_name = cumulative_change_of_state_variables_outer_index + long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[ntqv] + standard_name = index_of_specific_humidity_in_tracer_concentration_array + long_name = tracer index for water vapor (specific humidity) + units = index + dimensions = () + type = integer + 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 +[save_q] + standard_name = tracer_concentration_save + long_name = tracer concentration before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) + type = real + kind = kind_phys + intent = in [cnvw] standard_name = convective_cloud_water_mixing_ratio long_name = moist convective cloud water mixing ratio @@ -342,34 +349,6 @@ dimensions = () type = logical intent = in -[cscnv] - standard_name = flag_for_Chikira_Sugiyama_deep_convection - long_name = flag for Chikira-Sugiyama convection - units = flag - dimensions = () - type = logical - intent = in -[satmedmf] - standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL - long_name = flag for scale-aware TKE moist EDMF PBL scheme - units = flag - dimensions = () - type = logical - intent = in -[trans_trac] - standard_name = flag_for_convective_transport_of_tracers - long_name = flag for convective transport of tracers - units = flag - dimensions = () - type = logical - intent = in -[ntsigma] - standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array - long_name = tracer index of updraft_area_fraction - units = index - dimensions = () - type = integer - intent = in [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -447,16 +426,16 @@ dimensions = () type = integer intent = in -[ntgv] - standard_name = index_of_graupel_volume_in_tracer_concentration_array - long_name = tracer index for graupel particle volume +[nthv] + standard_name = index_of_hail_volume_in_tracer_concentration_array + long_name = tracer index for hail particle volume units = index dimensions = () type = integer intent = in -[nthv] - standard_name = index_of_hail_volume_in_tracer_concentration_array - long_name = tracer index for hail particle volume +[ntgv] + standard_name = index_of_graupel_volume_in_tracer_concentration_array + long_name = tracer index for graupel particle volume units = index dimensions = () type = integer @@ -482,6 +461,20 @@ dimensions = () type = integer intent = in +[ntsigma] + standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array + long_name = tracer index of updraft_area_fraction + units = index + dimensions = () + type = integer + intent = in +[ntrac] + standard_name = number_of_tracers + long_name = number of tracers + units = count + dimensions = () + type = integer + intent = in [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -490,12 +483,19 @@ type = real kind = kind_phys intent = in -[ntrac] - standard_name = number_of_tracers - long_name = number of tracers - units = count +[satmedmf] + standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL + long_name = flag for scale-aware TKE moist EDMF PBL scheme + units = flag dimensions = () - type = integer + type = logical + intent = in +[trans_trac] + standard_name = flag_for_convective_transport_of_tracers + long_name = flag for convective transport of tracers + units = flag + dimensions = () + type = logical intent = in [errmsg] standard_name = ccpp_error_message diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta index b8be36596..1e979b86f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_DCNV_generic_pre.meta @@ -127,54 +127,13 @@ type = real kind = kind_phys intent = inout -[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 - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[cscnv] - standard_name = flag_for_Chikira_Sugiyama_deep_convection - long_name = flag for Chikira-Sugiyama convection - units = flag - dimensions = () - type = logical - intent = in -[satmedmf] - standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL - long_name = flag for scale-aware TKE moist EDMF PBL scheme - units = flag - dimensions = () - type = logical - intent = in -[trans_trac] - standard_name = flag_for_convective_transport_of_tracers - long_name = flag for convective transport of tracers - units = flag - dimensions = () - type = logical - intent = in -[ras] - standard_name = flag_for_relaxed_arakawa_schubert_deep_convection - long_name = flag for ras convection scheme - units = flag - dimensions = () - type = logical - intent = in -[ntsigma] - standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array - long_name = tracer index of updraft_area_fraction - units = index - dimensions = () - type = integer +[clw] + standard_name = convective_transportable_tracers + long_name = array to contain cloud water and other convective trans. tracers + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) + type = real + kind = kind_phys intent = in [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array @@ -253,16 +212,16 @@ dimensions = () type = integer intent = in -[ntgv] - standard_name = index_of_graupel_volume_in_tracer_concentration_array - long_name = tracer index for graupel particle volume +[nthv] + standard_name = index_of_hail_volume_in_tracer_concentration_array + long_name = tracer index for hail particle volume units = index dimensions = () type = integer intent = in -[nthv] - standard_name = index_of_hail_volume_in_tracer_concentration_array - long_name = tracer index for hail particle volume +[ntgv] + standard_name = index_of_graupel_volume_in_tracer_concentration_array + long_name = tracer index for graupel particle volume units = index dimensions = () type = integer @@ -288,13 +247,40 @@ dimensions = () type = integer intent = in -[clw] - standard_name = convective_transportable_tracers - long_name = array to contain cloud water and other convective trans. tracers - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) - type = real - kind = kind_phys +[ntsigma] + standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array + long_name = tracer index of updraft_area_fraction + units = index + dimensions = () + type = integer + intent = in +[cscnv] + standard_name = flag_for_Chikira_Sugiyama_deep_convection + long_name = flag for Chikira-Sugiyama convection + units = flag + dimensions = () + type = logical + intent = in +[satmedmf] + standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL + long_name = flag for scale-aware TKE moist EDMF PBL scheme + units = flag + dimensions = () + type = logical + intent = in +[trans_trac] + standard_name = flag_for_convective_transport_of_tracers + long_name = flag for convective transport of tracers + units = flag + dimensions = () + type = logical + intent = in +[ras] + standard_name = flag_for_relaxed_arakawa_schubert_deep_convection + long_name = flag for ras convection scheme + units = flag + dimensions = () + type = logical intent = in [ntrac] standard_name = number_of_tracers @@ -303,6 +289,20 @@ dimensions = () type = integer intent = in +[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 + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta index a11b8641d..5f288540a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_post.meta @@ -86,6 +86,13 @@ type = real kind = kind_phys intent = inout +[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 + units = flag + dimensions = () + type = logical + intent = in [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -130,13 +137,6 @@ dimensions = () type = integer intent = in -[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 - units = flag - dimensions = () - type = logical - intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta index 8321c7d32..c0ea890f9 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_GWD_generic_pre.meta @@ -142,30 +142,6 @@ dimensions = () type = logical intent = in -[dudt] - standard_name = process_split_cumulative_tendency_of_x_wind - long_name = zonal wind tendency due to model physics - units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[dvdt] - standard_name = process_split_cumulative_tendency_of_y_wind - long_name = meridional wind tendency due to model physics - units = m s-2 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[dtdt] - standard_name = process_split_cumulative_tendency_of_air_temperature - long_name = updated tendency of the temperature - units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -210,6 +186,30 @@ dimensions = () type = integer intent = in +[dudt] + standard_name = process_split_cumulative_tendency_of_x_wind + long_name = zonal wind tendency due to model physics + units = m s-2 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[dvdt] + standard_name = process_split_cumulative_tendency_of_y_wind + long_name = meridional wind tendency due to model physics + units = m s-2 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[dtdt] + standard_name = process_split_cumulative_tendency_of_air_temperature + long_name = updated tendency of the temperature + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 index 129b3203e..eaff2bd5c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.F90 @@ -23,8 +23,8 @@ subroutine GFS_MP_generic_post_run( rain0, ice0, snow0, graupel0, del, rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, srflag, sr, cnvprcp,& totprcp, totice, totsnw, totgrp, cnvprcpb, totprcpb, toticeb, totsnwb, totgrpb, rain_cpl, rainc_cpl, snow_cpl, & pwat, frzr, frzrb, frozr, frozrb, tsnowp, tsnowpb, rhonewsn1, exticeden, & - drain_cpl, dsnow_cpl, lsm, lsm_ruc, lsm_noahmp, raincprv, rainncprv, iceprv, snowprv, & - graupelprv, draincprv, drainncprv, diceprv, dsnowprv, dgraupelprv, dtp, & + drain_cpl, dsnow_cpl, lsm, ilsm_ruc, ilsm_noahmp, raincprv, rainncprv, iceprv, snowprv, & + graupelprv, draincprv, drainncprv, diceprv, dsnowprv, dgraupelprv, dtp, dfi_radar_max_intervals, & dtend, dtidx, index_of_temperature, index_of_process_mp,ldiag3d, qdiag3d,dqdt_qmicro, lssav, num_dfi_radar, & fh_dfi_radar,index_of_process_dfi_radar, ix_dfi_radar, dfi_radar_tten, radar_tten_limits, fhour, prevsq, & iopt_lake, iopt_lake_clm, lkm, use_lake_model, errmsg, errflg) @@ -40,11 +40,12 @@ subroutine GFS_MP_generic_post_run( integer, intent(in) :: index_of_temperature,index_of_process_mp,use_lake_model(:) integer, intent(in) :: imfshalcnv,imfshalcnv_gf,imfdeepcnv,imfdeepcnv_gf,imfdeepcnv_samf integer, dimension (:), intent(in) :: htop - real(kind=kind_phys), intent(in) :: fh_dfi_radar(:), fhour, con_t0c + integer, intent(in) :: dfi_radar_max_intervals + real(kind=kind_phys), intent(in) :: fhour, con_t0c + real(kind=kind_phys), intent(in) :: fh_dfi_radar(:) real(kind=kind_phys), intent(in) :: radar_tten_limits(:) integer, intent(in) :: ix_dfi_radar(:) real(kind=kind_phys), dimension(:,:), intent(inout) :: gt0,refl_10cm - real(kind=kind_phys), intent(in) :: dtf, frain, con_g, rainmin, rhowater real(kind=kind_phys), dimension(:), intent(in) :: rain1, xlat, xlon, tsfc real(kind=kind_phys), dimension(:), intent(inout) :: ice, snow, graupel, rainc @@ -60,7 +61,7 @@ subroutine GFS_MP_generic_post_run( real(kind=kind_phys), dimension(:), intent(inout) :: rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, & srflag, cnvprcp, totprcp, totice, totsnw, totgrp, cnvprcpb, & totprcpb, toticeb, totsnwb, totgrpb, pwat - real(kind=kind_phys), dimension(:), intent(inout), optional :: rain_cpl, rainc_cpl, snow_cpl + real(kind=kind_phys), dimension(:), intent(inout) :: rain_cpl, rainc_cpl, snow_cpl real(kind=kind_phys), dimension(:,:,:), intent(inout), optional :: dtend integer, dimension(:,:), intent(in) :: dtidx @@ -69,7 +70,7 @@ subroutine GFS_MP_generic_post_run( real(kind=kind_phys), dimension(:), intent(inout), optional :: drain_cpl, dsnow_cpl ! Rainfall variables previous time step - integer, intent(in) :: lsm, lsm_ruc, lsm_noahmp + integer, intent(in) :: lsm, ilsm_ruc, ilsm_noahmp real(kind=kind_phys), dimension(:), intent(inout), optional :: raincprv real(kind=kind_phys), dimension(:), intent(inout), optional :: rainncprv real(kind=kind_phys), dimension(:), intent(inout), optional :: iceprv @@ -266,7 +267,7 @@ subroutine GFS_MP_generic_post_run( ice = frain*rain1*sr ! time-step ice end if - if (lsm==lsm_ruc .or. lsm==lsm_noahmp) then + if (lsm==ilsm_ruc .or. lsm==ilsm_noahmp) then raincprv(:) = rainc(:) rainncprv(:) = frain * rain1(:) iceprv(:) = ice(:) @@ -275,7 +276,7 @@ subroutine GFS_MP_generic_post_run( !for NoahMP, calculate precipitation rates from liquid water equivalent thickness for use in next time step !Note (GJF): Precipitation LWE thicknesses are multiplied by the frain factor, and are thus on the dynamics time step, but the conversion as written ! (with dtp in the denominator) assumes the rate is calculated on the physics time step. This only works as expected when dtf=dtp (i.e. when frain=1). - if (lsm == lsm_noahmp) then + if (lsm == ilsm_noahmp) then tem = one / (dtp*con_p001) !GJF: This conversion was taken from GFS_physics_driver.F90, but should denominator also have the frain factor? draincprv(:) = tem * raincprv(:) drainncprv(:) = tem * rainncprv(:) @@ -395,7 +396,7 @@ subroutine GFS_MP_generic_post_run( ! determine convective rain/snow by surface temperature ! determine large-scale rain/snow by rain/snow coming out directly from MP - if (lsm /= lsm_ruc) then + if (lsm /= ilsm_ruc) then do i = 1, im !tprcp(i) = max(0.0, rain(i) )! clu: rain -> tprcp ! DH now lines 245-250 srflag(i) = zero ! clu: default srflag as 'rain' (i.e. 0) @@ -420,7 +421,7 @@ subroutine GFS_MP_generic_post_run( do i=1,im srflag(i) = sr(i) enddo - endif ! lsm==lsm_ruc + endif ! lsm==ilsm_ruc elseif( .not. cal_pre) then if (imp_physics == imp_physics_mg) then ! MG microphysics do i=1,im diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta index c188cc555..d9f31d755 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_MP_generic_post.meta @@ -29,14 +29,6 @@ dimensions = () type = integer intent = in -[rainmin] - standard_name = lwe_thickness_of_minimum_rain_amount - long_name = minimum rain amount - units = m - dimensions = () - type = real - kind = kind_phys - intent = in [nrcm] standard_name = number_of_random_numbers long_name = second dimension of random number stream for RAS @@ -86,6 +78,13 @@ dimensions = () type = integer intent = in +[imp_physics_nssl] + standard_name = identifier_for_nssl_microphysics_scheme + long_name = choice of NSSL 2-moment microphysics scheme + units = flag + dimensions = () + type = integer + intent = in [imp_physics_mg] standard_name = identifier_for_morrison_gettelman_microphysics_scheme long_name = choice of Morrison-Gettelman microphysics scheme @@ -100,13 +99,6 @@ dimensions = () type = integer intent = in -[imp_physics_nssl] - standard_name = identifier_for_nssl_microphysics_scheme - long_name = choice of NSSL 2-moment microphysics scheme - units = flag - dimensions = () - type = integer - intent = in [cal_pre] standard_name = flag_for_dominant_precipitation_type_partition long_name = flag controls precip type algorithm @@ -158,6 +150,14 @@ type = real kind = kind_phys intent = in +[rainmin] + standard_name = lwe_thickness_of_minimum_rain_amount + long_name = minimum rain amount + units = m + dimensions = () + type = real + kind = kind_phys + intent = in [dtf] standard_name = timestep_for_dynamics long_name = dynamics timestep @@ -221,7 +221,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = in + intent = inout [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -254,6 +254,22 @@ type = real kind = kind_phys intent = in +[tsfc] + standard_name = surface_skin_temperature + long_name = surface skin temperature + units = K + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[ice] + standard_name = lwe_thickness_of_ice_amount_on_dynamics_timestep + long_name = ice fall at this time step + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout [phil] standard_name = geopotential long_name = layer geopotential @@ -320,22 +336,6 @@ type = real kind = kind_phys intent = in -[tsfc] - standard_name = surface_skin_temperature - long_name = surface skin temperature - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[ice] - standard_name = lwe_thickness_of_ice_amount_on_dynamics_timestep - long_name = ice fall at this time step - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout [snow] standard_name = lwe_thickness_of_snow_amount_on_dynamics_timestep long_name = snow fall at this time step @@ -352,69 +352,6 @@ type = real kind = kind_phys intent = inout -[frzr] - standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount - long_name = accumulated surface freezing rain - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[frzrb] - standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount_in_bucket - long_name = accumulated surface freezing rain in bucket - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[frozr] - standard_name = cumulative_lwe_thickness_of_surface_graupel_amount - long_name = accumulated surface graupel - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[frozrb] - standard_name = cumulative_lwe_thickness_of_surface_graupel_amount_in_bucket - long_name = accumulated surface graupel in bucket - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[tsnowp] - standard_name = cumulative_lwe_thickness_of_surface_snow_amount - long_name = accumulated surface snow - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[tsnowpb] - standard_name = cumulative_lwe_thickness_of_surface_snow_amount_in_bucket - long_name = accumulated surface snow in bucket - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[rhonewsn1] - standard_name = surface_frozen_precipitation_density - long_name = density of precipitation ice - units = kg m-3 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout -[exticeden] - standard_name = do_external_surface_frozen_precipitation_density - long_name = flag for calculating frozen precip ice density outside of the LSM - units = flag - dimensions = () - type = logical - intent = in [save_t] standard_name = air_temperature_save long_name = air temperature before entering a physics scheme @@ -654,6 +591,69 @@ type = real kind = kind_phys intent = inout +[frzr] + standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount + long_name = accumulated surface freezing rain + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[frzrb] + standard_name = cumulative_lwe_thickness_of_surface_freezing_rain_amount_in_bucket + long_name = accumulated surface freezing rain in bucket + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[frozr] + standard_name = cumulative_lwe_thickness_of_surface_graupel_amount + long_name = accumulated surface graupel + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[frozrb] + standard_name = cumulative_lwe_thickness_of_surface_graupel_amount_in_bucket + long_name = accumulated surface graupel in bucket + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[tsnowp] + standard_name = cumulative_lwe_thickness_of_surface_snow_amount + long_name = accumulated surface snow + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[tsnowpb] + standard_name = cumulative_lwe_thickness_of_surface_snow_amount_in_bucket + long_name = accumulated surface snow in bucket + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[rhonewsn1] + standard_name = surface_frozen_precipitation_density + long_name = density of precipitation ice + units = kg m-3 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[exticeden] + standard_name = do_external_surface_frozen_precipitation_density + long_name = flag for calculating frozen precip ice density outside of the LSM + units = flag + dimensions = () + type = logical + intent = in [drain_cpl] standard_name = tendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_coupling long_name = change in rain_cpl (coupling_type) @@ -679,14 +679,14 @@ dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag @@ -791,60 +791,13 @@ type = real kind = kind_phys intent = in -[num_dfi_radar] - standard_name = number_of_radar_derived_temperature_or_convection_suppression_intervals - long_name = number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression +[dfi_radar_max_intervals] + standard_name = maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals + long_name = maximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression units = count dimensions = () type = integer intent = in -[fh_dfi_radar] - standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals - long_name = forecast lead times bounding radar derived temperature or convection suppression intervals - units = h - dimensions = (maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals_plus_one) - type = real - kind = kind_phys - intent = in -[ix_dfi_radar] - standard_name = indices_with_radar_derived_temperature_or_convection_suppression_data - long_name = indices with radar derived temperature or convection suppression data - units = index - dimensions = (maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals) - type = integer - intent = in -[dfi_radar_tten] - standard_name = radar_derived_microphysics_temperature_tendency - long_name = radar-derived microphysics temperature tendency - units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_radar_derived_temperature_or_convection_suppression_intervals) - type = real - kind = kind_phys - intent = in - optional = True -[fhour] - standard_name = forecast_time - long_name = current forecast time - units = h - dimensions = () - type = real - kind = kind_phys - intent = in -[radar_tten_limits] - standard_name = allowed_bounds_of_radar_prescribed_tendencies - long_name = allowed bounds of prescribed microphysics temperature tendencies - units = K s-1 - dimensions = (2) - type = real - kind = kind_phys - intent = in -[index_of_process_dfi_radar] - standard_name = index_of_radar_derived_microphysics_temperature_forcing_in_cumulative_change_index - long_name = index of radar-derived microphysics temperature forcing in second dimension of array cumulative change index - units = index - dimensions = () - type = integer - intent = in [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -898,15 +851,6 @@ kind = kind_phys intent = inout optional = True -[prevsq] - standard_name = specific_humidity_on_previous_timestep - long_name = specific_humidity_on_previous_timestep - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [lssav] standard_name = flag_for_diagnostics long_name = logical flag for storing diagnostics @@ -914,13 +858,69 @@ dimensions = () type = logical intent = in -[lkm] - standard_name = control_for_lake_model_execution_method - long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst - units = flag +[num_dfi_radar] + standard_name = number_of_radar_derived_temperature_or_convection_suppression_intervals + long_name = number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppression + units = count + dimensions = () + type = integer + intent = in +[fh_dfi_radar] + standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals + long_name = forecast lead times bounding radar derived temperature or convection suppression intervals + units = h + dimensions = (maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals_plus_one) + type = real + kind = kind_phys + intent = in +[index_of_process_dfi_radar] + standard_name = index_of_radar_derived_microphysics_temperature_forcing_in_cumulative_change_index + long_name = index of radar-derived microphysics temperature forcing in second dimension of array cumulative change index + units = index dimensions = () type = integer intent = in +[ix_dfi_radar] + standard_name = indices_with_radar_derived_temperature_or_convection_suppression_data + long_name = indices with radar derived temperature or convection suppression data + units = index + dimensions = (maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals) + type = integer + intent = in +[dfi_radar_tten] + standard_name = radar_derived_microphysics_temperature_tendency + long_name = radar-derived microphysics temperature tendency + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_radar_derived_temperature_or_convection_suppression_intervals) + type = real + kind = kind_phys + intent = in + optional = True +[radar_tten_limits] + standard_name = allowed_bounds_of_radar_prescribed_tendencies + long_name = allowed bounds of prescribed microphysics temperature tendencies + units = K s-1 + dimensions = (2) + type = real + kind = kind_phys + intent = in +[fhour] + standard_name = forecast_time + long_name = current forecast time + units = h + dimensions = () + type = real + kind = kind_phys + intent = in +[prevsq] + standard_name = specific_humidity_on_previous_timestep + long_name = specific_humidity_on_previous_timestep + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True [iopt_lake] standard_name = control_for_lake_model_selection long_name = control for lake model selection @@ -935,6 +935,13 @@ dimensions = () type = integer intent = in +[lkm] + standard_name = control_for_lake_model_execution_method + long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst + units = flag + dimensions = () + type = integer + intent = in [use_lake_model] standard_name = flag_for_using_lake_model long_name = flag indicating lake points using a lake model diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta index 057d061a4..7193e547f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_PBL_generic_post.meta @@ -288,6 +288,13 @@ dimensions = () type = integer intent = in +[nssl_ccn_on] + standard_name = nssl_ccn_on + long_name = CCN activation flag in NSSL micro + units = flag + dimensions = () + type = logical + intent = in [ltaerosol] standard_name = flag_for_aerosol_physics long_name = flag for aerosol physics @@ -302,13 +309,6 @@ dimensions = () type = logical intent = in -[nssl_ccn_on] - standard_name = nssl_ccn_on - long_name = CCN activation flag in NSSL micro - units = flag - dimensions = () - type = logical - intent = in [nssl_hail_on] standard_name = nssl_hail_on long_name = hail activation flag in NSSL micro @@ -439,50 +439,6 @@ type = real kind = kind_phys intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[dtidx] - standard_name = cumulative_change_of_state_variables_outer_index - long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in [dqsfc1] standard_name = instantaneous_surface_upward_latent_heat_flux long_name = surface upward latent heat flux valid for current call @@ -582,6 +538,50 @@ kind = kind_phys intent = inout optional = True +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True +[dtidx] + standard_name = cumulative_change_of_state_variables_outer_index + long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in [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 @@ -822,18 +822,18 @@ dimensions = () type = logical intent = in -[dqsfc_med] - standard_name = surface_upward_latent_heat_flux_over_ocean_from_mediator - long_name = sfc latent heat flux input over ocean for coupling +[dtsfc_med] + standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator + long_name = sfc sensible heat flux input over ocean for coupling units = W m-2 dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = in optional = True -[dtsfc_med] - standard_name = surface_upward_sensible_heat_flux_over_ocean_from_mediator - long_name = sfc sensible heat flux input over ocean for coupling +[dqsfc_med] + standard_name = surface_upward_latent_heat_flux_over_ocean_from_mediator + long_name = sfc latent heat flux input over ocean for coupling units = W m-2 dimensions = (horizontal_loop_extent) type = real diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta index f90fccf01..b97d5ee9c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.meta @@ -122,57 +122,6 @@ type = real kind = kind_phys intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[dtidx] - standard_name = cumulative_change_of_state_variables_outer_index - long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[ntqv] - standard_name = index_of_specific_humidity_in_tracer_concentration_array - long_name = tracer index for water vapor (specific humidity) - units = index - dimensions = () - type = integer - intent = in [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -282,69 +231,64 @@ kind = kind_phys intent = inout optional = True -[flag_for_scnv_generic_tend] - standard_name = flag_for_generic_tendency_due_to_shallow_convection - long_name = true if GFS_SCNV_generic should calculate tendencies - units = flag - dimensions = () - type = logical - intent = in -[imfshalcnv] - standard_name = control_for_shallow_convection_scheme - long_name = flag for mass-flux shallow convection scheme - units = flag - dimensions = () +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True +[dtidx] + standard_name = cumulative_change_of_state_variables_outer_index + long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in -[imfshalcnv_sas] - standard_name = identifier_for_simplified_arakawa_schubert_shallow_convection - long_name = flag for SAS shallow convection scheme - units = flag +[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 + units = index dimensions = () type = integer intent = in -[imfshalcnv_samf] - standard_name = identifier_for_scale_aware_mass_flux_shallow_convection - long_name = flag for SAMF shallow convection scheme - units = flag +[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 + units = index dimensions = () type = integer intent = in -[cscnv] - standard_name = flag_for_Chikira_Sugiyama_deep_convection - long_name = flag for Chikira-Sugiyama convection - units = flag +[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 + units = index dimensions = () - type = logical + type = integer intent = in -[satmedmf] - standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL - long_name = flag for scale-aware TKE moist EDMF PBL scheme - units = flag +[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 + units = index dimensions = () - type = logical + type = integer intent = in -[trans_trac] - standard_name = flag_for_convective_transport_of_tracers - long_name = flag for convective transport of tracers - units = flag +[ntqv] + standard_name = index_of_specific_humidity_in_tracer_concentration_array + long_name = tracer index for water vapor (specific humidity) + units = index dimensions = () - type = logical + type = integer intent = in -[ras] - standard_name = flag_for_relaxed_arakawa_schubert_deep_convection - long_name = flag for ras convection scheme +[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 units = flag dimensions = () type = logical intent = in -[ntsigma] - standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array - long_name = tracer index of updraft_area_fraction - units = index - dimensions = () - type = integer - intent = in [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -408,6 +352,34 @@ dimensions = () type = integer intent = in +[ntsigma] + standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array + long_name = tracer index of updraft_area_fraction + units = index + dimensions = () + type = integer + intent = in +[imfshalcnv] + standard_name = control_for_shallow_convection_scheme + long_name = flag for mass-flux shallow convection scheme + units = flag + dimensions = () + type = integer + intent = in +[imfshalcnv_sas] + standard_name = identifier_for_simplified_arakawa_schubert_shallow_convection + long_name = flag for SAS shallow convection scheme + units = flag + dimensions = () + type = integer + intent = in +[imfshalcnv_samf] + standard_name = identifier_for_scale_aware_mass_flux_shallow_convection + long_name = flag for SAMF shallow convection scheme + units = flag + dimensions = () + type = integer + intent = in [ntrac] standard_name = number_of_tracers long_name = number of tracers @@ -415,6 +387,34 @@ dimensions = () type = integer intent = in +[cscnv] + standard_name = flag_for_Chikira_Sugiyama_deep_convection + long_name = flag for Chikira-Sugiyama convection + units = flag + dimensions = () + type = logical + intent = in +[satmedmf] + standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL + long_name = flag for scale-aware TKE moist EDMF PBL scheme + units = flag + dimensions = () + type = logical + intent = in +[trans_trac] + standard_name = flag_for_convective_transport_of_tracers + long_name = flag for convective transport of tracers + units = flag + dimensions = () + type = logical + intent = in +[ras] + standard_name = flag_for_relaxed_arakawa_schubert_deep_convection + long_name = flag for ras convection scheme + units = flag + dimensions = () + type = logical + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta index fbd9e47d8..0386b4558 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_pre.meta @@ -98,7 +98,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) type = real kind = kind_phys - intent = in + intent = inout [ntqv] standard_name = index_of_specific_humidity_in_tracer_concentration_array long_name = tracer index for water vapor (specific humidity) @@ -134,41 +134,6 @@ dimensions = () type = integer intent = in -[cscnv] - standard_name = flag_for_Chikira_Sugiyama_deep_convection - long_name = flag for Chikira-Sugiyama convection - units = flag - dimensions = () - type = logical - intent = in -[satmedmf] - standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL - long_name = flag for scale-aware TKE moist EDMF PBL scheme - units = flag - dimensions = () - type = logical - intent = in -[trans_trac] - standard_name = flag_for_convective_transport_of_tracers - long_name = flag for convective transport of tracers - units = flag - dimensions = () - type = logical - intent = in -[ras] - standard_name = flag_for_relaxed_arakawa_schubert_deep_convection - long_name = flag for ras convection scheme - units = flag - dimensions = () - type = logical - intent = in -[ntsigma] - standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array - long_name = tracer index of updraft_area_fraction - units = index - dimensions = () - type = integer - intent = in [ntcw] standard_name = index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array long_name = tracer index for cloud condensate (or liquid water) @@ -232,13 +197,42 @@ dimensions = () type = integer intent = in -[clw] - standard_name = convective_transportable_tracers - long_name = array to contain cloud water and other convective trans. tracers - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) - type = real - kind = kind_phys + +[ntsigma] + standard_name = index_of_updraft_area_fraction_in_tracer_concentration_array + long_name = tracer index of updraft_area_fraction + units = index + dimensions = () + type = integer + intent = in + intent = in +[cscnv] + standard_name = flag_for_Chikira_Sugiyama_deep_convection + long_name = flag for Chikira-Sugiyama convection + units = flag + dimensions = () + type = logical + intent = in +[satmedmf] + standard_name = flag_for_scale_aware_TKE_moist_EDMF_PBL + long_name = flag for scale-aware TKE moist EDMF PBL scheme + units = flag + dimensions = () + type = logical + intent = in +[trans_trac] + standard_name = flag_for_convective_transport_of_tracers + long_name = flag for convective transport of tracers + units = flag + dimensions = () + type = logical + intent = in +[ras] + standard_name = flag_for_relaxed_arakawa_schubert_deep_convection + long_name = flag for ras convection scheme + units = flag + dimensions = () + type = logical intent = in [ntrac] standard_name = number_of_tracers @@ -247,6 +241,14 @@ dimensions = () type = integer intent = in +[clw] + standard_name = convective_transportable_tracers + long_name = array to contain cloud water and other convective trans. tracers + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) + type = real + kind = kind_phys + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.meta index 10eb43671..72e5a8698 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.meta @@ -2,6 +2,7 @@ name = GFS_diagtoscreen type = scheme dependencies = ../../hooks/machine.F + dependencies = ../../../../../scm/src/GFS_typedefs.F90,../../../../../scm/src/CCPP_typedefs.F90 ######################################################################## [ccpp-arg-table] diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 index ea9beaf90..2eddead8a 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.F90 @@ -88,7 +88,7 @@ subroutine GFS_phys_time_vary_init ( jindx1_aer, jindx2_aer, ddy_aer, iindx1_aer, iindx2_aer, ddx_aer, aer_nm, & jindx1_ci, jindx2_ci, ddy_ci, iindx1_ci, iindx2_ci, ddx_ci, imap, jmap, & do_ugwp_v1, jindx1_tau, jindx2_tau, ddy_j1tau, ddy_j2tau, & - isot, ivegsrc, nlunit, sncovr, sncovr_ice, lsm, lsm_noahmp, lsm_ruc, min_seaice, & + isot, ivegsrc, nlunit, sncovr, sncovr_ice, lsm, ilsm_noahmp, ilsm_ruc, min_seaice, & fice, landfrac, vtype, weasd, lsoil, zs, dzs, lsnow_lsm_lbound, lsnow_lsm_ubound, & tvxy, tgxy, tahxy, canicexy, canliqxy, eahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy,& qsnowxy, wslakexy, albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, albdvis_ice, & @@ -128,7 +128,7 @@ subroutine GFS_phys_time_vary_init ( integer, intent(in) :: isot, ivegsrc, nlunit real(kind_phys), intent(inout) :: sncovr(:), sncovr_ice(:) - integer, intent(in) :: lsm, lsm_noahmp, lsm_ruc, vtype(:) + integer, intent(in) :: lsm, ilsm_noahmp, ilsm_ruc, vtype(:) real(kind_phys), intent(in) :: min_seaice, fice(:) real(kind_phys), intent(in) :: landfrac(:) real(kind_phys), intent(inout) :: weasd(:) @@ -364,7 +364,7 @@ subroutine GFS_phys_time_vary_init ( endif !--- For RUC LSM: create sncovr_ice from sncovr - if (lsm == lsm_ruc) then + if (lsm == ilsm_ruc) then if (all(sncovr_ice < zero)) then if (me == master ) write(*,'(a)') 'GFS_phys_time_vary_init: fill sncovr_ice with sncovr for RUC LSM' sncovr_ice(:) = sncovr(:) @@ -383,7 +383,7 @@ subroutine GFS_phys_time_vary_init ( !--- For Noah MP or RUC LSMs: initialize four components of albedo for !--- land and ice - not for restart runs lsm_init: if (lsm_cold_start) then - if (lsm == lsm_noahmp .or. lsm == lsm_ruc) then + if (lsm == ilsm_noahmp .or. lsm == ilsm_ruc) then if (me == master ) write(*,'(a)') 'GFS_phys_time_vary_init: initialize albedo for land and ice' do ix=1,im albdvis_lnd(ix) = 0.2_kind_phys @@ -393,7 +393,7 @@ subroutine GFS_phys_time_vary_init ( emiss_lnd(ix) = 0.95_kind_phys enddo endif - if (lsm == lsm_ruc) then + if (lsm == ilsm_ruc) then do ix=1,im albdvis_ice(ix) = 0.6_kind_phys albdnir_ice(ix) = 0.6_kind_phys @@ -403,7 +403,7 @@ subroutine GFS_phys_time_vary_init ( enddo endif - noahmp_init: if (lsm == lsm_noahmp) then + noahmp_init: if (lsm == ilsm_noahmp) then allocate(dzsno (lsnow_lsm_lbound:lsnow_lsm_ubound)) allocate(dzsnso(lsnow_lsm_lbound:lsoil) ) dzsno(:) = missing_value diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta index df957e257..556899e14 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.fv3.meta @@ -397,14 +397,14 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 index 0b5bbbb3e..5f2def96b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90 @@ -65,7 +65,7 @@ subroutine GFS_phys_time_vary_init ( jindx1_aer, jindx2_aer, ddy_aer, iindx1_aer, iindx2_aer, ddx_aer, aer_nm, & jindx1_ci, jindx2_ci, ddy_ci, iindx1_ci, iindx2_ci, ddx_ci, imap, jmap, & do_ugwp_v1, jindx1_tau, jindx2_tau, ddy_j1tau, ddy_j2tau, & - isot, ivegsrc, nlunit, sncovr, sncovr_ice, lsm, lsm_noahmp, lsm_ruc, min_seaice, & + isot, ivegsrc, nlunit, sncovr, sncovr_ice, lsm, ilsm_noahmp, ilsm_ruc, min_seaice, & fice, landfrac, vtype, weasd, lsoil, zs, dzs, lsnow_lsm_lbound, lsnow_lsm_ubound, & tvxy, tgxy, tahxy, canicexy, canliqxy, eahxy, cmxy, chxy, fwetxy, sneqvoxy, alboldxy,& qsnowxy, wslakexy, albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, albdvis_ice, & @@ -104,7 +104,7 @@ subroutine GFS_phys_time_vary_init ( integer, intent(in) :: isot, ivegsrc, nlunit real(kind_phys), intent(inout) :: sncovr(:), sncovr_ice(:) - integer, intent(in) :: lsm, lsm_noahmp, lsm_ruc, vtype(:) + integer, intent(in) :: lsm, ilsm_noahmp, ilsm_ruc, vtype(:) real(kind_phys), intent(in) :: min_seaice, fice(:) real(kind_phys), intent(in) :: landfrac(:) real(kind_phys), intent(inout) :: weasd(:) @@ -254,7 +254,7 @@ subroutine GFS_phys_time_vary_init ( call set_soilveg(me, isot, ivegsrc, nlunit, errmsg, errflg) !> - read in NoahMP table (needed for NoahMP init) - if(lsm == lsm_noahmp) then + if(lsm == ilsm_noahmp) then call read_mp_table_parameters(errmsg, errflg) endif @@ -324,7 +324,7 @@ subroutine GFS_phys_time_vary_init ( endif !--- For RUC LSM: create sncovr_ice from sncovr - if (lsm == lsm_ruc) then + if (lsm == ilsm_ruc) then if (all(sncovr_ice < zero)) then if (me == master ) write(*,'(a)') 'GFS_phys_time_vary_init: fill sncovr_ice with sncovr for RUC LSM' sncovr_ice(:) = sncovr(:) @@ -341,7 +341,7 @@ subroutine GFS_phys_time_vary_init ( !--- For Noah MP or RUC LSMs: initialize four components of albedo for !--- land and ice - not for restart runs lsm_init: if (lsm_cold_start) then - if (lsm == lsm_noahmp .or. lsm == lsm_ruc) then + if (lsm == ilsm_noahmp .or. lsm == ilsm_ruc) then if (me == master ) write(*,'(a)') 'GFS_phys_time_vary_init: initialize albedo for land and ice' do ix=1,im albdvis_lnd(ix) = 0.2_kind_phys @@ -351,7 +351,7 @@ subroutine GFS_phys_time_vary_init ( emiss_lnd(ix) = 0.95_kind_phys enddo endif - if (lsm == lsm_ruc) then + if (lsm == ilsm_ruc) then do ix=1,im albdvis_ice(ix) = 0.6_kind_phys albdnir_ice(ix) = 0.6_kind_phys @@ -361,7 +361,7 @@ subroutine GFS_phys_time_vary_init ( enddo endif - noahmp_init: if (lsm == lsm_noahmp) then + noahmp_init: if (lsm == ilsm_noahmp) then allocate(dzsno (lsnow_lsm_lbound:lsnow_lsm_ubound)) allocate(dzsnso(lsnow_lsm_lbound:lsoil) ) dzsno(:) = missing_value diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta index 0c2aaba70..f7fa78908 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.meta @@ -382,14 +382,14 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag @@ -589,6 +589,90 @@ kind = kind_phys intent = inout optional = True +[albdvis_lnd] + standard_name = surface_albedo_direct_visible_over_land + long_name = direct surface albedo visible band over land + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout +[albdnir_lnd] + standard_name = surface_albedo_direct_NIR_over_land + long_name = direct surface albedo NIR band over land + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout +[albivis_lnd] + standard_name = surface_albedo_diffuse_visible_over_land + long_name = diffuse surface albedo visible band over land + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout +[albinir_lnd] + standard_name = surface_albedo_diffuse_NIR_over_land + long_name = diffuse surface albedo NIR band over land + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout +[albdvis_ice] + standard_name = surface_albedo_direct_visible_over_ice + long_name = direct surface albedo visible band over ice + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[albdnir_ice] + standard_name = surface_albedo_direct_NIR_over_ice + long_name = direct surface albedo NIR band over ice + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[albivis_ice] + standard_name = surface_albedo_diffuse_visible_over_ice + long_name = diffuse surface albedo visible band over ice + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[albinir_ice] + standard_name = surface_albedo_diffuse_NIR_over_ice + long_name = diffuse surface albedo NIR band over ice + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[emiss_lnd] + standard_name = surface_longwave_emissivity_over_land + long_name = surface lw emissivity in fraction over land + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout +[emiss_ice] + standard_name = surface_longwave_emissivity_over_ice + long_name = surface lw emissivity in fraction over ice + units = frac + dimensions = (horizontal_dimension) + type = real + kind = kind_phys + intent = inout [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -724,90 +808,6 @@ kind = kind_phys intent = inout optional = True -[albdvis_lnd] - standard_name = surface_albedo_direct_visible_over_land - long_name = direct surface albedo visible band over land - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout -[albdnir_lnd] - standard_name = surface_albedo_direct_NIR_over_land - long_name = direct surface albedo NIR band over land - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout -[albivis_lnd] - standard_name = surface_albedo_diffuse_visible_over_land - long_name = diffuse surface albedo visible band over land - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout -[albinir_lnd] - standard_name = surface_albedo_diffuse_NIR_over_land - long_name = diffuse surface albedo NIR band over land - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout -[albdvis_ice] - standard_name = surface_albedo_direct_visible_over_ice - long_name = direct surface albedo visible band over ice - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[albdnir_ice] - standard_name = surface_albedo_direct_NIR_over_ice - long_name = direct surface albedo NIR band over ice - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[albivis_ice] - standard_name = surface_albedo_diffuse_visible_over_ice - long_name = diffuse surface albedo visible band over ice - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[albinir_ice] - standard_name = surface_albedo_diffuse_NIR_over_ice - long_name = diffuse surface albedo NIR band over ice - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[emiss_lnd] - standard_name = surface_longwave_emissivity_over_land - long_name = surface lw emissivity in fraction over land - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout -[emiss_ice] - standard_name = surface_longwave_emissivity_over_ice - long_name = surface lw emissivity in fraction over ice - units = frac - dimensions = (horizontal_dimension) - type = real - kind = kind_phys - intent = inout [snowxy] standard_name = number_of_snow_layers long_name = number of snow layers @@ -1189,6 +1189,13 @@ dimensions = () type = logical intent = in +[ozphys] + standard_name = dataset_for_ozone_physics + long_name = dataset for NRL ozone physics + units = mixed + dimensions = () + type = ty_ozphys + intent = in [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -1508,13 +1515,6 @@ type = real kind = kind_phys intent = inout -[ozphys] - standard_name = dataset_for_ozone_physics - long_name = dataset for NRL ozone physics - units = mixed - dimensions = () - type = ty_ozphys - intent = in [nthrds] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available for physics schemes diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta index c42da0166..b9b5677a0 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_physics_post.meta @@ -21,22 +21,6 @@ dimensions = () type = integer intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[dtidx] - standard_name = cumulative_change_of_state_variables_outer_index - long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in [ntoz] standard_name = index_of_ozone_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ozone mixing ratio @@ -65,18 +49,11 @@ dimensions = () type = integer intent = in -[ip_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 - units = index - dimensions = () - type = integer - intent = in -[ip_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 +[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 units = index - dimensions = () + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) type = integer intent = in [is_photochem] @@ -88,11 +65,25 @@ intent = in [ldiag3d] standard_name = flag_for_diagnostics_3D - long_name = flag for 3d diagnostic fields + long_name = flag for calculating 3-D diagnostic fields units = flag dimensions = () type = logical intent = in +[ip_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 + units = index + dimensions = () + type = integer + intent = in +[ip_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 + units = index + dimensions = () + type = integer + intent = in [ip_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 @@ -157,6 +148,15 @@ kind = kind_phys intent = in optional = True +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 index 5e8c5bc9d..012c66046 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90 @@ -47,8 +47,8 @@ end subroutine GFS_radiation_surface_init !! \htmlinclude GFS_radiation_surface_run.html !! subroutine GFS_radiation_surface_run ( & - ialb, im, nf_albd, frac_grid, lslwr, lsswr, lsm, lsm_noahmp, & - lsm_ruc, xlat, xlon, slmsk, lndp_type, n_var_lndp, sfc_alb_pert,& + ialb, im, nf_albd, frac_grid, lslwr, lsswr, lsm, ilsm_noahmp, & + ilsm_ruc, xlat, xlon, slmsk, lndp_type, n_var_lndp, sfc_alb_pert,& lndp_var_list, lndp_prt_list, landfrac, snodl, snodi, sncovr, & sncovr_ice, fice, zorl, hprime, tsfg, tsfa, tisfc, coszen, & cplice, min_seaice, min_lakeice, lakefrac, use_lake_model, & @@ -66,7 +66,7 @@ subroutine GFS_radiation_surface_run ( & integer, intent(in) :: im, nf_albd, ialb logical, intent(in) :: frac_grid, lslwr, lsswr, use_cice_alb, cplice - integer, intent(in) :: lsm, lsm_noahmp, lsm_ruc, lndp_type, n_var_lndp + integer, intent(in) :: lsm, ilsm_noahmp, ilsm_ruc, lndp_type, n_var_lndp real(kind=kind_phys), intent(in) :: min_seaice, min_lakeice, con_ttp integer, dimension(:), intent(in) :: use_lake_model @@ -153,7 +153,7 @@ subroutine GFS_radiation_surface_run ( & if (lslwr) then !> - Call module_radiation_surface::setemis(),to set up surface !! emissivity for LW radiation. - call setemis (lsm, lsm_noahmp, lsm_ruc, frac_grid, cplice, & + call setemis (lsm, ilsm_noahmp, ilsm_ruc, frac_grid, cplice,& use_lake_model, lakefrac, xlon, xlat, slmsk, & ! frac_grid, min_seaice, xlon, xlat, slmsk, & snodl, snodi, sncovr, sncovr_ice, zorl, tsfg, & @@ -176,7 +176,7 @@ subroutine GFS_radiation_surface_run ( & !> - Call module_radiation_surface::setalb(),to set up surface !! albedor for SW radiation. - call setalb (slmsk, lsm, lsm_noahmp, lsm_ruc, use_cice_alb, snodi, sncovr, sncovr_ice, & + call setalb (slmsk, lsm, ilsm_noahmp, ilsm_ruc, use_cice_alb, snodi, sncovr, sncovr_ice,& snoalb, zorl, coszen, tsfg, tsfa, hprime, frac_grid, lakefrac, & alvsf, alnsf, alvwf, alnwf, facsf, facwf, fice, tisfc, & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd, & diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta index 94043898d..a6540ccf4 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.meta @@ -67,13 +67,6 @@ [ccpp-arg-table] name = GFS_radiation_surface_run type = scheme -[im] - standard_name = horizontal_loop_extent - long_name = horizontal loop extent - units = count - dimensions = () - type = integer - intent = in [ialb] standard_name = control_for_surface_albedo long_name = flag for using climatology alb, based on sfc type @@ -81,6 +74,13 @@ dimensions = () type = integer intent = in +[im] + standard_name = horizontal_loop_extent + long_name = horizontal loop extent + units = count + dimensions = () + type = integer + intent = in [nf_albd] standard_name = number_of_components_for_surface_albedo long_name = number of IR/VIS/UV compinents for surface albedo @@ -116,14 +116,14 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag @@ -327,7 +327,7 @@ units = flag dimensions = (horizontal_loop_extent) type = integer - intent = inout + intent = in [alvsf] standard_name = vis_albedo_strong_cosz long_name = mean vis albedo with strong cosz dependency @@ -383,7 +383,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [semis_ice] standard_name = surface_longwave_emissivity_over_ice long_name = surface lw emissivity in fraction over ice @@ -391,7 +391,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [semis_wat] standard_name = surface_longwave_emissivity_over_water long_name = surface lw emissivity in fraction over water diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90 index 76ee18ec2..ba936e2dd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90 @@ -37,26 +37,26 @@ subroutine GFS_rrtmg_post_run (im, km, kmp1, lm, ltp, kt, kb, kd, nspc1, & logical, intent(in) :: lsswr, lslwr, lssav real(kind=kind_phys), intent(in) :: raddt, fhlwr, fhswr - real(kind=kind_phys), dimension(im), intent(in) :: coszen, coszdg + real(kind=kind_phys), dimension(:), intent(in) :: coszen, coszdg - real(kind=kind_phys), dimension(im,kmp1), intent(in) :: prsi - real(kind=kind_phys), dimension(im,km), intent(in) :: tgrs + real(kind=kind_phys), dimension(:,:), intent(in) :: prsi + real(kind=kind_phys), dimension(:,:), intent(in) :: tgrs - real(kind=kind_phys), dimension(im,NSPC1), intent(in) :: aerodp - real(kind=kind_phys), dimension(im,5), intent(in) :: cldsa - integer, dimension(im,3), intent(in) :: mbota, mtopa - real(kind=kind_phys), dimension(im,lm+LTP), intent(in) :: clouds1 - real(kind=kind_phys), dimension(im,lm+LTP), intent(in) :: cldtausw - real(kind=kind_phys), dimension(im,lm+LTP), intent(in) :: cldtaulw - real(kind=kind_phys), dimension(im), intent(inout) :: total_albedo + real(kind=kind_phys), dimension(:,:), intent(in) :: aerodp + real(kind=kind_phys), dimension(:,:), intent(in) :: cldsa + integer, dimension(:,:), intent(in) :: mbota, mtopa + real(kind=kind_phys), dimension(:,:), intent(in) :: clouds1 + real(kind=kind_phys), dimension(:,:), intent(in) :: cldtausw + real(kind=kind_phys), dimension(:,:), intent(in) :: cldtaulw + real(kind=kind_phys), dimension(:), intent(inout) :: total_albedo - type(sfcflw_type), dimension(im), intent(in) :: sfcflw - type(sfcfsw_type), dimension(im), intent(in) :: sfcfsw - type(cmpfsw_type), dimension(im), intent(in) :: scmpsw - type(topflw_type), dimension(im), intent(in) :: topflw - type(topfsw_type), dimension(im), intent(in) :: topfsw + type(sfcflw_type), dimension(:), intent(in) :: sfcflw + type(sfcfsw_type), dimension(:), intent(in) :: sfcfsw + type(cmpfsw_type), dimension(:), intent(in) :: scmpsw + type(topflw_type), dimension(:), intent(in) :: topflw + type(topfsw_type), dimension(:), intent(in) :: topfsw - real(kind=kind_phys), dimension(im,nfxr), intent(inout) :: fluxr + real(kind=kind_phys), dimension(:,:), intent(inout) :: fluxr character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta index 06d6869b3..8e243f8d7 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_pre.meta @@ -49,6 +49,13 @@ dimensions = () type = integer intent = in +[n_var_lndp] + standard_name = number_of_perturbed_land_surface_variables + long_name = number of land surface variables perturbed + units = count + dimensions = () + type = integer + intent = in [lextop] standard_name = do_extra_top_layer_for_radiation long_name = use an extra top layer for radiation @@ -70,13 +77,6 @@ dimensions = () type = integer intent = in -[n_var_lndp] - standard_name = number_of_perturbed_land_surface_variables - long_name = number of land surface variables perturbed - units = count - dimensions = () - type = integer - intent = in [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -189,6 +189,20 @@ dimensions = () type = integer intent = in +[ntccn] + standard_name = index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array + long_name = tracer index for cloud condensation nuclei number concentration + units = index + dimensions = () + type = integer + intent = in +[top_at_1] + standard_name = flag_for_vertical_ordering_in_radiation + long_name = flag for vertical ordering in radiation + units = flag + dimensions = () + type = logical + intent = in [ntrw] standard_name = index_of_rain_mixing_ratio_in_tracer_concentration_array long_name = tracer index for rain water @@ -217,13 +231,6 @@ dimensions = () type = integer intent = in -[ntccn] - standard_name = index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array - long_name = tracer index for cloud condensation nuclei number concentration - units = index - dimensions = () - type = integer - intent = in [ntwa] standard_name = index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array long_name = tracer index for water friendly aerosol @@ -259,41 +266,6 @@ dimensions = () type = integer intent = in -[ozphys] - standard_name = dataset_for_ozone_physics - long_name = dataset for NRL ozone physics - units = mixed - dimensions = () - type = ty_ozphys - intent = in -[iaermdl] - standard_name = control_for_aerosol_radiation_scheme - long_name = control of aerosol scheme in radiation - units = 1 - dimensions = () - type = integer - intent = in -[iaerflg] - standard_name = control_for_aerosol_effects_in_radiation - long_name = control of aerosol effects in radiation - units = 1 - dimensions = () - type = integer - intent = in -[nssl_ccn_on] - standard_name = nssl_ccn_on - long_name = CCN activation flag in NSSL micro - units = flag - dimensions = () - type = logical - intent = in -[nssl_invertccn] - standard_name = nssl_invertccn - long_name = flag to invert CCN in NSSL micro - units = flag - dimensions = () - type = logical - intent = in [ntclamt] standard_name = index_of_cloud_area_fraction_in_atmosphere_layer_in_tracer_concentration_array long_name = tracer index for cloud amount integer @@ -462,6 +434,20 @@ dimensions = () type = integer intent = in +[nssl_ccn_on] + standard_name = nssl_ccn_on + long_name = CCN activation flag in NSSL micro + units = flag + dimensions = () + type = logical + intent = in +[nssl_invertccn] + standard_name = nssl_invertccn + long_name = flag to invert CCN in NSSL micro + units = flag + dimensions = () + type = logical + intent = in [imp_physics_thompson] standard_name = identifier_for_thompson_microphysics_scheme long_name = choice of Thompson microphysics scheme @@ -560,13 +546,6 @@ dimensions = () type = integer intent = in -[dcorr_con] - standard_name = decorrelation_length_used_by_overlap_method - long_name = decorrelation length (default) used by cloud overlap method (iovr) - units = km - dimensions = () - type = real - intent = in [idcor] standard_name = flag_for_decorrelation_length_method long_name = flag for decorrelation length method used in cloud overlap method (iovr) @@ -595,6 +574,13 @@ dimensions = () type = integer intent = in +[dcorr_con] + standard_name = decorrelation_length_used_by_overlap_method + long_name = decorrelation length (default) used by cloud overlap method (iovr) + units = km + dimensions = () + type = real + intent = in [julian] standard_name = forecast_julian_day long_name = julian day @@ -682,6 +668,13 @@ dimensions = () type = logical intent = in +[lcnorm] + standard_name = flag_for_in_cloud_condensate + long_name = flag for cloud condensate normalized by cloud cover + units = flag + dimensions = () + type = logical + intent = in [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 @@ -696,13 +689,6 @@ dimensions = () type = logical intent = in -[lcnorm] - standard_name = flag_for_in_cloud_condensate - long_name = flag for cloud condensate normalized by cloud cover - units = flag - dimensions = () - type = logical - intent = in [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -743,46 +729,6 @@ type = real kind = kind_phys intent = in -[con_pi] - standard_name = pi - long_name = ratio of a circle's circumference to its diameter - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[con_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 -[con_g] - standard_name = gravitational_acceleration - long_name = gravitational acceleration - units = m s-2 - dimensions = () - type = real - kind = kind_phys - intent = in -[con_ttp] - standard_name = triple_point_temperature_of_water - long_name = triple point temperature of water - units = K - dimensions = () - type = real - kind = kind_phys - intent = in -[con_thgni] - standard_name = temperature_ice_nucleation_starts - long_name = temperature the H.G.Nuc. ice starts - units = K - dimensions = () - type = real - kind = kind_phys - intent = in [epsm1] standard_name = ratio_of_dry_air_to_water_vapor_gas_constants_minus_one long_name = (rd/rv) - 1 @@ -815,6 +761,14 @@ type = real kind = kind_phys intent = in +[con_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 [xlat_d] standard_name = latitude_in_degree long_name = latitude in degree north @@ -1003,6 +957,60 @@ dimensions = () type = integer intent = in +[iaermdl] + standard_name = control_for_aerosol_radiation_scheme + long_name = control of aerosol scheme in radiation + units = 1 + dimensions = () + type = integer + intent = in +[iaerflg] + standard_name = control_for_aerosol_effects_in_radiation + long_name = control of aerosol effects in radiation + units = 1 + dimensions = () + type = integer + intent = in +[con_pi] + standard_name = pi + long_name = ratio of a circle's circumference to its diameter + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[con_g] + standard_name = gravitational_acceleration + long_name = gravitational acceleration + units = m s-2 + dimensions = () + type = real + kind = kind_phys + intent = in +[con_ttp] + standard_name = triple_point_temperature_of_water + long_name = triple point temperature of water + units = K + dimensions = () + type = real + kind = kind_phys + intent = in +[con_thgni] + standard_name = temperature_ice_nucleation_starts + long_name = temperature the H.G.Nuc. ice starts + units = K + dimensions = () + type = real + kind = kind_phys + intent = in +[si] + standard_name = sigma_pressure_hybrid_vertical_coordinate + long_name = vertical sigma coordinate for radiation initialization + units = none + dimensions = (vertical_interface_dimension) + type = real + kind = kind_phys + intent = in [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 @@ -1474,28 +1482,6 @@ type = real kind = kind_phys intent = out -[top_at_1] - standard_name = flag_for_vertical_ordering_in_radiation - long_name = flag for vertical ordering in radiation - units = flag - dimensions = () - type = logical - intent = in -[si] - standard_name = sigma_pressure_hybrid_vertical_coordinate - long_name = vertical sigma coordinate for radiation initialization - units = none - dimensions = (vertical_interface_dimension) - type = real - kind = kind_phys - intent = in -[ico2] - standard_name = control_for_co2 - long_name = prescribed global mean value (old opernl) - units = flag - dimensions = () - type = integer - intent = in [rrfs_sd] standard_name = do_smoke_coupling long_name = flag controlling rrfs_sd collection (default off) @@ -1534,6 +1520,20 @@ dimensions = () type = integer intent = in +[ico2] + standard_name = control_for_co2 + long_name = prescribed global mean value (old opernl) + units = flag + dimensions = () + type = integer + intent = in +[ozphys] + standard_name = dataset_for_ozone_physics + long_name = dataset for NRL ozone physics + units = mixed + dimensions = () + type = ty_ozphys + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_setup.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_setup.meta index 9329db016..ad909a8d2 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_setup.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_setup.meta @@ -49,22 +49,6 @@ type = character kind = len=26 intent = in -[con_solr_2008] - standard_name = solar_constant_2008 - long_name = solar constant Tim 2008 - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = in -[con_solr_2002] - standard_name = solar_constant_2002 - long_name= solar constant Liu 2002 - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = in [ico2] standard_name = control_for_co2 long_name = prescribed global mean value (old opernl) @@ -114,27 +98,6 @@ dimensions = () type = integer intent = in -[iovr_exp] - standard_name = flag_for_exponential_cloud_overlap_method - long_name = choice of exponential cloud overlap method - units = flag - dimensions = () - type = integer - intent = in -[iovr_exprand] - standard_name = flag_for_exponential_random_cloud_overlap_method - long_name = choice of exponential-random cloud overlap method - units = flag - dimensions = () - type = integer - intent = in -[iovr_max] - standard_name = flag_for_maximum_cloud_overlap_method - long_name = choice of maximum cloud overlap method - units = flag - dimensions = () - type = integer - intent = in [iovr_rand] standard_name = flag_for_random_cloud_overlap_method long_name = choice of random cloud overlap method @@ -149,6 +112,13 @@ dimensions = () type = integer intent = in +[iovr_max] + standard_name = flag_for_maximum_cloud_overlap_method + long_name = choice of maximum cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -156,24 +126,17 @@ dimensions = () type = integer intent = in -[isubcsw] - standard_name = flag_for_sw_clouds_grid_approximation - long_name = flag for sw clouds sub-grid approximation - units = flag - dimensions = () - type = integer - intent = in -[isubclw] - standard_name = flag_for_lw_clouds_sub_grid_approximation - long_name = flag for lw clouds sub-grid approximation - units = flag +[iovr_exp] + standard_name = flag_for_exponential_cloud_overlap_method + long_name = choice of exponential cloud overlap method + units = flag dimensions = () type = integer intent = in -[iswmode] - standard_name = control_for_sw_scattering_choice - long_name = control of rrtmg shortwave scattering choice - units = 1 +[iovr_exprand] + standard_name = flag_for_exponential_random_cloud_overlap_method + long_name = choice of exponential-random cloud overlap method + units = flag dimensions = () type = integer intent = in @@ -240,6 +203,27 @@ dimensions = () type = integer intent = in +[lalw1bd] + standard_name = do_longwave_aerosol_band_properties + long_name = control of band or multiband longwave aerosol properties + units = 1 + dimensions = () + type = logical + intent = in +[iaermdl] + standard_name = control_for_aerosol_radiation_scheme + long_name = control of aerosol scheme in radiation + units = 1 + dimensions = () + type = integer + intent = out +[iaerflg] + standard_name = control_for_aerosol_effects_in_radiation + long_name = control of aerosol effects in radiation + units = 1 + dimensions = () + type = integer + intent = out [aeros_file] standard_name = aerosol_data_file long_name = aerosol data file @@ -248,43 +232,6 @@ type = character kind = len=26 intent = in -[co2usr_file] - standard_name = co2_user_data_table_file - long_name = co2 user defined data table file - units = none - dimensions = () - type = character - kind = len=26 - intent = in -[co2cyc_file] - standard_name = co2_clim_monthly_cycle_data_table_file - long_name = co2 climotological monthly cycle data table file - units = none - dimensions = () - type = character - kind = len=26 - intent = in -[rad_hr_units] - standard_name = control_for_radiation_heating_rate_units - long_name = control of heating rate units - units = 1 - dimensions = () - type = integer - intent = in -[inc_minor_gas] - standard_name = flag_to_include_minor_gases_in_rrtmg - long_name = flag to include minor trace gases in rrtmg - units = flag - dimensions = () - type = logical - intent = in -[icliq_lw] - standard_name = flag_for_optical_property_for_liquid_clouds_for_longwave_radiation - long_name = lw optical property for liquid clouds - units = flag - dimensions = () - type = integer - intent = in [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -293,6 +240,14 @@ type = real kind = kind_phys intent = in +[con_t0c] + standard_name = temperature_at_zero_celsius + long_name = temperature at 0 degree Celsius + units = K + dimensions = () + type = real + kind = kind_phys + intent = in [con_c] standard_name = speed_of_light_in_vacuum long_name = speed of light in vacuum @@ -301,6 +256,14 @@ type = real kind = kind_phys intent = in +[con_boltz] + standard_name = boltzmann_constant + long_name = Boltzmann constant + units = J K-1 + dimensions = () + type = real + kind = kind_phys + intent = in [con_plnk] standard_name = planck_constant long_name = Planck constant @@ -309,18 +272,26 @@ type = real kind = kind_phys intent = in -[con_boltz] - standard_name = boltzmann_constant - long_name = Boltzmann constant - units = J K-1 +[con_solr_2008] + standard_name = solar_constant_2008 + long_name = solar constant Tim 2008 + units = W m-2 dimensions = () type = real kind = kind_phys intent = in -[con_t0c] - standard_name = temperature_at_zero_celsius - long_name = temperature at 0 degree Celsius - units = K +[con_solr_2002] + standard_name = solar_constant_2002 + long_name= solar constant Liu 2002 + units = W m-2 + dimensions = () + type = real + kind = kind_phys + intent = in +[con_g] + standard_name = gravitational_acceleration + long_name = gravitational acceleration + units = m s-2 dimensions = () type = real kind = kind_phys @@ -333,34 +304,63 @@ type = real kind = kind_phys intent = in -[con_g] - standard_name = gravitational_acceleration - long_name = gravitational acceleration - units = m s-2 - dimensions = () - type = real - kind = kind_phys +[co2usr_file] + standard_name = co2_user_data_table_file + long_name = co2 user defined data table file + units = none + dimensions = () + type = character + kind = len=26 intent = in -[lalw1bd] - standard_name = do_longwave_aerosol_band_properties - long_name = control of band or multiband longwave aerosol properties +[co2cyc_file] + standard_name = co2_clim_monthly_cycle_data_table_file + long_name = co2 climotological monthly cycle data table file + units = none + dimensions = () + type = character + kind = len=26 + intent = in +[rad_hr_units] + standard_name = control_for_radiation_heating_rate_units + long_name = control of heating rate units units = 1 + dimensions = () + type = integer + intent = in +[inc_minor_gas] + standard_name = flag_to_include_minor_gases_in_rrtmg + long_name = flag to include minor trace gases in rrtmg + units = flag dimensions = () type = logical intent = in -[ltp] - standard_name = extra_top_layer - long_name = extra top layer for radiation - units = count +[icliq_lw] + standard_name = flag_for_optical_property_for_liquid_clouds_for_longwave_radiation + long_name = lw optical property for liquid clouds + units = flag dimensions = () type = integer intent = in -[lextop] - standard_name = do_extra_top_layer_for_radiation - long_name = use an extra top layer for radiation +[isubcsw] + standard_name = flag_for_sw_clouds_grid_approximation + long_name = flag for sw clouds sub-grid approximation units = flag dimensions = () - type = logical + type = integer + intent = in +[isubclw] + standard_name = flag_for_lw_clouds_sub_grid_approximation + long_name = flag for lw clouds sub-grid approximation + units = flag + dimensions = () + type = integer + intent = in +[iswmode] + standard_name = control_for_sw_scattering_choice + long_name = control of rrtmg shortwave scattering choice + units = 1 + dimensions = () + type = integer intent = in [ipsd0] standard_name = initial_seed_for_mcica @@ -369,20 +369,20 @@ dimensions = () type = integer intent = inout -[iaermdl] - standard_name = control_for_aerosol_radiation_scheme - long_name = control of aerosol scheme in radiation - units = 1 +[ltp] + standard_name = extra_top_layer + long_name = extra top layer for radiation + units = count dimensions = () type = integer - intent = out -[iaerflg] - standard_name = control_for_aerosol_effects_in_radiation - long_name = control of aerosol effects in radiation - units = 1 + intent = in +[lextop] + standard_name = do_extra_top_layer_for_radiation + long_name = use an extra top layer for radiation + units = flag dimensions = () - type = integer - intent = out + type = logical + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -476,6 +476,46 @@ type = character kind = len=26 intent = in +[slag] + standard_name = equation_of_time + long_name = equation of time (radian) + units = radian + dimensions = () + type = real + kind = kind_phys + intent = out +[sdec] + standard_name = sine_of_solar_declination_angle + long_name = sin of the solar declination angle + units = none + dimensions = () + type = real + kind = kind_phys + intent = out +[cdec] + standard_name = cosine_of_solar_declination_angle + long_name = cos of the solar declination angle + units = none + dimensions = () + type = real + kind = kind_phys + intent = out +[solcon] + standard_name = solar_constant + long_name = solar constant (sun-earth distant adjusted) + units = W m-2 + dimensions = () + type = real + kind = kind_phys + intent = out +[con_pi] + standard_name = pi + long_name = ratio of a circle's circumference to its diameter + units = none + dimensions = () + type = real + kind = kind_phys + intent = in [co2dat_file] standard_name = co2_monthly_obs_data_table_file long_name = co2 monthly observation data table @@ -520,46 +560,6 @@ dimensions = () type = ty_ozphys intent = inout -[con_pi] - standard_name = pi - long_name = ratio of a circle's circumference to its diameter - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[slag] - standard_name = equation_of_time - long_name = equation of time (radian) - units = radian - dimensions = () - type = real - kind = kind_phys - intent = out -[sdec] - standard_name = sine_of_solar_declination_angle - long_name = sin of the solar declination angle - units = none - dimensions = () - type = real - kind = kind_phys - intent = out -[cdec] - standard_name = cosine_of_solar_declination_angle - long_name = cos of the solar declination angle - units = none - dimensions = () - type = real - kind = kind_phys - intent = out -[solcon] - standard_name = solar_constant - long_name = solar constant (sun-earth distant adjusted) - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 index 1022acac9..f47f55ebd 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.F90 @@ -842,7 +842,7 @@ subroutine cmp_reff_Thompson(nLev, nCol, i_cldliq, i_cldice, i_cldsnow, i_cldice real(kind_phys) :: rho, orho real(kind_phys),dimension(nCol,nLev) :: qv_mp, qc_mp, qi_mp, qs_mp, ni_mp, nc_mp, & nwfa, re_cloud, re_ice, re_snow - integer :: ilsmask + integer :: ilsmask ! Prepare cloud mixing-ratios and number concentrations for calc_effectRa do iLay = 1, nLev diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta index 84c0432f0..49856447f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_mp.meta @@ -38,13 +38,6 @@ dimensions = () type = integer intent = in -[icloud] - standard_name = control_for_cloud_area_fraction_option - long_name = cloud effect to the optical depth and cloud fraction in radiation - units = flag - dimensions = () - type = integer - intent = in [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) @@ -108,27 +101,6 @@ dimensions = () type = integer intent = in -[doSWrad] - standard_name = flag_for_calling_shortwave_radiation - long_name = logical flags for sw radiation calls - units = flag - dimensions = () - type = logical - intent = in -[doLWrad] - standard_name = flag_for_calling_longwave_radiation - long_name = logical flags for lw radiation calls - units = flag - dimensions = () - type = logical - intent = in -[effr_in] - standard_name = flag_for_cloud_effective_radii - long_name = flag for cloud effective radii calculations in GFDL microphysics - units = flag - dimensions = () - type = logical - intent = in [kdt] standard_name = index_of_timestep long_name = current forecast iteration @@ -136,44 +108,44 @@ dimensions = () type = integer intent = in -[imp_physics] - standard_name = control_for_microphysics_scheme - long_name = choice of microphysics scheme +[imfdeepcnv] + standard_name = control_for_deep_convection_scheme + long_name = flag for mass-flux deep convection scheme units = flag dimensions = () type = integer intent = in -[imp_physics_thompson] - standard_name = identifier_for_thompson_microphysics_scheme - long_name = choice of Thompson microphysics scheme +[imfdeepcnv_gf] + standard_name = identifier_for_grell_freitas_deep_convection + long_name = flag for Grell-Freitas deep convection scheme units = flag dimensions = () type = integer intent = in -[imp_physics_gfdl] - standard_name = identifier_for_gfdl_microphysics_scheme - long_name = choice of GFDL microphysics scheme +[imfdeepcnv_samf] + standard_name = identifer_for_scale_aware_mass_flux_deep_convection + long_name = flag for SAMF deep convection scheme units = flag dimensions = () type = integer intent = in -[do_mynnedmf] - standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme - long_name = flag to activate MYNN-EDMF +[doSWrad] + standard_name = flag_for_calling_shortwave_radiation + long_name = logical flags for sw radiation calls units = flag dimensions = () type = logical intent = in -[uni_cld] - standard_name = flag_for_shoc_cloud_area_fraction_for_radiation - long_name = flag for uni_cld +[doLWrad] + standard_name = flag_for_calling_longwave_radiation + long_name = logical flags for lw radiation calls units = flag dimensions = () type = logical intent = in -[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 +[effr_in] + standard_name = flag_for_cloud_effective_radii + long_name = flag for cloud effective radii calculations in GFDL microphysics units = flag dimensions = () type = logical @@ -199,23 +171,30 @@ dimensions = () type = logical intent = in -[imfdeepcnv] - standard_name = control_for_deep_convection_scheme - long_name = flag for mass-flux deep convection scheme +[icloud] + standard_name = control_for_cloud_area_fraction_option + long_name = cloud effect to the optical depth and cloud fraction in radiation units = flag dimensions = () type = integer intent = in -[imfdeepcnv_gf] - standard_name = identifier_for_grell_freitas_deep_convection - long_name = flag for Grell-Freitas deep convection scheme +[imp_physics] + standard_name = control_for_microphysics_scheme + long_name = choice of microphysics scheme units = flag dimensions = () type = integer intent = in -[imfdeepcnv_samf] - standard_name = identifer_for_scale_aware_mass_flux_deep_convection - long_name = flag for SAMF deep convection scheme +[imp_physics_thompson] + standard_name = identifier_for_thompson_microphysics_scheme + long_name = choice of Thompson microphysics scheme + units = flag + dimensions = () + type = integer + intent = in +[imp_physics_gfdl] + standard_name = identifier_for_gfdl_microphysics_scheme + long_name = choice of GFDL microphysics scheme units = flag dimensions = () type = integer @@ -227,37 +206,26 @@ dimensions = () type = logical intent = in -[lsmask] - standard_name = area_type - long_name = landmask: sea/land/ice=0/1/2 +[do_mynnedmf] + standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme + long_name = flag to activate MYNN-EDMF units = flag - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[xlat] - standard_name = latitude - long_name = latitude - units = radian - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys + dimensions = () + type = logical intent = in -[xlon] - standard_name = longitude - long_name = longitude - units = radian - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys +[uni_cld] + standard_name = flag_for_shoc_cloud_area_fraction_for_radiation + long_name = flag for uni_cld + units = flag + dimensions = () + type = logical intent = in -[dx] - standard_name = characteristic_grid_lengthscale - long_name = relative dx for the grid cell - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys +[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 + units = flag + dimensions = () + type = logical intent = in [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP @@ -277,15 +245,6 @@ kind = kind_phys intent = in optional = True -[tv_lay] - standard_name = virtual_temperature - long_name = layer virtual temperature - units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -322,6 +281,47 @@ kind = kind_phys intent = in optional = True +[lsmask] + standard_name = area_type + long_name = landmask: sea/land/ice=0/1/2 + units = flag + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[xlon] + standard_name = longitude + long_name = longitude + units = radian + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[xlat] + standard_name = latitude + long_name = latitude + units = radian + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[dx] + standard_name = characteristic_grid_lengthscale + long_name = relative dx for the grid cell + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[tv_lay] + standard_name = virtual_temperature + long_name = layer virtual temperature + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True [effrin_cldliq] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = eff. radius of cloud liquid water particle in micrometer @@ -437,6 +437,15 @@ kind = kind_phys intent = in optional = True +[cld_pbl_frac] + standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer + long_name = subgrid cloud fraction from PBL scheme + units = frac + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -580,19 +589,19 @@ kind = kind_phys intent = inout optional = True -[cld_cnv_iwp] - standard_name = convective_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_cnv_reliq] + standard_name = mean_effective_radius_for_liquid_convective_cloud + long_name = mean effective radius for liquid convective cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[cld_cnv_reliq] - standard_name = mean_effective_radius_for_liquid_convective_cloud - long_name = mean effective radius for liquid convective cloud - units = um +[cld_cnv_iwp] + standard_name = convective_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -607,15 +616,6 @@ kind = kind_phys intent = inout optional = True -[cld_pbl_frac] - standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer - long_name = subgrid cloud fraction from PBL scheme - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True [cld_pbl_lwp] standard_name = MYNN_SGS_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -625,19 +625,19 @@ kind = kind_phys intent = inout optional = True -[cld_pbl_iwp] - standard_name = MYNN_SGS_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_pbl_reliq] + standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud + long_name = mean effective radius for liquid MYNN_SGS cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[cld_pbl_reliq] - standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud - long_name = mean effective radius for liquid MYNN_SGS cloud - units = um +[cld_pbl_iwp] + standard_name = MYNN_SGS_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta index 3455087b5..f2f44ccb1 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_cloud_overlap.meta @@ -123,13 +123,6 @@ dimensions = () type = integer intent = in -[iovr_convcld] - standard_name = flag_for_convective_cloud_overlap_method_for_radiation - long_name = flag for convective cloud overlap method - units = flag - dimensions = () - type = integer - intent = in [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -189,6 +182,13 @@ kind = kind_phys intent = in optional = True +[iovr_convcld] + standard_name = flag_for_convective_cloud_overlap_method_for_radiation + long_name = flag for convective cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [top_at_1] standard_name = flag_for_vertical_ordering_in_radiation long_name = flag for vertical ordering in radiation @@ -234,18 +234,18 @@ kind = kind_phys intent = out optional = True -[precip_overlap_param] - standard_name = precip_overlap_param - long_name = precipitation overlap parameter +[cnv_cloud_overlap_param] + standard_name = convective_cloud_overlap_param + long_name = convective cloud overlap parameter units = km dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = out optional = True -[cnv_cloud_overlap_param] - standard_name = convective_cloud_overlap_param - long_name = convective cloud overlap parameter +[precip_overlap_param] + standard_name = precip_overlap_param + long_name = precipitation overlap parameter units = km dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta index 5d67afcd8..c0d688d1f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_post.meta @@ -23,6 +23,13 @@ dimensions = () type = integer intent = in +[nday] + standard_name = daytime_points_dimension + long_name = daytime points dimension + units = count + dimensions = () + type = integer + intent = in [iSFC] standard_name = vertical_index_for_surface_in_RRTMGP long_name = index for surface layer in RRTMGP @@ -37,13 +44,6 @@ dimensions = () type = integer intent = in -[nday] - standard_name = daytime_points_dimension - long_name = daytime points dimension - units = count - dimensions = () - type = integer - intent = in [idxday] standard_name = daytime_points long_name = daytime points @@ -51,30 +51,30 @@ dimensions = (horizontal_loop_extent) type = integer intent = in -[doSWrad] - standard_name = flag_for_calling_shortwave_radiation - long_name = logical flags for sw radiation calls +[doLWrad] + standard_name = flag_for_calling_longwave_radiation + long_name = logical flags for lw radiation calls units = flag dimensions = () type = logical intent = in -[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 +[doSWrad] + standard_name = flag_for_calling_shortwave_radiation + long_name = logical flags for sw radiation calls units = flag dimensions = () type = logical intent = in -[doLWrad] - standard_name = flag_for_calling_longwave_radiation - long_name = logical flags for lw radiation calls +[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 units = flag dimensions = () type = logical intent = in -[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 +[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 units = flag dimensions = () type = logical @@ -102,22 +102,6 @@ type = real kind = kind_phys intent = in -[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 - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[coszdg] - standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep - long_name = daytime mean cosz over rad call period - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in [sfc_alb_nir_dir] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam @@ -150,6 +134,15 @@ type = real kind = kind_phys intent = in +[p_lev] + standard_name = air_pressure_at_interface_for_RRTMGP + long_name = air pressure level + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = in + optional = True [tsfa] standard_name = surface_air_temperature_for_radiation long_name = lowest model layer air temperature for radiation @@ -158,10 +151,26 @@ type = real kind = kind_phys intent = in -[p_lev] - standard_name = air_pressure_at_interface_for_RRTMGP - long_name = air pressure level - units = Pa +[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 + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[coszdg] + standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep + long_name = daytime mean cosz over rad call period + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[fluxlwDOWN_clrsky] + standard_name = RRTMGP_lw_flux_profile_downward_clrsky + long_name = RRTMGP downward longwave clr-sky flux profile + units = W m-2 dimensions = (horizontal_loop_extent,vertical_interface_dimension) type = real kind = kind_phys @@ -194,9 +203,9 @@ kind = kind_phys intent = in optional = True -[fluxlwDOWN_clrsky] - standard_name = RRTMGP_lw_flux_profile_downward_clrsky - long_name = RRTMGP downward longwave clr-sky flux profile +[fluxswDOWN_clrsky] + standard_name = RRTMGP_sw_flux_profile_downward_clrsky + long_name = RRTMGP downward shortwave clr-sky flux profile units = W m-2 dimensions = (horizontal_loop_extent,vertical_interface_dimension) type = real @@ -230,15 +239,6 @@ kind = kind_phys intent = in optional = True -[fluxswDOWN_clrsky] - standard_name = RRTMGP_sw_flux_profile_downward_clrsky - long_name = RRTMGP downward shortwave clr-sky flux profile - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = in - optional = True [raddt] standard_name = time_step_for_radiation long_name = radiation time step diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta index 7af8e04d5..d08284229 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_pre.meta @@ -74,6 +74,13 @@ dimensions = () type = integer intent = in +[i_o3] + 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 [doSWrad] standard_name = flag_for_calling_shortwave_radiation long_name = logical flags for sw radiation calls @@ -88,13 +95,6 @@ dimensions = () type = logical intent = in -[i_o3] - 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 [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -127,59 +127,35 @@ type = real kind = kind_phys intent = in -[coslat] - standard_name = cosine_of_latitude - long_name = cosine of latitude - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[sinlat] - standard_name = sine_of_latitude - long_name = sine of latitude - units = none - dimensions = (horizontal_loop_extent) +[prsl] + standard_name = air_pressure + long_name = mean layer pressure + units = Pa + dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in -[solhr] - standard_name = forecast_utc_hour - long_name = time in hours after 00z at the current timestep - units = h - dimensions = () +[tgrs] + standard_name = air_temperature + long_name = model layer mean temperature + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in -[prsi] - standard_name = air_pressure_at_interface - long_name = air pressure at model layer interfaces - units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = in [prslk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers units = none dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real - kind = kind_phys - intent = in -[prsl] - standard_name = air_pressure - long_name = mean layer pressure - units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real kind = kind_phys intent = in -[tgrs] - standard_name = air_temperature - long_name = model layer mean temperature - units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) +[prsi] + standard_name = air_pressure_at_interface + long_name = air pressure at model layer interfaces + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) type = real kind = kind_phys intent = in @@ -189,7 +165,7 @@ units = kg kg-1 dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers) type = real - kind = kind_phys + kind = kind_phys intent = in [tsfc] standard_name = surface_skin_temperature @@ -199,6 +175,22 @@ type = real kind = kind_phys intent = in +[coslat] + standard_name = cosine_of_latitude + long_name = cosine of latitude + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[sinlat] + standard_name = sine_of_latitude + long_name = sine of latitude + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -247,21 +239,14 @@ type = real kind = kind_phys intent = in -[con_pi] - standard_name = pi - long_name = ratio of a circle's circumference to its diameter - units = none +[solhr] + standard_name = forecast_utc_hour + long_name = time in hours after 00z at the current timestep + units = h dimensions = () type = real kind = kind_phys intent = in -[ico2] - standard_name = control_for_co2 - long_name = prescribed global mean value (old opernl) - units = flag - dimensions = () - type = integer - intent = in [raddt] standard_name = time_step_for_radiation long_name = radiation time step @@ -279,15 +264,6 @@ kind = kind_phys intent = inout optional = True -[p_lev] - standard_name = air_pressure_at_interface_for_RRTMGP - long_name = air pressure at vertical interface for radiation calculation - units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -297,6 +273,15 @@ kind = kind_phys intent = inout optional = True +[p_lev] + standard_name = air_pressure_at_interface_for_RRTMGP + long_name = air pressure at vertical interface for radiation calculation + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout + optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -306,59 +291,56 @@ kind = kind_phys intent = inout optional = True -[deltaZ] - standard_name = layer_thickness - long_name = layer_thickness - units = m +[vmr_o2] + standard_name = volume_mixing_ratio_for_o2 + long_name = molar mixing ratio of o2 in with respect to dry air + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[deltaZc] - standard_name = layer_thickness_from_layer_center - long_name = layer_thickness - units = m +[vmr_h2o] + standard_name = volume_mixing_ratio_for_h2o + long_name = molar mixing ratio of h2o in with respect to dry air + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[deltaP] - standard_name = layer_thickness_in_Pa - long_name = layer_thickness_in_Pa - units = Pa +[vmr_o3] + standard_name = volume_mixing_ratio_for_o3 + long_name = molar mixing ratio of o3 in with respect to dry air + units = 1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[top_at_1] - standard_name = flag_for_vertical_ordering_in_radiation - long_name = flag for vertical ordering in radiation - units = flag - dimensions = () - type = logical - intent = inout -[iSFC] - standard_name = vertical_index_for_surface_in_RRTMGP - long_name = index for surface layer in RRTMGP - units = flag - dimensions = () - type = integer +[vmr_ch4] + standard_name = volume_mixing_ratio_for_ch4 + long_name = molar mixing ratio of ch4 in with respect to dry air + units = 1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys intent = inout -[iTOA] - standard_name = vertical_index_for_TOA_in_RRTMGP - long_name = index for TOA layer in RRTMGP - units = flag - dimensions = () - type = integer + optional = True +[vmr_n2o] + standard_name = volume_mixing_ratio_for_n2o + long_name = molar mixing ratio of n2o in with respect to dry air + units = 1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys intent = inout -[tsfc_radtime] - standard_name = surface_skin_temperature_on_radiation_timestep - long_name = surface skin temperature on radiation timestep - units = K - dimensions = (horizontal_loop_extent) + optional = True +[vmr_co2] + standard_name = volume_mixing_ratio_for_co2 + long_name = molar mixing ratio of co2 in with respect to dry air + units = 1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout @@ -379,24 +361,6 @@ type = real kind = kind_phys intent = inout -[tv_lay] - standard_name = virtual_temperature - long_name = layer virtual temperature - units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[relhum] - standard_name = relative_humidity - long_name = layer relative humidity - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [qs_lay] standard_name = saturation_vapor_pressure long_name = saturation vapor pressure @@ -415,55 +379,46 @@ kind = kind_phys intent = inout optional = True -[vmr_o2] - standard_name = volume_mixing_ratio_for_o2 - long_name = molar mixing ratio of o2 in with respect to dry air - units = 1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[vmr_h2o] - standard_name = volume_mixing_ratio_for_h2o - long_name = molar mixing ratio of h2o in with respect to dry air - units = 1 +[tv_lay] + standard_name = virtual_temperature + long_name = layer virtual temperature + units = K dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[vmr_o3] - standard_name = volume_mixing_ratio_for_o3 - long_name = molar mixing ratio of o3 in with respect to dry air - units = 1 +[relhum] + standard_name = relative_humidity + long_name = layer relative humidity + units = frac dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[vmr_ch4] - standard_name = volume_mixing_ratio_for_ch4 - long_name = molar mixing ratio of ch4 in with respect to dry air - units = 1 +[deltaZ] + standard_name = layer_thickness + long_name = layer_thickness + units = m dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[vmr_n2o] - standard_name = volume_mixing_ratio_for_n2o - long_name = molar mixing ratio of n2o in with respect to dry air - units = 1 +[deltaZc] + standard_name = layer_thickness_from_layer_center + long_name = layer_thickness + units = m dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout optional = True -[vmr_co2] - standard_name = volume_mixing_ratio_for_co2 - long_name = molar mixing ratio of co2 in with respect to dry air - units = 1 +[deltaP] + standard_name = layer_thickness_in_Pa + long_name = layer_thickness_in_Pa + units = Pa dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -478,14 +433,15 @@ kind = len=* intent = in optional = True -[coszdg] - standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep - long_name = daytime mean cosz over rad call period - units = none +[tsfc_radtime] + standard_name = surface_skin_temperature_on_radiation_timestep + long_name = surface skin temperature on radiation timestep + units = K dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = inout + optional = True [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 @@ -494,6 +450,49 @@ type = real kind = kind_phys intent = inout +[coszdg] + standard_name = cosine_of_solar_zenith_angle_on_radiation_timestep + long_name = daytime mean cosz over rad call period + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout +[top_at_1] + standard_name = flag_for_vertical_ordering_in_radiation + long_name = flag for vertical ordering in radiation + units = flag + dimensions = () + type = logical + intent = inout +[iSFC] + standard_name = vertical_index_for_surface_in_RRTMGP + long_name = index for surface layer in RRTMGP + units = flag + dimensions = () + type = integer + intent = inout +[iTOA] + standard_name = vertical_index_for_TOA_in_RRTMGP + long_name = index for TOA layer in RRTMGP + units = flag + dimensions = () + type = integer + intent = inout +[nday] + standard_name = daytime_points_dimension + long_name = daytime points dimension + units = count + dimensions = () + type = integer + intent = out +[idxday] + standard_name = daytime_points + long_name = daytime points + units = index + dimensions = (horizontal_loop_extent) + type = integer + intent = inout [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -511,20 +510,13 @@ kind = kind_phys intent = inout optional = True -[nday] - standard_name = daytime_points_dimension - long_name = daytime points dimension - units = count +[ico2] + standard_name = control_for_co2 + long_name = prescribed global mean value (old opernl) + units = flag dimensions = () type = integer - intent = inout -[idxday] - standard_name = daytime_points - long_name = daytime points - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = inout + intent = in [ozphys] standard_name = dataset_for_ozone_physics long_name = dataset for NRL ozone physics @@ -532,6 +524,14 @@ dimensions = () type = ty_ozphys intent = in +[con_pi] + standard_name = pi + long_name = ratio of a circle's circumference to its diameter + units = none + dimensions = () + type = real + kind = kind_phys + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.meta index bbd698d66..4ae3ff050 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmgp_setup.meta @@ -103,30 +103,6 @@ dimensions = () type = integer intent = in -[solar_file] - standard_name = solar_constant_file - long_name = external solar constant data table file - units = none - dimensions = () - type = character - kind = len=26 - intent = in -[con_solr_2008] - standard_name = solar_constant_2008 - long_name = solar constant Tim 2008 - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = in -[con_solr_2002] - standard_name = solar_constant_2002 - long_name= solar constant Liu 2002 - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = in [ico2] standard_name = control_for_co2 long_name = prescribed global mean value (old opernl) @@ -205,6 +181,20 @@ type = character kind = len=26 intent = in +[iaermdl] + standard_name = control_for_aerosol_radiation_scheme + long_name = control of aerosol scheme in radiation + units = 1 + dimensions = () + type = integer + intent = out +[iaerflg] + standard_name = control_for_aerosol_effects_in_radiation + long_name = control of aerosol effects in radiation + units = 1 + dimensions = () + type = integer + intent = out [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -213,6 +203,14 @@ type = real kind = kind_phys intent = in +[con_t0c] + standard_name = temperature_at_zero_celsius + long_name = temperature at 0 degree Celsius + units = K + dimensions = () + type = real + kind = kind_phys + intent = in [con_c] standard_name = speed_of_light_in_vacuum long_name = speed of light in vacuum @@ -221,6 +219,14 @@ type = real kind = kind_phys intent = in +[con_boltz] + standard_name = boltzmann_constant + long_name = Boltzmann constant + units = J K-1 + dimensions = () + type = real + kind = kind_phys + intent = in [con_plnk] standard_name = planck_constant long_name = Planck constant @@ -229,18 +235,26 @@ type = real kind = kind_phys intent = in -[con_boltz] - standard_name = boltzmann_constant - long_name = Boltzmann constant - units = J K-1 +[solar_file] + standard_name = solar_constant_file + long_name = external solar constant data table file + units = none + dimensions = () + type = character + kind = len=26 + intent = in +[con_solr_2008] + standard_name = solar_constant_2008 + long_name = solar constant Tim 2008 + units = W m-2 dimensions = () type = real kind = kind_phys intent = in -[con_t0c] - standard_name = temperature_at_zero_celsius - long_name = temperature at 0 degree Celsius - units = K +[con_solr_2002] + standard_name = solar_constant_2002 + long_name= solar constant Liu 2002 + units = W m-2 dimensions = () type = real kind = kind_phys @@ -268,20 +282,6 @@ dimensions = () type = integer intent = inout -[iaermdl] - standard_name = control_for_aerosol_radiation_scheme - long_name = control of aerosol scheme in radiation - units = 1 - dimensions = () - type = integer - intent = out -[iaerflg] - standard_name = control_for_aerosol_effects_in_radiation - long_name = control of aerosol effects in radiation - units = 1 - dimensions = () - type = integer - intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -346,6 +346,13 @@ dimensions = () type = integer intent = in +[iaermdl] + standard_name = control_for_aerosol_radiation_scheme + long_name = control of aerosol scheme in radiation + units = 1 + dimensions = () + type = integer + intent = in [aeros_file] standard_name = aerosol_data_file long_name = aerosol data file @@ -354,6 +361,53 @@ type = character kind = len=26 intent = in +[isol] + standard_name = control_for_solar_constant + long_name = use prescribed solar constant + units = flag + dimensions = () + type = integer + intent = in +[slag] + standard_name = equation_of_time + long_name = equation of time (radian) + units = radian + dimensions = () + type = real + kind = kind_phys + intent = out +[sdec] + standard_name = sine_of_solar_declination_angle + long_name = sin of the solar declination angle + units = none + dimensions = () + type = real + kind = kind_phys + intent = out +[cdec] + standard_name = cosine_of_solar_declination_angle + long_name = cos of the solar declination angle + units = none + dimensions = () + type = real + kind = kind_phys + intent = out +[solcon] + standard_name = solar_constant + long_name = solar constant (sun-earth distant adjusted) + units = W m-2 + dimensions = () + type = real + kind = kind_phys + intent = out +[con_pi] + standard_name = pi + long_name = ratio of a circle's circumference to its diameter + units = none + dimensions = () + type = real + kind = kind_phys + intent = in [co2dat_file] standard_name = co2_monthly_obs_data_table_file long_name = co2 monthly observation data table @@ -398,60 +452,6 @@ dimensions = () type = ty_ozphys intent = inout -[iaermdl] - standard_name = control_for_aerosol_radiation_scheme - long_name = control of aerosol scheme in radiation - units = 1 - dimensions = () - type = integer - intent = in -[isol] - standard_name = control_for_solar_constant - long_name = use prescribed solar constant - units = flag - dimensions = () - type = integer - intent = in -[con_pi] - standard_name = pi - long_name = ratio of a circle's circumference to its diameter - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[slag] - standard_name = equation_of_time - long_name = equation of time (radian) - units = radian - dimensions = () - type = real - kind = kind_phys - intent = out -[sdec] - standard_name = sine_of_solar_declination_angle - long_name = sin of the solar declination angle - units = none - dimensions = () - type = real - kind = kind_phys - intent = out -[cdec] - standard_name = cosine_of_solar_declination_angle - long_name = cos of the solar declination angle - units = none - dimensions = () - type = real - kind = kind_phys - intent = out -[solcon] - standard_name = solar_constant - long_name = solar constant (sun-earth distant adjusted) - units = W m-2 - dimensions = () - type = real - kind = kind_phys - intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta index 904030522..9faea1032 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_stochastics.meta @@ -6,6 +6,22 @@ [ccpp-arg-table] name = GFS_stochastics_init type = scheme +[si] + standard_name = sigma_pressure_hybrid_vertical_coordinate + long_name = vertical sigma coordinate for radiation initialization + units = none + dimensions = (vertical_interface_dimension) + type = real + kind = kind_phys + intent = in +[vfact_ca] + standard_name = cellular_automata_vertical_weight + long_name = vertical weight for ca + units = frac + dimensions = (vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout [km] standard_name = vertical_dimension_for_radiation long_name = number of vertical levels for radiation calculations @@ -27,22 +43,6 @@ dimensions = () type = logical intent = in -[si] - standard_name = sigma_pressure_hybrid_vertical_coordinate - long_name = vertical sigma coordinate for radiation initialization - units = none - dimensions = (vertical_interface_dimension) - type = real - kind = kind_phys - intent = in -[vfact_ca] - standard_name = cellular_automata_vertical_weight - long_name = vertical weight for ca - units = frac - dimensions = (vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 index 923cee897..42cfd5ac9 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.F90 @@ -33,7 +33,7 @@ subroutine GFS_suite_interstitial_2_run (im, levs, lssav, ldiag3d, lsidea, flag_ real(kind=kind_phys), intent(in ), dimension(:), optional :: ulwsfc_cice real(kind=kind_phys), intent(in ), dimension(:) :: cice real(kind=kind_phys), intent(in ), dimension(:,:) :: htrsw, htrlw, tgrs, prsl, qgrs_water_vapor, qgrs_cloud_water, prslk - real(kind=kind_phys), intent(in ), dimension(:,:), optional :: htrlwu + real(kind=kind_phys), intent(inout), dimension(:,:), optional :: htrlwu real(kind=kind_phys), intent(in ), dimension(:,:) :: prsi real(kind=kind_phys), intent(in ), dimension(:,:,:) :: lwhd integer, intent(inout), dimension(:) :: kinver @@ -234,4 +234,5 @@ subroutine GFS_suite_interstitial_2_run (im, levs, lssav, ldiag3d, lsidea, flag_ end subroutine GFS_suite_interstitial_2_run - end module GFS_suite_interstitial_2 \ No newline at end of file + end module GFS_suite_interstitial_2 + diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta index a1f1660ad..ee34bb177 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_2.meta @@ -277,22 +277,6 @@ type = real kind = kind_phys intent = inout -[use_LW_jacobian] - standard_name = flag_to_calc_RRTMGP_LW_jacobian - long_name = logical flag to control RRTMGP LW calculation - units = flag - dimensions = () - type = logical - intent = in -[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 - units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in - optional = True [adjsfculw] standard_name = surface_upwelling_longwave_flux long_name = surface upwelling longwave flux at current time @@ -474,6 +458,22 @@ type = real kind = kind_phys intent = in +[use_LW_jacobian] + standard_name = flag_to_calc_RRTMGP_LW_jacobian + long_name = logical flag to control RRTMGP LW calculation + units = flag + dimensions = () + type = logical + intent = in +[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 + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 index bc99e7fff..f07a8348c 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.F90 @@ -44,7 +44,7 @@ subroutine GFS_suite_interstitial_3_run (otsptflag, & integer, intent(in) :: ntinc, ntlnc logical, intent(in) :: ldiag3d, qdiag3d integer, dimension(:,:), intent(in) :: dtidx - real, dimension(:,:), intent(out) :: save_lnc, save_inc + real(kind=kind_phys), dimension(:,:), intent(out) :: save_lnc, save_inc real(kind=kind_phys), intent(in ) :: rhcbot, rhcmax, rhcpbl, rhctop real(kind=kind_phys), intent(in ), dimension(:) :: work1, work2 diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta index d1e9d4d50..e60e8ebfb 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_3.meta @@ -43,6 +43,13 @@ dimensions = () type = logical intent = in +[imfshalcnv] + standard_name = control_for_shallow_convection_scheme + long_name = flag for mass-flux shallow convection scheme + units = flag + dimensions = () + type = integer + intent = in [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme @@ -50,6 +57,13 @@ dimensions = () type = integer intent = in +[imfshalcnv_samf] + standard_name = identifier_for_scale_aware_mass_flux_shallow_convection + long_name = flag for SAMF shallow convection scheme + units = flag + dimensions = () + type = integer + intent = in [imfdeepcnv_samf] standard_name = identifer_for_scale_aware_mass_flux_deep_convection long_name = flag for SAMF deep convection scheme @@ -64,20 +78,6 @@ dimensions = () type = integer intent = in -[imfshalcnv] - standard_name = control_for_shallow_convection_scheme - long_name = flag for mass-flux shallow convection scheme - units = flag - dimensions = () - type = integer - intent = in -[imfshalcnv_samf] - standard_name = identifier_for_scale_aware_mass_flux_shallow_convection - long_name = flag for SAMF shallow convection scheme - units = flag - dimensions = () - type = integer - intent = in [imfshalcnv_c3] standard_name = identifier_for_c3_shallow_convection long_name = flag for C3 shallow convection scheme @@ -261,7 +261,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = out + intent = inout optional = True [imp_physics] standard_name = control_for_microphysics_scheme @@ -305,6 +305,20 @@ dimensions = () type = integer intent = in +[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 + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in +[ntlnc] + standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array + long_name = tracer index for liquid number concentration + units = index + dimensions = () + type = integer + intent = in [imp_physics_wsm6] standard_name = identifier_for_wsm6_microphysics_scheme long_name = choice of WSM6 microphysics scheme @@ -319,13 +333,6 @@ dimensions = () type = integer intent = in -[imp_physics_nssl] - standard_name = identifier_for_nssl_microphysics_scheme - long_name = choice of NSSL 2-moment microphysics scheme - units = flag - dimensions = () - type = integer - intent = in [prsi] standard_name = air_pressure_at_interface long_name = air pressure at model layer interfaces @@ -334,6 +341,20 @@ type = real kind = kind_phys intent = in +[ntinc] + standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array + long_name = tracer index for ice number concentration + units = index + dimensions = () + type = integer + intent = in +[imp_physics_nssl] + standard_name = identifier_for_nssl_microphysics_scheme + long_name = choice of NSSL 2-moment microphysics scheme + units = flag + dimensions = () + type = integer + intent = in [prsl] standard_name = air_pressure long_name = mean layer pressure @@ -433,6 +454,43 @@ dimensions = () type = integer intent = in +[save_lnc] + standard_name = liquid_cloud_number_concentration_save + long_name = liquid cloud number concentration before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out +[save_inc] + standard_name = ice_cloud_number_concentration_save + long_name = ice cloud number concentration before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out +[ldiag3d] + standard_name = flag_for_diagnostics_3D + long_name = flag for 3d diagnostic fields + units = flag + dimensions = () + type = logical + intent = in +[qdiag3d] + standard_name = flag_for_tracer_diagnostics_3D + long_name = flag for 3d tracer diagnostic fields + units = flag + dimensions = () + type = logical + intent = in +[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 + units = index + dimensions = () + type = integer + intent = in [clw] standard_name = convective_transportable_tracers long_name = array to contain cloud water and other convective trans. tracers @@ -473,64 +531,6 @@ type = real kind = kind_phys intent = inout -[ldiag3d] - standard_name = flag_for_diagnostics_3D - long_name = flag for 3d diagnostic fields - units = flag - dimensions = () - type = logical - intent = in -[qdiag3d] - standard_name = flag_for_tracer_diagnostics_3D - long_name = flag for 3d tracer diagnostic fields - units = flag - dimensions = () - type = logical - intent = in -[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 - units = index - dimensions = () - type = integer - intent = in -[save_lnc] - standard_name = liquid_cloud_number_concentration_save - long_name = liquid cloud number concentration before entering a physics scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout -[save_inc] - standard_name = ice_cloud_number_concentration_save - long_name = ice cloud number concentration before entering a physics scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout -[ntlnc] - standard_name = index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array - long_name = tracer index for liquid number concentration - units = index - dimensions = () - type = integer - intent = in -[ntinc] - standard_name = index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array - long_name = tracer index for ice number concentration - units = index - dimensions = () - type = integer - intent = in -[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 - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta index c6a330ccb..d843a8cb4 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_4.meta @@ -122,13 +122,6 @@ dimensions = () type = integer intent = in -[nn] - standard_name = number_of_tracers_for_convective_transport - long_name = number of tracers for convective transport - units = count - dimensions = () - type = integer - intent = in [ntccn] standard_name = index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array long_name = tracer index for cloud condensation nuclei number concentration @@ -136,6 +129,13 @@ dimensions = () type = integer intent = in +[nn] + standard_name = number_of_tracers_for_convective_transport + long_name = number of tracers for convective transport + units = count + dimensions = () + type = integer + intent = in [imp_physics] standard_name = control_for_microphysics_scheme long_name = choice of microphysics scheme @@ -157,44 +157,44 @@ dimensions = () type = integer intent = in -[imp_physics_zhao_carr] - standard_name = identifier_for_zhao_carr_microphysics_scheme - long_name = choice of Zhao-Carr microphysics scheme +[imp_physics_nssl] + standard_name = identifier_for_nssl_microphysics_scheme + long_name = choice of NSSL 2-moment microphysics scheme units = flag dimensions = () type = integer intent = in -[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 +[nssl_invertccn] + standard_name = nssl_invertccn + long_name = flag to invert CCN in NSSL micro units = flag dimensions = () - type = integer + type = logical intent = in -[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 +[nssl_ccn_on] + standard_name = nssl_ccn_on + long_name = CCN activation flag in NSSL micro units = flag dimensions = () type = logical intent = in -[imp_physics_nssl] - standard_name = identifier_for_nssl_microphysics_scheme - long_name = choice of NSSL 2-moment microphysics scheme +[imp_physics_zhao_carr] + standard_name = identifier_for_zhao_carr_microphysics_scheme + long_name = choice of Zhao-Carr microphysics scheme units = flag dimensions = () type = integer intent = in -[nssl_ccn_on] - standard_name = nssl_ccn_on - long_name = CCN activation flag in NSSL micro +[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 units = flag dimensions = () - type = logical + type = integer intent = in -[nssl_invertccn] - standard_name = nssl_invertccn - long_name = flag to invert CCN in NSSL micro +[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 units = flag dimensions = () type = logical @@ -223,22 +223,6 @@ type = real kind = kind_phys intent = in -[save_lnc] - standard_name = liquid_cloud_number_concentration_save - long_name = liquid cloud number concentration before entering a physics scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[save_inc] - standard_name = ice_cloud_number_concentration_save - long_name = ice cloud number concentration before entering a physics scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in [con_pi] standard_name = pi long_name = ratio of a circle's circumference to its diameter @@ -247,6 +231,29 @@ type = real kind = kind_phys intent = in +[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 + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True +[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 + units = index + dimensions = () + type = integer + intent = in [gq0] standard_name = tracer_concentration_of_new_state long_name = tracer concentration updated by physics @@ -319,36 +326,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout -[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 - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[ntk] - standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer - long_name = index for turbulent kinetic energy in the convectively transported tracer array - units = index - dimensions = () - type = integer - intent = in -[ntke] - standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array - long_name = tracer index for turbulent kinetic energy - units = index - dimensions = () - type = integer intent = in [ldiag3d] standard_name = flag_for_diagnostics_3D @@ -364,9 +341,32 @@ dimensions = () type = logical intent = in -[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 +[save_lnc] + standard_name = liquid_cloud_number_concentration_save + long_name = liquid cloud number concentration before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[save_inc] + standard_name = ice_cloud_number_concentration_save + long_name = ice cloud number concentration before entering a physics scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[ntk] + standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer + long_name = index for turbulent kinetic energy in the convectively transported tracer array + units = index + dimensions = () + type = integer + intent = in +[ntke] + standard_name = index_of_turbulent_kinetic_energy_in_tracer_concentration_array + long_name = tracer index for turbulent kinetic energy units = index dimensions = () type = integer diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_5.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_5.meta index 511137901..ae8bbd76b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_5.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_5.meta @@ -65,7 +65,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport) type = real kind = kind_phys - intent = inout + intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_phys_reset.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_phys_reset.meta index 947a1950f..1c6706e7b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_phys_reset.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_phys_reset.meta @@ -9,14 +9,14 @@ name = GFS_suite_interstitial_phys_reset_run type = scheme [Interstitial] - standard_name = GFS_interstitial_type_instance + standard_name = GFS_interstitial_type long_name = derived type GFS_interstitial_type in FV3 units = DDT dimensions = () type = GFS_interstitial_type intent = inout [Model] - standard_name = GFS_control_type_instance + standard_name = GFS_control_type long_name = Fortran DDT containing FV3-GFS model control parameters units = DDT dimensions = () diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_rad_reset.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_rad_reset.meta index aaaff02f5..c870535c5 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_rad_reset.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_interstitial_rad_reset.meta @@ -8,14 +8,14 @@ name = GFS_suite_interstitial_rad_reset_run type = scheme [Interstitial] - standard_name = GFS_interstitial_type_instance + standard_name = GFS_interstitial_type long_name = derived type GFS_interstitial_type in FV3 units = DDT dimensions = () type = GFS_interstitial_type intent = inout [Model] - standard_name = GFS_control_type_instance + standard_name = GFS_control_type long_name = Fortran DDT containing FV3-GFS model control parameters units = DDT dimensions = () diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta index f2f5d2281..a0765a396 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_suite_stateout_update.meta @@ -37,34 +37,6 @@ type = real kind = kind_phys intent = in -[ozphys] - standard_name = dataset_for_ozone_physics - long_name = dataset for NRL ozone physics - units = mixed - dimensions = () - type = ty_ozphys - intent = in -[qdiag3d] - standard_name = flag_for_tracer_diagnostics_3D - long_name = flag for 3d tracer diagnostic fields - units = flag - dimensions = () - type = logical - intent = in -[oz_phys_2015] - standard_name = flag_for_nrl_2015_ozone_scheme - long_name = flag for new (2015) ozone physics - units = flag - dimensions = () - type = logical - intent = in -[oz_phys_2006] - standard_name = flag_for_nrl_2006_ozone_scheme - long_name = flag for new (2006) ozone physics - units = flag - dimensions = () - type = logical - intent = in [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -168,7 +140,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout + intent = out [ntiw] standard_name = index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array long_name = tracer index for ice water @@ -205,6 +177,27 @@ type = real kind = kind_phys intent = in +[ozphys] + standard_name = dataset_for_ozone_physics + long_name = dataset for NRL ozone physics + units = mixed + dimensions = () + type = ty_ozphys + intent = in +[oz_phys_2015] + standard_name = flag_for_nrl_2015_ozone_scheme + long_name = flag for new (2015) ozone physics + units = flag + dimensions = () + type = logical + intent = in +[oz_phys_2006] + standard_name = flag_for_nrl_2006_ozone_scheme + long_name = flag for new (2006) ozone physics + units = flag + dimensions = () + type = logical + intent = in [con_1ovg] standard_name = one_divided_by_the_gravitational_acceleration long_name = inverse of gravitational acceleration @@ -221,6 +214,14 @@ type = real kind = kind_phys intent = in +[dp] + standard_name = air_pressure_difference_between_midlayers + long_name = difference between mid-layer pressures + units = Pa + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -229,13 +230,12 @@ type = real kind = kind_phys intent = in -[dp] - standard_name = air_pressure_difference_between_midlayers - long_name = difference between mid-layer pressures - units = Pa - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys +[qdiag3d] + standard_name = flag_for_tracer_diagnostics_3D + long_name = flag for 3d tracer diagnostic fields + units = flag + dimensions = () + type = logical intent = in [do3_dt_prd] standard_name = ozone_tendency_due_to_production_and_loss_rate diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta index 7224d7221..1fb4ae648 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_post.meta @@ -30,34 +30,6 @@ dimensions = () type = integer intent = in -[lkm] - standard_name = control_for_lake_model_execution_method - long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst - units = flag - dimensions = () - type = integer - intent = in -[iopt_lake] - standard_name = control_for_lake_model_selection - long_name = control for lake model selection - units = 1 - dimensions = () - type = integer - intent = in -[iopt_lake_clm] - standard_name = clm_lake_model_control_selection_value - long_name = value that indicates clm lake model in the control for lake model selection - units = 1 - dimensions = () - type = integer - intent = in -[use_lake_model] - standard_name = flag_for_using_lake_model - long_name = flag indicating lake points using a lake model - units = flag - dimensions = (horizontal_loop_extent) - type = integer - intent = in [rd] standard_name = gas_constant_of_dry_air long_name = ideal gas constant for dry air @@ -95,13 +67,6 @@ dimensions = () type = logical intent = in -[frac_ice] - standard_name = flag_for_fractional_ice_when_fractional_landmask_is_disabled - long_name = flag for fractional ice when fractional landmask is disabled - units = flag - dimensions = () - type = logical - intent = in [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -232,6 +197,21 @@ type = real kind = kind_phys intent = in +[garea] + standard_name = cell_area + long_name = area of the grid cell + units = m2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[frac_ice] + standard_name = flag_for_fractional_ice_when_fractional_landmask_is_disabled + long_name = flag for fractional ice when fractional landmask is disabled + units = flag + dimensions = () + type = logical + intent = in [cd] standard_name = surface_drag_coefficient_for_momentum_in_air long_name = surface exchange coeff for momentum @@ -912,62 +892,14 @@ type = real kind = kind_phys intent = in -[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 -[grav] - standard_name = gravitational_acceleration - long_name = gravitational acceleration - units = m s-2 - dimensions = () - type = real - kind = kind_phys - intent = in -[prsik1] - standard_name = surface_dimensionless_exner_function - long_name = dimensionless Exner function at the ground surface - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[prslk1] - standard_name = dimensionless_exner_function_at_surface_adjacent_layer - long_name = dimensionless Exner function at the lowest model layer - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[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 -[z1] - 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 -[garea] - standard_name = cell_area - long_name = area of the grid cell - units = m2 +[sigmaf] + standard_name = bounded_vegetation_area_fraction + long_name = areal fractional cover of green vegetation bounded on the bottom + units = frac dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -1015,14 +947,82 @@ type = real kind = kind_phys intent = inout -[sigmaf] - standard_name = bounded_vegetation_area_fraction - long_name = areal fractional cover of green vegetation bounded on the bottom - units = frac - dimensions = (horizontal_loop_extent) +[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 +[lkm] + standard_name = control_for_lake_model_execution_method + long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst + units = flag + dimensions = () + type = integer + intent = in +[iopt_lake] + standard_name = control_for_lake_model_selection + long_name = control for lake model selection + units = 1 + dimensions = () + type = integer + intent = in +[iopt_lake_clm] + standard_name = clm_lake_model_control_selection_value + long_name = value that indicates clm lake model in the control for lake model selection + units = 1 + dimensions = () + type = integer + intent = in +[use_lake_model] + standard_name = flag_for_using_lake_model + long_name = flag indicating lake points using a lake model + units = flag + dimensions = (horizontal_loop_extent) + type = integer + intent = in +[grav] + standard_name = gravitational_acceleration + long_name = gravitational acceleration + units = m s-2 + dimensions = () + type = real + kind = kind_phys + intent = in +[prsik1] + standard_name = surface_dimensionless_exner_function + long_name = dimensionless Exner function at the ground surface + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[prslk1] + standard_name = dimensionless_exner_function_at_surface_adjacent_layer + long_name = dimensionless Exner function at the lowest model layer + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[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 +[z1] + 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 [ztmax_wat] standard_name = bounded_surface_roughness_length_for_heat_over_water long_name = bounded surface roughness length for heat over water diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_pre.meta index 4d1021118..5bee61b5f 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_composites_pre.meta @@ -28,6 +28,20 @@ dimensions = () type = logical intent = in +[iopt_lake] + standard_name = control_for_lake_model_selection + long_name = control for lake model selection + units = 1 + dimensions = () + type = integer + intent = in +[iopt_lake_clm] + standard_name = clm_lake_model_control_selection_value + long_name = value that indicates clm lake model in the control for lake model selection + units = 1 + dimensions = () + type = integer + intent = in [flag_cice] standard_name = flag_for_cice long_name = flag for cice @@ -138,20 +152,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in -[iopt_lake] - standard_name = control_for_lake_model_selection - long_name = control for lake model selection - units = 1 - dimensions = () - type = integer - intent = in -[iopt_lake_clm] - standard_name = clm_lake_model_control_selection_value - long_name = value that indicates clm lake model in the control for lake model selection - units = 1 - dimensions = () - type = integer - intent = in [wet] standard_name = flag_nonzero_wet_surface_fraction long_name = flag indicating presence of some ocean or lake surface area fraction diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 index 8e3e0fdbf..e3956ff8e 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.F90 @@ -46,7 +46,7 @@ end subroutine GFS_surface_generic_post_init !! \htmlinclude GFS_surface_generic_post_run.html !! subroutine GFS_surface_generic_post_run (im, cplflx, cplaqm, cplchm, cplwav, cpllnd, lssav, dry, icy, wet, & - lsm, lsm_noahmp, dtf, ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, & + lsm, ilsm_noahmp, dtf, ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, & adjsfcdlw, adjsfcdsw, adjnirbmd, adjnirdfd, adjvisbmd, adjvisdfd, adjsfculw, adjsfculw_wat, adjnirbmu, adjnirdfu, & adjvisbmu, adjvisdfu, t2m, q2m, u10m, v10m, tsfc, tsfc_wat, pgr, xcosz, evbs, evcw, trans, sbsno, snowc, snohf, pah, pahi, & epi, gfluxi, t1, q1, u1, v1, dlwsfci_cpl, dswsfci_cpl, dlwsfc_cpl, dswsfc_cpl, dnirbmi_cpl, dnirdfi_cpl, dvisbmi_cpl, & @@ -61,7 +61,7 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplaqm, cplchm, cplwav, cpl integer, intent(in) :: im logical, intent(in) :: cplflx, cplaqm, cplchm, cplwav, cpllnd, lssav logical, dimension(:), intent(in) :: dry, icy, wet - integer, intent(in) :: lsm, lsm_noahmp + integer, intent(in) :: lsm, ilsm_noahmp real(kind=kind_phys), intent(in) :: dtf real(kind=kind_phys), dimension(:), intent(in) :: ep1d, gflx, tgrs_1, qgrs_1, ugrs_1, vgrs_1, adjsfcdlw, adjsfcdsw, & @@ -108,7 +108,7 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplaqm, cplchm, cplwav, cpl do i=1,im epi(i) = ep1d(i) gfluxi(i) = gflx(i) - if (lsm == lsm_noahmp) then + if (lsm == ilsm_noahmp) then pahi(i) = pah(i) endif t1(i) = tgrs_1(i) @@ -242,7 +242,7 @@ subroutine GFS_surface_generic_post_run (im, cplflx, cplaqm, cplchm, cplwav, cpl tecan(i) = tecan(i) + ecan(i) * dtf tetran(i) = tetran(i) + etran(i) * dtf tedir(i) = tedir(i) + edir(i) * dtf - if (lsm == lsm_noahmp) then + if (lsm == ilsm_noahmp) then paha(i) = paha(i) + pah(i) * dtf twa(i) = waxy(i) endif diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta index 2c8ae74c0..dee87ef09 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_post.meta @@ -161,7 +161,7 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag @@ -447,7 +447,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout optional = True [epi] standard_name = instantaneous_surface_potential_evaporation @@ -961,6 +961,14 @@ type = real kind = kind_phys intent = in +[zvfun] + standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction + long_name = function of surface roughness length and green vegetation fraction + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in [hflx] standard_name = surface_upward_temperature_flux long_name = kinematic surface upward sensible heat flux @@ -985,14 +993,6 @@ type = real kind = kind_phys intent = out -[zvfun] - standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction - long_name = function of surface roughness length and green vegetation fraction - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in [hffac] standard_name = surface_upward_sensible_heat_flux_reduction_factor long_name = surface upward sensible heat flux reduction factor from canopy heat storage diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta index 30c69732c..1cf4a72ab 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_generic_pre.meta @@ -72,6 +72,13 @@ dimensions = (horizontal_dimension) type = integer intent = inout +[vtype_save] + standard_name = vegetation_type_classification_save + long_name = vegetation type for lsm save + units = index + dimensions = (horizontal_dimension) + type = integer + intent = out [stype_save] standard_name = soil_type_classification_save long_name = soil type for lsm save @@ -86,13 +93,6 @@ dimensions = (horizontal_dimension) type = integer intent = out -[vtype_save] - standard_name = vegetation_type_classification_save - long_name = vegetation type for lsm save - units = index - dimensions = (horizontal_dimension) - type = integer - intent = out [slope_save] standard_name = surface_slope_classification_save long_name = sfc slope type for lsm save @@ -198,34 +198,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout -[vtype_save] - standard_name = vegetation_type_classification_save - long_name = vegetation type for lsm save - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = out -[stype_save] - standard_name = soil_type_classification_save - long_name = soil type for lsm save - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = out -[scolor_save] - standard_name = soil_color_classification_save - long_name = soil color for lsm save - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = out -[slope_save] - standard_name = surface_slope_classification_save - long_name = sfc slope type for lsm save - units = index - dimensions = (horizontal_loop_extent) - type = integer - intent = out [prsik_1] standard_name = surface_dimensionless_exner_function long_name = dimensionless Exner function at lowest model interface @@ -458,6 +430,34 @@ type = real kind = kind_phys intent = out +[vtype_save] + standard_name = vegetation_type_classification_save + long_name = vegetation type for lsm save + units = index + dimensions = (horizontal_loop_extent) + type = integer + intent = out +[stype_save] + standard_name = soil_type_classification_save + long_name = soil type for lsm save + units = index + dimensions = (horizontal_loop_extent) + type = integer + intent = out +[scolor_save] + standard_name = soil_color_classification_save + long_name = soil color for lsm save + units = index + dimensions = (horizontal_loop_extent) + type = integer + intent = out +[slope_save] + standard_name = surface_slope_classification_save + long_name = sfc slope type for lsm save + units = index + dimensions = (horizontal_loop_extent) + type = integer + intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.F90 b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.F90 index 252b1e5a2..101ae9082 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.F90 +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.F90 @@ -13,7 +13,7 @@ module GFS_surface_loop_control_part2 !! #endif !> \section looptwo_general General Algorithm - subroutine GFS_surface_loop_control_part2_run (im, lsm, lsm_noahmp, iter,& + subroutine GFS_surface_loop_control_part2_run (im, lsm, ilsm_noahmp, iter,& wind, flag_guess, flag_iter, dry, wet, icy, nstf_name1, errmsg, errflg) use machine, only: kind_phys @@ -24,7 +24,7 @@ subroutine GFS_surface_loop_control_part2_run (im, lsm, lsm_noahmp, iter,& integer, intent(in) :: im integer, intent(in) :: iter integer, intent(in) :: lsm - integer, intent(in) :: lsm_noahmp + integer, intent(in) :: ilsm_noahmp real(kind=kind_phys), dimension(:), intent(in) :: wind logical, dimension(:), intent(inout) :: flag_guess logical, dimension(:), intent(inout) :: flag_iter @@ -47,7 +47,7 @@ subroutine GFS_surface_loop_control_part2_run (im, lsm, lsm_noahmp, iter,& if (iter == 1 .and. wind(i) < 2.0d0) then !if (dry(i) .or. (wet(i) .and. .not.icy(i) .and. nstf_name1 > 0)) then - if((dry(i) .and. lsm /= lsm_noahmp) .or. (wet(i) .and. nstf_name1 > 0)) then + if((dry(i) .and. lsm /= ilsm_noahmp) .or. (wet(i) .and. nstf_name1 > 0)) then flag_iter(i) = .true. endif endif diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.meta index ba19bf437..0b11b0dc7 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_surface_loop_control_part2.meta @@ -22,7 +22,7 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.meta index 3c91faaeb..e52ff8c52 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/ccpp_suite_simulator.meta @@ -49,6 +49,34 @@ dimensions = (8) type = integer intent = in +[iactive_T] + standard_name = index_for_active_T_in_CCPP_suite_simulator + long_name = index into active process tracer array for temperature in CCPP suite simulator + units = count + dimensions = () + type = integer + intent = in +[iactive_u] + standard_name = index_for_active_u_in_CCPP_suite_simulator + long_name = index into active process tracer array for zonal wind in CCPP suite simulator + units = count + dimensions = () + type = integer + intent = in +[iactive_v] + standard_name = index_for_active_v_in_CCPP_suite_simulator + long_name = index into active process tracer array for meridional wind in CCPP suite simulator + units = count + dimensions = () + type = integer + intent = in +[iactive_q] + standard_name = index_for_active_q_in_CCPP_suite_simulator + long_name = index into active process tracer array for moisture in CCPP suite simulator + units = count + dimensions = () + type = integer + intent = in [proc_start] standard_name = index_for_first_physics_process_in_CCPP_suite_simulator long_name = index for first physics process in CCPP suite simulator @@ -63,6 +91,13 @@ dimensions = () type = integer intent = inout +[physics_process] + standard_name = physics_process_type_for_CCPP_suite_simulator + long_name = physics process type for CCPP suite simulator + units = mixed + dimensions = (number_of_physics_process_in_CCPP_suite_simulator) + type = base_physics_process + intent = inout [in_pre_active] standard_name = flag_to_indicate_location_in_physics_process_loop_before_active_scheme long_name = flag to indicate location in physics process loop before active scheme @@ -117,34 +152,6 @@ type = real kind = kind_phys intent = in -[iactive_T] - standard_name = index_for_active_T_in_CCPP_suite_simulator - long_name = index into active process tracer array for temperature in CCPP suite simulator - units = count - dimensions = () - type = integer - intent = in -[iactive_u] - standard_name = index_for_active_u_in_CCPP_suite_simulator - long_name = index into active process tracer array for zonal wind in CCPP suite simulator - units = count - dimensions = () - type = integer - intent = in -[iactive_v] - standard_name = index_for_active_v_in_CCPP_suite_simulator - long_name = index into active process tracer array for meridional wind in CCPP suite simulator - units = count - dimensions = () - type = integer - intent = in -[iactive_q] - standard_name = index_for_active_q_in_CCPP_suite_simulator - long_name = index into active process tracer array for moisture in CCPP suite simulator - units = count - dimensions = () - type = integer - intent = in [gt0] standard_name = air_temperature_of_new_state long_name = temperature updated by physics @@ -177,13 +184,6 @@ type = real kind = kind_phys intent = inout -[physics_process] - standard_name = physics_process_type_for_CCPP_suite_simulator - long_name = physics process type for CCPP suite simulator - units = mixed - dimensions = (number_of_physics_process_in_CCPP_suite_simulator) - type = base_physics_process - intent = inout [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta index 7108e2f97..721358a04 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/maximum_hourly_diagnostics.meta @@ -229,7 +229,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = in [pratemax] standard_name = maximum_precipitation_rate_over_maximum_hourly_time_interval long_name = maximum precipitation rate over maximum hourly time interval @@ -238,6 +238,40 @@ type = real kind = kind_phys intent = inout +[lightning_threat] + standard_name = do_lightning_threat_index_calculations + long_name = enables the lightning threat index calculations + units = flag + dimensions = () + type = logical + intent = in +[ltg1_max] + standard_name = lightning_threat_index_1 + long_name = lightning threat index 1 + units = flashes min-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout + optional = True +[ltg2_max] + standard_name = lightning_threat_index_2 + long_name = lightning threat index 2 + units = flashes min-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout + optional = True +[ltg3_max] + standard_name = lightning_threat_index_3 + long_name = lightning threat index 3 + units = flashes min-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout + optional = True [wgrs] standard_name = unsmoothed_nonhydrostatic_upward_air_velocity long_name = unsmoothed non-hydrostatic upward air velocity @@ -247,6 +281,14 @@ kind = kind_phys intent = in optional = True +[prsi] + standard_name = air_pressure_at_interface + long_name = air pressure at model layer interfaces + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = in [qgraupel] standard_name = graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) @@ -271,14 +313,6 @@ type = real kind = kind_phys intent = in -[con_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 [tgrs] standard_name = air_temperature long_name = model layer mean temperature @@ -287,45 +321,11 @@ type = real kind = kind_phys intent = in -[lightning_threat] - standard_name = do_lightning_threat_index_calculations - long_name = enables the lightning threat index calculations - units = flag +[con_rd] + standard_name = gas_constant_of_dry_air + long_name = ideal gas constant for dry air + units = J kg-1 K-1 dimensions = () - type = logical - intent = in -[ltg1_max] - standard_name = lightning_threat_index_1 - long_name = lightning threat index 1 - units = flashes min-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = True -[ltg2_max] - standard_name = lightning_threat_index_2 - long_name = lightning threat index 2 - units = flashes min-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = True -[ltg3_max] - standard_name = lightning_threat_index_3 - long_name = lightning threat index 3 - units = flashes min-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = True -[prsi] - standard_name = air_pressure_at_interface - long_name = air pressure at model layer interfaces - units = Pa - dimensions = (horizontal_loop_extent,vertical_interface_dimension) type = real kind = kind_phys intent = in diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.meta index 55b9e07b1..23503879b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.meta @@ -16,9 +16,3 @@ [ccpp-arg-table] name = module_ccpp_suite_simulator type = module -[base_physics_process] - standard_name = base_physics_process - long_name = definition of type base_physics_process - units = DDT - dimensions = () - type = base_physics_process diff --git a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta index b9a40c6c0..96559e62b 100644 --- a/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta +++ b/physics/Interstitials/UFS_SCM_NEPTUNE/sgscloud_radpre.meta @@ -25,13 +25,6 @@ type = real kind = kind_phys intent = in -[levs] - standard_name = vertical_layer_dimension - long_name = vertical layer dimension - units = count - dimensions = () - type = integer - intent = in [fhswr] standard_name = period_of_shortwave_radiation_calls long_name = frequency for shortwave radiation @@ -40,6 +33,13 @@ type = real kind = kind_phys intent = in +[levs] + standard_name = vertical_layer_dimension + long_name = vertical layer dimension + units = count + dimensions = () + type = integer + intent = in [flag_init] standard_name = flag_for_first_timestep long_name = flag signaling first time step for time integration loop @@ -157,14 +157,6 @@ type = real kind = kind_phys intent = inout -[qs] - standard_name = snow_mixing_ratio - long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout [qv] standard_name = specific_humidity long_name = water vapor specific humidity @@ -205,23 +197,22 @@ type = real kind = kind_phys intent = inout -[qg] - standard_name = graupel_mixing_ratio - long_name = graupel mixing ratio wrt dry+vapor (no condensates) +[qs] + standard_name = snow_mixing_ratio + long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) units = kg kg-1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = inout -[ud_mf] - standard_name = instantaneous_atmosphere_updraft_convective_mass_flux - long_name = (updraft mass flux) * delt - units = kg m-2 +[qg] + standard_name = graupel_mixing_ratio + long_name = graupel mixing ratio wrt dry+vapor (no condensates) + units = kg kg-1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = in - optional = True + intent = inout [qci_conv] standard_name = convective_cloud_condesate_after_rainout long_name = convective cloud condesate after rainout @@ -247,6 +238,15 @@ type = real kind = kind_phys intent = inout +[ud_mf] + standard_name = instantaneous_atmosphere_updraft_convective_mass_flux + long_name = (updraft mass flux) * delt + units = kg m-2 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True [imfdeepcnv] standard_name = control_for_deep_convection_scheme long_name = flag for mass-flux deep convection scheme diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index 6068d4dd9..96eeccdac 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -316,14 +316,6 @@ dimensions = () type = integer intent = in -[rainmin] - standard_name = lwe_thickness_of_minimum_rain_amount - long_name = minimum rain amount - units = m - dimensions = () - type = real - kind = kind_phys - intent = in [flipv] standard_name = flag_flip long_name = vertical flip logical @@ -707,6 +699,14 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout +[rainmin] + standard_name = lwe_thickness_of_minimum_rain_amount + long_name = minimum rain amount + units = m + dimensions = () + type = real + kind = kind_phys + intent = in [cldreffl] standard_name = effective_radius_of_stratiform_cloud_liquid_water_particle long_name = effective radius of cloud liquid water particle in micrometer diff --git a/physics/MP/NSSL/mp_nssl.meta b/physics/MP/NSSL/mp_nssl.meta index 0f672eedb..a4730faad 100644 --- a/physics/MP/NSSL/mp_nssl.meta +++ b/physics/MP/NSSL/mp_nssl.meta @@ -20,6 +20,13 @@ dimensions = () type = integer intent = in +[errflg] + standard_name = ccpp_error_code + long_name = error code for error handling in CCPP + units = 1 + dimensions = () + type = integer + intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -28,13 +35,6 @@ type = character kind = len=* intent = out -[errflg] - standard_name = ccpp_error_code - long_name = error code for error handling in CCPP - units = 1 - dimensions = () - type = integer - intent = out [threads] standard_name = number_of_openmp_threads long_name = number of OpenMP threads available to scheme @@ -363,6 +363,24 @@ type = real kind = kind_phys intent = inout +[cccn] + standard_name = cloud_condensation_nuclei_number_concentration_of_new_state + long_name = number concentration of cloud condensation nuclei updated by physics + units = kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[cccna] + standard_name = activated_cloud_condensation_nuclei_number_concentration_of_new_state + long_name = number concentration of activated cloud condensation nuclei updated by physics + units = kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True [qc] standard_name = cloud_liquid_water_mixing_ratio_of_new_state long_name = cloud water mixing ratio wrt dry+vapor (no condensates) @@ -412,24 +430,6 @@ kind = kind_phys intent = inout optional = True -[cccn] - standard_name = cloud_condensation_nuclei_number_concentration_of_new_state - long_name = number concentration of cloud condensation nuclei updated by physics - units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[cccna] - standard_name = activated_cloud_condensation_nuclei_number_concentration_of_new_state - long_name = number concentration of activated cloud condensation nuclei updated by physics - units = kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [ccw] standard_name = mass_number_concentration_of_cloud_liquid_water_particles_in_air_of_new_state long_name = cloud droplet number concentration @@ -580,7 +580,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = out [rain] standard_name = lwe_thickness_of_explicit_rain_amount long_name = explicit rain fall on physics timestep @@ -588,7 +588,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = out optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount @@ -597,7 +597,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = out optional = True [ice] standard_name = lwe_thickness_of_ice_amount @@ -606,7 +606,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = out optional = True [snow] standard_name = lwe_thickness_of_snow_amount @@ -615,7 +615,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = out optional = True [sr] standard_name = ratio_of_snowfall_to_rainfall @@ -632,7 +632,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = out + intent = inout [do_radar_ref] standard_name = flag_for_radar_reflectivity long_name = flag for radar reflectivity @@ -704,16 +704,16 @@ dimensions = () type = integer intent = in -[nreffr] - standard_name = index_of_rain_effective_radius_in_xyz_dimensioned_restart_array - long_name = the index of rain effective radius in phy_f3d +[nseffr] + standard_name = index_of_snow_effective_radius_in_xyz_dimensioned_restart_array + long_name = the index of snow effective radius in phy_f3d units = index dimensions = () type = integer intent = in -[nseffr] - standard_name = index_of_snow_effective_radius_in_xyz_dimensioned_restart_array - long_name = the index of snow effective radius in phy_f3d +[nreffr] + standard_name = index_of_rain_effective_radius_in_xyz_dimensioned_restart_array + long_name = the index of rain effective radius in phy_f3d units = index dimensions = () type = integer diff --git a/physics/MP/Thompson/mp_thompson.meta b/physics/MP/Thompson/mp_thompson.meta index 7d750ee93..e43874fbd 100644 --- a/physics/MP/Thompson/mp_thompson.meta +++ b/physics/MP/Thompson/mp_thompson.meta @@ -626,14 +626,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = out -[max_hail_diam_sfc] - standard_name = max_hail_diameter_sfc - long_name = instantaneous maximum hail diameter at lowest model level - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys intent = inout [fullradar_diag] standard_name = do_full_radar_reflectivity @@ -642,6 +634,14 @@ dimensions = () type = logical intent = in +[max_hail_diam_sfc] + standard_name = max_hail_diameter_sfc + long_name = instantaneous maximum hail diameter at lowest model level + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout [do_radar_ref] standard_name = flag_for_radar_reflectivity long_name = flag for radar reflectivity @@ -739,15 +739,6 @@ kind = kind_phys intent = in optional = True -[spp_stddev_cutoff] - standard_name = magnitude_of_spp_standard_deviation_cutoff - long_name = magnitude of spp standard deviation cutoff - units = 1 - dimensions = (number_of_perturbed_spp_schemes) - type = real - kind = kind_phys - intent = in - optional = True [spp_var_list] standard_name = perturbed_spp_schemes long_name = perturbed spp schemes @@ -757,6 +748,15 @@ kind = len=10 intent = in optional = True +[spp_stddev_cutoff] + standard_name = magnitude_of_spp_standard_deviation_cutoff + long_name = magnitude of spp standard deviation cutoff + units = 1 + dimensions = (number_of_perturbed_spp_schemes) + type = real + kind = kind_phys + intent = in + optional = True [cplchm] standard_name = flag_for_chemistry_coupling long_name = flag controlling cplchm collection (default off) diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.f b/physics/MP/Zhao_Carr/zhaocarr_gscond.f index 2f70aa2f0..1ba72ae46 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.f +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.f @@ -104,7 +104,7 @@ subroutine zhaocarr_gscond_run (im,km,dt,dtf,prsl,ps,q,clw1 & real(kind=kind_phys), intent(in) :: clw1(:,:), clw2(:,:) real(kind=kind_phys), intent(out) :: cwm(:,:) real(kind=kind_phys), intent(inout), optional :: & - &, tp(:,:), qp(:,:), psp(:) & + & tp(:,:), qp(:,:), psp(:) & &, tp1(:,:), qp1(:,:), psp1(:) real(kind=kind_phys), intent(in) :: u(:,:) logical, intent(in) :: lprnt diff --git a/physics/MP/Zhao_Carr/zhaocarr_precpd.f b/physics/MP/Zhao_Carr/zhaocarr_precpd.f index 922fedfcc..251f4506d 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_precpd.f +++ b/physics/MP/Zhao_Carr/zhaocarr_precpd.f @@ -11,6 +11,9 @@ module zhaocarr_precpd logical :: is_initialized = .False. contains +!! \section arg_table_zhaocarr_precpd_init Argument Table +!! \htmlinclude zhaocarr_precpd_init.html +!! subroutine zhaocarr_precpd_init (imp_physics, & & imp_physics_zhao_carr, & & imp_physics_zhao_carr_pdf, & diff --git a/physics/PBL/MYJ/myjpbl_wrapper.F90 b/physics/PBL/MYJ/myjpbl_wrapper.F90 index cfa4fff09..7b58cfb71 100644 --- a/physics/PBL/MYJ/myjpbl_wrapper.F90 +++ b/physics/PBL/MYJ/myjpbl_wrapper.F90 @@ -8,6 +8,9 @@ MODULE myjpbl_wrapper contains +!! \section arg_table_myjpbl_wrapper_init Argument Table +!! \htmlinclude myjpbl_wrapper_init.html +!! subroutine myjpbl_wrapper_init (do_myjpbl,errmsg,errflg) logical, intent(in) :: do_myjpbl diff --git a/physics/PBL/MYJ/myjpbl_wrapper.meta b/physics/PBL/MYJ/myjpbl_wrapper.meta index 9b76ac453..8c7de4d35 100644 --- a/physics/PBL/MYJ/myjpbl_wrapper.meta +++ b/physics/PBL/MYJ/myjpbl_wrapper.meta @@ -599,6 +599,20 @@ dimensions = () type = logical intent = in +[gen_tend] + standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer + long_name = true if GFS_PBL_generic should calculate tendencies + units = flag + dimensions = () + type = logical + intent = in +[ldiag3d] + standard_name = flag_for_diagnostics_3D + long_name = flag for 3d diagnostic fields + units = flag + dimensions = () + type = logical + intent = in [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables @@ -650,20 +664,6 @@ dimensions = () type = integer intent = in -[gen_tend] - standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer - long_name = true if GFS_PBL_generic should calculate tendencies - units = flag - dimensions = () - type = logical - intent = in -[ldiag3d] - standard_name = flag_for_diagnostics_3D - long_name = flag for 3d diagnostic fields - units = flag - dimensions = () - type = logical - intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/PBL/SATMEDMF/satmedmfvdif.meta b/physics/PBL/SATMEDMF/satmedmfvdif.meta index 2f0e0514d..194e2889c 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdif.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdif.meta @@ -496,22 +496,6 @@ type = real kind = kind_phys intent = in -[dtend] - standard_name = cumulative_change_of_state_variables - long_name = diagnostic tendencies for state variables - units = mixed - dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) - type = real - kind = kind_phys - intent = inout - optional = True -[dtidx] - standard_name = cumulative_change_of_state_variables_outer_index - long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index - units = index - dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) - type = integer - intent = in [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 @@ -554,6 +538,22 @@ dimensions = () type = integer intent = in +[dtend] + standard_name = cumulative_change_of_state_variables + long_name = diagnostic tendencies for state variables + units = mixed + dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) + type = real + kind = kind_phys + intent = inout + optional = True +[dtidx] + standard_name = cumulative_change_of_state_variables_outer_index + long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index + units = index + dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes) + type = integer + intent = in [gen_tend] standard_name = flag_for_generic_tendency_due_to_planetary_boundary_layer long_name = true if GFS_PBL_generic should calculate tendencies diff --git a/physics/PBL/SATMEDMF/satmedmfvdifq.meta b/physics/PBL/SATMEDMF/satmedmfvdifq.meta index cdbfa67b7..66277c1d1 100644 --- a/physics/PBL/SATMEDMF/satmedmfvdifq.meta +++ b/physics/PBL/SATMEDMF/satmedmfvdifq.meta @@ -217,6 +217,22 @@ type = real kind = kind_phys intent = in +[t1] + standard_name = air_temperature + long_name = layer mean air temperature + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[q1] + standard_name = vertically_diffused_tracer_concentration + long_name = tracer concentration diffused by PBL scheme + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) + type = real + kind = kind_phys + intent = in [usfco] standard_name = x_ocean_current long_name = zonal current at ocean surface @@ -240,22 +256,6 @@ dimensions = () type = integer intent = in -[t1] - standard_name = air_temperature - long_name = layer mean air temperature - units = K - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - intent = in -[q1] - standard_name = vertically_diffused_tracer_concentration - long_name = tracer concentration diffused by PBL scheme - units = kg kg-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers) - type = real - kind = kind_phys - intent = in [swh] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_timestep long_name = total sky shortwave heating rate diff --git a/physics/PBL/SHOC/moninshoc.f b/physics/PBL/SHOC/moninshoc.f index 994b78bf6..4cc0b43e6 100644 --- a/physics/PBL/SHOC/moninshoc.f +++ b/physics/PBL/SHOC/moninshoc.f @@ -9,6 +9,9 @@ module moninshoc contains +!> \section arg_table_moninshoc_init Argument Table +!! \htmlinclude moninshocinitn.html +!! subroutine moninshoc_init (do_shoc, errmsg, errflg) implicit none diff --git a/physics/PBL/SHOC/shoc.F90 b/physics/PBL/SHOC/shoc.F90 index 9afe3b725..cfaa86251 100644 --- a/physics/PBL/SHOC/shoc.F90 +++ b/physics/PBL/SHOC/shoc.F90 @@ -14,6 +14,9 @@ module shoc contains +!> \section arg_table_shoc_init Argument Table +!! \htmlinclude shoc_init.html +!! subroutine shoc_init (do_shoc, errmsg, errflg) implicit none logical, intent(in) :: do_shoc diff --git a/physics/PBL/YSU/ysuvdif.F90 b/physics/PBL/YSU/ysuvdif.F90 index 09ba28625..fda8c4de7 100644 --- a/physics/PBL/YSU/ysuvdif.F90 +++ b/physics/PBL/YSU/ysuvdif.F90 @@ -11,6 +11,9 @@ module ysuvdif contains +!> \section arg_table_ysuvdif_init Argument Table +!! \htmlinclude ysuvdif_init.html +!! subroutine ysuvdif_init (do_ysu,errmsg,errflg) logical, intent(in) :: do_ysu diff --git a/physics/PBL/saYSU/shinhongvdif.F90 b/physics/PBL/saYSU/shinhongvdif.F90 index f56eae617..4a3bccef1 100644 --- a/physics/PBL/saYSU/shinhongvdif.F90 +++ b/physics/PBL/saYSU/shinhongvdif.F90 @@ -11,6 +11,9 @@ module shinhongvdif contains +!> \section arg_table_shinhongvdif_init Argument Table +!! \htmlinclude shinhongvdif_init.html +!! subroutine shinhongvdif_init (shinhong,errmsg,errflg) logical, intent(in) :: shinhong diff --git a/physics/Radiation/RRTMG/radlw_main.meta b/physics/Radiation/RRTMG/radlw_main.meta index 0b0819042..6a8fb8107 100644 --- a/physics/Radiation/RRTMG/radlw_main.meta +++ b/physics/Radiation/RRTMG/radlw_main.meta @@ -256,17 +256,17 @@ dimensions = () type = integer intent = in -[iovr_exp] - standard_name = flag_for_exponential_cloud_overlap_method - long_name = choice of exponential cloud overlap method - units = flag +[iovr_rand] + standard_name = flag_for_random_cloud_overlap_method + long_name = choice of random cloud overlap method + units = flag dimensions = () type = integer intent = in -[iovr_exprand] - standard_name = flag_for_exponential_random_cloud_overlap_method - long_name = choice of exponential-random cloud overlap method - units = flag +[iovr_maxrand] + standard_name = flag_for_maximum_random_cloud_overlap_method + long_name = choice of maximum-random cloud overlap method + units = flag dimensions = () type = integer intent = in @@ -277,24 +277,24 @@ dimensions = () type = integer intent = in -[iovr_rand] - standard_name = flag_for_random_cloud_overlap_method - long_name = choice of random cloud overlap method +[iovr_dcorr] + standard_name = flag_for_decorrelation_length_cloud_overlap_method + long_name = choice of decorrelation-length cloud overlap method units = flag dimensions = () type = integer intent = in -[iovr_maxrand] - standard_name = flag_for_maximum_random_cloud_overlap_method - long_name = choice of maximum-random cloud overlap method +[iovr_exp] + standard_name = flag_for_exponential_cloud_overlap_method + long_name = choice of exponential cloud overlap method units = flag dimensions = () type = integer intent = in -[iovr_dcorr] - standard_name = flag_for_decorrelation_length_cloud_overlap_method - long_name = choice of decorrelation-length cloud overlap method - units = flag +[iovr_exprand] + standard_name = flag_for_exponential_random_cloud_overlap_method + long_name = choice of exponential-random cloud overlap method + units = flag dimensions = () type = integer intent = in diff --git a/physics/Radiation/RRTMG/radlw_param.f b/physics/Radiation/RRTMG/radlw_param.f index bc2aae224..84800f118 100644 --- a/physics/Radiation/RRTMG/radlw_param.f +++ b/physics/Radiation/RRTMG/radlw_param.f @@ -90,7 +90,11 @@ module module_radlw_parameters ! real (kind=kind_phys) :: dnfxc !< total sky downward flux at sfc real (kind=kind_phys) :: dnfx0 !< clear sky downward flux at sfc end type sfcflw_type -! + +!> derived type for LW flux profiles +!! \section arg_table_proflw_type Argument Table +!! \htmlinclude proflw_type.html +!! type proflw_type !< define type construct for optional radiation flux profiles real (kind=kind_phys) :: upfxc !< level up flux for total sky real (kind=kind_phys) :: dnfxc !< level down flux for total sky diff --git a/physics/Radiation/RRTMG/radlw_param.meta b/physics/Radiation/RRTMG/radlw_param.meta index c2fc40df3..451cb7daf 100644 --- a/physics/Radiation/RRTMG/radlw_param.meta +++ b/physics/Radiation/RRTMG/radlw_param.meta @@ -36,21 +36,3 @@ [ccpp-arg-table] name = module_radlw_parameters type = module -[topflw_type] - standard_name = topflw_type - long_name = definition of type topflw_type - units = DDT - dimensions = () - type = topflw_type -[sfcflw_type] - standard_name = sfcflw_type - long_name = definition of type sfcflw_type - units = DDT - dimensions = () - type = sfcflw_type -[proflw_type] - standard_name = proflw_type - long_name = definition of type proflw_type - units = DDT - dimensions = () - type = proflw_type diff --git a/physics/Radiation/RRTMG/radsw_main.meta b/physics/Radiation/RRTMG/radsw_main.meta index 00a93e438..058476e20 100644 --- a/physics/Radiation/RRTMG/radsw_main.meta +++ b/physics/Radiation/RRTMG/radsw_main.meta @@ -288,12 +288,12 @@ dimensions = () type = logical intent = in -[top_at_1] - standard_name = flag_for_vertical_ordering_in_radiation - long_name = flag for vertical ordering in radiation +[iswcliq] + standard_name = control_for_shortwave_radiation_liquid_clouds + long_name = sw optical property for liquid clouds units = flag dimensions = () - type = logical + type = integer intent = in [iswcice] standard_name = flag_for_optical_property_for_ice_clouds_for_shortwave_radiation @@ -302,13 +302,6 @@ dimensions = () type = integer intent = in -[iswcliq] - standard_name = control_for_shortwave_radiation_liquid_clouds - long_name = sw optical property for liquid clouds - units = flag - dimensions = () - type = integer - intent = in [isubcsw] standard_name = flag_for_sw_clouds_grid_approximation long_name = flag for sw clouds sub-grid approximation @@ -323,26 +316,34 @@ dimensions = () type = integer intent = in -[iovr_exp] - standard_name = flag_for_exponential_cloud_overlap_method - long_name = choice of exponential cloud overlap method - units = flag +[top_at_1] + standard_name = flag_for_vertical_ordering_in_radiation + long_name = flag for vertical ordering in radiation + units = flag dimensions = () - type = integer + type = logical intent = in -[iovr_exprand] - standard_name = flag_for_exponential_random_cloud_overlap_method - long_name = choice of exponential-random cloud overlap method - units = flag +[iswmode] + standard_name = control_for_sw_scattering_choice + long_name = control of rrtmg shortwave scattering choice + units = 1 dimensions = () type = integer intent = in -[iovr_max] - standard_name = flag_for_maximum_cloud_overlap_method - long_name = choice of maximum cloud overlap method +[cld_cf] + standard_name = total_cloud_fraction + long_name = total cloud fraction + units = frac + dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) + type = real + kind = kind_phys + intent = in +[lsswr] + standard_name = flag_for_calling_shortwave_radiation + long_name = flag to calculate SW irradiances units = flag dimensions = () - type = integer + type = logical intent = in [iovr_rand] standard_name = flag_for_random_cloud_overlap_method @@ -358,6 +359,13 @@ dimensions = () type = integer intent = in +[iovr_max] + standard_name = flag_for_maximum_cloud_overlap_method + long_name = choice of maximum cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -365,27 +373,19 @@ dimensions = () type = integer intent = in -[iswmode] - standard_name = control_for_sw_scattering_choice - long_name = control of rrtmg shortwave scattering choice - units = 1 +[iovr_exp] + standard_name = flag_for_exponential_cloud_overlap_method + long_name = choice of exponential cloud overlap method + units = flag dimensions = () type = integer intent = in -[cld_cf] - standard_name = total_cloud_fraction - long_name = total cloud fraction - units = frac - dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) - type = real - kind = kind_phys - intent = in -[lsswr] - standard_name = flag_for_calling_shortwave_radiation - long_name = flag to calculate SW irradiances - units = flag +[iovr_exprand] + standard_name = flag_for_exponential_random_cloud_overlap_method + long_name = choice of exponential-random cloud overlap method + units = flag dimensions = () - type = logical + type = integer intent = in [hswc] standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels diff --git a/physics/Radiation/RRTMG/radsw_param.meta b/physics/Radiation/RRTMG/radsw_param.meta index d6b734a7a..333a6421a 100644 --- a/physics/Radiation/RRTMG/radsw_param.meta +++ b/physics/Radiation/RRTMG/radsw_param.meta @@ -41,32 +41,8 @@ [ccpp-table-properties] name = module_radsw_parameters type = module - dependencies = + dependencies = [ccpp-arg-table] name = module_radsw_parameters type = module -[topfsw_type] - standard_name = topfsw_type - long_name = definition of type topfsw_type - units = DDT - dimensions = () - type = topfsw_type -[sfcfsw_type] - standard_name = sfcfsw_type - long_name = definition of type sfcfsw_type - units = DDT - dimensions = () - type = sfcfsw_type -[cmpfsw_type] - standard_name = cmpfsw_type - long_name = definition of type cmpfsw_type - units = DDT - dimensions = () - type = cmpfsw_type -[profsw_type] - standard_name = profsw_type - long_name = definition of type profsw_type - units = DDT - dimensions = () - type = profsw_type diff --git a/physics/Radiation/RRTMG/rrtmg_lw_post.F90 b/physics/Radiation/RRTMG/rrtmg_lw_post.F90 index 36661973d..75c7cfe2d 100644 --- a/physics/Radiation/RRTMG/rrtmg_lw_post.F90 +++ b/physics/Radiation/RRTMG/rrtmg_lw_post.F90 @@ -20,18 +20,18 @@ subroutine rrtmg_lw_post_run (im, levs, ltp, lm, kd, lslwr, lwhtr, & implicit none - integer, intent(in) :: im, levs, ltp, lm, kd - logical, intent(in) :: lslwr, lwhtr - real(kind=kind_phys), dimension(im), intent(in) :: tsfa - real(kind=kind_phys), dimension(im, LM+LTP), intent(in) :: htlwc - real(kind=kind_phys), dimension(im, LM+LTP), intent(in) :: htlw0 + integer, intent(in) :: im, levs, ltp, lm, kd + logical, intent(in) :: lslwr, lwhtr + real(kind=kind_phys), dimension(:), intent(in) :: tsfa + real(kind=kind_phys), dimension(:, :), intent(in) :: htlwc + real(kind=kind_phys), dimension(:, :), intent(in) :: htlw0 - type(sfcflw_type), dimension(im), intent(in) :: sfcflw + type(sfcflw_type), dimension(:), intent(in) :: sfcflw - real(kind=kind_phys), dimension(im), intent(inout) :: tsflw, sfcdlw - real(kind=kind_phys), dimension(im, levs), intent(inout) :: htrlw, lwhc - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg + real(kind=kind_phys), dimension(:), intent(inout) :: tsflw, sfcdlw + real(kind=kind_phys), dimension(:, :), intent(inout) :: htrlw, lwhc + character(len=*), intent(out) :: errmsg + integer, intent(out) :: errflg ! local variables integer :: k1, k diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta index 4212adcc6..cbf996317 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta @@ -21,37 +21,6 @@ dimensions = () type = logical intent = in -[top_at_1] - standard_name = flag_for_vertical_ordering_in_radiation - long_name = flag for vertical ordering in radiation - units = flag - dimensions = () - type = logical - intent = in -[con_pi] - standard_name = pi - long_name = ratio of a circle's circumference to its diameter - units = none - dimensions = () - type = real - kind = kind_phys - intent = in -[con_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 -[con_g] - standard_name = gravitational_acceleration - long_name = gravitational acceleration - units = m s-2 - dimensions = () - type = real - kind = kind_phys - intent = in [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -178,35 +147,42 @@ dimensions = () type = integer intent = in -[aerodp] - standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles - long_name = vertical integrated optical depth for various aerosol species +[top_at_1] + standard_name = flag_for_vertical_ordering_in_radiation + long_name = flag for vertical ordering in radiation + units = flag + dimensions = () + type = logical + intent = in +[con_pi] + standard_name = pi + long_name = ratio of a circle's circumference to its diameter units = none - dimensions = (horizontal_loop_extent,number_of_species_for_aerosol_optical_depth) + dimensions = () type = real kind = kind_phys - intent = out -[aersw_tau] - standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 - long_name = aerosol optical depth for shortwave bands 01-16 - units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + intent = in +[con_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 = out -[aersw_ssa] - standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16 - long_name = aerosol single scattering albedo for shortwave bands 01-16 - units = frac - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + intent = in +[con_g] + standard_name = gravitational_acceleration + long_name = gravitational acceleration + units = m s-2 + dimensions = () type = real kind = kind_phys - intent = out -[aersw_g] - standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16 - long_name = aerosol asymmetry parameter for shortwave bands 01-16 + intent = in +[aerodp] + standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles + long_name = vertical integrated optical depth for various aerosol species units = none - dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + dimensions = (horizontal_loop_extent,number_of_species_for_aerosol_optical_depth) type = real kind = kind_phys intent = out @@ -234,6 +210,30 @@ type = real kind = kind_phys intent = out +[aersw_tau] + standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 + long_name = aerosol optical depth for shortwave bands 01-16 + units = none + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + type = real + kind = kind_phys + intent = out +[aersw_ssa] + standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16 + long_name = aerosol single scattering albedo for shortwave bands 01-16 + units = frac + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + type = real + kind = kind_phys + intent = out +[aersw_g] + standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16 + long_name = aerosol asymmetry parameter for shortwave bands 01-16 + units = none + dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_bands_for_shortwave_radiation) + type = real + kind = kind_phys + intent = out [ext550] standard_name = aerosol_optical_depth_at_550nm long_name = 3d optical extinction for total aerosol species diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta index ac1da1490..b5ff9c61e 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta @@ -37,6 +37,15 @@ type = character intent = in kind = len=128 +[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) + type = character + kind = len=* + intent = in + optional = True [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -51,16 +60,16 @@ dimensions = () type = logical intent = in -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP +[doGP_sgs_pbl] + standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP + long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP units = flag dimensions = () type = logical intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP +[doGP_sgs_cnv] + standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP + long_name = logical flag to control sgs convective cloud in RRTMGP units = flag dimensions = () type = logical @@ -72,6 +81,13 @@ dimensions = () type = integer intent = inout +[mpicomm] + standard_name = mpi_communicator + long_name = MPI communicator + units = index + dimensions = () + type = MPI_Comm + intent = in [mpirank] standard_name = mpi_rank long_name = current MPI rank @@ -86,12 +102,12 @@ dimensions = () type = integer intent = in -[mpicomm] - standard_name = mpi_communicator - long_name = MPI communicator - units = index +[nLay] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count dimensions = () - type = MPI_Comm + type = integer intent = in [rrtmgp_phys_blksz] standard_name = number_of_columns_per_RRTMGP_LW_block @@ -100,22 +116,6 @@ dimensions = () type = integer intent = in -[nLay] - standard_name = vertical_layer_dimension - long_name = number of vertical levels - units = count - dimensions = () - type = integer - intent = in -[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) - type = character - kind = len=* - intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -157,6 +157,13 @@ dimensions = () type = logical intent = in +[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 + intent = in [use_LW_jacobian] standard_name = flag_to_calc_RRTMGP_LW_jacobian long_name = logical flag to control RRTMGP LW calculation @@ -164,13 +171,6 @@ dimensions = () type = logical intent = in -[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 - intent = in [doGP_sgs_cnv] standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP long_name = logical flag to control sgs convective cloud in RRTMGP @@ -192,13 +192,6 @@ dimensions = () type = integer intent = in -[rrtmgp_phys_blksz] - standard_name = number_of_columns_per_RRTMGP_LW_block - long_name = number of columns to process at a time by RRTMGP LW scheme - units = count - dimensions = () - type = integer - intent = in [nLay] standard_name = vertical_layer_dimension long_name = number of vertical levels @@ -206,27 +199,35 @@ dimensions = () type = integer intent = in -[nGauss_angles] - standard_name = number_of_gaussian_quadrature_angles_for_radiation - long_name = Number of angles used in Gaussian quadrature +[nGases] + standard_name = number_of_active_gases_used_by_RRTMGP + long_name = number of gases available used by RRTMGP (Model%nGases) units = count dimensions = () type = integer intent = in -[nGases] - standard_name = number_of_active_gases_used_by_RRTMGP - long_name = number of gases available used by RRTMGP (Model%nGases) +[rrtmgp_phys_blksz] + standard_name = number_of_columns_per_RRTMGP_LW_block + long_name = number of columns to process at a time by RRTMGP LW scheme units = count dimensions = () type = integer intent = in -[isubc_lw] - standard_name = flag_for_lw_clouds_sub_grid_approximation - long_name = flag for lw clouds sub-grid approximation - units = flag - dimensions = () +[nGauss_angles] + standard_name = number_of_gaussian_quadrature_angles_for_radiation + long_name = Number of angles used in Gaussian quadrature + units = count + dimensions = () type = integer intent = in +[icseed_lw] + standard_name = random_number_seed_for_mcica_longwave + long_name = seed for random number generation for longwave radiation + units = none + dimensions = (horizontal_loop_extent) + type = integer + intent = in + optional = True [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -234,6 +235,20 @@ dimensions = () type = integer intent = in +[iovr_convcld] + standard_name = flag_for_convective_cloud_overlap_method_for_radiation + long_name = flag for convective cloud overlap method + units = flag + dimensions = () + type = integer + intent = in +[iovr_max] + standard_name = flag_for_maximum_cloud_overlap_method + long_name = choice of maximum cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_maxrand] standard_name = flag_for_maximum_random_cloud_overlap_method long_name = choice of maximum-random cloud overlap method @@ -241,6 +256,13 @@ dimensions = () type = integer intent = in +[iovr_rand] + standard_name = flag_for_random_cloud_overlap_method + long_name = choice of random cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -262,35 +284,13 @@ dimensions = () type = integer intent = in -[iovr_rand] - standard_name = flag_for_random_cloud_overlap_method - long_name = choice of random cloud overlap method - units = flag - dimensions = () - type = integer - intent = in -[iovr_max] - standard_name = flag_for_maximum_cloud_overlap_method - long_name = choice of maximum cloud overlap method - units = flag - dimensions = () - type = integer - intent = in -[iovr_convcld] - standard_name = flag_for_convective_cloud_overlap_method_for_radiation - long_name = flag for convective cloud overlap method +[isubc_lw] + standard_name = flag_for_lw_clouds_sub_grid_approximation + long_name = flag for lw clouds sub-grid approximation units = flag dimensions = () type = integer intent = in -[icseed_lw] - standard_name = random_number_seed_for_mcica_longwave - long_name = seed for random number generation for longwave radiation - units = none - dimensions = (horizontal_loop_extent) - type = integer - intent = in - optional = True [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -487,19 +487,19 @@ kind = kind_phys intent = in optional = True -[cld_cnv_iwp] - standard_name = convective_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_cnv_reliq] + standard_name = mean_effective_radius_for_liquid_convective_cloud + long_name = mean effective radius for liquid convective cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in optional = True -[cld_cnv_reliq] - standard_name = mean_effective_radius_for_liquid_convective_cloud - long_name = mean effective radius for liquid convective cloud - units = um +[cld_cnv_iwp] + standard_name = convective_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -523,19 +523,19 @@ kind = kind_phys intent = in optional = True -[cld_pbl_iwp] - standard_name = MYNN_SGS_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_pbl_reliq] + standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud + long_name = mean effective radius for liquid MYNN_SGS cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in optional = True -[cld_pbl_reliq] - standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud - long_name = mean effective radius for liquid MYNN_SGS cloud - units = um +[cld_pbl_iwp] + standard_name = MYNN_SGS_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -592,24 +592,6 @@ type = real kind = kind_phys intent = in -[fluxlwUP_radtime] - standard_name = RRTMGP_lw_flux_profile_upward_allsky_on_radiation_timestep - long_name = RRTMGP upward longwave all-sky flux profile - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = inout - optional = True -[fluxlwDOWN_radtime] - standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep - long_name = RRTMGP downward longwave all-sky flux profile - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - intent = inout - optional = True [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -655,6 +637,24 @@ kind = kind_phys intent = inout optional = True +[fluxlwUP_radtime] + standard_name = RRTMGP_lw_flux_profile_upward_allsky_on_radiation_timestep + long_name = RRTMGP upward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[fluxlwDOWN_radtime] + standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep + long_name = RRTMGP downward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout + optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta index 9bfda6fa1..5549c57a5 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta @@ -37,6 +37,15 @@ type = character intent = in kind = len=128 +[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) + type = character + kind = len=* + intent = in + optional = True [doGP_cldoptics_PADE] standard_name = flag_to_calc_lw_cld_optics_using_RRTMGP_PADE long_name = logical flag to control cloud optics scheme. @@ -51,40 +60,33 @@ dimensions = () type = logical intent = in -[nrghice] - standard_name = number_of_ice_roughness_categories - long_name = number of ice-roughness categories in RRTMGP calculation - units = count - dimensions = () - type = integer - intent = inout -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP +[doGP_sgs_pbl] + standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP + long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP units = flag dimensions = () type = logical intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP +[doGP_sgs_cnv] + standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP + long_name = logical flag to control sgs convective cloud in RRTMGP units = flag dimensions = () type = logical intent = in -[rrtmgp_phys_blksz] - standard_name = number_of_columns_per_RRTMGP_SW_block - long_name = number of columns to process at a time by RRTMGP SW scheme +[nrghice] + standard_name = number_of_ice_roughness_categories + long_name = number of ice-roughness categories in RRTMGP calculation units = count dimensions = () type = integer - intent = in -[nLay] - standard_name = vertical_layer_dimension - long_name = number of vertical levels - units = count + intent = inout +[mpicomm] + standard_name = mpi_communicator + long_name = MPI communicator + units = index dimensions = () - type = integer + type = MPI_Comm intent = in [mpirank] standard_name = mpi_rank @@ -100,22 +102,20 @@ dimensions = () type = integer intent = in -[mpicomm] - standard_name = mpi_communicator - long_name = MPI communicator - units = index +[nLay] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count dimensions = () - type = MPI_Comm + type = integer intent = in -[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) - type = character - kind = len=* +[rrtmgp_phys_blksz] + standard_name = number_of_columns_per_RRTMGP_SW_block + long_name = number of columns to process at a time by RRTMGP SW scheme + units = count + dimensions = () + type = integer intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -157,13 +157,6 @@ dimensions = () type = logical intent = in -[iSFC] - standard_name = vertical_index_for_surface_in_RRTMGP - long_name = index for surface layer in RRTMGP - units = flag - dimensions = () - type = integer - intent = in [doGP_sgs_cnv] standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP long_name = logical flag to control sgs convective cloud in RRTMGP @@ -185,18 +178,18 @@ dimensions = () type = integer intent = in -[nLay] - standard_name = vertical_layer_dimension - long_name = number of vertical levels +[nday] + standard_name = daytime_points_dimension + long_name = daytime points dimension units = count dimensions = () type = integer intent = in -[rrtmgp_phys_blksz] - standard_name = number_of_columns_per_RRTMGP_SW_block - long_name = number of columns to process at a time by RRTMGP SW scheme +[nLay] + standard_name = vertical_layer_dimension + long_name = number of vertical levels units = count - dimensions = () + dimensions = () type = integer intent = in [nGases] @@ -206,9 +199,9 @@ dimensions = () type = integer intent = in -[nday] - standard_name = daytime_points_dimension - long_name = daytime points dimension +[rrtmgp_phys_blksz] + standard_name = number_of_columns_per_RRTMGP_SW_block + long_name = number of columns to process at a time by RRTMGP SW scheme units = count dimensions = () type = integer @@ -220,21 +213,14 @@ dimensions = (horizontal_loop_extent) type = integer intent = in -[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 +[icseed_sw] + standard_name = random_number_seed_for_mcica_shortwave + long_name = seed for random number generation for shortwave radiation units = none dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[isubc_sw] - standard_name = flag_for_sw_clouds_grid_approximation - long_name = flag for sw clouds sub-grid approximation - units = flag - dimensions = () type = integer intent = in + optional = True [iovr] standard_name = flag_for_cloud_overlap_method_for_radiation long_name = max-random overlap clouds @@ -242,6 +228,20 @@ dimensions = () type = integer intent = in +[iovr_convcld] + standard_name = flag_for_convective_cloud_overlap_method_for_radiation + long_name = flag for convective cloud overlap method + units = flag + dimensions = () + type = integer + intent = in +[iovr_max] + standard_name = flag_for_maximum_cloud_overlap_method + long_name = choice of maximum cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_maxrand] standard_name = flag_for_maximum_random_cloud_overlap_method long_name = choice of maximum-random cloud overlap method @@ -249,6 +249,13 @@ dimensions = () type = integer intent = in +[iovr_rand] + standard_name = flag_for_random_cloud_overlap_method + long_name = choice of random cloud overlap method + units = flag + dimensions = () + type = integer + intent = in [iovr_dcorr] standard_name = flag_for_decorrelation_length_cloud_overlap_method long_name = choice of decorrelation-length cloud overlap method @@ -270,35 +277,60 @@ dimensions = () type = integer intent = in -[iovr_rand] - standard_name = flag_for_random_cloud_overlap_method - long_name = choice of random cloud overlap method +[isubc_sw] + standard_name = flag_for_sw_clouds_grid_approximation + long_name = flag for sw clouds sub-grid approximation units = flag dimensions = () type = integer intent = in -[iovr_max] - standard_name = flag_for_maximum_cloud_overlap_method - long_name = choice of maximum cloud overlap method +[iSFC] + standard_name = vertical_index_for_surface_in_RRTMGP + long_name = index for surface layer in RRTMGP units = flag dimensions = () type = integer intent = in -[iovr_convcld] - standard_name = flag_for_convective_cloud_overlap_method_for_radiation - long_name = flag for convective cloud overlap method - units = flag - dimensions = () - type = integer +[sfc_alb_nir_dir] + standard_name = surface_albedo_due_to_near_IR_direct + long_name = surface albedo due to near IR direct beam + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys intent = in -[icseed_sw] - standard_name = random_number_seed_for_mcica_shortwave - long_name = seed for random number generation for shortwave radiation +[sfc_alb_nir_dif] + standard_name = surface_albedo_due_to_near_IR_diffused + long_name = surface albedo due to near IR diffused beam + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[sfc_alb_uvvis_dir] + standard_name = surface_albedo_due_to_UV_and_VIS_direct + long_name = surface albedo due to UV+VIS direct beam + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[sfc_alb_uvvis_dif] + standard_name = surface_albedo_due_to_UV_and_VIS_diffused + long_name = surface albedo due to UV+VIS diffused beam + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[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 units = none dimensions = (horizontal_loop_extent) - type = integer + type = real + kind = kind_phys intent = in - optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -479,19 +511,19 @@ kind = kind_phys intent = in optional = True -[cld_cnv_iwp] - standard_name = convective_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_cnv_reliq] + standard_name = mean_effective_radius_for_liquid_convective_cloud + long_name = mean effective radius for liquid convective cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in optional = True -[cld_cnv_reliq] - standard_name = mean_effective_radius_for_liquid_convective_cloud - long_name = mean effective radius for liquid convective cloud - units = um +[cld_cnv_iwp] + standard_name = convective_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -515,19 +547,19 @@ kind = kind_phys intent = in optional = True -[cld_pbl_iwp] - standard_name = MYNN_SGS_cloud_ice_water_path - long_name = layer convective cloud ice water path - units = g m-2 +[cld_pbl_reliq] + standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud + long_name = mean effective radius for liquid MYNN_SGS cloud + units = um dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys intent = in optional = True -[cld_pbl_reliq] - standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud - long_name = mean effective radius for liquid MYNN_SGS cloud - units = um +[cld_pbl_iwp] + standard_name = MYNN_SGS_cloud_ice_water_path + long_name = layer convective cloud ice water path + units = g m-2 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -551,38 +583,6 @@ kind = kind_phys intent = in optional = True -[sfc_alb_nir_dir] - standard_name = surface_albedo_due_to_near_IR_direct - long_name = surface albedo due to near IR direct beam - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[sfc_alb_nir_dif] - standard_name = surface_albedo_due_to_near_IR_diffused - long_name = surface albedo due to near IR diffused beam - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[sfc_alb_uvvis_dir] - standard_name = surface_albedo_due_to_UV_and_VIS_direct - long_name = surface albedo due to UV+VIS direct beam - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[sfc_alb_uvvis_dif] - standard_name = surface_albedo_due_to_UV_and_VIS_diffused - long_name = surface albedo due to UV+VIS diffused beam - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP diff --git a/physics/SFC_Layer/GFDL/gfdl_sfc_layer.F90 b/physics/SFC_Layer/GFDL/gfdl_sfc_layer.F90 index ce6501908..0c005436b 100644 --- a/physics/SFC_Layer/GFDL/gfdl_sfc_layer.F90 +++ b/physics/SFC_Layer/GFDL/gfdl_sfc_layer.F90 @@ -97,7 +97,7 @@ end subroutine gfdl_sfc_layer_init !! \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, icoef_sf, cplwav, karman, & + ilsm_noah, ilsm_noahmp, ilsm_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, & @@ -120,8 +120,8 @@ subroutine gfdl_sfc_layer_run (im, nsoil, km, xlat, xlon, flag_iter, lsm, & implicit none integer, intent(in) :: im, nsoil, km, ivegsrc - integer, intent(in) :: lsm, lsm_noah, lsm_noahmp, & - lsm_ruc, icoef_sf, ntsflg + integer, intent(in) :: lsm, ilsm_noah, ilsm_noahmp, & + ilsm_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 @@ -181,13 +181,13 @@ subroutine gfdl_sfc_layer_run (im, nsoil, km, xlat, xlon, flag_iter, lsm, & cd_high_limit, ch_low_limit, ch_high_limit, fh2_fh_ratio !#### This block will become unnecessary when maxsmc and drysmc come through the CCPP #### - if (lsm == lsm_noah) then + if (lsm == ilsm_noah) then maxsmc = maxsmc_noah drysmc = drysmc_noah - else if (lsm == lsm_noahmp) then + else if (lsm == ilsm_noahmp) then maxsmc = maxsmc_noahmp drysmc = drysmc_noahmp - else if (lsm == lsm_ruc) then + else if (lsm == ilsm_ruc) then maxsmc = maxsmc_ruc drysmc = drysmc_ruc else diff --git a/physics/SFC_Layer/GFDL/gfdl_sfc_layer.meta b/physics/SFC_Layer/GFDL/gfdl_sfc_layer.meta index ac98437e9..1225d8e7b 100644 --- a/physics/SFC_Layer/GFDL/gfdl_sfc_layer.meta +++ b/physics/SFC_Layer/GFDL/gfdl_sfc_layer.meta @@ -92,13 +92,6 @@ dimensions = () type = integer intent = in -[karman] - standard_name = von_karman_constant - long_name = von karman constant - units = none - dimensions = () - type = real - intent = in [xlat] standard_name = latitude long_name = latitude @@ -129,21 +122,21 @@ dimensions = () type = integer intent = in -[lsm_noah] +[ilsm_noah] standard_name = identifier_for_noah_land_surface_scheme long_name = flag for NOAH land surface model units = flag dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag @@ -164,6 +157,13 @@ dimensions = () type = logical intent = in +[karman] + standard_name = von_karman_constant + long_name = von karman constant + units = none + dimensions = () + type = real + intent = in [cplwav2atm] standard_name = flag_for_one_way_ocean_wave_coupling_to_atmosphere long_name = flag controlling ocean wave coupling to the atmosphere (default off) diff --git a/physics/SFC_Layer/MYJ/myjsfc_wrapper.F90 b/physics/SFC_Layer/MYJ/myjsfc_wrapper.F90 index 4f122ef88..973098a72 100644 --- a/physics/SFC_Layer/MYJ/myjsfc_wrapper.F90 +++ b/physics/SFC_Layer/MYJ/myjsfc_wrapper.F90 @@ -8,6 +8,9 @@ MODULE myjsfc_wrapper contains +!! \section arg_table_myjsfc_wrapper_init Argument Table +!! \htmlinclude myjsfc_wrapper_init.html +!! subroutine myjsfc_wrapper_init (do_myjsfc, & & errmsg,errflg) diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 index 779a56da4..feb43a178 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 @@ -55,7 +55,7 @@ end subroutine mynnsfc_wrapper_init SUBROUTINE mynnsfc_wrapper_run( & & im,levs, & & itimestep,iter,flag_iter, & - & flag_init,flag_restart,lsm,lsm_ruc,& + & flag_init,flag_restart,lsm,ilsm_ruc,& & sigmaf,vegtype,shdmax,ivegsrc, & !intent(in) & z0pert,ztpert, & !intent(in) & redrag,sfc_z0_type, & !intent(in) @@ -122,7 +122,7 @@ SUBROUTINE mynnsfc_wrapper_run( & logical, intent(in) :: sfclay_compute_flux,sfclay_compute_diag integer, intent(in) :: isftcflx,iz0tlnd integer, intent(in) :: im, levs - integer, intent(in) :: iter, itimestep, lsm, lsm_ruc + integer, intent(in) :: iter, itimestep, lsm, ilsm_ruc logical, dimension(:), intent(in) :: flag_iter logical, intent(in) :: flag_init,flag_restart,lprnt integer, intent(in) :: ivegsrc @@ -260,7 +260,7 @@ SUBROUTINE mynnsfc_wrapper_run( & where (icy) znt_ice=znt_ice*0.01 ! qsfc ruc - if (lsm==lsm_ruc) then + if (lsm==ilsm_ruc) then where (dry) qsfc_lnd = qsfc_lnd_ruc/(1.+qsfc_lnd_ruc) ! spec. hum where (icy) qsfc_ice = qsfc_ice_ruc/(1.+qsfc_ice_ruc) ! spec. hum. end if @@ -301,7 +301,7 @@ SUBROUTINE mynnsfc_wrapper_run( & u3d=u,v3d=v,t3d=t3d,qv3d=qv,p3d=prsl,dz8w=dz, & th3d=th,pi3d=exner,qc3d=qc, & PSFCPA=ps,PBLH=pblh,MAVAIL=mavail,XLAND=xland,DX=dx, & - ISFFLX=isfflx,isftcflx=isftcflx,LSM=lsm,LSM_RUC=lsm_ruc, & + ISFFLX=isfflx,isftcflx=isftcflx,LSM=lsm,LSM_RUC=ilsm_ruc, & iz0tlnd=iz0tlnd,psi_opt=psi_opt, & compute_flux=sfclay_compute_flux,compute_diag=sfclay_compute_diag,& sigmaf=sigmaf,vegtype=vegtype,shdmax=shdmax,ivegsrc=ivegsrc, & !intent(in) diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta index 957beacbb..6150c36bb 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta @@ -90,7 +90,7 @@ dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag diff --git a/physics/SFC_Layer/UFS/sfc_diag.meta b/physics/SFC_Layer/UFS/sfc_diag.meta index 9ec3213d3..b1f5e2e3e 100644 --- a/physics/SFC_Layer/UFS/sfc_diag.meta +++ b/physics/SFC_Layer/UFS/sfc_diag.meta @@ -92,33 +92,25 @@ dimensions = () type = real intent = in -[zf] - standard_name = height_above_ground_at_lowest_model_layer - long_name = layer 1 height above ground (not MSL) - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[ps] - standard_name = surface_air_pressure - long_name = surface pressure - units = Pa +[shflx] + standard_name = surface_upward_temperature_flux + long_name = kinematic surface upward sensible heat flux + units = K m s-1 dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = in -[u1] - standard_name = x_wind_of_new_state_at_surface_adjacent_layer - long_name = x component of 1st model layer wind - units = m s-1 +[cdq] + standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air + long_name = surface exchange coeff heat & moisture + units = none dimensions = (horizontal_loop_extent) type = real kind = kind_phys intent = in -[v1] - standard_name = y_wind_of_new_state_at_surface_adjacent_layer - long_name = y component of 1st model layer wind +[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 @@ -147,6 +139,38 @@ dimensions = () type = integer intent = in +[zf] + standard_name = height_above_ground_at_lowest_model_layer + long_name = layer 1 height above ground (not MSL) + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[ps] + standard_name = surface_air_pressure + long_name = surface pressure + units = Pa + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[u1] + standard_name = x_wind_of_new_state_at_surface_adjacent_layer + long_name = x component of 1st model layer wind + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[v1] + standard_name = y_wind_of_new_state_at_surface_adjacent_layer + long_name = y component of 1st model layer wind + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = 1st model layer air temperature @@ -242,6 +266,20 @@ dimensions = () type = logical intent = in +[diag_flux] + standard_name = flag_for_flux_method_in_2m_diagnostics + long_name = flag for flux method in 2-m diagnostics + units = flag + dimensions = () + type = logical + intent = in +[diag_log] + standard_name = flag_for_log_method_in_2m_diagnostics + long_name = flag for log method in 2-m diagnostics + units = flag + dimensions = () + type = logical + intent = in [use_lake_model] standard_name = flag_for_using_lake_model long_name = flag indicating lake points using a lake model @@ -272,28 +310,6 @@ kind = kind_phys intent = in optional = True -[diag_flux] - standard_name = flag_for_flux_method_in_2m_diagnostics - long_name = flag for flux method in 2-m diagnostics - units = flag - dimensions = () - type = logical - intent = in -[diag_log] - standard_name = flag_for_log_method_in_2m_diagnostics - long_name = flag for log method in 2-m diagnostics - units = flag - dimensions = () - type = logical - intent = in -[shflx] - standard_name = surface_upward_temperature_flux - long_name = kinematic surface upward sensible heat flux - units = K m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in [lake_q2m] standard_name = specific_humidity_at_2m_from_clm_lake long_name = specific humidity at 2m from clm lake @@ -303,14 +319,6 @@ kind = kind_phys intent = in optional = True -[cdq] - standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air - long_name = surface exchange coeff heat & moisture - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in [use_lake2m] standard_name = use_2m_diagnostics_calculated_by_lake_model long_name = model 2m diagnostics use the temperature and humidity calculated by the lake model @@ -318,14 +326,6 @@ dimensions = () type = logical intent = in -[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 [f10m] standard_name = ratio_of_wind_at_surface_adjacent_layer_to_wind_at_10m long_name = ratio of fm10 and fm diff --git a/physics/SFC_Layer/UFS/sfc_diag_post.F90 b/physics/SFC_Layer/UFS/sfc_diag_post.F90 index ce3d9c595..28ebce459 100644 --- a/physics/SFC_Layer/UFS/sfc_diag_post.F90 +++ b/physics/SFC_Layer/UFS/sfc_diag_post.F90 @@ -13,7 +13,7 @@ module sfc_diag_post !! \htmlinclude sfc_diag_post_run.html !! #endif - subroutine sfc_diag_post_run (im, lsm, lsm_noahmp, opt_diag, dry, lssav, dtf, con_eps, con_epsm1, pgr,& + subroutine sfc_diag_post_run (im, lsm, ilsm_noahmp, opt_diag, dry, lssav, dtf, con_eps, con_epsm1, pgr,& vegtype,t2mmp,q2mp, t2m, q2m, u10m, v10m, tmpmin, tmpmax, spfhmin, spfhmax, & wind10mmax, u10mmax, v10mmax, dpt2m, errmsg, errflg) @@ -21,7 +21,7 @@ subroutine sfc_diag_post_run (im, lsm, lsm_noahmp, opt_diag, dry, lssav, dtf, co implicit none - integer, intent(in) :: im, lsm, lsm_noahmp,opt_diag + integer, intent(in) :: im, lsm, ilsm_noahmp,opt_diag integer, dimension(:), intent(in) :: vegtype ! vegetation type (integer index) logical, intent(in) :: lssav real(kind=kind_phys), intent(in) :: dtf, con_eps, con_epsm1 @@ -41,7 +41,7 @@ subroutine sfc_diag_post_run (im, lsm, lsm_noahmp, opt_diag, dry, lssav, dtf, co errmsg = '' errflg = 0 - if (lsm == lsm_noahmp) then + if (lsm == ilsm_noahmp) then ! over shrublands use opt_diag=2 do i=1, im if(dry(i)) then diff --git a/physics/SFC_Layer/UFS/sfc_diag_post.meta b/physics/SFC_Layer/UFS/sfc_diag_post.meta index 7cdfee16a..711016537 100644 --- a/physics/SFC_Layer/UFS/sfc_diag_post.meta +++ b/physics/SFC_Layer/UFS/sfc_diag_post.meta @@ -22,7 +22,7 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag diff --git a/physics/SFC_Layer/UFS/sfc_diff.f b/physics/SFC_Layer/UFS/sfc_diff.f index 2b1d285f3..97d17d16a 100644 --- a/physics/SFC_Layer/UFS/sfc_diff.f +++ b/physics/SFC_Layer/UFS/sfc_diff.f @@ -54,7 +54,8 @@ module sfc_diff !!\f] !! - Calculate the exchange coefficients:\f$cm\f$, \f$ch\f$, and \f$stress\f$ as inputs of other \a sfc schemes. !! - subroutine sfc_diff_run (im,rvrdm1,eps,epsm1,grav, & !intent(in) + subroutine sfc_diff_run ( & + & im,rvrdm1,eps,epsm1,grav, & !intent(in) & ps,t1,q1,z1,garea,wind, & !intent(in) & prsl1,prslki,prsik1,prslk1, & !intent(in) & sigmaf,vegtype,shdmax,ivegsrc, & !intent(in) diff --git a/physics/SFC_Layer/UFS/sfc_diff.meta b/physics/SFC_Layer/UFS/sfc_diff.meta index 0964473cb..b42368e7b 100644 --- a/physics/SFC_Layer/UFS/sfc_diff.meta +++ b/physics/SFC_Layer/UFS/sfc_diff.meta @@ -87,14 +87,6 @@ type = real kind = kind_phys intent = in -[zvfun] - standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction - long_name = function of surface roughness length and green vegetation fraction - units = none - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -218,6 +210,13 @@ type = real kind = kind_phys intent = in +[sfc_z0_type] + standard_name = flag_for_surface_roughness_option_over_water + long_name = surface roughness options over water + units = flag + dimensions = () + type = integer + intent = in [u1] standard_name = x_wind_at_surface_adjacent_layer long_name = x component of surface layer wind @@ -250,13 +249,6 @@ type = real kind = kind_phys intent = in -[sfc_z0_type] - standard_name = flag_for_surface_roughness_option_over_water - long_name = surface roughness options over water - units = flag - dimensions = () - type = integer - intent = in [icplocn2atm] standard_name = control_for_air_sea_flux_computation_over_water long_name = air-sea flux option @@ -612,6 +604,14 @@ type = real kind = kind_phys intent = inout +[zvfun] + standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction + long_name = function of surface roughness length and green vegetation fraction + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.F90 b/physics/SFC_Models/Lake/Flake/flake_driver.F90 index 9092b1c36..365991bb6 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.F90 +++ b/physics/SFC_Models/Lake/Flake/flake_driver.F90 @@ -427,8 +427,8 @@ end subroutine flake_driver_post_init subroutine flake_driver_post_finalize() end subroutine flake_driver_post_finalize -!> \section arg_table_flake_driver_post Argument Table -!! \htmlinclude flake_driver_post.html +!> \section arg_table_flake_driver_post_run Argument Table +!! \htmlinclude flake_driver_post_run.html !! subroutine flake_driver_post_run (im, use_lake_model, h_ML, T_wML, & Tsurf, lakedepth, xz, zm, tref, tsfco, & diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.meta b/physics/SFC_Models/Lake/Flake/flake_driver.meta index f5615ba08..ed90323b8 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.meta +++ b/physics/SFC_Models/Lake/Flake/flake_driver.meta @@ -182,7 +182,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = inout + intent = in [snwdph] standard_name = surface_snow_thickness_water_equivalent_over_ice long_name = water equivalent snow depth over ice @@ -207,14 +207,6 @@ type = real kind = kind_phys intent = inout -[fice] - standard_name = sea_ice_area_fraction_of_sea_area_fraction - long_name = ice fraction over open water - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout [t_sfc] standard_name = surface_skin_temperature_after_iteration_over_water long_name = surface skin temperature after iteration over water @@ -223,6 +215,14 @@ type = real kind = kind_phys intent = inout +[fice] + standard_name = sea_ice_area_fraction_of_sea_area_fraction + long_name = ice fraction over open water + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout [hflx] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -420,7 +420,8 @@ [ccpp-table-properties] name = flake_driver_post type = scheme - dependencies = machine.F + dependencies = ../../../hooks/machine.F + ######################################################################## [ccpp-arg-table] name = flake_driver_post_run @@ -432,21 +433,12 @@ dimensions = () type = integer intent = in -[lakedepth] - standard_name = lake_depth - long_name = lake depth - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in -[tsurf] - standard_name = surface_skin_temperature_after_iteration_over_water - long_name = surface skin temperature after iteration over water - units = K +[use_lake_model] + standard_name = flag_for_using_lake_model + long_name = flag indicating lake points using a lake model + units = flag dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys + type = integer intent = in [h_ML] standard_name = mixed_layer_depth_of_lakes @@ -466,6 +458,22 @@ kind = kind_phys intent = in optional = True +[tsurf] + standard_name = surface_skin_temperature_after_iteration_over_water + long_name = surface skin temperature after iteration over water + units = K + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[lakedepth] + standard_name = lake_depth + long_name = lake depth + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -473,7 +481,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = out + intent = inout optional = True [zm] standard_name = ocean_mixed_layer_thickness @@ -482,7 +490,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = out + intent = inout optional = True [tref] standard_name = reference_sea_surface_temperature @@ -491,16 +499,16 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = out + intent = inout optional = True -[tfco] +[tsfco] standard_name = sea_surface_temperature long_name = sea surface temperature units = K dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = out + intent = inout [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.f b/physics/SFC_Models/Land/Noah/lsm_noah.f index 139c978a0..99ab92878 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.f +++ b/physics/SFC_Models/Land/Noah/lsm_noah.f @@ -21,12 +21,12 @@ module lsm_noah !! \section arg_table_lsm_noah_init Argument Table !! \htmlinclude lsm_noah_init.html !! - subroutine lsm_noah_init(lsm, lsm_noah, me, isot, ivegsrc, nlunit, + subroutine lsm_noah_init(lsm,ilsm_noah, me, isot, ivegsrc, nlunit, & pores, resid, errmsg, errflg) implicit none integer, intent(in) :: lsm - integer, intent(in) :: lsm_noah + integer, intent(in) :: ilsm_noah integer, intent(in) :: me, isot, ivegsrc, nlunit @@ -40,7 +40,7 @@ subroutine lsm_noah_init(lsm, lsm_noah, me, isot, ivegsrc, nlunit, errflg = 0 ! Consistency checks - if (lsm/=lsm_noah) then + if (lsm/=ilsm_noah) then write(errmsg,'(*(a))') 'Logic error: namelist choice of ', & 'LSM is different from Noah' errflg = 1 diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.meta b/physics/SFC_Models/Land/Noah/lsm_noah.meta index f26b075d9..252b71cb1 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.meta +++ b/physics/SFC_Models/Land/Noah/lsm_noah.meta @@ -15,7 +15,7 @@ dimensions = () type = integer intent = in -[lsm_noah] +[ilsm_noah] standard_name = identifier_for_noah_land_surface_scheme long_name = flag for NOAH land surface model units = flag diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index 6234f46d9..de92342d0 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -29,7 +29,7 @@ module noahmpdrv !! \section arg_table_noahmpdrv_init Argument Table !! \htmlinclude noahmpdrv_init.html !! - subroutine noahmpdrv_init(lsm, lsm_noahmp, me, isot, ivegsrc, & + subroutine noahmpdrv_init(lsm, ilsm_noahmp, me, isot, ivegsrc,& nlunit, pores, resid, & do_mynnsfclay,do_mynnedmf, & errmsg, errflg) @@ -41,7 +41,7 @@ subroutine noahmpdrv_init(lsm, lsm_noahmp, me, isot, ivegsrc, & implicit none integer, intent(in) :: lsm - integer, intent(in) :: lsm_noahmp + integer, intent(in) :: ilsm_noahmp integer, intent(in) :: me, isot, ivegsrc, nlunit real (kind=kind_phys), dimension(:), intent(out) :: pores, resid @@ -58,7 +58,7 @@ subroutine noahmpdrv_init(lsm, lsm_noahmp, me, isot, ivegsrc, & errflg = 0 ! Consistency checks - if (lsm/=lsm_noahmp) then + if (lsm/=ilsm_noahmp) then write(errmsg,'(*(a))') 'Logic error: namelist choice of ', & & 'LSM is different from Noah' errflg = 1 diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 753550016..2d88e6a90 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -16,7 +16,7 @@ dimensions = () type = integer intent = in -[lsm_noahmp] +[ilsm_noahmp] standard_name = identifier_for_noahmp_land_surface_scheme long_name = flag for NOAH MP land surface model units = flag diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index 9a41b066b..3e8eaa727 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -36,7 +36,7 @@ module lsm_ruc subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & lsm_cold_start, flag_init, con_fvirt, con_rd, & im, lsoil_ruc, lsoil, kice, nlev, & ! in - lsm_ruc, lsm, slmsk, stype, vtype, landfrac, & ! in + ilsm_ruc, lsm, slmsk, stype, vtype, landfrac, & ! in q1, prsl1, tsfc_lnd, tsfc_ice, tsfc_wat, & ! in tg3, smc, slc, stc, fice, min_seaice, & ! in sncovr_lnd, sncovr_ice, snoalb, & ! in @@ -59,7 +59,7 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & integer, intent(in) :: lsoil integer, intent(in) :: kice integer, intent(in) :: nlev - integer, intent(in) :: lsm_ruc, lsm + integer, intent(in) :: ilsm_ruc, lsm real (kind_phys),intent(in) :: con_fvirt real (kind_phys),intent(in) :: con_rd @@ -123,7 +123,7 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & errflg = 0 ! Consistency checks - if (lsm/=lsm_ruc) then + if (lsm/=ilsm_ruc) then write(errmsg,'(*(a))') 'Logic error: namelist choice of ', & & 'LSM is different from RUC' errflg = 1 @@ -207,7 +207,7 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & call init_soil_depth_3 ( zs , dzs , lsoil_ruc ) call rucinit (lsm_cold_start, im, lsoil_ruc, lsoil, nlev, & ! in - me, master, lsm_ruc, lsm, slmsk, & ! in + me, master, ilsm_ruc, lsm, slmsk, & ! in stype, vtype, landfrac, fice, & ! in min_seaice, tsfc_lnd, tsfc_wat, tg3, & ! in zs, dzs, smc, slc, stc, & ! in @@ -325,7 +325,7 @@ end subroutine lsm_ruc_finalize !! !>\section gen_lsm_ruc_run RUC LSM General Algorithm subroutine lsm_ruc_run & ! inputs - & ( iter, me, master, delt, kdt, im, nlev, lsm_ruc, lsm, & + & ( iter, me, master, delt, kdt, im, nlev, ilsm_ruc, lsm, & & imp_physics, imp_physics_gfdl, imp_physics_thompson, & & imp_physics_nssl, do_mynnsfclay, & & exticeden, lsoil_ruc, lsoil, mosaic_lu, mosaic_soil, & @@ -378,7 +378,7 @@ subroutine lsm_ruc_run & ! inputs integer, intent(in) :: im, nlev, iter, lsoil_ruc, lsoil, kdt, isot, ivegsrc integer, intent(in) :: mosaic_lu, mosaic_soil, isncond_opt, isncovr_opt integer, intent(in) :: nlcat, nscat - integer, intent(in) :: lsm_ruc, lsm + integer, intent(in) :: ilsm_ruc, lsm integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, & imp_physics_nssl real (kind_phys), dimension(:), intent(in) :: xlat_d, xlon_d @@ -1630,7 +1630,7 @@ end subroutine lsm_ruc_run !>\ingroup lsm_ruc_group !! This subroutine contains RUC LSM initialization. subroutine rucinit (lsm_cold_start, im, lsoil_ruc, lsoil, & ! in - nlev, me, master, lsm_ruc, lsm, slmsk, & ! in + nlev, me, master, ilsm_ruc, lsm, slmsk,& ! in stype, vtype, landfrac, fice, & ! in min_seaice, tskin_lnd, tskin_wat, tg3, & ! in zs, dzs, smc, slc, stc, & ! in @@ -1641,7 +1641,7 @@ subroutine rucinit (lsm_cold_start, im, lsoil_ruc, lsoil, & ! in logical, intent(in ) :: lsm_cold_start integer, intent(in ) :: lsm - integer, intent(in ) :: lsm_ruc + integer, intent(in ) :: ilsm_ruc integer, intent(in ) :: im, nlev integer, intent(in ) :: lsoil_ruc integer, intent(in ) :: lsoil @@ -1713,10 +1713,10 @@ subroutine rucinit (lsm_cold_start, im, lsoil_ruc, lsoil, & ! in debug_print = .false. - if (lsm/=lsm_ruc) then + if (lsm/=ilsm_ruc) then write(errmsg,'(a,i0,a,i0)') & 'ERROR in lsm_ruc_init: namelist variable lsm=', & - lsm, ' incompatible with RUC LSM, please set to ', lsm_ruc + lsm, ' incompatible with RUC LSM, please set to ', ilsm_ruc errflg = 1 return else if (debug_print) then diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index 0abe4ada3..a2be7d8d5 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -108,7 +108,7 @@ dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag @@ -598,7 +598,7 @@ dimensions = () type = integer intent = in -[lsm_ruc] +[ilsm_ruc] standard_name = identifier_for_ruc_land_surface_scheme long_name = flag for RUC land surface model units = flag @@ -787,7 +787,7 @@ units = index dimensions = (horizontal_loop_extent) type = integer - intent = in + intent = inout [vtype] standard_name = vegetation_type_classification long_name = vegetation type at each grid cell @@ -1697,6 +1697,31 @@ kind = kind_phys intent = out optional = True +[add_fire_heat_flux] + standard_name = flag_for_fire_heat_flux + long_name = flag to add fire heat flux to LSM + units = flag + dimensions = () + type = logical + intent = in +[fire_heat_flux_out] + standard_name = surface_fire_heat_flux + long_name = heat flux of fire at the surface + units = W m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in + optional = True +[frac_grid_burned_out] + standard_name = fraction_of_grid_cell_burning + long_name = ration of the burnt area to the grid cell area + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in + optional = True [rhosnf] standard_name = lsm_internal_surface_frozen_precipitation_density long_name = density of frozen precipitation @@ -1788,31 +1813,6 @@ dimensions = () type = logical intent = in -[add_fire_heat_flux] - standard_name = flag_for_fire_heat_flux - long_name = flag to add fire heat flux to LSM - units = flag - dimensions = () - type = logical - intent = in -[fire_heat_flux_out] - standard_name = surface_fire_heat_flux - long_name = heat flux of fire at the surface - units = W m-2 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = True -[frac_grid_burned_out] - standard_name = fraction_of_grid_cell_burning - long_name = ration of the burnt area to the grid cell area - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta index 828a83939..f6bc339b1 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_sice.meta @@ -304,7 +304,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [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 @@ -344,7 +344,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [qss_w] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water @@ -352,7 +352,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [snowmt] standard_name = surface_snow_melt long_name = snow melt during timestep @@ -392,7 +392,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [evapw] standard_name = kinematic_surface_upward_latent_heat_flux_over_water long_name = kinematic surface upward latent heat flux over water @@ -400,7 +400,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [hflxi] standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice long_name = kinematic surface upward sensible heat flux over ice @@ -408,7 +408,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [hflxw] standard_name = kinematic_surface_upward_sensible_heat_flux_over_water long_name = kinematic surface upward sensible heat flux over water @@ -416,7 +416,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = in + intent = inout [islmsk] standard_name = sea_land_ice_mask_cice long_name = sea/land/ice mask cice (=0/1/2) diff --git a/physics/photochem/h2ophys.f b/physics/photochem/h2ophys.f index f46868e58..bd3446c76 100644 --- a/physics/photochem/h2ophys.f +++ b/physics/photochem/h2ophys.f @@ -12,6 +12,9 @@ module h2ophys contains +!! \section arg_table_h2ophys_init Argument Table +!! \htmlinclude h2ophys_init.html +!! subroutine h2ophys_init(h2o_phys, errmsg, errflg) implicit none diff --git a/physics/photochem/module_ozphys.meta b/physics/photochem/module_ozphys.meta index 2922d16d7..93876238b 100644 --- a/physics/photochem/module_ozphys.meta +++ b/physics/photochem/module_ozphys.meta @@ -11,14 +11,9 @@ [ccpp-table-properties] name = module_ozphys type = module - dependencies = machine.F,funcphys.f90 + dependencies = ../hooks/machine.F,../tools/funcphys.f90 [ccpp-arg-table] name = module_ozphys type = module -[ty_ozphys] - standard_name = ty_ozphys - long_name = definition of type ty_ozphys - units = DDT - dimensions = () - type = ty_ozphys \ No newline at end of file + \ No newline at end of file diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.F90 b/physics/smoke_dust/rrfs_smoke_wrapper.F90 index 5a47f1f72..50c8d41b8 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.F90 +++ b/physics/smoke_dust/rrfs_smoke_wrapper.F90 @@ -225,7 +225,7 @@ subroutine rrfs_smoke_wrapper_run(im, kte, kme, ktau, dt, garea, land, jdate, integer :: i, j, k, kp, n ! MPI variables integer :: mpiid - type(MPI_comm), intent(in) :: mpicomm + type(MPI_Comm), intent(in) :: mpicomm integer, intent(in) :: mpirank integer, intent(in) :: mpiroot diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index c7afc1d97..24ffdb818 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -50,13 +50,6 @@ dimensions = () type = logical intent = in -[add_fire_heat_flux_in] - standard_name = flag_for_fire_heat_flux - long_name = flag to add fire heat flux to LSM - units = flag - dimensions = () - type = logical - intent = in [do_plumerise_in] standard_name = do_smoke_plumerise long_name = rrfs smoke plumerise option @@ -71,13 +64,6 @@ dimensions = () type = integer intent = in -[n_dbg_lines_in] - standard_name = smoke_debug_lines - long_name = rrfs smoke add smoke option - units = index - dimensions = () - type = integer - intent = in [plume_wind_eff_in] standard_name = option_for_wind_effects_on_smoke_plumerise long_name = wind effect plumerise option @@ -85,6 +71,13 @@ dimensions = () type = integer intent = in +[add_fire_heat_flux_in] + standard_name = flag_for_fire_heat_flux + long_name = flag to add fire heat flux to LSM + units = flag + dimensions = () + type = logical + intent = in [addsmoke_flag_in] standard_name = control_for_smoke_biomass_burning_emissions long_name = rrfs smoke add smoke option @@ -188,7 +181,14 @@ dimensions = () type = integer intent = out - +[n_dbg_lines_in] + standard_name = smoke_debug_lines + long_name = rrfs smoke add smoke option + units = index + dimensions = () + type = integer + intent = in + ##################################################################### [ccpp-arg-table] name = rrfs_smoke_wrapper_run @@ -362,7 +362,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout + intent = in [us3d] standard_name = x_wind_of_new_state long_name = updated x-direction wind @@ -370,7 +370,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout + intent = in [vs3d] standard_name = y_wind_of_new_state long_name = updated y-direction wind @@ -378,7 +378,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout + intent = in [spechum] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -386,7 +386,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - intent = inout + intent = in [w] standard_name = lagrangian_tendency_of_air_pressure long_name = layer mean vertical velocity @@ -409,7 +409,7 @@ dimensions = (horizontal_loop_extent,vertical_dimension_of_soil_internal_to_land_surface_scheme) type = real kind = kind_phys - intent = inout + intent = in optional = True [tslb] standard_name = soil_temperature_for_land_surface_model @@ -427,6 +427,14 @@ dimensions = (horizontal_loop_extent) type = integer intent = in +[vegtype_frac] + standard_name = fraction_of_vegetation_category + long_name = fraction of horizontal grid area occupied by given vegetation category + units = frac + dimensions = (horizontal_loop_extent,number_of_vegetation_categories) + type = real + kind = kind_phys + intent = in [soiltyp] standard_name = soil_type_classification long_name = soil type at each grid cell @@ -441,14 +449,6 @@ dimensions = () type = integer intent = in -[vegtype_frac] - standard_name = fraction_of_vegetation_category - long_name = fraction of horizontal grid area occupied by given vegetation category - units = frac - dimensions = (horizontal_loop_extent,number_of_vegetation_categories) - type = real - kind = kind_phys - intent = in [dswsfc] standard_name = surface_downwelling_shortwave_flux long_name = surface downwelling shortwave flux at current time @@ -715,6 +715,24 @@ kind = kind_phys intent = inout optional = True +[drydep_flux_out] + standard_name = dry_deposition_flux + long_name = rrfs dry deposition flux + units = ug m-2 + dimensions = (horizontal_loop_extent,number_of_chemical_species_deposited) + type = real + kind = kind_phys + intent = inout + optional = True +[wetdpr] + standard_name = mp_wet_deposition_smoke_dust + long_name = large scale wet deposition of smoke and dust + units = kg kg-1 + dimensions = (horizontal_loop_extent,number_of_chemical_species_vertically_mixed) + type = real + kind = kind_phys + intent = inout + optional = True [ebb_smoke_in] standard_name = surface_smoke_emission long_name = emission of surface smoke @@ -786,63 +804,6 @@ kind = kind_phys intent = inout optional = True -[mpicomm] - standard_name = mpi_communicator - long_name = MPI communicator - units = index - dimensions = () - type = MPI_Comm - intent = in -[mpirank] - standard_name = mpi_rank - long_name = current MPI-rank - units = index - dimensions = () - type = integer - intent = in -[mpiroot] - standard_name = mpi_root - long_name = master MPI-rank - units = index - dimensions = () - type = integer - intent = in -[uspdavg] - standard_name = mean_wind_speed_in_boundary_layer - long_name = average wind speed within the boundary layer - units = m s-1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = True -[hpbl_thetav] - standard_name = atmosphere_boundary_layer_thickness_from_modified_parcel - long_name = pbl height based on modified parcel method - units = m - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = inout - optional = True -[drydep_flux_out] - standard_name = dry_deposition_flux - long_name = rrfs dry deposition flux - units = ug m-2 - dimensions = (horizontal_loop_extent,number_of_chemical_species_deposited) - type = real - kind = kind_phys - intent = inout - optional = True -[wetdpr] - standard_name = mp_wet_deposition_smoke_dust - long_name = large scale wet deposition of smoke and dust - units = kg kg-1 - dimensions = (horizontal_loop_extent,number_of_chemical_species_vertically_mixed) - type = real - kind = kind_phys - intent = inout - optional = True [hwp] standard_name = hourly_wildfire_potential long_name = rrfs hourly fire weather potential @@ -850,7 +811,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - intent = out + intent = inout optional = True [hwp_ave] standard_name = hourly_wildfire_potential_average @@ -887,31 +848,31 @@ intent = inout optional = True [peak_hr_out] - standard_name = peak_hr_fire - long_name = time_of_peak_fire_emissions - units = s - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out + standard_name = peak_hr_fire + long_name = time_of_peak_fire_emissions + units = s + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout optional = True [lu_nofire_out] - standard_name = sum_of_land_use_fractions_for_no_fire_pixels - long_name = land use of no fire pixels for type - units = 1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out + standard_name = sum_of_land_use_fractions_for_no_fire_pixels + long_name = land use of no fire pixels for type + units = 1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out optional = True [lu_qfire_out] - standard_name = sum_of_land_use_fractions_for_cropland_fire_pixels - long_name = land use of fire pixels for type - units = 1 - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - intent = out + standard_name = sum_of_land_use_fractions_for_cropland_fire_pixels + long_name = land use of fire pixels for type + units = 1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out optional = True [fire_heat_flux_out] standard_name = surface_fire_heat_flux @@ -946,6 +907,45 @@ type = real kind = kind_phys intent = in +[uspdavg] + standard_name = mean_wind_speed_in_boundary_layer + long_name = average wind speed within the boundary layer + units = m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout + optional = True +[hpbl_thetav] + standard_name = atmosphere_boundary_layer_thickness_from_modified_parcel + long_name = pbl height based on modified parcel method + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = inout + optional = True +[mpicomm] + standard_name = mpi_communicator + long_name = MPI communicator + units = index + dimensions = () + type = MPI_Comm + intent = in +[mpirank] + standard_name = mpi_rank + long_name = current MPI-rank + units = index + dimensions = () + type = integer + intent = in +[mpiroot] + standard_name = mpi_root + long_name = master MPI-rank + units = index + dimensions = () + type = integer + intent = in [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/tools/get_phi_fv3.F90 b/physics/tools/get_phi_fv3.F90 index d111d3ae0..60fbc2470 100644 --- a/physics/tools/get_phi_fv3.F90 +++ b/physics/tools/get_phi_fv3.F90 @@ -4,7 +4,6 @@ module get_phi_fv3 use machine, only: kind_phys - use physcons, only: con_fvirt !--- public declarations public get_phi_fv3_run @@ -56,4 +55,4 @@ subroutine get_phi_fv3_run(ix, levs, con_fvirt, gt0, gq01, del_gz, phii, phil, e end subroutine get_phi_fv3_run -end module get_phi_fv3 \ No newline at end of file +end module get_phi_fv3 diff --git a/physics/tools/get_phi_fv3.meta b/physics/tools/get_phi_fv3.meta index 5c162c746..2d30a7bb6 100644 --- a/physics/tools/get_phi_fv3.meta +++ b/physics/tools/get_phi_fv3.meta @@ -2,7 +2,7 @@ [ccpp-table-properties] name = get_phi_fv3 type = scheme - dependencies = ../hooks/machine.F,../hooks/physcons.F90 + dependencies = ../hooks/machine.F ######################################################################## [ccpp-arg-table]