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

Sync with NoahMP Github version with all NoahMP updates since v4.3 #1641

Merged
merged 11 commits into from
Jan 17, 2022

Conversation

cenlinhe
Copy link
Contributor

@cenlinhe cenlinhe commented Jan 13, 2022

TYPE: new feature

KEYWORDS: NoahMP

SOURCE: Cenlin He (NCAR)

DESCRIPTION OF CHANGES:
This is step one to synchronize with latest NoahMP Github code version in order to prepare for connecting WRF directly to NoahMP unified Github repo.

Specifically, the updates in NoahMP since version 4.3:

  1. three additional runoff schemes added (OPT_RUN=6, 7, 8)
  2. new tile drainage capability/scheme added (OPT_TDRN)
  3. New soil time step control capability added to allow users specify a different soil time step from main
    NoahMP time step
  4. additional water and energy budget terms added for output and diagnosis
  5. updated flood irrigation parameters
  6. add constraints for snow thickness during compaction
  7. updated snow viscosity coefficient in compaction process
  8. add canopy heat storage in canopy temperature calculation
  9. updated formulation and parameter values for TOPMODEL groundwater scheme (OPT_RUN=1)
  10. Bug fixes: SWE cap value in initialization, NoahMP snow depth update, snow layer index update, floating
    issues in runoff scheme, and BATS albedo scheme

LIST OF MODIFIED FILES: list of changed files (use git diff --name-status master to get formatted list)
M Registry/Registry.EM_COMMON
M Registry/registry.noahmp
M dyn_em/module_first_rk_step_part1.F
M dyn_em/start_em.F
M phys/module_diag_misc.F
M phys/module_diagnostics_driver.F
M phys/module_physics_init.F
M phys/module_sf_noahmp_glacier.F
M phys/module_sf_noahmp_groundwater.F
M phys/module_sf_noahmpdrv.F
M phys/module_sf_noahmplsm.F
M phys/module_surface_driver.F
M run/MPTABLE.TBL
M run/README.namelist
M run/SOILPARM.TBL

TESTS CONDUCTED:

  1. successfully compiled and tested for running in NCAR supercomputer by Cenlin He (NCAR)
  2. Jenkins tests are all pass.

RELEASE NOTE: Updates from NoahMP and linking WRF directly to NoahMP Github repo.

@cenlinhe cenlinhe requested review from a team as code owners January 13, 2022 03:47
@cenlinhe
Copy link
Contributor Author

I just found a bug in defining an "inout" variable and am re-doing all the tests for the bug fix. I will update this PR soon after successful test.

2 = Hooghoudt's equation based tile drainage
soiltstep = 0.0, ! Noah-MP soil process timestep (seconds) for solving soil water and temperature
0 = default, the same as main NoahMP model timestep
N * dt_noahmp, typically 15min or 30min
Copy link
Collaborator

Choose a reason for hiding this comment

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

@cenlinhe Can you add noahmp_output, noahmp_acc_dt, and possibly opt_infdv, opt_tdrn to this file?

@cenlinhe
Copy link
Contributor Author

The PR is now updated. I fixed the bugs and add info to README.namelist.

@davegill
Copy link
Contributor

@weiwangncar @dudhia
Folks,
If people are OK with these mods (and really, these are in the NoahMP repo, so we are basically given these AS-IS), we should approve to merge in the next step as quickly as possible.

@dudhia
Copy link
Collaborator

dudhia commented Jan 17, 2022

I could approve but some of these mods are mine. Dave could go ahead and do the software approve.

@davegill davegill self-requested a review January 17, 2022 16:27
@davegill davegill merged commit a82ce24 into wrf-model:develop Jan 17, 2022
davegill added a commit that referenced this pull request Jan 24, 2022
TYPE: bug fix

KEYWORDS: netcdfpar, Error

SOURCE: internal

