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

Add updating of soil moisture and soil temperature for Noah-MP to global_cycle #834

Merged
merged 18 commits into from
Jul 12, 2023

Conversation

ClaraDraper-NOAA
Copy link
Contributor

@ClaraDraper-NOAA ClaraDraper-NOAA commented Jul 7, 2023

DESCRIPTION OF CHANGES:

Main changes:

  • Added option to update Noah-MP restarts with increments from the gsi to global_cycle/land_increments
  • Added option to update soil moisture for Noah-MP only (previously was soil temperature only)
  • Removed LSM option from namelist, since was redundant with IS_NOAHMP
  • Replaced the C768.landincsoil test (STC update to Noah restarts) with the C192.landincsoilnoahmp test (SLC, SMC, and STC updates to Noah-MP restarts)

Inputs for new test are on hera:
/scratch2/BMC/gsienkf/Clara.Draper/global_cycle_newtest/input_data_noahmp/

.../input_data/sfcincr_gsi can be deleted (everything else in that directory is still needed)

Example output for new test on hera:
/scratch2/BMC/gsienkf/Clara.Draper/global_cycle_newtest/baseline_data/c192.lndincsoilnoahmp

TESTS CONDUCTED:

All tests used abe5c94.

  • Compile branch on all Tier 1 machines using Intel (Orion, Jet, Hera and WCOSS2).
  • Compile branch on Hera using GNU.
  • Compile branch in 'Debug' mode on WCOSS2.
  • Run unit tests locally on any Tier 1 machine. (Done on Hera and WCOSS2. All passed.)
  • Run relevant consistency tests locally on all Tier 1 machine.

Also created the Doxygen on Hera. No warnings were noted.

DEPENDENCIES:

None

DOCUMENTATION:

None.

ISSUE:

Fixes #832

CONTRIBUTORS:

None.

@GeorgeGayno-NOAA GeorgeGayno-NOAA self-requested a review July 10, 2023 12:58
@GeorgeGayno-NOAA
Copy link
Collaborator

@ClaraDraper-NOAA I will look at this today. I can help with testing on machines you can't access.

@GeorgeGayno-NOAA
Copy link
Collaborator

@WalterKolczynski-NOAA - This PR changes the global_cycle program's NAMCYC namelist. The LSM variable is being removed from that namelist. Does this change affect the global workflow?

@WalterKolczynski-NOAA
Copy link
Contributor

@GeorgeGayno-NOAA I don't think so. We're still using the global_cycle.sh from ufs-utils which already seems to not include the setting in its namelist.

@GeorgeGayno-NOAA
Copy link
Collaborator

I am getting Doxygen warnings in landincrements.f90 for undefined variables/arguments. I got rid of them as follows:

--- a/sorc/global_cycle.fd/land_increments.f90
+++ b/sorc/global_cycle.fd/land_increments.f90
@@ -18,7 +18,7 @@ module land_increments
                                                      !! copied from GFS_typedefs.F90

     ! control state for soil analysis:
-    integer, parameter       :: lsoil_incr=3 ! number of layers to add incrments to
+    integer, parameter       :: lsoil_incr=3 !< number of layers to add incrments to

     real, parameter          :: tfreez=273.16 !< con_t0c  in physcons
 contains
@@ -37,12 +37,17 @@ contains
  !! @param[inout] RLA Latitude on the cubed-sphere tile
  !! @param[inout] RLO Longitude on the cubed-sphere tile
  !! @param[inout] STC_STATE
+ !! @param[inout] SMC_STATE
+ !! @param[inout] SLC_STATE
+ !! @param[out] stc_updated
+ !! @param[out] slc_updated
  !! @param[in] SOILSNOW_TILE Land mask for increments on the cubed-sphere tile
  !! @param[in] SOILSNOW_FG_TILE First guess land mask for increments on the cubed-sphere tile
  !! @param[in] LENSFC Number of land points on a tile
  !! @param[in] LSOIL Number of soil layers
  !! @param[in] IDIM 'I' dimension of a tile
  !! @param[in] JDIM 'J' dimension of a tile
+ !! @param[in] lsm
  !! @param[in] MYRANK MPI rank number
  !!
  !! @author Clara Draper. @date March 2021
@@ -441,8 +446,8 @@ end subroutine calculate_landinc_mask
 !! appropriate max. values for SMC).
 !! Here: adjust (frozen) soil moisture to be consistent with changes in
 !! soil temperature from DA
-
-!> @param[in] lsm Integer code for the LSM
+!!
+!! @param[in] lsm Integer code for the LSM
 !! @param[in] isot Integer code for the soil type data set
 !! @param[in] ivegsrc Integer code for the vegetation type data set
 !! @param[in] lensfc Number of land points for this tile
@@ -453,6 +458,9 @@ end subroutine calculate_landinc_mask
 !! @param[in] stc_adj Analysis soil temperature states
 !! @param[inout] smc_adj Analysis soil moisture states
 !! @param[inout] slc_adj Analysis liquid soil moisture states
+!! @param[in] stc_updated
+!! @param[in] slc_updated
+!! @param[in] zsoil
 !! @author Clara Draper @date April 2021

