FVCOM-ERSEM安装

Install ERSEM

说明

官方文档写的是需要FVCOM UK version,实际使用的是FVCOM原版
由于intel2019编译器编译netcdf3.6.3时出现错误,所以使用netcdf4版本,
但是FVCOM-UK编译时报错,不确定是否是netcdf4的原因,多次测试无果之后
选择用FVCOM原版尝试,成功

文档上原来写的FABM=$CODE_DIR/fabm/src需要改成FABM=$CODE_DIR/fabm/

Install.sh改完之后的版本

make_ideal_estuary.inc原版本

make_ideal_estuary.inc改后的版本

注意更改编译器、NETCDF的路径

Install_ersem.sh

#!/usr/bin/env bash


SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
CODE_DIR=$SCRIPT_DIR/code
INSTALL_DIR=$SCRIPT_DIR/model

num_cpu=$(nproc)

website=("https://github.com/UK-FVCOM-Usergroup/uk-fvcom.git" "https://github.com/pmlmodelling/ersem.git" "ghttps://github.com/fabm-model/fabm.git")
name=("uk-fvcom" "ersem" "fabm")
branch=("FVCOM-FABM" "master" "master")

mkdir $CODE_DIR
cd $CODE_DIR || exit

echo "Obtaining source code"
for i in 0 1 2
do
    git clone ${website[i]} ${name[i]}
    cd ${name[i]} || exit
    git checkout ${branch[i]}
    cd $CODE_DIR || exit
done

cd $SCRIPT_DIR || exit

FABM=$CODE_DIR/fabm
ERSEM=$CODE_DIR/ersem
FABM_INSTALL=$INSTALL_DIR/FABM-ERSEM
FC=$(which mpiifort)

mkdir -p $FABM_INSTALL

cd $FABM || exit
mkdir build
cd build || exit
# Production config:
cmake $FABM -DFABM_HOST=fvcom -DFABM_ERSEM_BASE=$ERSEM -DCMAKE_Fortran_COMPILER=$FC -DCMAKE_INSTALL_PREFIX=$FABM_INSTALL
# cmake ../../ -DFABM_HOST=fvcom -DFABM_ERSEM_BASE=/home/ocean/zcy/hhhhhh/code/ersem -DCMAKE_Fortran_COMPILER=mpifort -DCMAKE_INSTALL_PREFIX=/home/ocean/zcy/hhhhhh/model/FABM-ERSEM
make install -j $num_cpu

cd $SCRIPT_DIR || exit

sed -i 's|BASE_SETUP_DIR|'"$SCRIPT_DIR"'|g' make_ideal_estuary.inc
ln -s $SCRIPT_DIR/make_ideal_estuary.inc $SCRIPT_DIR/code/uk-fvcom/FVCOM_source/make.inc

# Installing FVCOM additional packages (METIS, Proj, etc)
##============UK版本============##
#cd $SCRIPT_DIR/code/uk-fvcom/FVCOM_source/libs || exit
#mv makefile makefile_
#ln -s makefile.CETO makefile
#make -j $num_cpu
##============US版本============##
#cd $SCRIPT_DIR/code/uk-fvcom/FVCOM_source/libs || exit
# 同fvcom编译lib方法

# Building FVCOM
cd ..
make -j $num_cpu

make_ideal_estuary.inc

#/===========================================================================/
#
# PML ceto makeinc for the ideal estuary model
#
#/===========================================================================/

#==========================================================================
#
#    WELCOME TO FVCOM
#
#    TO BUILD FVCOM, PLEASE SET THE FOLLOWING IN THIS FILE:
#        TOPDIR - the directory this make.inc file is in
#        LIBDIR - the directroy where libraries are installed
#        INCIDR - the directroy where include files are installed
#
#        CHOOSE YOUR MODEL OPTIONAS - The Def Flags!
#
#        CHOOSE A COMPILER FROM THE LIST OR CREATE YOUR OWN
#
#    You can also use the makefile to build and install some of the libraries
#    used by fvcom. Set the INSTALLDIR and choose the 'LOCAL INSTALL' option
#    below. Select an non-mpi compiler from the list and run 'make libs_ext'
#
#    Good Luck!
#

