Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
66a59d9
Ngwpc 4426 mkarim
mkarim-rtx Nov 16, 2024
82f410d
Merge branch 'NGWPC-4426_mkarim' into 'development'
zhengtaocui Nov 16, 2024
f6fba7b
Text file containing repository version number and date
cmaynard-ngwpc Dec 2, 2024
052595a
Update date in version.txt file
cmaynard-ngwpc Dec 3, 2024
88d0b27
Update release in version.txt file
cmaynard-ngwpc Dec 3, 2024
97265f9
Removed version, date. Added commit field. No official release has be…
cmaynard-ngwpc Dec 3, 2024
936eb28
Merge branch 'cmaynard_NGWPC-4611_version_file' into 'development'
cmaynard-ngwpc Dec 5, 2024
cebab52
Merge branch 'development' into 'release-candidate'
cmaynard-ngwpc Jan 26, 2025
b1c569d
Updated version file for rc-1.0.0
cmaynard-ngwpc Jan 26, 2025
aae1a69
Merge branch 'release_rc-1.0.0_update_version_file' into 'release-can…
cmaynard-ngwpc Jan 26, 2025
9a9ed82
Merge branch 'release-candidate' into 'main'
cmaynard-ngwpc Feb 1, 2025
b723b02
update version file for release 1.0.0
cmaynard-ngwpc Feb 1, 2025
305abba
Merge branch 'main' into 'development'
cmaynard-ngwpc Feb 1, 2025
8e3ee59
Added RTX licensing verbiage
cmaynard-ngwpc Feb 6, 2025
ecc1349
Merge branch 'add_rtx_licencing' into 'development'
cmaynard-ngwpc Feb 6, 2025
0cd51a8
Merge branch 'development' into 'release-candidate'
cmaynard-ngwpc Feb 13, 2025
d2b8134
Update version file for release rc-1.1.0 on 2025-02-12
cmaynard-ngwpc Feb 13, 2025
b6984e7
Merge branch 'update_version_file_rc-1.1.0' into 'release-candidate'
cmaynard-ngwpc Feb 13, 2025
d0972df
Merge branch 'release-candidate' into 'development'
cmaynard-ngwpc Feb 13, 2025
97f0424
Merge branch 'release-candidate' into 'main'
cmaynard-ngwpc Feb 27, 2025
1a0400d
Update version file for release 1.1.0 on 2025-02-26
cmaynard-ngwpc Feb 27, 2025
b45fb85
Merge branch 'update_version_file_1.1.0' into 'main'
cmaynard-ngwpc Feb 27, 2025
c1c80b0
Merge branch 'main' into 'development'
cmaynard-ngwpc Feb 27, 2025
a1824be
Merge branch 'main' into 'release-candidate'
cmaynard-ngwpc Mar 14, 2025
3db0fd4
Adding Log Level
mkarim-rtx Apr 16, 2025
488750f
Merge branch 'NGWPC-4860_mkarim' into 'development'
mkarim-rtx Apr 16, 2025
e04f50e
Fix log level output len in entry
cmaynard-ngwpc May 3, 2025
d2ee2d5
Add check for logging enabled, change log levels ERROR to WARNING and…
cmaynard-ngwpc May 5, 2025
58979e4
Add log entry for log level
cmaynard-ngwpc May 5, 2025
31b1b9c
Add flush for stdout and trim strings
cmaynard-ngwpc May 6, 2025
5593696
Merge branch 'cmaynard_NGWPC_5709_logging_enabled_updates' into 'deve…
cmaynard-ngwpc May 7, 2025
922ec8a
Merge branch 'development' into 'release-candidate'
cmaynard-ngwpc Jun 11, 2025
1691dac
Remove superfluous print where write_log exist.
cmaynard-ngwpc Jun 26, 2025
f8eeabd
Merge branch 'cmaynard_fix_logger_rtoa' into 'release-candidate'
cmaynard-ngwpc Jun 26, 2025
5b33d4e
Merge branch 'release-candidate' into 'development'
cmaynard-ngwpc Jun 27, 2025
7f69a85
Merge remote-tracking branch 'github/main' into owp-merge-github-master
PhilMiller Jul 16, 2025
657878b
Merge branch 'owp-merge-github-master' into 'development'
cmaynard-ngwpc Jul 23, 2025
bec710c
Fix compiler warning
peterkronenberg-rtx Aug 4, 2025
3b00a24
Delete version.txt
peterkronenberg-rtx Mar 19, 2025
acd0866
Merge branch 'peter_warning' into 'development'
peterkronenberg-rtx Aug 4, 2025
3d5b1b0
Merge branch 'peter_delete_version' into 'development'
peterkronenberg-rtx Aug 4, 2025
cc1579e
added implementation for get/set value in BMI for serialization
sivasankkar Aug 20, 2025
03336ef
Added messagepack modules and a draft serialization module for this m…
sivasankkar Aug 21, 2025
c15aeb8
Serialization routine complete with all potential variables.
sivasankkar Aug 22, 2025
211bbca
de-serialization first draft
sivasankkar Aug 26, 2025
0801761
Serialization and Deserialization complete. Updated makefiles and bui…
sivasankkar Aug 26, 2025
95bcef9
Fix recursive calling of write_log. Added logger steps for standalone…
cmaynard-ngwpc Sep 19, 2025
91d511a
Update INSTALL.md on using logger when running standalone
cmaynard-ngwpc Sep 22, 2025
17b51ec
Updated serialization and deserialization protocols in BMI and also r…
sivasankkar Sep 30, 2025
0a6e883
Updated log levels in a couple of functions and also tried TRANSFER.
sivasankkar Sep 30, 2025
5001099
Changed log level in some functions in BMI
sivasankkar Sep 30, 2025
8d89214
Reverse spurious whitespace change
PhilMiller Oct 15, 2025
883615e
Added serialization_size in the BMI and also allocated space before a…
sivasankkar Oct 15, 2025
20f7c91
Added the deallocate step for the TARGET serialized data conversion.
sivasankkar Oct 15, 2025
6c6bc9b
Adopted the transfer_values_from_mp functions for deserialization pro…
sivasankkar Oct 15, 2025
25579b4
Merge pull request #1 from NGWPC/ssn-noahowp-serialization
PhilMiller Oct 15, 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
30 changes: 29 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ This release of Noah-OWP-Modular comes with example forcing data and a namelist