DESCRIPTION OF CHANGES:
IMPORTANT: Without these mods, every commit since the parallel netcdf4 IO mods will fail the DA
build test in the regression test. For example, at least these commits:
```
fed10f4 Adding the WRF-Solar EPS model (#1547)
0bda5e0 Fix 4dvar build failure after commit 8b5bfe5 (#1652)
8b5bfe5 Thompson AA enhancements: BC aerosol, biomass burning emissions, and … (#1616)
9dc68ca After testing with UFS/GFS/FV-3, some tuning knob changes to Thompson-MP and icloud3 (cloud fraction) scheme (#1626)
96fd889 Update HONO, TERP, and CO2 emissions (#1644)
64fb190 SFCLAY=1, add shallow water roughness calculation (#1543)
609c2fc New module firebrand_spotting for WRF-Fire (#1540)
75bfe6d MYNN PBL clouds in photolysis option 4 (TUV) (#1622)
f8c4b13 Fix runtime error when using sf_surface_mosaic = 1 with use_wudapt_lcz = 0 (#1638)
b511c70 Run-time option for climate GHG for radiation (#1625)
8194c66 Bug fix for configuration option INTEL:HSW/BDW (#1645)
16c9287  bug fixes for radar_rf_opt=2 (#1642)
a82ce24 Sync with NoahMP Github version with all NoahMP updates since v4.3 (#1641)
7b642cc Bug fix for TAMDAR T VarBC (#1632)
92fd706 fix WRFDA build for Parallel netcdf-4 IO (#1634)
```
Problem:
With PR #1552 "Parallel netcdf-4 IO option" (SHA1 3cd4713), when then code was built without
the new parallel NetCDF4 compression, the build log had an `Error`. 
```
> grep Error compile.log
Fatal Error: Cannot open module file ‘wrf_data_ncpar.mod’ for reading at (1): No such file or directory
make[2]: [diffwrf] Error 1 (ignored)
make[2]: [diffwrf] Error 1 (ignored)
wrf_io.f:117: Error: Can't open included file 'mpif.h'
make[2]: [wrf_io.o] Error 1 (ignored)
Fatal Error: Cannot open module file ‘wrf_data_ncpar.mod’ for reading at (1): No such file or directory
make[2]: [field_routines.o] Error 1 (ignored)
make[2]: [libwrfio_nfpar.a] Error 127 (ignored)
make[2]: [libwrfio_nfpar.a] Error 1 (ignored)
```
The problem was related to constructing the object files in the io_netcdfpar directory. When the 
option is not selected at compile time, then we do not care about errors in the directory that will 
never be used.

Solution:
If the NETCDFPAR option is not selected at compile time, then SKIP going into the io_netcdfpar
directory all together.

LIST OF MODIFIED FILES:
m Makefile
m arch/Config.pl
m arch/configure.defaults
m configure

TESTS CONDUCTED:
1. Without the NETCDFPAR parameter set, the build for the io_netcdfpar directory is bypassed:
```
          cd ../io_netcdfpar ; \
          echo SKIPPING make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.7.3/gnu/9.1.0" \

          cd ../io_netcdfpar ; \
          echo SKIPPING make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.7.3/gnu/9.1.0" \
```

2. When the NETCDFPAR env variable is set, the build includes the io_netcdfpar directory:
          cd ../io_netcdfpar ; \
           make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.8.0/gnu/9.1.0" \

          cd ../io_netcdfpar ; \
           make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.8.0/gnu/9.1.0" \
```

3. Jenkins tests are all PASS.
weiwangncar added a commit that referenced this pull request Feb 10, 2022
Fix a memory problem in Noah LSM after PR#[1641](#1641) 

TYPE: bug fix

KEYWORDS: memory issue, Noah LSM, WRF-Hydro

SOURCE: internal

DESCRIPTION OF CHANGES:
Problem:
After PR#1641 merge, which consisted modification and additions to NoahMP, problems showed up in the model when Noah LSM is used. Errors include random failures when running with a relatively large domain (581x501x56 in one test) and nests, and when model is trying to write output.

Solution:
Using 'configure -D' with gfortran identified the failure in module_sf_noahdrv.F. Examination of the routine suggests the code related to WRF-Hydro implementation could be an issue when WRF-Hydro is not used. Revision is made to the driver so that variables related to WRF-Hydro are properly defined when WRF-Hydro is not used or arrays are not defined.

LIST OF MODIFIED FILES:
M phys/module_sf_noahdrv.F
M phys/module_surface_driver.F