#========== TOPDIR ========================================================
# TOPDIR is the directory in which this make file and the fvcom source reside

           TOPDIR        =  BASE_SETUP_DIR/code/uk-fvcom/FVCOM_source
# TOPDIR must be set!

#========== INSTALLDIR =====================================================
# INSTALLDIR is the directory where you wish to install external libraries
# The default is in the $(TOPDIR)/libs/install, but you can choose...
            INSTALLDIR    = $(TOPDIR)/libs/install
#===========================================================================

# PREPROCESSOR OPTIONS FOR CPP
            DEF_FLAGS     = -P -traditional
#===========================================================================

####################### MEDM ENVIRONMENT #####################################
# Use the environmental variables, LIBPATH and INCLUDEPATH, set by MODULE
# to find the packages used by this build.
colon=:
empty=
dashI= $(empty) -I
dashL= $(empty) -L
# ### UNCOMMENT HERE!
#             LIBDIR       =  -L$(subst $(colon),$(dashL),$(LIBPATH))
#             INCDIR       =  -I$(subst $(colon),$(dashI),$(INCLUDEPATH))

###########################################################################

# LOCAL INSTAL
             LIBDIR       =  -L$(INSTALLDIR)/lib
             INCDIR       =  -I$(INSTALLDIR)/include

#--------------------------------------------------------------------------
#  STANDARD LIBRARIES FOR DATA AND TIME IN fVCOM:
#
             DTLIBS       = -ljulian
             DTINCS       =
#
#--------------------------------------------------------------------------
#        NETCDF OUTPUT      NETCDF IS NOW REQUIRED TO COMPILE FVCOM
#                           DUMP OUTPUT INTO NETCDF FILES (yes/no)
#                           REQUIRES SYSTEM DEPENDENT NETCDF LIBRARIES
#                           COMPILED WITH SAME F90 COMPILER
#                           SET PATH TO LIBRARIES WITH IOLIBS
#                           SET PATH TO INCLUDE FILES (netcdf.mod) WITH IOINCS
#--------------------------------------------------------------------------
#             IOLIBS       = -L/gpfs1/apps/netcdf/intelmpi/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz -lm
#             IOINCS       = -I/gpfs1/apps/netcdf/intelmpi/include -I/gpfs1/apps/hdf5/intelmpi/include
             IOLIBS       = -L/opt/netcdf4/lib -lnetcdff  -lnetcdf
             IOINCS       = -I/opt/netcdf4/include
#--------------------------------------------------------------------------


#==========================================================================
#  BEGIN USER DEFINITION SECTION
#==========================================================================
#        SELECT MODEL OPTIONS
#          SELECT FROM THE FOLLOWING OPTIONS BEFORE COMPILING CODE
#          SELECT/UNSELECT BY COMMENTING/UNCOMMENTING LINE (#)
#          CODE MUST BE CLEANED (with "make clean") AND
#          RECOMPILED IF NEW SET OF OPTIONS IS DESIRED
#--------------------------------------------------------------------------


#--------------------------------------------------------------------------
#        PRECISION          DEFAULT PRECISION: SINGLE
#                           UNCOMMENT TO SELECT DOUBLE PRECISION
#--------------------------------------------------------------------------

#            FLAG_1 =  -DDOUBLE_PRECISION

## SINGLE PRECISION OUTPUT FOR VISIT
            FLAG_1 =  -DDOUBLE_PRECISION -DSINGLE_OUTPUT -DNETCDF4_COMPRESSION
#            FLAG_1 =  -DSINGLE_OUTPUT -DNETCDF4_COMPRESSION

#--------------------------------------------------------------------------
#        SPHERICAL          SELECT SPHERICAL COORDINATES FOR INTEGRATION
#                           DEFAULT: CARTESIAN
#                           UNCOMMENT TO SELECT SPHERICAL COORDINATES
#--------------------------------------------------------------------------

#            FLAG_2 = -DSPHERICAL

