Skip to content

Commit

Permalink
Merge pull request #369 from MichaelLueken-NOAA/feature/wcoss2_port
Browse files Browse the repository at this point in the history
GitHub Issue NOAA-EMC/GSI#368.  WCOSS2 port.
  • Loading branch information
MichaelLueken committed May 9, 2022
2 parents 22e69d8 + 6651930 commit 1896c75
Show file tree
Hide file tree
Showing 47 changed files with 228 additions and 113 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
file(GLOB CONMON_GRADS_LEV_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )
set(CONMON_GRADS_LEV_Fortran_FLAGS "-fp-model strict -assume byterecl -convert big_endian -O3 -traceback -D_REAL8_ ")
set(Util_MODULE_DIR ${PROJECT_BINARY_DIR}/include/conmon_grads_lev )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
file(GLOB CONMON_GRADS_MANDLEV_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )
set(CONMON_GRADS_MANDLEV_Fortran_FLAGS "-fp-model strict -assume byterecl -convert big_endian -O3 -traceback -D_REAL8_ ")
set(Util_MODULE_DIR ${PROJECT_BINARY_DIR}/include/conmon_grads_mandlev )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
file(GLOB CONMON_GRADS_SFC_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )
set(CONMON_GRADS_SFC_Fortran_FLAGS "-fp-model strict -assume byterecl -convert big_endian -O3 -traceback -D_REAL8_ ")
set(Util_MODULE_DIR ${PROJECT_BINARY_DIR}/include/conmon_grads_sfc )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)

file(GLOB CONMON_GRADS_SFCTIME_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
file(GLOB CONMON_GRADS_SIG_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )
set(CONMON_GRADS_SIG_Fortran_FLAGS "-fp-model strict -assume byterecl -convert big_endian -O3 -traceback -D_REAL8_ ")
set(Util_MODULE_DIR ${PROJECT_BINARY_DIR}/include/conmon_grads_sig )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
file(GLOB CONMON_TIME_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*90 )
set(CONMON_TIME_Fortran_FLAGS "-fp-model strict -assume byterecl -convert big_endian -O3 -traceback -D_REAL8_ ")
set(Util_MODULE_DIR ${PROJECT_BINARY_DIR}/include/conmon_time )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
MACRO(SUBDIRLIST result curdir)
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*.fd)
SET(dirlist "")
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/adderrspec.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/adjustps.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/calc_increment_ens.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
list( REMOVE_ITEM LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/main.f90 )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
list( REMOVE_ITEM LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/main.f90 )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/calc_increment_ncio.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
list( REMOVE_ITEM LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/main.f90 )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/calc_increment_serial.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
list( REMOVE_ITEM LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/main.f90 )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/getnstensmeanp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/getsfcensmeanp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/getsfcnstensupdp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)

file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.F90 ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
Expand Down
4 changes: 2 additions & 2 deletions util/EnKF/gfs/src/getsigensmeanp_smooth.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)

