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 optional data atmoshpere component #225

Merged
merged 53 commits into from
Oct 22, 2020
Merged
Show file tree
Hide file tree
Changes from 41 commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
f5d4007
Option to build coupled model
aerorahul Oct 8, 2020
c40c300
fix in build.sh
aerorahul Oct 8, 2020
206218c
update modulefiles for orion, hera and wcoss to load pio. Make PIO o…
aerorahul Oct 8, 2020
141b928
FMS needs to be linked in MOM6 objects. Add 32BIT and S2S check
aerorahul Oct 8, 2020
180410a
add S2S option to MAKE_OPT
aerorahul Oct 8, 2020
2bca804
upload orion and hera.intel regression logs
aerorahul Oct 8, 2020
47c6aa8
update MOM6 submodule to its HEAD. hera.gnu does not have PIO module …
aerorahul Oct 9, 2020
fbbb557
update CMakeModule pointer
aerorahul Oct 9, 2020
4681df7
update CMakeModules pointer
aerorahul Oct 9, 2020
fa173bb
update hera.gnu/fv3 modulefile to use hpc-stack built by NCEPLIBS tea…
aerorahul Oct 9, 2020
bf42ef3
add generic linux.gnu configure file
aerorahul Oct 9, 2020
5b583c4
turns out there is no real difference between linux gnu and linux Intel;
aerorahul Oct 9, 2020
3ab6b57
fix tabs with spaces. Enable building WW3 on generic linux and mac
aerorahul Oct 9, 2020
8b6879a
@climbfuji wants to maintain separate configure files for linux, linu…
aerorahul Oct 9, 2020
903cd95
apparently it is customary to have platform.compiler config file
aerorahul Oct 10, 2020
3bdab1a
Merge branch 'develop' into feature/coupled
aerorahul Oct 10, 2020
349f164
update gitmodules
aerorahul Oct 10, 2020
0c2a863
Add standard s2s tests
DusanJovic-NOAA Oct 11, 2020
47a50c4
Add tests RT for S2S from @DusanJovic-NOAA
aerorahul Oct 12, 2020
991b20d
add missing -Dcoupled in CICE-interface
aerorahul Oct 13, 2020
84ac096
Merge branch 'feature/coupled' of https://github.com/aerorahul/ufs-we…
aerorahul Oct 13, 2020
cbc0447
remove useless conf/ directory
aerorahul Oct 13, 2020
51c5dab
add CICE_IO option (default: NetCDF). Add MOM6 solo executable option…
aerorahul Oct 14, 2020
bb5adab
add debug flags for MOM6 and CICE from @minsukji-noaa
aerorahul Oct 14, 2020
c5e3689
add debug modulefiles for hera, orion and wcoss_dell_p3
aerorahul Oct 14, 2020
cb0012d
update forgotten README.md
aerorahul Oct 14, 2020
1ae4de3
skip creating OBJECT library and directly create static library. Bugf…
aerorahul Oct 15, 2020
62e0461
PIO_C library is not necessary in CMEPS-interface CMakeLists.txt
aerorahul Oct 15, 2020
6988543
enable VERBOSE on build only when requested. Remove -warn flags from…
aerorahul Oct 16, 2020
574d26c
remove rt_s2s.conf and add S2S tests to rt.conf
aerorahul Oct 16, 2020
93423d6
add DATM submodule
aerorahul Oct 19, 2020
1fd235a
point to aerorahul fork of DATM
aerorahul Oct 19, 2020
63268f2
update CMakeList.txt to build data atmosphere. Add compile test only…
aerorahul Oct 19, 2020
2693337
Merge branch 'develop' into feature/coupled
aerorahul Oct 19, 2020
302f9b3
update README.md
aerorahul Oct 19, 2020
05648ec
Merge branch 'feature/coupled' into feature/datm
aerorahul Oct 19, 2020
deea895
Merge branch 'develop' into feature/datm
aerorahul Oct 20, 2020
0f1ed82
missed rsync from develop
aerorahul Oct 20, 2020
470424c
Update README.md
aerorahul Oct 21, 2020
c13f7bc
Merge branch 'develop' into feature/datm
aerorahul Oct 21, 2020
bc796cd
update DATM submodule pointer and point to NOAA-EMC/NEMSdatm
aerorahul Oct 21, 2020
c7c3f5d
Update README.md
aerorahul Oct 21, 2020
f033c6e
create MOM6 solo executable for use in SOCA science
aerorahul Oct 21, 2020
1e323d0
add compilation tests for s2s and datm for hera.gnu
aerorahul Oct 22, 2020
ac9b05d
commit wcoss_cray RT log
aerorahul Oct 22, 2020
c640745
add hera.intel RT log
aerorahul Oct 22, 2020
294b510
tMerge branch 'feature/datm' of https://github.com/aerorahul/ufs-wea…
aerorahul Oct 22, 2020
d423991
rsync S2S baselines for intel only on hera and orion
aerorahul Oct 22, 2020
ce6aeb5
add orion.intel RT log
aerorahul Oct 22, 2020
9b9bd6c
add hera.gnu RT log
aerorahul Oct 22, 2020
4c103ad
Merge branch 'feature/datm' of https://github.com/aerorahul/ufs-weath…
aerorahul Oct 22, 2020
c3f2710
add wcoss_dell_p3 RT log
aerorahul Oct 22, 2020
efec63a
Merge branch 'feature/datm' of https://github.com/aerorahul/ufs-weath…
aerorahul Oct 22, 2020
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
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@
path = CICE-interface/CICE
url = https://github.com/NOAA-EMC/CICE
branch = emc/develop
[submodule "DATM"]
path = DATM
url = https://github.com/NOAA-EMC/NEMSdatm
branch = develop
43 changes: 35 additions & 8 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ set(QUAD_PRECISION ON CACHE BOOL "Enable QUAD_PRECISION (for certain grid metr
set(REPRO OFF CACHE BOOL "Enable REPRO mode")
set(WW3 OFF CACHE BOOL "Enable WW3")
set(S2S OFF CACHE BOOL "Enable S2S")
set(DATM OFF CACHE BOOL "Enable Data Atmosphere")

###############################################################################
### Set CMAKE_BUILD_TYPE for DEBUG mode
Expand Down Expand Up @@ -65,6 +66,7 @@ message("QUAD_PRECISION ... ${QUAD_PRECISION}")
message("REPRO ............ ${REPRO}")
message("WW3 .............. ${WW3}")
message("S2S .............. ${S2S}")
message("DATM ............. ${DATM}")
message("")

get_filename_component (C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME)
Expand Down Expand Up @@ -118,6 +120,10 @@ endif()
###############################################################################
### Checks
###############################################################################
if(DATM AND NOT S2S)
message(FATAL_ERROR "DATM=ON and S2S=OFF are incompatible, ABORT!")
endif()

if(S2S AND 32BIT)
message(FATAL_ERROR "S2S=ON and 32BIT=ON are incompatible, ABORT!")
endif()
Expand Down Expand Up @@ -161,12 +167,18 @@ target_include_directories(fms INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINAR
###############################################################################
### stochastic_physics
###############################################################################
add_subdirectory(stochastic_physics)
if(NOT DATM)
add_subdirectory(stochastic_physics)
endif()

###############################################################################
### FV3
### FV3 or Data Atmosphere
###############################################################################
add_subdirectory(FV3)
if(DATM)
add_subdirectory(DATM)
else()
add_subdirectory(FV3)
endif()

###############################################################################
### WW3
Expand Down Expand Up @@ -237,9 +249,16 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/NEMS/src/ESMFConvenienceMacros.h
add_library(ufs ${_nems_srcs})

list(APPEND _ufs_defs_private ESMF_VERSION_MAJOR=${ESMF_VERSION_MAJOR}
FRONT_FMS
FRONT_FV3=fv3gfs_cap_mod)
add_dependencies(ufs fms fv3atm)
FRONT_FMS)
add_dependencies(ufs fms)

if(DATM)
list(APPEND _ufs_defs_private FRONT_DATM=datm)
add_dependencies(ufs datatm)
else()
list(APPEND _ufs_defs_private FRONT_FV3=fv3gfs_cap_mod)
add_dependencies(ufs fv3atm)
endif()

set_target_properties(ufs PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/mod)
target_include_directories(ufs PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/NEMS/src)
Expand All @@ -254,8 +273,13 @@ endif()
target_include_directories(ufs INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/mod>
$<INSTALL_INTERFACE:mod>)

target_link_libraries(ufs PUBLIC esmf
fv3atm)
target_link_libraries(ufs PUBLIC esmf)

if(DATM)
target_link_libraries(ufs PUBLIC datatm)
else()
target_link_libraries(ufs PUBLIC fv3atm)
endif()

if(S2S)
list(APPEND _ufs_defs_private FRONT_MOM6=mom_cap_mod
Expand Down Expand Up @@ -289,6 +313,9 @@ endif()

target_compile_definitions(ufs_model PRIVATE "${_ufs_model_defs_private}")

if(DATM)
target_link_libraries(ufs_model PRIVATE ufs w3nco::w3nco_d)
endif()
target_link_libraries(ufs_model PRIVATE ufs
esmf
NetCDF::NetCDF_Fortran
Expand Down
1 change: 1 addition & 0 deletions DATM
Submodule DATM added at 84e9a1
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

# ufs-weather-model

This is the UFS weather model code.
This is the UFS model source code.
aerorahul marked this conversation as resolved.
Show resolved Hide resolved

# Where to find information

Start at the [ufs-weather-model wiki](https://github.com/ufs-community/ufs-weather-model/wiki) which has quick start instructions.
Start at the [wiki](https://github.com/ufs-community/ufs-weather-model/wiki) which has quick start instructions.

[User's reference guide](http://ufs-weather-model.readthedocs.io/) is hosted on read the docs.

Expand All @@ -19,15 +19,23 @@ The top level directory structure groups source code and input files as follow:
| ```LICENSE.md``` | A copy of the GNU Lesser General Public License, Version 3. |
| ```README.md``` | This file with basic pointers to more information. |
| ```FMS/``` | Contains Flexible Modeling System source code. |
| ```NEMS/``` | Contains NOAA Environmental Modeling System source code and nems compset runi scripts. |
| ```NEMS/``` | Contains NOAA Environmental Modeling System source code and nems compset run scripts. |
| ```CMEPS-interface/``` | Contains CMEPS mediator |
| ```FV3/``` | Contains FV3 atmosphere model component including FV3 dynamical core, dynamics to physics driver, physics and IO. |
| ```DATM/``` | Contains Data Atmosphere model component |
| ```WW3/``` | Contains community wave modeling framework WW3. |
| ```MOM6-interface/``` | Contains MOM6 ocean model component |
| ```CICE-interface/``` | Contains CICE sea-ice model component including CICE6 and Icepack |
| ```stochastic physics/``` | Contains the stochastic physics source code. |
| ```stochastic_physics/``` | Contains the stochastic physics source code. |
| ```cmake/``` | Contains compile option files on various platforms. |
| ```modulefiles/``` | Contains module files on various platforms.|
| ```modulefiles/``` | Contains module files on various platforms. |
| ```tests/``` | Regression and unit testing framework scripts. |
| ```build.sh``` | Script to build the model executable. (also used by `tests/`) |

E.g. use of `build.sh` to build the coupled model with `FV3_GFS_v15p2` as the CCPP suite.
```
$> CMAKE_FLAGS="-DS2S=ON" CCPP_SUITES="FV3_GFS_v15p2" ./build.sh
```

# Disclaimer

Expand Down
4 changes: 4 additions & 0 deletions tests/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,10 @@ if [[ "${MAKE_OPT}" == *"S2S=Y"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DS2S=Y"
fi

if [[ "${MAKE_OPT}" == *"DATM=Y"* ]]; then
CMAKE_FLAGS="${CMAKE_FLAGS} -DDATM=Y"
fi

CMAKE_FLAGS=$(trim "${CMAKE_FLAGS}")

if [ $clean_before = YES ] ; then
Expand Down
6 changes: 6 additions & 0 deletions tests/rt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -190,3 +190,9 @@ RUN | cpld_fv3_ccpp_384_mom6_cice_cmeps_ww3_1d_bmark_rt

COMPILE | CCPP=Y DEBUG=Y SUITES=FV3_GFS_2017_coupled,FV3_GFS_2017_satmedmf_coupled,FV3_GFS_v15p2_coupled S2S=Y | standard | hera.intel orion.intel wcoss_dell_p3 | fv3 |
RUN | cpld_fv3_ccpp_mom6_cice_cmeps_6h_debug | standard | hera.intel orion.intel wcoss_dell_p3 | fv3 |

#######################################################################################################################################################################################
# Data Atmosphere tests
#######################################################################################################################################################################################

COMPILE | DATM=Y S2S=Y | standard | hera.intel orion.intel wcoss_dell_p3 | fv3 |