@GeorgeGayno-NOAA
Copy link
Collaborator

@GeorgeGayno-NOAA
Copy link
Collaborator

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

@GeorgeGayno-NOAA
Copy link
Collaborator

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

May I check these changes into your branch?

@ClaraDraper-NOAA
Copy link
Contributor Author

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

May I check these changes into your branch?

Yes, please do! I'm about to look at the unit test now.

@GeorgeGayno-NOAA
Copy link
Collaborator

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

May I check these changes into your branch?

Yes, please do! I'm about to look at the unit test now.

I don't have permission to push to your branch. The updated files (for Jet and Orion) are on Hera: /scratch1/NCEPDEV/da/George.Gayno/ufs_utils.git/UFS_UTILS.clara/reg_tests/global_cycle

@ClaraDraper-NOAA
Copy link
Contributor Author

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

May I check these changes into your branch?

Yes, please do! I'm about to look at the unit test now.

I don't have permission to push to your branch. The updated files (for Jet and Orion) are on Hera: /scratch1/NCEPDEV/da/George.Gayno/ufs_utils.git/UFS_UTILS.clara/reg_tests/global_cycle

I've pushed the updates to the jet and orion driver scripts.

@ClaraDraper-NOAA
Copy link
Contributor Author

I am getting Doxygen warnings in landincrements.f90 for undefined variables/arguments. I got rid of them as follows:

--- a/sorc/global_cycle.fd/land_increments.f90
+++ b/sorc/global_cycle.fd/land_increments.f90
@@ -18,7 +18,7 @@ module land_increments
                                                      !! copied from GFS_typedefs.F90

     ! control state for soil analysis:
-    integer, parameter       :: lsoil_incr=3 ! number of layers to add incrments to
+    integer, parameter       :: lsoil_incr=3 !< number of layers to add incrments to

     real, parameter          :: tfreez=273.16 !< con_t0c  in physcons
 contains
@@ -37,12 +37,17 @@ contains
  !! @param[inout] RLA Latitude on the cubed-sphere tile
  !! @param[inout] RLO Longitude on the cubed-sphere tile
  !! @param[inout] STC_STATE
+ !! @param[inout] SMC_STATE
+ !! @param[inout] SLC_STATE
+ !! @param[out] stc_updated
+ !! @param[out] slc_updated
  !! @param[in] SOILSNOW_TILE Land mask for increments on the cubed-sphere tile
  !! @param[in] SOILSNOW_FG_TILE First guess land mask for increments on the cubed-sphere tile
  !! @param[in] LENSFC Number of land points on a tile
  !! @param[in] LSOIL Number of soil layers
  !! @param[in] IDIM 'I' dimension of a tile
  !! @param[in] JDIM 'J' dimension of a tile
+ !! @param[in] lsm
  !! @param[in] MYRANK MPI rank number
  !!
  !! @author Clara Draper. @date March 2021
@@ -441,8 +446,8 @@ end subroutine calculate_landinc_mask
 !! appropriate max. values for SMC).
 !! Here: adjust (frozen) soil moisture to be consistent with changes in
 !! soil temperature from DA
-
-!> @param[in] lsm Integer code for the LSM
+!!
+!! @param[in] lsm Integer code for the LSM
 !! @param[in] isot Integer code for the soil type data set
 !! @param[in] ivegsrc Integer code for the vegetation type data set
 !! @param[in] lensfc Number of land points for this tile
@@ -453,6 +458,9 @@ end subroutine calculate_landinc_mask
 !! @param[in] stc_adj Analysis soil temperature states
 !! @param[inout] smc_adj Analysis soil moisture states
 !! @param[inout] slc_adj Analysis liquid soil moisture states
+!! @param[in] stc_updated
+!! @param[in] slc_updated
+!! @param[in] zsoil
 !! @author Clara Draper @date April 2021

I've pushed these changes.

@ClaraDraper-NOAA
Copy link
Contributor Author

@GeorgeGayno-NOAA I've updated the unit test code so that the old test now correctly runs. I'll update it tomorrow to test my newly added features (for Noah-MP).

@GeorgeGayno-NOAA
Copy link
Collaborator

I got the regression tests running on Jet and Orion. And I can run on WCOSS2 when the maintenance ends.

I ran the tests on WCOSS2. Find my script on Hera: /scratch1/NCEPDEV/da/George.Gayno/ufs_utils.git/UFS_UTILS.clara/reg_tests/global_cycle/driver.wcoss2.sh

@GeorgeGayno-NOAA
Copy link
Collaborator

@ClaraDraper-NOAA Just a few final checks before I merge.

@ClaraDraper-NOAA
Copy link
Contributor Author

Running to a meeting now, but I have one more update to push (with a new unit test). It's running now, so I'll push it in an hour.

@ClaraDraper-NOAA
Copy link
Contributor Author

I just pushed the updated unit test - from my end, it's ready to merge.

Copy link
Collaborator

@GeorgeGayno-NOAA GeorgeGayno-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@GeorgeGayno-NOAA GeorgeGayno-NOAA merged commit 8b7e4a1 into ufs-community:develop Jul 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update global_cycle to handle Noah-MP soil moisture and soil temp. increments in land_increments.f90
3 participants