#--------------------------------------------------------------------------
#        FLOODYING/DRYING   INCLUDE WET/DRY TREATMENT OF DOMAIN
#                           CAN BE ACTIVATED/DEACTIVATED AT RUN TIME WITH
#                           INPUT FILE CONTROL.  (SEE exa_run.dat) FILE
#                           DEFAULT: NO FLOODYING/DRYING INCLUDED
#                           UNCOMMENT TO INCLUDE FLOODYING/DRYING
#--------------------------------------------------------------------------

             FLAG_3 = -DWET_DRY

#--------------------------------------------------------------------------
#        MULTI_PROCESSOR    INCLUDES PARALLELIZATION WITH MPI
#                           REQUIRES LINKING MPI LIBRARIES OR COMPILING
#                           WITH A PRELINKED SCRIPT (mpif90/mpf90/etc)
#                           DEFAULT: NO PARALLEL CAPABILITY
#                           UNCOMMENT TO INCLUDE MPI PARALLEL CAPABILITY
#--------------------------------------------------------------------------

             FLAG_4 = -DMULTIPROCESSOR
             PARLIB = -lmetis -L$(LIBDIR)

#--------------------------------------------------------------------------
#        WATER_QUALITY      INCLUDE EPA WATER QUALITY MOD
#                           CAN BE ACTIVATED/DEACTIVATED AT RUN TIME WITH
#                           VARIABLE WQM_ON IN INPUT FILE
#                           DEFAULT: NO WATER QUALITY MODEL
#                           UNCOMMENT TO INCLUDE WATER QUALITY MODEL
#--------------------------------------------------------------------------

#             FLAG_5 = -DWATER_QUALITY

#--------------------------------------------------------------------------
#        PROJECTION         A Fortran90 wrapper for the Cartographic projection
#                           Software, proj4.
#                           Proj can be obtained from:
#                           http://www.remotesensing.org/proj/
#                           Thanks to: USGS
#
#                           The Proj fortran bindings can be obtained from:
#                           http://forge.nesc.ac.uk/projects/glimmer/
#                           Thanks to: Magnus Hagdorn (Magnus.Hagdorn@ed.ac.uk)
#
#                           !! NOTE THAT THE PROJ 4 LIBRARY MUST BE IN YOUR
#                           LD_LIBRARY_PATH FOR DYNAMIC LOADING!!
#
#--------------------------------------------------------------------------

             FLAG_6 = -DPROJ

             PROJLIBS       = -L$(LIBDIR) -lfproj4 -lproj -lm
             PROJINCS       = -I$(INCDIR)

#--------------------------------------------------------------------------
#        DATA_ASSIMILATION  INCLUDE NUDGING BASED DATA ASSIMILATION FOR
#                           CURRENT/TEMP/SALINITY/SST
#                           CAN BE ACTIVATED/DEACTIVATED AT RUN TIME WITH
#                           INPUT FILE CONTROL.  (SEE exa_run.dat) FILE
#                           DEFAULT: NO DATA ASSIMILATION INCLUDED
#                           UNCOMMENT TO INCLUDE DATA ASSIMILATION
#--------------------------------------------------------------------------

#             FLAG_7 = -DDATA_ASSIM
#             include ${PETSC_DIR}/bmake/common/variables
#             OILIB  = -lmkl_lapack -lmkl_em64t -lguide -lpthread

#             OILIB  = -L/gpfs1/apps/intel/mkl/lib/em64t/ -lmkl_lapack95_ilp64 -lmkl_intel_ilp64 -lmkl_core -lmkl_sequential

# For Build on em64t computer (Guppy)
#             LIBDIR = $(LIBDIR) -L/usr/local/lib64
# For Build on Cluster (Typhoeus and Hydra)
#             LIBDIR = $(LIBDIR) -L/usr/local/lib/em64t
# For i386 computers at SMAST (salmon and minke)
#   NO NEED TO ADD ANYTHING LIBS ARE IN THE DEFAULT PATH