TESTS CONDUCTED:

1. Previously failed large domain and nest tests are working now.
2. The Jenkins tests are all passing.
mefrediani pushed a commit to mefrediani/WRF that referenced this pull request Feb 25, 2022
…l#1671)

Fix a memory problem in Noah LSM after PR#[1641](wrf-model#1641) 

TYPE: bug fix

KEYWORDS: memory issue, Noah LSM, WRF-Hydro

SOURCE: internal

DESCRIPTION OF CHANGES:
Problem:
After PR#1641 merge, which consisted modification and additions to NoahMP, problems showed up in the model when Noah LSM is used. Errors include random failures when running with a relatively large domain (581x501x56 in one test) and nests, and when model is trying to write output.

Solution:
Using 'configure -D' with gfortran identified the failure in module_sf_noahdrv.F. Examination of the routine suggests the code related to WRF-Hydro implementation could be an issue when WRF-Hydro is not used. Revision is made to the driver so that variables related to WRF-Hydro are properly defined when WRF-Hydro is not used or arrays are not defined.

LIST OF MODIFIED FILES:
M phys/module_sf_noahdrv.F
M phys/module_surface_driver.F

TESTS CONDUCTED:

1. Previously failed large domain and nest tests are working now.
2. The Jenkins tests are all passing.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…rf-model#1641)

TYPE: new feature

KEYWORDS: NoahMP

SOURCE: Cenlin He (NCAR)

DESCRIPTION OF CHANGES:
This is step one to synchronize with latest NoahMP Github code version in order to prepare for connecting WRF directly to NoahMP unified Github repo. 

Specifically, the updates in NoahMP since version 4.3:
1. three additional runoff schemes added (OPT_RUN=6, 7, 8)
2. new tile drainage capability/scheme added (OPT_TDRN)
3. New soil time step control capability added to allow users specify a different soil time step from main 
NoahMP time step
4. additional water and energy budget terms added for output and diagnosis
5. updated flood irrigation parameters
6. add constraints for snow thickness during compaction
7. updated snow viscosity coefficient in compaction process
8. add canopy heat storage in canopy temperature calculation
9. updated formulation and parameter values for TOPMODEL groundwater scheme (OPT_RUN=1)
10. Bug fixes: SWE cap value in initialization, NoahMP snow depth update, snow layer index update, floating 
issues in runoff scheme, and BATS albedo scheme

LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list)
M       Registry/Registry.EM_COMMON
M       Registry/registry.noahmp
M       dyn_em/module_first_rk_step_part1.F
M       dyn_em/start_em.F
M       phys/module_diag_misc.F
M       phys/module_diagnostics_driver.F
M       phys/module_physics_init.F
M       phys/module_sf_noahmp_glacier.F
M       phys/module_sf_noahmp_groundwater.F
M       phys/module_sf_noahmpdrv.F
M       phys/module_sf_noahmplsm.F
M       phys/module_surface_driver.F
M       run/MPTABLE.TBL
M       run/README.namelist
M       run/SOILPARM.TBL

TESTS CONDUCTED: 
1. successfully compiled and tested for running in NCAR supercomputer by Cenlin He (NCAR)
2. Jenkins tests are all pass.

RELEASE NOTE: Updates from NoahMP and linking WRF directly to NoahMP Github repo.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
TYPE: bug fix

KEYWORDS: netcdfpar, Error

SOURCE: internal

