Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generalized subroutine to read the state variables from the namelist (get_state_variables) #783

Open
wants to merge 36 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
17f26ab
Making a generic subroutine to read model_nml:model_state_variables i…
mjs2369 Nov 12, 2024
179d34f
Adding a unit test for the state var table read
mjs2369 Nov 13, 2024
f18942e
Fixing file name for dev test
mjs2369 Nov 13, 2024
c0bb758
Changing the name of the subroutine to get_state_variables
mjs2369 Dec 10, 2024
1914a42
Changing the name of the dev test to better fit the subroutine name and
mjs2369 Dec 10, 2024
c168bbe
Removing MOM6 version of subroutine and making necessary adjustments
mjs2369 Dec 10, 2024
e82df2e
including other needed input.nml file for test
mjs2369 Dec 10, 2024
f177c69
Removing MPI from dev test
mjs2369 Dec 12, 2024
ccf37db
Adding an interface to create 2 distinct subroutines for get_state_va…
mjs2369 Dec 12, 2024
7381c2b
Updating MOM6 model_mod to use new interface
mjs2369 Dec 12, 2024
914468f
Replacing CAM-FV version of the routine with generic in default_model…
mjs2369 Dec 12, 2024
15e984f
Replacing CAM-SE version of the routine with generic in default_model…
mjs2369 Dec 12, 2024
6ed2022
Removing forgotten print statements from ca-fv model_mod
mjs2369 Dec 12, 2024
7336795
Using separate namelist groups in a single input.nml as opposed to us…
mjs2369 Dec 12, 2024
14352e1
Replacing WRF_HYDRO version of the routine with generic in default_mo…
mjs2369 Dec 12, 2024
4d996bd
WRF_HYDRO: Removing varibles that are no longer used due to changes
mjs2369 Dec 16, 2024
b1f0878
MOM6: Removing varibles that are no longer used due to changes
mjs2369 Dec 16, 2024
80a63e1
Replacing POP version of the routine with generic in default_model_mod
mjs2369 Dec 16, 2024
d76f1cb
Replacing aether_lat-lon version of the routine with generic in defau…
mjs2369 Dec 16, 2024
979a9cf
Replacing NOAH version of the routine with generic in default_model_mod
mjs2369 Dec 16, 2024
3e629cf
Replacing MITgcm_ocean version of the routine with generic in default…
mjs2369 Dec 16, 2024
0d759f3
Replacing CICE version of the routine with generic in default_model_mod
mjs2369 Dec 16, 2024
4d790b5
Fixing print statement in default_model_mod
mjs2369 Dec 17, 2024
83ad490
- Make function instead of subroutine
mjs2369 Jan 9, 2025
4da5986
Updating dev test; remove prints and test all components of the state…
mjs2369 Jan 9, 2025
022e6ba
Use parse_variables in the 3d template model_mod
mjs2369 Jan 9, 2025
87e21ba
Merge branch 'main' into get_state_variables
mjs2369 Jan 9, 2025
23c8d84
Fix typo in state_structure_mod.f90
mjs2369 Jan 9, 2025
ceeb76d
standard: .eqv. for logicals
hkershaw-brown Jan 13, 2025
e5057da
fix: use QTY_NAME rather than hardcoded number
hkershaw-brown Jan 13, 2025
b0c2a00
chore: add test_parse_variables program to gitignore
hkershaw-brown Jan 13, 2025
a4b10d6
Fix state_var_type%netcdf_var_names character length in default_model…
mjs2369 Jan 13, 2025
79cd8ea
Add needed trim to default_model_mod.f90
mjs2369 Jan 13, 2025
b66ee82
Making final adjustments and fixes to the dev test
mjs2369 Jan 13, 2025
d6bebae
Reverting the MITgcm_ocean model_mod to the original (cannot use the new
mjs2369 Jan 13, 2025
e78fbda
Adding the logic to use the default state variables if model_state_va…
mjs2369 Jan 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Making final adjustments and fixes to the dev test
mjs2369 committed Jan 13, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit b66ee828b265e9e91a6a92b77ab13e4c38c3fcbb
22 changes: 12 additions & 10 deletions developer_tests/namelist/test_parse_variables.f90
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ program test_parse_variables

use utilities_mod, only : find_namelist_in_file, check_namelist_read
use mpi_utilities_mod, only : initialize_mpi_utilities, finalize_mpi_utilities
use types_mod, only : vtablenamelength, MISSING_R8
use types_mod, only : vtablenamelength, MISSING_R8, r8
use default_model_mod, only : parse_variables_clamp, parse_variables, &
state_var_type, &
MAX_STATE_VARIABLE_FIELDS_CLAMP, &
@@ -32,7 +32,7 @@ program test_parse_variables

call initialize_mpi_utilities('test_parse_variables')

call plan(26)
call plan(28)

! Using namelist entry WITHOUT clamping values

@@ -49,8 +49,9 @@ program test_parse_variables
call ok(state_vars%qtys(1) == QTY_SALINITY)
call ok(state_vars%qtys(2) == QTY_POTENTIAL_TEMPERATURE)
call ok(state_vars%qtys(3) == QTY_U_CURRENT_COMPONENT)
call ok(allocated(state_vars_clamp%clamp_values) .eqv. .false.)
call ok(state_vars%updates(1) .eqv. .true.)
call ok(state_vars%updates(2) .eqv. .true.)
call ok(state_vars%updates(2) .eqv. .false.)
call ok(state_vars%updates(3) .eqv. .true.)
mjs2369 marked this conversation as resolved.
Show resolved Hide resolved

! Using namelist entry WITH clamping values
@@ -68,14 +69,15 @@ program test_parse_variables
call ok(state_vars_clamp%qtys(1) == QTY_SALINITY)
call ok(state_vars_clamp%qtys(2) == QTY_POTENTIAL_TEMPERATURE)
call ok(state_vars_clamp%qtys(3) == QTY_U_CURRENT_COMPONENT)
call ok(state_vars_clamp%clamp_values(1,1) == 0.0)
call ok(state_vars_clamp%clamp_values(1,2) == 0.0)
call ok(state_vars_clamp%clamp_values(2,1) == 0.0)
call ok(state_vars_clamp%clamp_values(2,2) == 0.0)
call ok(state_vars_clamp%clamp_values(3,1) == 0.0)
call ok(state_vars_clamp%clamp_values(3,2) == 0.0)
call ok(allocated(state_vars_clamp%clamp_values) .eqv. .true.)
call ok(state_vars_clamp%clamp_values(1,1) == 0.0_r8)
call ok(state_vars_clamp%clamp_values(1,2) == 0.0_r8)
call ok(state_vars_clamp%clamp_values(2,1) == 0.0_r8)
call ok(state_vars_clamp%clamp_values(2,2) == 0.0_r8)
call ok(state_vars_clamp%clamp_values(3,1) == 0.0_r8)
call ok(state_vars_clamp%clamp_values(3,2) == 0.0_r8)
call ok(state_vars_clamp%updates(1) .eqv. .true.)
call ok(state_vars_clamp%updates(2) .eqv. .true.)
call ok(state_vars_clamp%updates(2) .eqv. .false.)
call ok(state_vars_clamp%updates(3) .eqv. .true.)

call finalize_mpi_utilities()
4 changes: 2 additions & 2 deletions developer_tests/namelist/work/input.nml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
&model_nml_clamp
state_variables_clamp = 'SALT_CUR ', 'QTY_SALINITY', '0.0', '0.0', 'UPDATE',
'TEMP_CUR ', 'QTY_POTENTIAL_TEMPERATURE', '0.0', '0.0', 'UPDATE',
'TEMP_CUR ', 'QTY_POTENTIAL_TEMPERATURE', '0.0', '0.0', 'NO_COPY_BACK',
'UVEL_CUR ', 'QTY_U_CURRENT_COMPONENT ', '0', '0.0', 'UPDATE',
/

&model_nml
state_variables = 'SALT_CUR ', 'QTY_SALINITY', 'UPDATE',
'TEMP_CUR ', 'QTY_POTENTIAL_TEMPERATURE', 'UPDATE',
'TEMP_CUR ', 'QTY_POTENTIAL_TEMPERATURE', 'NO_COPY_BACK',
'UVEL_CUR ', 'QTY_U_CURRENT_COMPONENT ', 'update'
/