#--------------------------------------------------------------------------
#        IN UPWIND LEAST SQUARE SCHEME:
#        LIMITED_NO: NO LIMITATION
#        LIMITED_1 : FIRST ORDER LIMITATION
#        LIMITED_2 : SECOND ORDER LIMITATION(  )
#   !!!!!! ONLY ONE OF THE FLAGS BELOW CAN BE AND MUST BE CHOSEN
#--------------------------------------------------------------------------

            FLAG_8 =  -DLIMITED_NO

#--------------------------------------------------------------------------
#  Semi-Implicit time stepping method
#--------------------------------------------------------------------------

#             FLAG_9 = -DSEMI_IMPLICIT
#             include ${PETSC_DIR}/bmake/common/variables


#---------------------------------------------------------------------------
#       SOLID BOUNDARY     IF GCN, NO GHOST CELL
#                          IF GCY1, GHOST CELL IS SYMMETRIC RELATIVE TO BOUNDARY
#                          CELL EDGE
#                          IF GCY2, GHOST CELL IS SYMMETRIC RELATIVE TO MIDDLE
#                          POINT OF THE BOUNDARY CELL EDGE
#---------------------------------------------------------------------------

             FLAG_10  = -DGCN

#--------------------------------------------------------------------------
#        TURBULENCE MODEL   USE GOTM TURBULENCE MODEL INSTEAD OF THE ORIGINAL
#                           FVCOM MELLOR-YAMADA 2.5 IMPLEMENTATION
#                           UNCOMMENT TO USE GOTM TURBULENCE MODEL
#        NOTE: You Must Build GOTM 4.x, GOTM 3.x used a different
#              do_turbulence interface and will not work.
#--------------------------------------------------------------------------

#            FLAG_11 = -DGOTM
#            GOTMLIB       = -L../GOTM_source/ -lturbulence -lutil -lmeanflow
#            GOTMINCS      = -I../GOTM_source/

#--------------------------------------------------------------------------
#       EQUILIBRIUM TIDE
#--------------------------------------------------------------------------

#            FLAG_12 = -DEQUI_TIDE

#--------------------------------------------------------------------------
#       ATMOSPHERIC TIDE
#--------------------------------------------------------------------------

#            FLAG_13 = -DATMO_TIDE

#--------------------------------------------------------------------------
#       RIVER DISTRIBUTION OPTION:
#       THE STANDARD NAME LIST USES A CHARACTER STRING TO SET A FUNCION
#       DISTROBUTION. YOU CAN OPTIONALLY SPECIFY TO USE THE OLD STYLE,
#       FLOATING POINT DISTROBUTION HERE. USE THIS WHEN CONVERTING OLD-STYLE
#       RIVER INPUT FILES!
#--------------------------------------------------------------------------

#            FLAG_14 = -DRIVER_FLOAT

#--------------------------------------------------------------------------
#        Using A fully multidimensional positive definite advection
#        transport algorithm with small implicit diffusion.
#        Based on Smolarkiewicz, P. K; Journal of Computational
#        Physics, 54, 325-362, 1984
#--------------------------------------------------------------------------

            FLAG_15 =  -DMPDATA -DTVD

#--------------------------------------------------------------------------
#         Run Two-D Barotropic Mode Only
#--------------------------------------------------------------------------

#             FLAG_16 = -DTWO_D_MODEL

#--------------------------------------------------------------------------
#         Output 2-D Momentum Balance Checking
#--------------------------------------------------------------------------

#            FLAG_17 = -DBALANCE_2D

#--------------------------------------------------------------------------
#           OPEN BOUNDARY FORCING TYPE
#           DEFAULT: OPEN BOUNDARY NODE WATER ELEVATION FORCING
#           UNCOMMENT TO SELECT BOTH OPEN BOUNDARY NODE WATER ELEVATION
#           FORCING AND OPEN BOUNDARY VOLUME TRANSPORT FORCING
#---------------------------------------------------------------------------

#            FLAG_18 = -DMEAN_FLOW

#--------------------------------------------------------------------------
#           OUTPUT TIDAL INFORMATION AT NTIDENODE and NTIDECELL
#           FOR MEANFLOW CALCULATION.
#---------------------------------------------------------------------------

