From 8fca3a42b6db828e185ec4df51665e1dcae8eae4 Mon Sep 17 00:00:00 2001 From: Haipeng Lin Date: Tue, 22 Oct 2024 17:56:43 -0400 Subject: [PATCH] Update vcoord to energy_formula --- src/data/air_composition.F90 | 18 +++--- src/data/cam_thermo.F90 | 29 +++++----- src/data/cam_thermo_formula.F90 | 24 ++++++++ .../cam_thermo_formula.meta} | 8 +-- src/data/physconst.F90 | 4 -- src/data/registry.xml | 2 +- src/dynamics/mpas/dyn_comp.F90 | 5 ++ src/dynamics/none/dyn_comp.F90 | 3 + src/dynamics/none/dyn_grid.F90 | 57 +++++++++++++++++++ src/dynamics/se/dp_coupling.F90 | 30 +++------- src/dynamics/se/dyn_comp.F90 | 6 +- src/dynamics/tests/dyn_tests_utils.F90 | 6 -- 12 files changed, 130 insertions(+), 62 deletions(-) create mode 100644 src/data/cam_thermo_formula.F90 rename src/{dynamics/tests/dyn_tests_utils.meta => data/cam_thermo_formula.meta} (71%) diff --git a/src/data/air_composition.F90 b/src/data/air_composition.F90 index 443565eb..0a014c9a 100644 --- a/src/data/air_composition.F90 +++ b/src/data/air_composition.F90 @@ -541,12 +541,12 @@ end subroutine dry_air_composition_update ! water_composition_update: Update generalized cp or cv depending on dycore !--------------------------------------------------------------------------- !=========================================================================== - subroutine water_composition_update(mmr, ncol, vcoord, to_dry_factor) - use dyn_tests_utils, only: vc_height, vc_moist_pressure, vc_dry_pressure + subroutine water_composition_update(mmr, ncol, energy_formula, to_dry_factor) + use cam_thermo_formula, only: ENERGY_FORMULA_DYCORE_FV, ENERGY_FORMULA_DYCORE_SE, ENERGY_FORMULA_DYCORE_MPAS - real(kind_phys), intent(in) :: mmr(:,:,:) ! constituents array - integer, intent(in) :: ncol ! number of columns - integer, intent(in) :: vcoord ! vertical coordinate specifier for dycore + real(kind_phys), intent(in) :: mmr(:,:,:) ! constituents array + integer, intent(in) :: ncol ! number of columns + integer, intent(in) :: energy_formula ! energy formula for dynamical core real(kind_phys), optional, intent(in) :: to_dry_factor(:,:) character(len=*), parameter :: subname = 'water_composition_update' @@ -554,9 +554,9 @@ subroutine water_composition_update(mmr, ncol, vcoord, to_dry_factor) ! update enthalpy or internal energy scaling factor for energy consistency with CAM physics ! cp_or_cv_dycore is now a registry variable (physics_types) in CAM-SIMA instead of in-module - if (vcoord == vc_moist_pressure) then + if (energy_formula == ENERGY_FORMULA_DYCORE_FV) then ! FV: moist pressure vertical coordinate does not need update. - else if (vcoord == vc_dry_pressure) then + else if (energy_formula == ENERGY_FORMULA_DYCORE_SE) then ! SE ! **TEMP** TODO hplin 9/17/24: @@ -566,7 +566,7 @@ subroutine water_composition_update(mmr, ncol, vcoord, to_dry_factor) call get_cp(mmr(:ncol,:,:), .false., cp_or_cv_dycore(:ncol,:), & factor=to_dry_factor, active_species_idx_dycore=thermodynamic_active_species_idx(1:), & cpdry=cpairv(:ncol,:)) - else if (vcoord == vc_height) then + else if (energy_formula == ENERGY_FORMULA_DYCORE_MPAS) then ! MPAS call get_R(mmr(:ncol,:,:), thermodynamic_active_species_idx(1:), & cp_or_cv_dycore(:ncol,:), fact=to_dry_factor, Rdry=rairv(:ncol,:)) @@ -575,7 +575,7 @@ subroutine water_composition_update(mmr, ncol, vcoord, to_dry_factor) ! (equation 92 in Eldred et al. 2023; https://rmets.onlinelibrary.wiley.com/doi/epdf/10.1002/qj.4353) cp_or_cv_dycore(:ncol,:) = cp_or_cv_dycore(:ncol,:) * (cpairv(:ncol,:) - rairv(:ncol,:)) / rairv(:ncol,:) else - call endrun(subname//': dycore vcoord not supported') + call endrun(subname//': dycore energy formula not supported') end if end subroutine water_composition_update diff --git a/src/data/cam_thermo.F90 b/src/data/cam_thermo.F90 index a776cece..09dff1f1 100644 --- a/src/data/cam_thermo.F90 +++ b/src/data/cam_thermo.F90 @@ -79,6 +79,7 @@ module cam_thermo ! mixing_ratio options integer, public, parameter :: DRY_MIXING_RATIO = 1 integer, public, parameter :: MASS_MIXING_RATIO = 2 + !> \section arg_table_cam_thermo Argument Table !! \htmlinclude cam_thermo.html !--------------- Variables below here are for WACCM-X --------------------- @@ -87,7 +88,7 @@ module cam_thermo ! kmcnd: molecular conductivity J m-1 s-1 K-1 real(kind_phys), public, protected, allocatable :: kmcnd(:,:) - !------------- Variables for consistent themodynamics -------------------- + !------------- Variables for consistent thermodynamics -------------------- ! ! @@ -262,7 +263,7 @@ end subroutine cam_thermo_dry_air_update ! !*************************************************************************** ! - subroutine cam_thermo_water_update(mmr, ncol, vcoord, to_dry_factor) + subroutine cam_thermo_water_update(mmr, ncol, energy_formula, to_dry_factor) use air_composition, only: water_composition_update !----------------------------------------------------------------------- ! Update the physics "constants" that vary @@ -270,10 +271,10 @@ subroutine cam_thermo_water_update(mmr, ncol, vcoord, to_dry_factor) real(kind_phys), intent(in) :: mmr(:,:,:) ! constituents array integer, intent(in) :: ncol ! number of columns - integer, intent(in) :: vcoord + integer, intent(in) :: energy_formula real(kind_phys), optional, intent(in) :: to_dry_factor(:,:) - call water_composition_update(mmr, ncol, vcoord, to_dry_factor=to_dry_factor) + call water_composition_update(mmr, ncol, energy_formula, to_dry_factor=to_dry_factor) end subroutine cam_thermo_water_update !=========================================================================== @@ -1580,8 +1581,8 @@ subroutine get_hydrostatic_energy_1hd(tracer, moist_mixing_ratio, pdel_in, & cp_or_cv, U, V, T, vcoord, ptop, phis, z_mid, dycore_idx, qidx, & te, se, po, ke, wv, H2O, liq, ice) + use cam_thermo_formula, only: ENERGY_FORMULA_DYCORE_FV, ENERGY_FORMULA_DYCORE_SE, ENERGY_FORMULA_DYCORE_MPAS use cam_logfile, only: iulog - use dyn_tests_utils, only: vc_height, vc_moist_pressure, vc_dry_pressure use air_composition, only: wv_idx use air_composition, only: dry_air_species_num use physconst, only: rga, latvap, latice @@ -1600,7 +1601,7 @@ subroutine get_hydrostatic_energy_1hd(tracer, moist_mixing_ratio, pdel_in, & real(kind_phys), intent(in) :: U(:,:) real(kind_phys), intent(in) :: V(:,:) real(kind_phys), intent(in) :: T(:,:) - integer, intent(in) :: vcoord ! vertical coordinate + integer, intent(in) :: vcoord !REMOVECAM - vcoord or energy formula to use real(kind_phys), intent(in), optional :: ptop(:) real(kind_phys), intent(in), optional :: phis(:) real(kind_phys), intent(in), optional :: z_mid(:,:) @@ -1693,12 +1694,12 @@ subroutine get_hydrostatic_energy_1hd(tracer, moist_mixing_ratio, pdel_in, & ke_vint = 0._kind_phys se_vint = 0._kind_phys select case (vcoord) - case(vc_moist_pressure, vc_dry_pressure) + case(ENERGY_FORMULA_DYCORE_FV, ENERGY_FORMULA_DYCORE_SE) if (.not. present(ptop).or. (.not. present(phis))) then write(iulog, *) subname, ' ptop and phis must be present for ', & - 'moist/dry pressure vertical coordinate' + 'FV/SE energy formula' call endrun(subname//': ptop and phis must be present for '// & - 'moist/dry pressure vertical coordinate') + 'FV/SE energy formula') end if po_vint = ptop do kdx = 1, SIZE(tracer, 2) @@ -1714,12 +1715,12 @@ subroutine get_hydrostatic_energy_1hd(tracer, moist_mixing_ratio, pdel_in, & do idx = 1, SIZE(tracer, 1) po_vint(idx) = (phis(idx) * po_vint(idx) * rga) end do - case(vc_height) + case(ENERGY_FORMULA_DYCORE_MPAS) if (.not. present(phis)) then write(iulog, *) subname, ' phis must be present for ', & - 'height-based vertical coordinate' + 'MPAS energy formula' call endrun(subname//': phis must be present for '// & - 'height-based vertical coordinate') + 'MPAS energy formula') end if po_vint = 0._kind_phys do kdx = 1, SIZE(tracer, 2) @@ -1734,8 +1735,8 @@ subroutine get_hydrostatic_energy_1hd(tracer, moist_mixing_ratio, pdel_in, & end do end do case default - write(iulog, *) subname, ' vertical coordinate not supported: ', vcoord - call endrun(subname//': vertical coordinate not supported') + write(iulog, *) subname, ' energy formula not supported: ', vcoord + call endrun(subname//': energy formula not supported') end select if (present(te)) then te = se_vint + po_vint + ke_vint diff --git a/src/data/cam_thermo_formula.F90 b/src/data/cam_thermo_formula.F90 new file mode 100644 index 00000000..56a56cf7 --- /dev/null +++ b/src/data/cam_thermo_formula.F90 @@ -0,0 +1,24 @@ +module cam_thermo_formula + + implicit none + private + save + + ! saves energy formula to use for physics and dynamical core + ! for use in cam_thermo, air_composition and other modules + ! separated into cam_thermo_formula module for clean dependencies + + ! energy_formula options (was vcoord in CAM and stored in dyn_tests_utils) + integer, public, parameter :: ENERGY_FORMULA_DYCORE_FV = 0 ! vc_moist_pressure + integer, public, parameter :: ENERGY_FORMULA_DYCORE_SE = 1 ! vc_dry_pressure + integer, public, parameter :: ENERGY_FORMULA_DYCORE_MPAS = 2 ! vc_height + + !> \section arg_table_cam_thermo_formula Argument Table + !! \htmlinclude cam_thermo_formula.html + ! energy_formula_dycore: energy formula used for dynamical core + ! written by the dynamical core + integer, public :: energy_formula_dycore + ! energy_formula_physics: energy formula used for physics + integer, public :: energy_formula_physics = ENERGY_FORMULA_DYCORE_FV + +end module cam_thermo_formula diff --git a/src/dynamics/tests/dyn_tests_utils.meta b/src/data/cam_thermo_formula.meta similarity index 71% rename from src/dynamics/tests/dyn_tests_utils.meta rename to src/data/cam_thermo_formula.meta index 7bfcbf1c..f8bf04a1 100644 --- a/src/dynamics/tests/dyn_tests_utils.meta +++ b/src/data/cam_thermo_formula.meta @@ -1,16 +1,16 @@ [ccpp-table-properties] - name = dyn_tests_utils + name = cam_thermo_formula type = module [ccpp-arg-table] - name = dyn_tests_utils + name = cam_thermo_formula type = module -[ vc_dycore ] +[ energy_formula_dycore ] standard_name = total_energy_formula_for_dycore units = 1 type = integer dimensions = () -[ vc_physics ] +[ energy_formula_physics ] standard_name = total_energy_formula_for_physics units = 1 type = integer diff --git a/src/data/physconst.F90 b/src/data/physconst.F90 index 774b8f3d..8a528342 100644 --- a/src/data/physconst.F90 +++ b/src/data/physconst.F90 @@ -114,7 +114,6 @@ subroutine physconst_readnl(nlfile) use mpi, only: mpi_real8 use cam_logfile, only: iulog use runtime_obj, only: unset_real - use dyn_tests_utils, only: vc_physics, vc_moist_pressure ! Dummy argument: filepath for file containing namelist input character(len=*), intent(in) :: nlfile @@ -288,9 +287,6 @@ subroutine physconst_readnl(nlfile) ez = omega / sqrt(0.375_kind_phys) - ! set physics vertical coordinate info - vc_physics = vc_moist_pressure - end subroutine physconst_readnl end module physconst diff --git a/src/data/registry.xml b/src/data/registry.xml index daf04535..bda3800d 100644 --- a/src/data/registry.xml +++ b/src/data/registry.xml @@ -13,10 +13,10 @@ $SRCROOT/src/physics/utils/tropopause_climo_read.meta $SRCROOT/src/data/air_composition.meta $SRCROOT/src/data/cam_thermo.meta + $SRCROOT/src/data/cam_thermo_formula.meta $SRCROOT/src/data/ref_pres.meta $SRCROOT/src/dynamics/utils/vert_coord.meta $SRCROOT/src/dynamics/utils/hycoef.meta - $SRCROOT/src/dynamics/tests/dyn_tests_utils.meta diff --git a/src/dynamics/mpas/dyn_comp.F90 b/src/dynamics/mpas/dyn_comp.F90 index 30e4b2a5..666a6eff 100644 --- a/src/dynamics/mpas/dyn_comp.F90 +++ b/src/dynamics/mpas/dyn_comp.F90 @@ -184,6 +184,8 @@ end subroutine dyn_readnl ! ! Called by `cam_init` in `src/control/cam_comp.F90`. subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) + use cam_thermo_formula, only: energy_formula_dycore, ENERGY_FORMULA_DYCORE_MPAS + type(runtime_options), intent(in) :: cam_runtime_opts type(dyn_import_t), intent(in) :: dyn_in type(dyn_export_t), intent(in) :: dyn_out @@ -200,6 +202,9 @@ subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) nullify(pio_init_file) nullify(pio_topo_file) + ! Set dynamical core energy formula for use in cam_thermo. + energy_formula_dycore = ENERGY_FORMULA_DYCORE_MPAS + allocate(constituent_name(num_advected), stat=ierr) call check_allocate(ierr, subname, 'constituent_name(num_advected)', 'dyn_comp', __LINE__) diff --git a/src/dynamics/none/dyn_comp.F90 b/src/dynamics/none/dyn_comp.F90 index 968e04e2..9ecb3022 100644 --- a/src/dynamics/none/dyn_comp.F90 +++ b/src/dynamics/none/dyn_comp.F90 @@ -60,6 +60,9 @@ subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) type(dyn_import_t), intent(out) :: dyn_in type(dyn_export_t), intent(out) :: dyn_out + ! Note: dynamical core energy formula is set in dyn_grid based on dynamical core + ! that provided the initial conditions file + end subroutine dyn_init !============================================================================== diff --git a/src/dynamics/none/dyn_grid.F90 b/src/dynamics/none/dyn_grid.F90 index bc714e22..8e5a2a69 100644 --- a/src/dynamics/none/dyn_grid.F90 +++ b/src/dynamics/none/dyn_grid.F90 @@ -49,6 +49,7 @@ module dyn_grid ! Private module routines private :: find_units private :: find_dimension + private :: find_energy_formula !============================================================================== CONTAINS @@ -61,6 +62,7 @@ subroutine model_grid_init() use pio, only: PIO_BCAST_ERROR, pio_seterrorhandling use pio, only: pio_get_var, pio_freedecomp use pio, only: pio_read_darray + use pio, only: pio_inq_att use spmd_utils, only: npes, iam use cam_pio_utils, only: cam_pio_handle_error, cam_pio_find_var use cam_pio_utils, only: cam_pio_var_info, pio_subsystem @@ -126,6 +128,7 @@ subroutine model_grid_init() ! We will handle errors for this routine call pio_seterrorhandling(fh_ini, PIO_BCAST_ERROR, oldmethod=err_handling) + ! Find the latitude variable and dimension(s) call cam_pio_find_var(fh_ini, (/ 'lat ', 'lat_d ', 'latitude' /), lat_name, & lat_vardesc, var_found) @@ -159,6 +162,11 @@ subroutine model_grid_init() write(iulog, *) subname, ': Grid is unstructured' end if end if + + ! Find the dynamical core from which snapshot was saved to populate energy formula used + ! Some information about the grid is needed to determine this. + call find_energy_formula(fh_ini, grid_is_latlon) + ! Find the longitude variable and dimension(s) call cam_pio_find_var(fh_ini, (/ 'lon ', 'lon_d ', 'longitude' /), lon_name, & lon_vardesc, var_found) @@ -626,4 +634,53 @@ subroutine find_dimension(file, dim_names, found_name, dim_len) end if end subroutine find_dimension + !=========================================================================== + + subroutine find_energy_formula(file, grid_is_latlon) + use pio, only: file_desc_t, var_desc_t + use pio, only: pio_inq_att, PIO_NOERR + use cam_thermo_formula, only: energy_formula_physics, energy_formula_dycore + use cam_thermo_formula, only: ENERGY_FORMULA_DYCORE_SE, ENERGY_FORMULA_DYCORE_FV, ENERGY_FORMULA_DYCORE_MPAS + + ! Find which dynamical core is used in and set the energy formulation + ! (also called vc_dycore in CAM) + + type(file_desc_t), intent(inout) :: file + logical, intent(in) :: grid_is_latlon + + ! Local variables + type(var_desc_t) :: vardesc + integer :: ierr, xtype + character(len=*), parameter :: subname = 'find_energy_formula' + + energy_formula_dycore = -1 + + ! Is FV dycore? (has lat lon dimension) + if(grid_is_latlon) then + energy_formula_dycore = ENERGY_FORMULA_DYCORE_FV + if(masterproc) then + write(iulog, *) subname, ': Null dycore will use FV dycore energy formula' + endif + else + ! Is SE dycore? + ierr = pio_inq_att(file, vardesc, 'ne', xtype) + if (ierr == PIO_NOERR) then + ! Has ne property - is SE dycore. + ! if has fv_nphys then is physics grid (ne..pg..), but the energy formulation is the same. + energy_formula_dycore = ENERGY_FORMULA_DYCORE_SE + if(masterproc) then + write(iulog, *) subname, ': Null dycore will use SE dycore energy formula' + endif + else + ! Is unstructured and is MPAS dycore + ! there are no global attributes to identify MPAS dycore, so this has to do for now. + energy_formula_dycore = ENERGY_FORMULA_DYCORE_MPAS + if(masterproc) then + write(iulog, *) subname, ': Null dycore will use MPAS dycore energy formula' + endif + endif + endif + + end subroutine + end module dyn_grid diff --git a/src/dynamics/se/dp_coupling.F90 b/src/dynamics/se/dp_coupling.F90 index 1eca0982..22f8d6b8 100644 --- a/src/dynamics/se/dp_coupling.F90 +++ b/src/dynamics/se/dp_coupling.F90 @@ -582,12 +582,12 @@ subroutine derived_phys_dry(cam_runtime_opts, phys_state, phys_tend) use cam_constituents, only: const_qmin use runtime_obj, only: wv_stdname use physics_types, only: lagrangian_vertical - use physconst, only: cpair, gravit, zvir, cappa + use physconst, only: cpair, gravit, zvir use cam_thermo, only: cam_thermo_dry_air_update, cam_thermo_water_update use air_composition, only: thermodynamic_active_species_num use air_composition, only: thermodynamic_active_species_idx use air_composition, only: dry_air_species_num - use physics_types, only: cpairv, rairv, zvirv + use physics_types, only: cpairv, rairv, zvirv, cappav use physics_grid, only: columns_on_task use geopotential_temp, only: geopotential_temp_run use static_energy, only: update_dry_static_energy_run @@ -597,7 +597,7 @@ subroutine derived_phys_dry(cam_runtime_opts, phys_state, phys_tend) use shr_vmath_mod, only: shr_vmath_log use shr_kind_mod, only: shr_kind_cx use dyn_comp, only: ixo, ixo2, ixh, ixh2 - use dyn_tests_utils, only: vc_dry_pressure + use cam_thermo_formula,only: ENERGY_FORMULA_DYCORE_SE ! arguments type(runtime_options), intent(in) :: cam_runtime_opts ! Runtime settings object @@ -690,16 +690,9 @@ subroutine derived_phys_dry(cam_runtime_opts, phys_state, phys_tend) ! wet pressure variables (should be removed from physics!) factor_array(:,:) = 1.0_kind_phys !$omp parallel do num_threads(horz_num_threads) private (k, i, m_cnst) - ! **TEMP** TODO CHECK hplin: check indices to use here - ! in cam6_3_109 after fix in 6_3_127: loop from dry_air_species_num + 1, thermodynamic_active_species_num - ! in cam-sima: factor_array only contains m = ix_q - ! hplin -- to get same answers as CAM-SIMA ix_q would need to be used, - ! but the CAM version appears to be correct. this should be science checked - ! // **TEMP** do m_cnst = dry_air_species_num + 1, thermodynamic_active_species_num + ! include all water species in the factor array. m = thermodynamic_active_species_idx(m_cnst) - ! write(6,*) "hplin dp_coupling m, m_cnst", m, m_cnst - ! m = ix_q do k = 1, nlev do i = 1, pcols ! at this point all q's are dry @@ -746,7 +739,7 @@ subroutine derived_phys_dry(cam_runtime_opts, phys_state, phys_tend) end do !------------------------------------------------------------ - ! Apply limiters to mixing ratios of major species (waccmx): + ! Apply limiters to mixing ratios of major species (WACCMX): ! Ensure N2 = 1 - (O2 + O + H) mmr is greater than 0 ! Check for unusually large H2 values and set to lower value. !------------------------------------------------------------ @@ -811,20 +804,15 @@ subroutine derived_phys_dry(cam_runtime_opts, phys_state, phys_tend) ! (note: at this point q is dry) ! call cam_thermo_water_update( & - mmr = const_data_ptr, & ! dry MMR - ncol = pcols, & - vcoord = vc_dry_pressure & + mmr = const_data_ptr, & ! dry MMR + ncol = pcols, & + energy_formula = ENERGY_FORMULA_DYCORE_SE & ) !$omp parallel do num_threads(horz_num_threads) private (k, i) do k = 1, nlev do i = 1, pcols - ! **TEMP** TODO CHECK hplin: CAM and CAM-SIMA version differ - ! CAM version: - ! phys_state%exner(i,k) = (phys_state%pint(i,pver+1)/phys_state%pmid(i,k))**cappav(i,k) - - ! CAM-SIMA version (uses constant cappa): - phys_state%exner(i,k) = (phys_state%pint(i,pver+1)/phys_state%pmid(i,k))**cappa + phys_state%exner(i,k) = (phys_state%pint(i,pver+1)/phys_state%pmid(i,k))**cappav(i,k) end do end do diff --git a/src/dynamics/se/dyn_comp.F90 b/src/dynamics/se/dyn_comp.F90 index c9906b1a..5f8dd2e6 100644 --- a/src/dynamics/se/dyn_comp.F90 +++ b/src/dynamics/se/dyn_comp.F90 @@ -566,6 +566,7 @@ subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) use dyn_thermo, only: get_molecular_diff_coef_reference !use cam_history, only: addfld, add_default, horiz_only, register_vector_field use gravity_waves_sources, only: gws_init + use cam_thermo_formula, only: energy_formula_dycore, ENERGY_FORMULA_DYCORE_SE !SE dycore: use prim_advance_mod, only: prim_advance_init @@ -581,7 +582,6 @@ subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) use control_mod, only: runtype, raytau0, raykrange, rayk0, molecular_diff, nu_top use test_fvm_mapping, only: test_mapping_addfld use control_mod, only: vert_remap_uvTq_alg, vert_remap_tracer_alg - use dyn_tests_utils, only: vc_dycore, vc_dry_pressure ! Dummy arguments: type(runtime_options), intent(in) :: cam_runtime_opts @@ -643,8 +643,8 @@ subroutine dyn_init(cam_runtime_opts, dyn_in, dyn_out) real(r8) :: tau0, krange, otau0, scale real(r8) :: km_sponge_factor_local(nlev+1) !---------------------------------------------------------------------------- - ! Set dynamical core vertical coordinate - vc_dycore = vc_dry_pressure + ! Set dynamical core energy formula for use in cam_thermo. + energy_formula_dycore = ENERGY_FORMULA_DYCORE_SE ! Now allocate and set condenstate vars allocate(cnst_name_gll(qsize), stat=iret) ! constituent names for gll tracers diff --git a/src/dynamics/tests/dyn_tests_utils.F90 b/src/dynamics/tests/dyn_tests_utils.F90 index 9ac2a2f1..3a3596b0 100644 --- a/src/dynamics/tests/dyn_tests_utils.F90 +++ b/src/dynamics/tests/dyn_tests_utils.F90 @@ -20,10 +20,4 @@ module dyn_tests_utils integer, parameter :: vc_height = 2 ! Height vertical coord public :: vc_moist_pressure, vc_dry_pressure, vc_height -!> \section arg_table_dyn_tests_utils Argument Table -!! \htmlinclude dyn_tests_utils.html - integer :: vc_dycore ! vertical coordinate of dynamical core - set in dyn_comp.F90 - integer :: vc_physics ! vertical coordinate of physics - set in physconst.F90 - public :: vc_dycore, vc_physics - end module dyn_tests_utils