merge standard release WRF/WPS V3.0.1.1 into wrffire
[wrffire.git] / wrfv2_fire / arch / README.canonical_stanza
blob1a903d74e928e7f8410c644b9dc52ede223344e9
1 ###########################################################
2 #ARCH    <os> (fortran) compiler with (C) compiler # serial smpar dmpar dm+sm
4 # (The last four words on the line above indicate what parallel modes are supported for this build.
5 #  Presence of serial indicates the code can be built single-threaded and an option will be presented
6 #  by the configure script for this.  Likewise, presence of smpar indicates shared-memory parallel (OpenMP),
7 #  dmpar indicates distributed memory parallel (MPI), and dm+sm indicates both.  The comment character
8 #  before the first word is not necessary but it makes the choices neater when the configure script 
9 #  displays them to the user)
11 # (The settings below should be all that are needed per architecture/installation. The rest of the 
12 #  configuration settings are based on these and are done in the postamble (arch/postamble) )
14 DMPARALLEL      =       # 1
15 OMPCPP          =       # -D_OPENMP
16 OMP             =       # (compiler dependent option for openmp, e.g. -mp for pgi; leave commented out)
17 SFC             =       (serial fortran compiler)
18 SCC             =       (serial C compiler)
19 DM_FC           =       (Fortran compile command for mpi, eg: mpif90 -f90=$(SFC))
20 DM_CC           =       (C compile comand for mpi, eg: mpicc -cc=$(SCC))
21 FC              =       CONFIGURE_FC    (leave as is: to be filled in by configure depending on parallel option)
22 CC              =       CONFIGURE_CC    (leave as is: to be filled in by configure depending on parallel option
23 LD              =       $(FC)           (usually leave as is)
24 RWORDSIZE       =       CONFIGURE_RWORDSIZE   # filled in by configure or hard coded to 8 (for var)
25 PROMOTION       =       (compiler specific option for promotion: e.g. -r$(RWORDSIZE) -i4)
26 ARCH_LOCAL      =       (local additions to ARCHFLAGS)
27 CFLAGS_LOCAL    =       (local additions to CFLAGS)
28 LDFLAGS_LOCAL   =       (local additions to LDFLAGS)
29 FCOPTIM         =       (optimization options to Fortran compiler)
30 FCREDUCEOPT     =       (optional: used by noop_exceptsions for certain routines that won't work with full opt on certain compilers)
31 FCNOOPT         =       (flag that turns off optimization)
32 FCDEBUG         =       (debug and no optimization options to Fortran compiler)
33 FORMAT_FIXED    =       (fortran compiler option for fixed format)
34 FORMAT_FREE     =       (fortran compiler option for free format)
35 FCSUFFIX        =       (tell the compiler what a fortran file's suffix looks like -- AIX needs)
36 BYTESWAPIO      =       (option to give bigendian unformatted fortran output, if needed)
37 FCBASEOPTS      =       $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO) (basic options to fortran compiler, but not optim.)
38 MODULE_SRCH_FLAG =      (flag to compiler to tell it where to search for modules -- PGI needs)
39 TRADFLAG        =       (flag to cpp to tell it to act like it did before script kiddies got hold of it)
40 CPP             =       (cpp command)
41 AR              =       (ar command)
42 ARFLAGS         =       (flags to ar command, want ru capability)
43 M4              =       (m4 command)
44 RANLIB          =       (ranlib command if needed)
45 CC_TOOLS        =       (the cc command that should be used for compiling in the tools directory. Often just cc or $(SCC) )
47 #optional (used for BG/L, for example, where the mpi args and paths have to be specified explicitly)
48 MPI_INC         =       (e.g. -I/bgl/BlueLight/ppcfloor/bglsys/include)
49 MPI_LIB         =       (e.g. -L/bgl/BlueLight/ppcfloor/bglsys/lib -lmpich.rts -lmsglayer.rts -lrts.rts -ldevices.rts)
51 ---
52 Here is an example:
54 ###########################################################
55 #ARCH    Linux x86_64, PGI compiler with gcc # serial smpar dmpar dm+sm
57 DMPARALLEL      =       # 1
58 OMPCPP          =       # -D_OPENMP
59 OMP             =       # -mp -Minfo=mp
60 SFC             =       pgf90
61 SCC             =       gcc
62 DM_FC           =       mpif90 -f90=$(SFC)
63 DM_CC           =       mpicc -cc=$(SCC)
64 FC              =       CONFIGURE_FC
65 CC              =       CONFIGURE_CC
66 LD              =       $(FC)
67 RWORDSIZE       =       CONFIGURE_RWORDSIZE
68 PROMOTION       =       -r$(RWORDSIZE) -i4
69 ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR # but for ifort compiler, it is -DNONSTANDARD_SYSTEM_FUNC
70 CFLAGS_LOCAL    =       -w -O3
71 LDFLAGS_LOCAL   =      
72 FCOPTIM         =       -fastsse -Mvect=noaltcode -Msmartalloc -Mprefetch=distance:8 -Mfprelaxed # -Minfo=all =Mneginfo=all
73 FCREDUCEDOPT    =       $(FCOPTIM)
74 FCNOOPT         =       -O0
75 FCDEBUG         =       # -g $(FCNOOPT)
76 FORMAT_FIXED    =       -Mfixed
77 FORMAT_FREE     =       -Mfree
78 FCSUFFIX        =
79 BYTESWAPIO      =       -byteswapio
80 FCBASEOPTS      =       -w $(FCDEBUG) $(FORMAT_FREE) $(BYTESWAPIO)
81 MODULE_SRCH_FLAG =     -module $(WRF_SRC_ROOT_DIR)/main
82 TRADFLAG        =      -traditional
83 CPP             =      /lib/cpp -C -P
84 AR              =      ar
85 ARFLAGS         =      ru
86 M4              =      m4 -B 14000
87 RANLIB          =      ranlib
88 CC_TOOLS        =      $(SCC)