#            FLAG_19 = -DTIDE_OUTPUT

#--------------------------------------------------------------------------
#           dye release
#---------------------------------------------------------------------------

#            FLAG_20 = -DDYE_RELEASE

#--------------------------------------------------------------------------
#        SUSPENDED SEDIMENT MODEL:   UNCOMMENT TO INCLUDE MODEL
# ORIG : the sediment transport model developed by Geoffey Cowles in v3.1-v3.2
# CSTMS: Community Sediment Transport Modeling System with cohesive model
# DELFT: Sediment modeling system as Delft Flow (not included)
#
# note: only one model should be chosen for modeling.
#
#  Utilities:
#    OFFLINE_SEDIMENT : run sediment with offline hydrodynamic forcing
#    FLUID_MUD : activate the 2-D fluid mud at bed-water interface
#--------------------------------------------------------------------------

            FLAG_21 =  -DSEDIMENT
            FLAG_211 = -DORIG_SED
#            FLAG_211 = -DCSTMS_SED
#
#            FLAG_22 =  -DOFFLINE_SEDIMENT
#            FLAG_43 =  -DFLUID_MUD
#
#--------------------------------------------------------------------------
#         KALMAN FILTERS
#--------------------------------------------------------------------------

#              FLAG_23 = -DRRKF
#              FLAG_23 = -DENKF
#             include ${PETSC_DIR}/bmake/common/variables
#              KFLIB  = -lmkl_lapack -lmkl_em64t -lguide -llapack -lblas

# For Build on em64t computer (Guppy)
#             LIBDIR = $(LIBDIR) -L/usr/local/lib64
# For Build on Cluster (Typhoeus and Hydra)
#             LIBDIR = $(LIBDIR) -L/usr/local/lib/em64t
# For i386 computers at SMAST (salmon and minke)
#   NO NEED TO ADD ANYTHING LIBS ARE IN THE DEFAULT PATH

#--------------------------------------------------------------------------
#         Run One-D Mode with Biological Model
#--------------------------------------------------------------------------

#             FLAG_24 = -DONE_D_MODEL

#--------------------------------------------------------------------------
#       GENERAL BIOLOGICAL MODEL:    UNCOMMENT TO INCLUDE MODEL
#--------------------------------------------------------------------------
            FLAG_25 = -DFABM  #-DOFFLINE_FABM  # -DFABM_DIAG_OUT
            BIOLIB       = -LBASE_SETUP_DIR/model/FABM-ERSEM/lib -lfabm
            BIOINCS      = -IBASE_SETUP_DIR/model/FABM-ERSEM/include -IBASE_SETUP_DIR/model/FABM-ERSEM/include/yaml

#--------------------------------------------------------------------------
#         Dynamic/Thermodynamic Ice
#--------------------------------------------------------------------------

# NOTE: Must use -DSPHERICAL  and -DHEAT_FLUX ----- this note only for old version v2.7
#       ICE_EMBEDDING must with SEMI_IMPLICIT
#            FLAG_26 = -DICE
#            FLAG_261 = -DICE_EMBEDDING

#--------------------------------------------------------------------------
#         CALCULATE THE NET HEAT FLUX IN MODEL (THREE CHOICES):
#         1. CALCULATE THE NET HEAT FLUX USING COARE26Z
#         2. CALCULATE THE NET HEAT FLUX USING COARE26Z for Great Lake
#         3. CALCULATE THE NET HEAT FLUX USING SOLAR HEATING MODULE
#--------------------------------------------------------------------------

#            FLAG_27 = -DHEATING_CALCULATED
#            FLAG_27 = -DHEATING_CALCULATED_GL
#            FLAG_27 = -DHEATING_SOLAR

#--------------------------------------------------------------------------
#         AIR_PRESSURE FROM SURFACE FORCING
#--------------------------------------------------------------------------

#             FLAG_28 = -DAIR_PRESSURE

#--------------------------------------------------------------------------
# Visit online simulation mode
#--------------------------------------------------------------------------

#            FLAG_29 = -DVISIT

#      VISITLIB     = -lm -ldl -lsimf -lsim -lpthread
#      VISITLIBPATH = $(LIBDIR)
#      VISITINCPATH = $(INCDIR)


# USE DEVELOPER INSTALL VISIT
#      VISITLIBPATH =
#      VISITLIB     =  -lm -ldl -lsimf -lsim -lpthread
#      VISITINC     =

#--------------------------------------------------------------------------
#        NON-HYDROSTATIC MODEL:
#--------------------------------------------------------------------------

#             FLAG_30 =  -DNH
#             include ${PETSC_DIR}/bmake/common/variables

#--------------------------------------------------------------------------
#        PARTICLE TRACKING
#--------------------------------------------------------------------------

#             FLAG_31 =  -DLAG_PARTICLE

#--------------------------------------------------------------------------
#        WAVE-CURRENT INTERACTION
#--------------------------------------------------------------------------
#             FLAG_32 =  -DWAVE_CURRENT_INTERACTION
#             FLAG_33 =  -DPLBC
#           NOTE! THis option is for wave code
#             FLAG_34 =  -DEXPLICIT
#           WAVE ONLY
#             FLAG_35 = -DWAVE_ONLY
# Svendsen Roller contribution
#             FLAG_36 = -DWAVE_ROLLER
#             FLAG_37 = -DWAVE_OFFLINE
#             include ${PETSC_DIR}/bmake/common/variables
#--------------------------------------------------------------------------
#        THIN-DAM MODEL
#--------------------------------------------------------------------------
#             FLAG_38 = -DTHIN_DAM

#--------------------------------------------------------------------------
#        PWP MIXED LAYER MODEL:
#--------------------------------------------------------------------------

#            FLAG_39 =  -DPWP

#--------------------------------------------------------------------------
#        VERTICAL ADVECTION LIMITER:
#        FOR S-COORDINATES, DON'T USE THIS FLAG
#--------------------------------------------------------------------------

#           FLAG_40 =  -DLIMITER_VER_ADV

#--------------------------------------------------------------------------
#        PETSC Version
#        If your PETSc is 2.3.2 or older, uncomment this flag
#--------------------------------------------------------------------------
#             FLAG_41 = -DOLD_PETSC

#--------------------------------------------------------------------------
#        SPECIAL PARTITION
#        This flag can make sure the identical repeat run for same amount of CPUs
#--------------------------------------------------------------------------
             FLAG_42 = -DPARTITION_SPECIAL

#--------------------------------------------------------------------------
#        DEVELOPMENT FLAGS
#            FOR BETA WORK ONLY
#--------------------------------------------------------------------------

#             FLAG_101 = -DDEVELOP1
#             FLAG_102 = -DDEVELOP2
#             FLAG_103 = -DDEVELOP3
#             FLAG_104 = -DDEVELOP4
#             FLAG_105 = -DDEVELOP5