set(LOCAL_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone ${OpenMP_Fortran_FLAGS}" )
set(LOCAL_Fortran_FLAGS "-O3 -fp-model source -convert big_endian -assume byterecl -implicitnone -g -traceback ${OpenMP_Fortran_FLAGS}" )
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${LOCAL_Fortran_FLAGS} )
add_executable(getsigensmeanp_smooth.x ${LOCAL_SRC} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/getsigensstatp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/gribmean.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/recenterens_ncio.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/recenterncio_hybgain.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
2 changes: 1 addition & 1 deletion util/EnKF/gfs/src/recentersigp.fd/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.16.1)
if(BUILD_UTIL)
file(GLOB LOCAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/*.f90)
set_source_files_properties( ${LOCAL_SRC} PROPERTIES COMPILE_FLAGS ${UTIL_Fortran_FLAGS} )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export p_cyc=`echo ${cdate} | cut -c9-10`
#############################################
# TANKverf - WHERE OUTPUT DATA WILL RESIDE
#############################################
export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}}
export COM_IN=${COM_IN:-$(compath.py ${envir}/${NET}/${gfs_ver})}

export M_TANKverf=${M_TANKverf:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}/minmon}
export M_TANKverfM1=${M_TANKverfM1:-${COM_IN}/${RUN}.${P_PDY}/${p_cyc}/${COMPONENT}/minmon}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export p_cyc=`echo ${cdate} | cut -c9-10`
#############################################
# TANKverf - WHERE OUTPUT DATA WILL RESIDE
#############################################
export COM_IN=${COM_IN:-${COMROOT}/${NET}/${envir}}
export COM_IN=${COM_IN:-$(compath.py ${envir}/${NET}/${gfs_ver})}

M_TANKverf=${M_TANKverf:-${COM_IN}/${RUN}.${PDY}/${cyc}/${COMPONENT}/minmon}
export M_TANKverfM1=${M_TANKverfM1:-${COM_IN}/${RUN}.${P_PDY}/${p_cyc}/${COMPONENT}/minmon}
Expand Down
1 change: 1 addition & 0 deletions util/Ozone_Monitor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
endif()

cmake_policy(SET CMP0009 NEW)
cmake_policy(SET CMP0074 NEW)
find_package(OpenMP)
message("found openmp with flag ${OPENMP_Fortran_FLAGS}")

Expand Down
102 changes: 57 additions & 45 deletions util/Ozone_Monitor/OznMon_install.pl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
my $machine = `/usr/bin/perl get_hostname.pl`;
my $my_machine="export MY_MACHINE=$machine";

if( $machine ne "wcoss_c" && $machine ne "hera" && $machine ne "wcoss_d" ) {
if( $machine ne "wcoss_c" && $machine ne "hera" && $machine ne "wcoss_d" &&
$machine ne "wcoss2" ) {
die( "ERROR --- Unrecognized machine hostname, $machine. Exiting now...\n" );
}
else {
Expand Down Expand Up @@ -62,6 +63,9 @@
elsif( $machine eq "wcoss_c" ){
$tankdir = "/gpfs/hps/emc/da/noscrub/$user_name/nbns";
}
elsif( $machine eq "wcoss2" ){
$tankdir = "/lfs/h2/emc/da/noscrub/$user_name/nbns";
}
else {
$tankdir = "/global/save/$user_name/nbns";
}
Expand Down Expand Up @@ -209,6 +213,10 @@
$my_ptmp="export OZN_PTMP=\${OZN_PTMP:-/gpfs/hps2/ptmp}";
$my_stmp="export OZN_STMP=\${OZN_STMP:-/gpfs/hps2/stmp}";
}
elsif( $machine eq "wcoss2" ){
$my_ptmp="export MY_PTMP=\${MY_PTMP:-/lfs/h2/emc/ptmp}";
$my_stmp="export MY_STMP=\${MY_STMP:-/lfs/h2/emc/stmp}";
}
elsif( $machine eq "hera" ){
$ptmp = "/scratch2/NCEPDEV/stmp3";

Expand Down Expand Up @@ -325,61 +333,65 @@
print "\n";
print "Updating parm/OznMon_user_settings\n";

my $account = "export ACCOUNT=\${ACCOUNT:-fv3-cpu}";
if( $machine ne "theia" && $machine ne "hera" ) {
$account = "export ACCOUNT=\${ACCOUNT:-}";
my $account = "export ACCOUNT=\${ACCOUNT:-}";
if( $machine eq "hera" ) {
$account = "export ACCOUNT=\${ACCOUNT:-fv3-cpu}";
} elsif( $machine eq "wcoss2" ){
$account = "export ACCOUNT=\${ACCOUNT:-GFS-DEV}";
}

my $project = "export PROJECT=\${PROJECT:-GFS-DEV}";
if( $machine ne "wcoss_c" && $machine ne "wcoss_d" ) {
my $project = "export PROJECT=\${PROJECT:-GDAS-T2O}";
if( $machine eq "wcoss2" ){
$project = "export PROJECT=\${PROJECT:-GDAS-DEV}";
} elsif( $machine ne "wcoss_c" && $machine ne "wcoss_d" ) {
$project="export PROJECT=";
}
}

my $job_queue="export JOB_QUEUE=";
if( $machine eq "wcoss_c" ) {
if( $machine eq "wcoss_c" || $machine eq "wcoss2" ) {
$job_queue="export JOB_QUEUE=\${JOB_QUEUE:-dev}";
} elsif( $machine eq "wcoss" || $machine eq "wcoss_d" ){
$job_queue = "export JOB_QUEUE=\${JOB_QUEUE:-dev_shared}";
}


my $uname = $ENV{ 'USER' };
my $hpss_dir = "export HPSS_DIR=\${HPSS_DIR:-/NCEPDEV/hpssuser/g01/$uname/nbns/stats}";

my $outfile = "tmp.file";
open (OUT, ">", $outfile) || die "Cannot open file ".$outfile." for write";

my $infile = "./parm/OznMon_user_settings";
open (IN, "<", $infile) || die "Cannot open file ".$infile." for read";

foreach $line (<IN>) {
chomp( $line );
if ($line =~ m/export ACCOUNT/) {
$line = $account;
}
elsif( $line =~ m/export PROJECT/ ){
$line = $project;
}
elsif( $line =~ m/export JOB_QUEUE/ ){
$line = $job_queue;
}
elsif( $line =~ m/export HPSS_DIR/ ){
$line = $hpss_dir;
}
elsif( $line =~ m/export DO_DATA_RPT/ ){
$line = $my_rpt;
}
print OUT "$line\n";
}
close OUT;
close IN;

move $outfile, $infile;

print "\n";
print "Making all executables\n";

`./build_OznMon_cmake.sh`;
my $uname = $ENV{ 'USER' };
my $hpss_dir = "export HPSS_DIR=\${HPSS_DIR:-/NCEPDEV/hpssuser/g01/$uname/nbns/stats}";

my $outfile = "tmp.file";
open (OUT, ">", $outfile) || die "Cannot open file ".$outfile." for write";

my $infile = "./parm/OznMon_user_settings";
open (IN, "<", $infile) || die "Cannot open file ".$infile." for read";

foreach $line (<IN>) {
chomp( $line );
if ($line =~ m/export ACCOUNT/) {
$line = $account;
}
elsif( $line =~ m/export PROJECT/ ){
$line = $project;
}
elsif( $line =~ m/export JOB_QUEUE/ ){
$line = $job_queue;
}
elsif( $line =~ m/export HPSS_DIR/ ){
$line = $hpss_dir;
}
elsif( $line =~ m/export DO_DATA_RPT/ ){
$line = $my_rpt;
}
print OUT "$line\n";
}
close OUT;
close IN;

move $outfile, $infile;

print "\n";
print "Making all executables\n";

`./build_OznMon_cmake.sh`;


exit 0;
Expand Down
12 changes: 8 additions & 4 deletions util/Ozone_Monitor/build_OznMon_cmake.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ elif [[ -d /data/prod ]]; then
elif [[ -d /jetmon ]]; then
. /apps/lmod/lmod/init/sh
target=jet
elif [[ -d /lfs && -d /dfs ]]; then
. $MODULESHOME/init/bash
target=wcoss2
else
echo "unknown target = $target"
exit 9
Expand All @@ -69,17 +72,18 @@ fi
# Verify this is a supported machine
#---------------------------------------------------

if [[ ${target} = "hera" || ${target} = "wcoss_c" \
|| ${target} = "wcoss_d" || ${target} = "orion" \
|| ${target} = "jet" || ${target} = "s4" ]]; then
if [[ ${target} = "hera" || ${target} = "wcoss_c" \
|| ${target} = "wcoss_d" || ${target} = "orion" \
|| ${target} = "jet" || ${target} = "s4" \
|| ${target} = "wcoss2" ]]; then
echo Building nwprod executables on ${target}
echo


#-------------------------------------
# load modules
#-------------------------------------
if [ $target = wcoss_d ]; then
if [ $target = wcoss_d -o $target = wcoss2 ]; then
module purge
module use -a $dir_modules
module load modulefile.ProdGSI.$target
Expand Down
3 changes: 3 additions & 0 deletions util/Ozone_Monitor/get_hostname.pl
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
if( $host =~ /hfe/ ) {
$machine = "hera";
}
elsif( $host =~ /clogin0/ || $host =~ /dlogin0/ ){
$machine = "wcoss2"
}
elsif( $host =~ /login/ ) {
$machine = "wcoss_c";
}
Expand Down
Loading

0 comments on commit 1896c75

Please sign in to comment.