DESCRIPTION OF CHANGES:
IMPORTANT: Without these mods, every commit since the parallel netcdf4 IO mods will fail the DA
build test in the regression test. For example, at least these commits:
```
fed10f4 Adding the WRF-Solar EPS model (wrf-model#1547)
0bda5e0 Fix 4dvar build failure after commit 8b5bfe5 (wrf-model#1652)
8b5bfe5 Thompson AA enhancements: BC aerosol, biomass burning emissions, and … (wrf-model#1616)
9dc68ca After testing with UFS/GFS/FV-3, some tuning knob changes to Thompson-MP and icloud3 (cloud fraction) scheme (wrf-model#1626)
96fd889 Update HONO, TERP, and CO2 emissions (wrf-model#1644)
64fb190 SFCLAY=1, add shallow water roughness calculation (wrf-model#1543)
609c2fc New module firebrand_spotting for WRF-Fire (wrf-model#1540)
75bfe6d MYNN PBL clouds in photolysis option 4 (TUV) (wrf-model#1622)
f8c4b13 Fix runtime error when using sf_surface_mosaic = 1 with use_wudapt_lcz = 0 (wrf-model#1638)
b511c70 Run-time option for climate GHG for radiation (wrf-model#1625)
8194c66 Bug fix for configuration option INTEL:HSW/BDW (wrf-model#1645)
16c9287  bug fixes for radar_rf_opt=2 (wrf-model#1642)
a82ce24 Sync with NoahMP Github version with all NoahMP updates since v4.3 (wrf-model#1641)
7b642cc Bug fix for TAMDAR T VarBC (wrf-model#1632)
92fd706 fix WRFDA build for Parallel netcdf-4 IO (wrf-model#1634)
```
Problem:
With PR wrf-model#1552 "Parallel netcdf-4 IO option" (SHA1 3cd4713), when then code was built without
the new parallel NetCDF4 compression, the build log had an `Error`. 
```
> grep Error compile.log
Fatal Error: Cannot open module file ‘wrf_data_ncpar.mod’ for reading at (1): No such file or directory
make[2]: [diffwrf] Error 1 (ignored)
make[2]: [diffwrf] Error 1 (ignored)
wrf_io.f:117: Error: Can't open included file 'mpif.h'
make[2]: [wrf_io.o] Error 1 (ignored)
Fatal Error: Cannot open module file ‘wrf_data_ncpar.mod’ for reading at (1): No such file or directory
make[2]: [field_routines.o] Error 1 (ignored)
make[2]: [libwrfio_nfpar.a] Error 127 (ignored)
make[2]: [libwrfio_nfpar.a] Error 1 (ignored)
```
The problem was related to constructing the object files in the io_netcdfpar directory. When the 
option is not selected at compile time, then we do not care about errors in the directory that will 
never be used.

Solution:
If the NETCDFPAR option is not selected at compile time, then SKIP going into the io_netcdfpar
directory all together.

LIST OF MODIFIED FILES:
m Makefile
m arch/Config.pl
m arch/configure.defaults
m configure

TESTS CONDUCTED:
1. Without the NETCDFPAR parameter set, the build for the io_netcdfpar directory is bypassed:
```
          cd ../io_netcdfpar ; \
          echo SKIPPING make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.7.3/gnu/9.1.0" \

          cd ../io_netcdfpar ; \
          echo SKIPPING make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.7.3/gnu/9.1.0" \
```

2. When the NETCDFPAR env variable is set, the build includes the io_netcdfpar directory:
          cd ../io_netcdfpar ; \
           make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.8.0/gnu/9.1.0" \

          cd ../io_netcdfpar ; \
           make -i -r NETCDFPARPATH="/glade/u/apps/ch/opt/netcdf/4.8.0/gnu/9.1.0" \
```

3. Jenkins tests are all PASS.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…l#1671)

Fix a memory problem in Noah LSM after PR#[1641](wrf-model#1641) 

TYPE: bug fix

KEYWORDS: memory issue, Noah LSM, WRF-Hydro

SOURCE: internal

DESCRIPTION OF CHANGES:
Problem:
After PR#1641 merge, which consisted modification and additions to NoahMP, problems showed up in the model when Noah LSM is used. Errors include random failures when running with a relatively large domain (581x501x56 in one test) and nests, and when model is trying to write output.

Solution:
Using 'configure -D' with gfortran identified the failure in module_sf_noahdrv.F. Examination of the routine suggests the code related to WRF-Hydro implementation could be an issue when WRF-Hydro is not used. Revision is made to the driver so that variables related to WRF-Hydro are properly defined when WRF-Hydro is not used or arrays are not defined.

LIST OF MODIFIED FILES:
M phys/module_sf_noahdrv.F
M phys/module_surface_driver.F

TESTS CONDUCTED:

1. Previously failed large domain and nest tests are working now.
2. The Jenkins tests are all passing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants