-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from marshallward/update
MOM 5.1 Update
- Loading branch information
Showing
1,147 changed files
with
71,122 additions
and
122,283 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
|
||
Where to start | ||
~~~~~~~~~~~~~~ | ||
A good place to start is the "doc" directory, where you | ||
will find "user" guides for the MOM. | ||
|
||
How to run the MOM tests | ||
~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
MOM tests provided in exp directory divide in two types, | ||
both using the GFDL shared infrastructure (FMS) : | ||
|
||
1. Solo models : Run stand alone MOM Ocean model. | ||
2. Coupled models: Run MOM coupled with GFDL ice model | ||
(besides null versions of atmosphere and land models). | ||
|
||
To run Solo models: | ||
a. cd to exp and run mom4p1_solo_compile.csh first. | ||
b. Modify the 'name' variable in the script | ||
mom4p1_solo_run.csh to be the name of the test you | ||
want to run. A list of available tests is included in the script. | ||
c. Get the required input data for the test from GFDL ftp site. | ||
You can get the info by running the script mom4p1_solo_run.csh | ||
and following the instructions. | ||
d. Run mom4p1_solo_run.csh | ||
e. The results go into subdir name/workdir | ||
|
||
To run Coupled models: | ||
Do the same steps above to mom4p1_coupled_compile.csh and mom4p1_coupled_run.csh | ||
|
||
To run EBM models: | ||
Do the same steps above to mom4p1_ebm_compile.csh and mom4p1_ebm_run.csh | ||
|
||
|
||
|
||
Warning: The Solo and Coupled run scripts have been tested only on 10 and 24, ia64 | ||
processors respectively. | ||
Warning: Some of these tests require a large disk space to save the input data. | ||
Choose a partition with enough space (1-2 G) to untar the code and data bundels. | ||
Warning: If you want to use the same root directory for all three experiments we suggest to | ||
compile in the order of increasing complexity: solo -> coupled -> ebm . | ||
You may have to remove some of the existing .o and .mod files | ||
if you want to compile ebm experiment after the coupled experiment. | ||
E.g., you probably have to: cd ../exec; rm mpp*.o mpp*.mod fms_io*.o fms_io*.mod | ||
|
||
Note: IBM platform users might want to add the following line to the top of the run scripts | ||
setenv LDR_CNTRL MAXDATA=0xD0000000@DSA | ||
|
||
|
||
Note: The compile scripts provide the basic capability to use static memory allocation | ||
which might be faster on some platforms. In that case you need to adjust the values | ||
of domain bounds properly according to the number of processors and layout. | ||
|
||
|
||
Summary of directory contents | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
bin/ | ||
-- mkmf script for creating Makefiles | ||
-- template files for the mkmf script | ||
-- assorted other scripts | ||
|
||
exp/ | ||
-- all MOM experiments (test cases) | ||
|
||
src/ | ||
-- source code for all models | ||
|
||
src/postprocessing/ | ||
-- source code for postprocessing programs | ||
|
||
src/preprocessing/ | ||
-- source code for preprocessing programs |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
export OMP_NUM_THREADS=1 | ||
export BG_APPTHREADDEPTH=1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
source $MODULESHOME/init/csh | ||
module use -a /ncrc/home2/fms/local/modulefiles | ||
module unload PrgEnv-pgi PrgEnv-pathscale PrgEnv-intel PrgEnv-gnu PrgEnv-cray | ||
module unload netcdf fre fre-commands | ||
module load PrgEnv-gnu | ||
module load hdf5/1.8.8 | ||
module load netcdf/4.2.0 | ||
module list | ||
setenv MPICH_MAX_SHORT_MSG_SIZE 8000 | ||
setenv KMP_STACKSIZE 512m | ||
setenv NC_BLKSZ 1M | ||
|
||
setenv mpirunCommand "aprun -n" | ||
setenv PATH ${PATH}:. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
setenv mpirunCommand "mpirun -np" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
source $MODULESHOME/init/csh | ||
module use -a /home/fms/local/modulefiles | ||
module purge | ||
module load ifort.11.0.074 | ||
module load icc.11.0.074 | ||
module load idb.10.1.35 | ||
module load hdf5-1.8.3 | ||
module load netcdf-4.0.1 | ||
setenv OMP_NUM_THREADS 1 | ||
# | ||
setenv NC_BLKSZ 64K | ||
setenv FMS_ARCHIVE /archive/fms | ||
setenv PATH ${PATH}:. | ||
setenv netcdf3_inc_dir "/usr/local/netcdf-3.6.2/include" | ||
setenv netcdf3_lib_dir "/usr/local/netcdf-3.6.2/lib" | ||
setenv mpirunCommand "mpirun -np" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,184 @@ | ||
# $Id: mkmf.template.gfdl_ws_64.gnu.debug,v 1.1.2.1 2013/12/18 17:47:54 Niki.Zadeh Exp $ | ||
# template for the Intel fortran compiler | ||
# typical use with mkmf | ||
# mkmf -t template.ifc -c"-Duse_libMPI -Duse_netCDF" path_names /usr/local/include | ||
############ | ||
# commands # | ||
############ | ||
FC = gfortran | ||
CC = gcc | ||
LD = gfortran $(MAIN_PROGRAM) | ||
######### | ||
# flags # | ||
######### | ||
DEBUG = on | ||
REPRO = | ||
VERBOSE = | ||
OPENMP = | ||
|
||
MAKEFLAGS += --jobs=$(shell grep '^processor' /proc/cpuinfo | wc -l) | ||
|
||
FPPFLAGS := | ||
|
||
FFLAGS := -fcray-pointer -fdefault-real-8 -Waliasing -ffree-line-length-none -fno-range-check | ||
FFLAGS += -I/net2/nnz/opt/netcdf-4.1.1/include | ||
#FFLAGS += -I/home/fms/local/opt/netcdf/4.1.1-gnu-4/include | ||
#The above fails with USE netcdf, ONLY: NF_FILL_REAL => NF90_FILL_REAL | ||
# 1 | ||
# Fatal Error: Parse error when checking module version for file 'netcdf.mod' opened at (1) | ||
# | ||
#FFLAGS += $(shell nc-config --fflags) | ||
# | ||
FFLAGS += -I/net2/nnz/opt/mpich2-1.3_ifort11_x64/include | ||
#FFLAGS += -I/usr/local/x64/mpich2-1.2.1p1/include # I do not trust this package, mpirun does not work | ||
#$(shell pkg-config --cflags-only-I mpich2-c) | ||
FFLAGS_OPT = -O2 | ||
FFLAGS_REPRO = | ||
FFLAGS_DEBUG = -O0 -g -W -fbounds-check | ||
FFLAGS_OPENMP = -fopenmp | ||
FFLAGS_VERBOSE = | ||
|
||
CFLAGS := -D__IFC | ||
CFLAGS += $(shell nc-config --cflags) | ||
CFLAGS += -I/net2/nnz/opt/netcdf-4.1.1/include -I/net2/nnz/opt/mpich2-1.3_ifort11_x64/include | ||
#CFLAGS += $(shell pkg-config --cflags-only-I mpich2-c) | ||
CFLAGS_OPT = -O2 | ||
CFLAGS_OPENMP = -fopenmp | ||
CFLAGS_DEBUG = -O0 -g | ||
|
||
# Optional Testing compile flags. Mutually exclusive from DEBUG, REPRO, and OPT | ||
# *_TEST will match the production if no new option(s) is(are) to be tested. | ||
FFLAGS_TEST = -O2 | ||
CFLAGS_TEST = -O2 | ||
|
||
LDFLAGS := | ||
LDFLAGS_OPENMP := -fopenmp | ||
LDFLAGS_VERBOSE := | ||
|
||
ifneq ($(REPRO),) | ||
CFLAGS += $(CFLAGS_REPRO) | ||
FFLAGS += $(FFLAGS_REPRO) | ||
endif | ||
ifneq ($(DEBUG),) | ||
CFLAGS += $(CFLAGS_DEBUG) | ||
FFLAGS += $(FFLAGS_DEBUG) | ||
else ifneq ($(TEST),) | ||
CFLAGS += $(CFLAGS_TEST) | ||
FFLAGS += $(FFLAGS_TEST) | ||
else | ||
CFLAGS += $(CFLAGS_OPT) | ||
FFLAGS += $(FFLAGS_OPT) | ||
endif | ||
|
||
ifneq ($(OPENMP),) | ||
CFLAGS += $(CFLAGS_OPENMP) | ||
FFLAGS += $(FFLAGS_OPENMP) | ||
LDFLAGS += $(LDFLAGS_OPENMP) | ||
endif | ||
|
||
ifneq ($(VERBOSE),) | ||
CFLAGS += $(CFLAGS_VERBOSE) | ||
FFLAGS += $(FFLAGS_VERBOSE) | ||
LDFLAGS += $(LDFLAGS_VERBOSE) | ||
endif | ||
|
||
ifeq ($(NETCDF),3) | ||
# add the use_LARGEFILE cppdef | ||
ifneq ($(findstring -Duse_netCDF,$(CPPDEFS)),) | ||
CPPDEFS += -Duse_LARGEFILE | ||
endif | ||
endif | ||
|
||
LIBS := $(shell nc-config --flibs) -L/net2/nnz/opt/mpich2-1.3_ifort11_x64/lib -lmpich -lmpl -lpthread | ||
#$(shell pkg-config --libs mpich2-f90) #does not work | ||
LDFLAGS += $(LIBS) | ||
|
||
#--------------------------------------------------------------------------- | ||
# you should never need to change any lines below. | ||
|
||
# see the MIPSPro F90 manual for more details on some of the file extensions | ||
# discussed here. | ||
# this makefile template recognizes fortran sourcefiles with extensions | ||
# .f, .f90, .F, .F90. Given a sourcefile <file>.<ext>, where <ext> is one of | ||
# the above, this provides a number of default actions: | ||
|
||
# make <file>.opt create an optimization report | ||
# make <file>.o create an object file | ||
# make <file>.s create an assembly listing | ||
# make <file>.x create an executable file, assuming standalone | ||
# source | ||
# make <file>.i create a preprocessed file (for .F) | ||
# make <file>.i90 create a preprocessed file (for .F90) | ||
|
||
# The macro TMPFILES is provided to slate files like the above for removal. | ||
|
||
RM = rm -f | ||
SHELL = /bin/csh -f | ||
TMPFILES = .*.m *.B *.L *.i *.i90 *.l *.s *.mod *.opt | ||
|
||
.SUFFIXES: .F .F90 .H .L .T .f .f90 .h .i .i90 .l .o .s .opt .x | ||
|
||
.f.L: | ||
$(FC) $(FFLAGS) -c -listing $*.f | ||
.f.opt: | ||
$(FC) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.f | ||
.f.l: | ||
$(FC) $(FFLAGS) -c $(LIST) $*.f | ||
.f.T: | ||
$(FC) $(FFLAGS) -c -cif $*.f | ||
.f.o: | ||
$(FC) $(FFLAGS) -c $*.f | ||
.f.s: | ||
$(FC) $(FFLAGS) -S $*.f | ||
.f.x: | ||
$(FC) $(FFLAGS) -o $*.x $*.f *.o $(LDFLAGS) | ||
.f90.L: | ||
$(FC) $(FFLAGS) -c -listing $*.f90 | ||
.f90.opt: | ||
$(FC) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.f90 | ||
.f90.l: | ||
$(FC) $(FFLAGS) -c $(LIST) $*.f90 | ||
.f90.T: | ||
$(FC) $(FFLAGS) -c -cif $*.f90 | ||
.f90.o: | ||
$(FC) $(FFLAGS) -c $*.f90 | ||
.f90.s: | ||
$(FC) $(FFLAGS) -c -S $*.f90 | ||
.f90.x: | ||
$(FC) $(FFLAGS) -o $*.x $*.f90 *.o $(LDFLAGS) | ||
.F.L: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -listing $*.F | ||
.F.opt: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.F | ||
.F.l: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $(LIST) $*.F | ||
.F.T: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -cif $*.F | ||
.F.f: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) -EP $*.F > $*.f | ||
.F.i: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) -P $*.F | ||
.F.o: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $*.F | ||
.F.s: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -S $*.F | ||
.F.x: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -o $*.x $*.F *.o $(LDFLAGS) | ||
.F90.L: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -listing $*.F90 | ||
.F90.opt: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -opt_report_level max -opt_report_phase all -opt_report_file $*.opt $*.F90 | ||
.F90.l: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $(LIST) $*.F90 | ||
.F90.T: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -cif $*.F90 | ||
.F90.f90: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) -EP $*.F90 > $*.f90 | ||
.F90.i90: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) -P $*.F90 | ||
.F90.o: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c $*.F90 | ||
.F90.s: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -c -S $*.F90 | ||
.F90.x: | ||
$(FC) $(CPPDEFS) $(FPPFLAGS) $(FFLAGS) -o $*.x $*.F90 *.o $(LDFLAGS) |
Oops, something went wrong.