Skip to content

Files

Latest commit

6d711f7 · Oct 15, 2014

History

History

arch

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
Oct 15, 2014
###########################################################
#ARCH    <os> (fortran) compiler with (C) compiler # serial smpar dmpar dm+sm
#
# (The last four words on the line above indicate what parallel modes are supported for this build.
#  Presence of serial indicates the code can be built single-threaded and an option will be presented
#  by the configure script for this.  Likewise, presence of smpar indicates shared-memory parallel (OpenMP),
#  dmpar indicates distributed memory parallel (MPI), and dm+sm indicates both.  The comment character
#  before the first word is not necessary but it makes the choices neater when the configure script 
#  displays them to the user)
#
# (The settings below should be all that are needed per architecture/installation. The rest of the 
#  configuration settings are based on these and are done in the postamble (arch/postamble) )
#
DMPARALLEL      =       # 1
OMPCPP          =       # -D_OPENMP
OMP             =       # (compiler dependent option for openmp, e.g. -mp for pgi; leave commented out)
SFC             =       (serial fortran compiler)
SCC             =       (serial C compiler)
DM_FC           =       (Fortran compile command for mpi, eg: mpif90 -f90=$(SFC))
DM_CC           =       (C compile comand for mpi, eg: mpicc -cc=$(SCC))
FC              =       CONFIGURE_FC    (leave as is: to be filled in by configure depending on parallel option)
CC              =       CONFIGURE_CC    (leave as is: to be filled in by configure depending on parallel option
LD              =       $(FC)		(usually leave as is)
RWORDSIZE       =       CONFIGURE_RWORDSIZE   # filled in by configure or hard coded to 8 (for var)
PROMOTION       =       (compiler specific option for promotion: e.g. -r$(RWORDSIZE) -i4)
ARCH_LOCAL      =       (local additions to ARCHFLAGS)
CFLAGS_LOCAL    =       (local additions to CFLAGS)
LDFLAGS_LOCAL   =       (local additions to LDFLAGS)
FCOPTIM         =       (optimization options to Fortran compiler)
FCREDUCEOPT     =       (optional: used by noop_exceptsions for certain routines that won't work with full opt on certain compilers)
FCNOOPT         =       (flag that turns off optimization)
FCDEBUG         =       (debug and no optimization options to Fortran compiler)
FORMAT_FIXED    =       (fortran compiler option for fixed format)
FORMAT_FREE     =       (fortran compiler option for free format)
FCSUFFIX        =       (tell the compiler what a fortran file's suffix looks like -- AIX needs)
BYTESWAPIO      =       (option to give bigendian unformatted fortran output, if needed)
FCBASEOPTS      =       $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO) (basic options to fortran compiler, but not optim.)
MODULE_SRCH_FLAG =      (flag to compiler to tell it where to search for modules -- PGI needs)
TRADFLAG        =       (flag to cpp to tell it to act like it did before script kiddies got hold of it)
CPP             =       (cpp command)
AR              =       (ar command)
ARFLAGS         =       (flags to ar command, want ru capability)
M4              =       (m4 command)
RANLIB          =       (ranlib command if needed)
CC_TOOLS        =       (the cc command that should be used for compiling in the tools directory. Often just cc or $(SCC) )

#optional (used for BG/L, for example, where the mpi args and paths have to be specified explicitly)
MPI_INC         =       (e.g. -I/bgl/BlueLight/ppcfloor/bglsys/include)
MPI_LIB         =       (e.g. -L/bgl/BlueLight/ppcfloor/bglsys/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts)

---
Here is an example:

###########################################################
#ARCH    Linux x86_64, PGI compiler with gcc # serial smpar dmpar dm+sm
#
DMPARALLEL      =       # 1
OMPCPP          =       # -D_OPENMP
OMP             =       # -mp -Minfo=mp
SFC             =       pgf90
SCC             =       gcc
DM_FC           =       mpif90 -f90=$(SFC)
DM_CC           =       mpicc -cc=$(SCC)
FC              =       CONFIGURE_FC
CC              =       CONFIGURE_CC
LD              =       $(FC)
RWORDSIZE       =       CONFIGURE_RWORDSIZE
PROMOTION       =       -r$(RWORDSIZE) -i4
ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR # but for ifort compiler, it is -DNONSTANDARD_SYSTEM_FUNC
CFLAGS_LOCAL    =       -w -O3
LDFLAGS_LOCAL   =      
FCOPTIM         =       -fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
FCREDUCEDOPT    =       $(FCOPTIM)
FCNOOPT         =       -O0
FCDEBUG         =       # -g $(FCNOOPT)
FORMAT_FIXED    =       -Mfixed
FORMAT_FREE     =       -Mfree
FCSUFFIX        =
BYTESWAPIO      =       -byteswapio
FCBASEOPTS      =       -w $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO)
MODULE_SRCH_FLAG =     -module $(WRF_SRC_ROOT_DIR)/main
TRADFLAG        =      -traditional
CPP             =      /lib/cpp -C -P
AR              =      ar
ARFLAGS         =      ru
M4              =      m4 -B 14000
RANLIB          =      ranlib
CC_TOOLS        =      $(SCC)