#--------------------------------------------------------------------------
#        SELECT COMPILER/PLATFORM SPECIFIC DEFINITIONS
#          SELECT FROM THE FOLLOWING PLATFORMS OR USE "OTHER" TO DEFINE
#          THE FOLLOWING VARIABLES:
#          CPP:  PATH TO C PREPROCESSOR
#           FC:  PATH TO FORTRAN COMPILER (OR MPI COMPILE SCRIPT)
#          OPT:  COMPILER OPTIONS
#       MPILIB:  PATH TO MPI LIBRARIES (IF NOT LINKED THROUGH COMPILE SCRIPT)
#--------------------------------------------------------------------------
#--------------------------------------------------------------------------
#  Intel/MPI Compiler Definitions (PML)
#--------------------------------------------------------------------------
#         CPP      = mpiicc -E
#         COMPILER = -DINTEL
#         FC       = mpiifort
#         DEBFLGS  =  #-check all
#         OPT      = -O3 -L/gpfs1/apps/intel/compilers_and_libraries/linux/mpi/intel64/lib -I/gpfs1/apps/intel/compilers_and_libraries/linux/mpi/intel64/include/ -xHost #-init=zero -init=arrays -ftrapuv
#         CLIB     =
#         CC       = mpiicc
#         CFLAGS   =
#--------------------------------------------------------------------------
#  Intel/MPI Compiler Definitions (PML) Debugging
#--------------------------------------------------------------------------
#         COMPILER = -DIFORT
#         CPP      = /lib/cpp
#         CPPFLAGS = $(DEF_FLAGS) -P -traditional -DINTEL CPPMACH=-DNOGUI -I/opt/mpi/mpibull2-current/include
#         FC       = ifort
#         DEBFLGS  = #-check all
#         OPT      =  -I/opt/mpi/mpibull2-current/include -g -traceback -warn -nofor_main -fp-model precise -traceback -fpe0 -keep
#         OILIB   = -L/opt/intel/cmkl/10.0.1.014/lib/em64t -Wl,-rpath=/opt/intel/cmkl/10.0.1.014/lib/em64t -i-static -L/opt/mpi/mpibull2-current/lib -lmpi -L/usr/lib64 -libverbs -L/opt/mpi/mpibull2-current/lib/pmi -lpmi
#         CC       = icc
#         CFLAGS   = -g -I/opt/mpi/mpibull2-current/include -traceback
#--------------------------------------------------------------------------
#        COMPAQ/ALPHA Definitions
#--------------------------------------------------------------------------
#        COMPILER   = -DCOMPAQ
#        CPP        = /bin/cpp
#        FC         = f90
#        DEBFLGS    =  # -check bounds -check overflow -g
#        OPT        =  -fast -arch ev6 -fpe1
#--------------------------------------------------------------------------
#  CRAY Definitions
#--------------------------------------------------------------------------
#         COMPILER = -DCRAY
#         CPP      = /opt/ctl/bin/cpp
#         FC       = f90
#         DEBFLGS  =
#         OPT      =
#--------------------------------------------------------------------------
#   Linux/Portland Group Definitions
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
#         COMPILER =
#         FC       = pgf90
#         DEBFLGS  = -Mbounds -g -Mprof=func
#         OPT      = #-fast  -Mvect=assoc,cachesize:512000,sse
#--------------------------------------------------------------------------
#  Intel Compiler Definitions
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
#         COMPILER = -DIFORT
#         FC       = ifort
#         CC       = icc
#         CXX      = icc
#         CFLAGS   = -O3
#         DEBFLGS  = #-check all
# Use 'OPT = -O0 -g' for fast compile toBASE_SETUP_DIRthe make
# Use 'OPT = -xP' for fast run on em64t (Hydra and Guppy)
# Use 'OPT = -xN' for fast run on ia32 (Salmon and Minke)
#         OPT      = -O0 -g
#         OPT      = -xP
# Do not set static for use with visit!
#         VISOPT   = -Wl,--export-dynamic
#         LDFLAGS  = $(VISITLIBPATH)
#--------------------------------------------------------------------------
#  Intel/MPI Compiler Definitions (SMAST)
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
         COMPILER = -DIFORT
         CC       = mpicc
         CXX      = mpicxx
         CFLAGS   = -O3
         FC       = mpif90