## Configure

Noah-OWP-Modular presently requires only one external library: [NetCDF](https://www.unidata.ucar.edu/software/netcdf/). You can install NetCDF using the link or through a package manager such as [Brew](https://brew.sh/). Once NetCDF is installed, you can configure the model. The first step is to set up a configuration file. There are currently 4 build options in the `config` directory:
Noah-OWP-Modular presently requires only one external library: [NetCDF](https://www.unidata.ucar.edu/software/netcdf/). You can install NetCDF using the link or through a package manager such as [Brew](https://brew.sh/). Once NetCDF is installed, you can configure the model. The first step is to set up a configuration file. There are currently 6 build options in the `config` directory:

- `user_build_options.cheyenne`: Cheyenne supercomputer
- `user_build_options.pgf90.linux`: Linux with pgf90 compiler, NetCDF installed via source (usr/local)
- `user_build_options.macos.gfortran`: MacOS with gfortran compiler, NetCDF installed via source (opt/local)
- `user_build_options.bigsur.gfortran`: MacOS Big Sur with gfortran compiler, NetCDF 4.8.0 installed via Brew (** this is the current tesiting environment **)
- `user_build_options.gfortran.linux`: Linux with gfortran compiler, NetCDF installed via module. The $NETCDF environmental variable is defined, such as NOAA Hera.
- 'user_build_options.gfortran.ubuntu': Ubuntu with gfortran compiler, NetCDF installed from package

If your system does not match one of the above options, you'll need to edit one of the files or create your own. If you do the latter, you'll need to add another option to the `configure` Perl script.

Expand Down Expand Up @@ -41,6 +42,33 @@ The `namelist.input` file in `/run` includes all the setup and options info you

You can examine model output in the `/data/output.nc` file (requires [Panoply](https://www.giss.nasa.gov/tools/panoply/) or other NetCDF viewer).

## Logger

The Errror Warning and Trapping Systems (EWTS) has been added to this module using a logging schema. All write statements have been converted to `write_log` statements, which saves the ouptut to a log file based on the log level.

When running within the ngen framework, the log file and log level are handled programatically. When running standalone, logging is defaulted to DISABLED.

**Running Standalone**

In order to generate log messages when running standalone, the `NGEN_EWTS_LOGGING` environment variable must be set to `ENABLED`. This is the only required environment variable . Other optional logger environment variables exist for specifying the log file full pathname and setting the log level. If the user only enables logging, the log level will be set to INFO and the filename will be created based on the user and module names. All logger setup details are written to the console when the module is run.
```
# Case Sensitive
export NGEN_EWTS_LOGGING=ENABLED
export NGEN_LOG_FILE_PATH=<full pathname for log file>
export NOAHOWP_LOGLEVEL=<DEBUG, INFO, WARNING, SEVERE, FATAL>
```
**Log Levels**
| Level | Description | Typical Use |
|---------|-----------------------------------------------------|-----------------------------------------------|
| DEBUG | Detailed diagnostic info for development/troubleshooting. | Variable values, function entry/exit. |
| FATAL | Critical failure that aborts or makes app unrecoverable. | Crashes, memory errors, invalid state. |
| INFO | General events confirming expected operations. | Startup/shutdown, configs, task completions. |
| SEVERE | Significant problem; app may continue in degraded state. | Failed services, corrupted configs, data loss.|
| WARNING | Potential issue that doesn’t stop execution. | Deprecated APIs, missing files, repeatable errors. |

Default log level is INFO. The log level is hierarchical. Setting it to INFO, will log INFO, WARNING, SEVERE and FATAL
messages.

## BMI unit tests

To run unit tests, first compile and link the test program from the main-level directory:
Expand Down
22 changes: 22 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
Copyright 2025 Raytheon Company

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

Licensed under: https://opensource.org/license/bsd-2-clause

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

All rights reserved. Based on Government sponsored work under contract GS-35F-204GA.

-----------------

“Software code created by U.S. Government employees is not subject to copyright
in the United States (17 U.S.C. §105). The United States/Department of Commerce
reserve all rights to seek and obtain copyright protection in countries other
than the United States for Software authored in its entirety by the Department
of Commerce. To this end, the Department of Commerce hereby grants to Recipient
a royalty-free, nonexclusive license to use, copy, and create derivative works
of the Software outside of the United States.”

Apache License
Version 2.0, January 2004
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
.SUFFIXES: .o .f90

all: user_build_options
(cd fdatetime; make)
(cd src; make)
(cd bmi; make)
(cd driver; make)
Expand Down
Loading