#         DEBFLGS  = -check all -traceback
# Use 'OPT = -O0 -g'  for fast compile toBASE_SETUP_DIRthe make
# Use 'OPT = -xP' for fast run on em64t (Hydra and Guppy)
# Use 'OPT = -xN' for fast run on ia32 (Salmon and Minke)
#         OPT      = -O0 -g
#         OPT      = -axN -xN
#         OPT      = -O3
# Do not set static for use with visit!
#         VISOPT   = -Wl,--export-dynamic
#         LDFLAGS  =  $(VISITLIBPATH)
#--------------------------------------------------------------------------
#  gfortran defs
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
#         COMPILER = -DGFORTRAN
#         FC       = gfortran  -O3
#         DEBFLGS  =
#         OPT      =
#         CLIB     =
#--------------------------------------------------------------------------
#  absoft / mac os x defs
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
#         COMPILER = -DABSOFT
#         FC       = f90  -O3  -lU77
#         DEBFLGS  =
#         OPT      =
#         CLIB     =
#--------------------------------------------------------------------------
#  IBM/AIX Definitions
#--------------------------------------------------------------------------
#         COMPILER = -DAIX
#         CPP      = /usr/local/bin/cpp
#         FC       = mpxlf90 -qsuffix=f=f90
#         DEBFLGS  =  # -qcheck -C -g
#         OPT      = -O -qarch=pwr4 -qtune=pwr4  -bmaxdata:0x80000000 -qhot -qmaxmem=8096
#--------------------------------------------------------------------------
#  APPLE OS X/XLF Definitions (G5)
#--------------------------------------------------------------------------
#         COMPILER = -DAIX
#         CPP      = /usr/bin/cpp
#         FC       =  /opt/ibmcmp/xlf/8.1/bin/xlf90 -qsuffix=f=f90
#         DEBFLGS  =  # -qcheck -C -g
#         OPT      = -O5 -qarch=g5 -qtune=g5  -qhot -qmaxmem=8096 -qunroll=yes -Wl,-stack_size,10000000
#--------------------------------------------------------------------------
#  ARCHER Intel/MPI Compiler
#--------------------------------------------------------------------------
#         CPP      = /usr/bin/cpp
#         COMPILER = -DIFORT
#         CC       = cc
#         CXX      = CC
#         CFLAGS   = -O3
#         FC       = ftn
##         DEBFLGS  = -check all
#         OPT      = -O3
#         COPTIONS = -c89
#--------------------------------------------------------------------------
#==========================================================================
#  END USER DEFINITION SECTION
#==========================================================================
         CPPFLAGS = $(DEF_FLAGS) $(COMPILER)
         FFLAGS = $(DEBFLGS) $(OPT)
         MDEPFLAGS = --cpp --fext=f90 --file=-
         RANLIB = ranlib
         AR = ar rc
#--------------------------------------------------------------------------
#  CAT Preprocessing Flags
#--------------------------------------------------------------------------
           CPPARGS =  $(CPPFLAGS) $(DEF_FLAGS) $(FLAG_1) $(FLAG_2) \
   $(FLAG_3) $(FLAG_4) $(FLAG_5) $(FLAG_6)  \
   $(FLAG_7) $(FLAG_8) $(FLAG_9) $(FLAG_10) \
   $(FLAG_11) $(FLAG_12) $(FLAG_13) $(FLAG_14) \
   $(FLAG_15) $(FLAG_16) $(FLAG_17) $(FLAG_18) \
   $(FLAG_19) $(FLAG_20) $(FLAG_21) $(FLAG_22) \
   $(FLAG_23) $(FLAG_24) $(FLAG_25) $(FLAG_26) \
   $(FLAG_27) $(FLAG_28) $(FLAG_29) $(FLAG_30) \
   $(FLAG_31) $(FLAG_32) $(FLAG_33) $(FLAG_34) \
   $(FLAG_35) $(FLAG_36) $(FLAG_37) $(FLAG_38) \
   $(FLAG_39) $(FLAG_40) $(FLAG_41) $(FLAG_42) \
   $(FLAG_43) $(FLAG_LAM)\
   $(FLAG_101) $(FLAG_102) $(FLAG_103) $(FLAG_104) $(FLAG_105)\
   $(FLAG_211) $(FLAG_212) $(FLAG_213) $(FLAG_251) $(FLAG_261)
#--------------------------------------------------------------------------
#  Libraries
#--------------------------------------------------------------------------

            LIBS  =	$(LIBDIR) $(CLIB)  $(PARLIB) $(IOLIBS)	$(DTLIBS)\
			$(MPILIB) $(GOTMLIB) $(KFLIB) $(BIOLIB)	\
			$(OILIB) $(VISITLIB) $(PROJLIBS) $(PETSC_LIB)

            INCS  = 	$(INCDIR) $(IOINCS) $(GOTMINCS) $(BIOINCS)\
			 $(VISITINCPATH) $(PROJINCS) $(DTINCS) \
			 $(PETSC_FC_INCLUDES)


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Christmas_Zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值