# Sections
# 1. System Variables
# 3. Fortran options
#    3a. Cray (YMP, J90)
#        Note: set RUNTIME_SYSTEM="CRAY_IA" for Cray interactive job
#    3b. IRIX.6.X (SGI_Origin,SGI_R10000,SGI_R8000 which support OpenMP)
#   3b2. IRIX.6.X (SGI_Origin,SGI_R10000,SGI_R8000)
#    3c. IRIX.5.2/5.3, IRIX.6.X (SGI_R4000/SGI_R4400/SGI_R5000)
#        Note: set RUNTIME_SYSTEM="SGI_R4000" for SGI_R4400/SGI_R5000
#    3d. SUN Fortran (solaris,SPARC20/SPARC64)
#    3e. DEC_ALPHA (OSF/1)
#   3e2. DEC_ALPHA (4100/8400; use OpenMP parallel directives)
#    3f. IBM (AIX)
#   3f2. IBM, OpenMP (AIX)
#    3g. HP (UX)
#    3h. HP (SPP-UX) for HP Exemplar S/X-Class Systems
# 4. General commands
# 5. Options for making "./include/parame.incl"
# 6. Physics Options (memory related)
# 7. MPP Options (Set no options in section 3)
#    7a. IBM SP2
#    7b. Cray T3E
#    7c. SGI Origin 2000
#    7d. HP Exemplar
#    7e. DEC ALPHA/MPI
#    7f. Fujitsu VPP
#    7g. Network of Linux PCs with MPI
#
#-----------------------------------------------------------------------------
# 1. System Variables 
#-----------------------------------------------------------------------------
SHELL =         /bin/sh
.SUFFIXES: .F .i .o .f .c
#-----------------------------------------------------------------------------
# 3. Fortran options
#    Uncomment the ones you need, including RUNTIME_SYSTEM
#-----------------------------------------------------------------------------
LIBINCLUDE = $(DEVTOP)/include
#-----------------------------------------------------------------------------
#    3a. Cray
#    Note: - imsl library is only needed if running Arakawa-Schubert cumulus scheme;
#          and the location of the library may be different on non-NCAR Crays.
#          - if you are using the new program environment on Cray, should set
#          CPP = /opt/ctl/bin/cpp
#          - select the right compilation option for Cray - you may use
#          f90 option on paiute
#          - -x omp is needed for f90 compiler version 3.0.2.6 and above.
#          Check man page.
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "CRAY_IA"
#FC = f90
#FCFLAGS = -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -O task1 -x omp
#CFLAGS =
#CPP = /opt/ctl/bin/cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS =
#LOCAL_LIBRARIES = -L /usr/local/lib -l imsl
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3b. IRIX.6.X (SGI_Origin,SGI_R10000,SGI_R8000 which support OpenMP)
#        Use OpenMP directives for multi-processor runs.
#        - set RUNTIME_SYSTEM = SGI_Origin
#        - works with 7.2.1 and above compiler
#        - select appropriate XLOCAL0 macro for loader option
#
#    - For parallel execution of MM5 set the following environment variables:
# setenv OMP_NUM_THREADS 
# setenv _DSM_PLACEMENT ROUND_ROBIN
#    - For parallel execution on a processor set without contention:
# setenv _DSM_WAIT SPIN
# setenv OMP_DYNAMIC FALSE
# setenv MPC_GANG OFF
#    - For parallel execution on a contented set of processors:
# setenv _DSM_WAIT YEILD
# setenv OMP_DYNAMIC TRUE
# setenv MPC_GANG OFF
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "SGI_Origin"
#FC = f77
#ABI = -n32 # 2 GB address space
##ABI = -64 # For 64-bit address space
#IO = -mpio
#PREC = # default 32-bit floating-point presicion.
##PREC = -r8 # 64-bit floating-point precision.
##Conversion program between different precisions of mminput and bdyout available from wesley@sgi.com
#MP = -mp -MP:old_mp=OFF
##MP = -mp -MP:open_mp=OFF # Use SGI multiprocessing directives
#OPT = -O3 -OPT:roundoff=3:IEEE_arithmetic=3 -OPT:reorg_common=OFF
##debugging#OPT = -g -DEBUG:div_check:subscript_check=ON:trap_uninitialized=ON
##select appropriate XLOCAL loader
#XLOCAL0 =
### Burk-Thompson PBL (IBLTYP=3) option mp directives
##XLOCAL0 = -Wl,-Xlocal,bt1_,-Xlocal,blk1_,-Xlocal,blk2_
### OSU LSM (ISOIL=2) option mp directives
##XLOCAL0 = -Wl,-Xlocal,rite_,-Xlocal,abci_
### Gayno-Seaman PBL (IBLTYP=6) option mp directives
##XLOCAL0 = -Wl,-Xlocal,fog1d_,-Xlocal,surface1_,-Xlocal,surface2_,-Xlocal,surface3_,-Xlocal,comsurfslab_
#FCFLAGS = -I$(LIBINCLUDE) -D$(RUNTIME_SYSTEM) $(ABI) $(IO) $(PREC) $(MP) $(OPT)
#CFLAGS =
#CPP = /usr/lib/cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = $(ABI) $(PREC) $(MP) $(OPT) $(XLOCAL0)
#LOCAL_LIBRARIES = -lfastm
#MAKE = make -i -r -P
#-----------------------------------------------------------------------------
#   3b2. IRIX.6.X (SGI_Origin,SGI_R10000,SGI_R8000)
#        Use SGI directives for multi-processor runs.
#        - set RUNTIME_SYSTEM = SGI_R8000
#        - use the appropriate LDOPTIONS if compiling Burk-Thompson PBL,
#          Gayno-Seaman PBL, or OSU land-surface module
#        - use 7.0 and above compiler
#        - do not use -lfastm for R10000 and Origin series for compiler
#          versions 7.0 and 7.1, unless patches are installed. For more
#          information please see MM5 Web page:
#            http://www.mmm.ucar.edu/mm5/mm5v2-sgi.html
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "SGI_R8000"
#FC = f77
#FCFLAGS = -I$(LIBINCLUDE) -O3 -n32 -mips4 -mp -OPT:roundoff=3:IEEE_arithmetic=3
#CFLAGS = 
#CPP = /usr/lib/cpp 
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = -n32 -mips4 -mp
###Burk-Thompson (IBLTYP=3) option mp directives
##LDOPTIONS = -n32 -mips4 -mp -Wl,-Xlocal,bt1_,-Xlocal,blk1_,-Xlocal,blk2_
###OSU LSM (ISOIL=2) option mp directives
##LDOPTIONS = -n32 -mips4 -mp -Wl,-Xlocal,rite_,-Xlocal,abci_
### Gayno-Seaman (IBLTYP=6) option mp directives
##LDOPTIONS = -n32 -mips4 -mp -Wl,-Xlocal,fog1d_,-Xlocal,surface1_,-Xlocal,surface2_,-Xlocal,surface3_,-Xlocal,comsurfslab_
#LOCAL_LIBRARIES = -lfastm
##LOCAL_LIBRARIES =
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3c. IRIX.6.X (SGI_R4400/SGI_R4000/SGI_R5000)
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "SGI_R4000"
#FC = f77
#FCFLAGS = -I$(LIBINCLUDE) -mips2 -32 -O2 -Nn30000 -Olimit 1500
#CFLAGS = 
#CPP = /usr/lib/cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = 
#LOCAL_LIBRARIES = -lfastm
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3d. SUN (solaris,SPARC20/SPARC64)
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "SUN"
#FC = f77
#FCFLAGS = -fast -O2 -I$(LIBINCLUDE)
#CFLAGS = 
#LDOPTIONS = -fast -O2
#CPP = /usr/lib/cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LOCAL_LIBRARIES = 
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3e. DEC_ALPHA (OSF/1)
#-----------------------------------------------------------------------------
RUNTIME_SYSTEM = "DEC_ALPHA"
FC = f90
FCFLAGS = -cpp -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -c -O4 -Olimit 2000 -automatic \
-fpe0 -align dcommons -align records -w -convert big_endian
CFLAGS = 
CPP = cpp
CPPFLAGS = -I$(LIBINCLUDE) -C -P
LDOPTIONS = -math_library accurate
LOCAL_LIBRARIES = 
MAKE = make -i -r
#-----------------------------------------------------------------------------
#   3e2. DEC_ALPHA (4100/8400 Series)
#        Use OpenMP directives for multi-processor runs.
#        - set RUNTIME_SYSTEM = DEC_ALPHA
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "DEC_ALPHA"
#FC = f90
#FCFLAGS = -omp -cpp -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -c -O4 -Olimit 2000 \
#-automatic -fpe0 -align dcommons -align records -convert big_endian
#CFLAGS = 
#CPP = cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = -omp -math_library accurate
#LOCAL_LIBRARIES = 
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3f. IBM (AIX)
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "IBM"
#FC = xlf
#FCFLAGS = -I$(LIBINCLUDE) -O3 -qarch=auto -qmaxmem=-1
#CPP = /usr/lib/cpp
#CFLAGS =
#CPPFLAGS = -I$(LIBINCLUDE) -C -P -Drs6000
#LDOPTIONS = -qmaxmem=-1 -O3 -qarch=auto
#LOCAL_LIBRARIES = -lmass
#MAKE = make -i
#-----------------------------------------------------------------------------
#    3f2. IBM (AIX)
#       - Depending on problem size and machine memory size, the settings
#         of maxstack and maxdata may need to be modified.
#       - If the newer thread-safe mass library is available, add
#         the -lmass_r option to LOCAL_LIBRARIES.
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "IBM"
#FC = xlf_r
#FCFLAGS = -I$(LIBINCLUDE) -O3 -qarch=auto -qmaxmem=-1 -qsmp=noauto -qnosave -qstrict
#CPP = /usr/lib/cpp
#CFLAGS =
#CPPFLAGS = -I$(LIBINCLUDE) -C -P -Drs6000
#LDOPTIONS = -qmaxmem=-1 -O3 -qarch=auto -bmaxstack:512000000 -bmaxdata:5120000
#LOCAL_LIBRARIES = -lxlsmp -lmass_r
#LOCAL_LIBRARIES = -lxlsmp
#MAKE = make -i
#-----------------------------------------------------------------------------
#    3g. HP (UX)
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "HP"
#FC = f77
#FCFLAGS = -I$(LIBINCLUDE) -O  
#CPP = /usr/lib/cpp 
#CFLAGS = -Aa
#CPPFLAGS = -I$(LIBINCLUDE) -C -P 
#LDOPTIONS = 
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3h. HP-SPP (SPP-UX), and HP-SPP_IA
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "HP-SPP"
#FC        = f77
#PA8K      = +DA2.0N +DS2.0a
#ARCH      = ${PA8K}
#PROFILE   =
#INLINE    = +Olimit +Oinline=_saxpy,vadv,hadv,sinty,sintx,slab,diffut
#PARALLEL  = +O3 +Oparallel +Onofail_safe +Onoautopar +Onodynsel
#
## Use the following FCFLAGS to build single-threaded executable
##FCFLAGS   = ${PROFILE} ${ARCH} -I$(LIBINCLUDE) +O3 +Oaggressive \
##            +Olibcalls ${INLINE}
#
## Use the following FCFLAGS to build a parallel executable
#FCFLAGS   = ${PROFILE} ${ARCH} -I$(LIBINCLUDE) ${PARALLEL} \
#             +O3 +Oaggressive +Olibcalls ${INLINE}
#
#CPP = /usr/lib/cpp
#CFLAGS = ${PROFILE} -Aa
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = ${FCFLAGS} -Wl,-aarchive_shared -Wl,+FPD
#LOCAL_LIBRARIES = -Wl,/usr/lib/pa1.1/libm.a
#MAKE = gmake -j 4 -i -r
#-----------------------------------------------------------------------------
# 4. General commands
#-----------------------------------------------------------------------------
AR = ar ru
RM = rm -f
RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o *.i core errs ,* *~ *.a \
.emacs_* tags TAGS make.log MakeOut *.f !
GREP = grep -s
CC = cc
#-----------------------------------------------------------------------------
# 5. Options for making ./include/parame.incl
#-----------------------------------------------------------------------------
#
# FDDAGD (integer)                  - "1" -> FDDA gridded run
FDDAGD = 0
#
# FDDAOBS (integer)                 - "1" -> FDDA obs run
FDDAOBS = 0
#
# MAXNES (integer)                  - Max Number of Domains in simulation
MAXNES = 2
#
# MIX,MJX (integer)                 - Maximum Dimensions of any Domain
MIX = 49
MJX = 52
# MKX (integer)                     - Number of half sigma levels in model
MKX = 23
#-----------------------------------------------------------------------------
# 6. Physics Options
#    The first MAXNES values in the list will be used for the corresponding
#        model nests; the rest in the list can be used to compile other options.
#        The exception is FRAD, of which only the first value is used in the model,
#        (i.e., only one radiation option is used for all nests). The rest allow 
#        other options to be compiled.
#-----------------------------------------------------------------------------
# IMPHYS - for explicit moisture schemes (array,integer)
IMPHYS = "4,4,1,1,1,1,1,1,1,1"      
#                                   - Dry,stable,warm rain,simple ice,mix phase,
#                                   - 1  ,2     ,3        ,4         ,5
#                                   - graupel(gsfc),graupel(reisner2),schultz
#                                   -,6            ,7                ,8
MPHYSTBL = 0
#                                   - 0=do not use look-up tables for moist 
#                                     physics
#                                   - 1=use look-up tables for moist physics 
#                                     (currently only simple ice and mix phase 
#                                      are available)
#
# ICUPA - for cumulus schemes (array,integer)
#                                   - None,Kuo,Grell,AS,FC,KF,BM,KF2 - 1,2,3,4,5,6,7,8
ICUPA  = "3,3,1,1,1,1,1,1,1,1"
#
# IBLTYP - for planetary boundary layer (array,integer)
#                                   - 0=no PBL fluxes,1=bulk,2=Blackadar,
#                                     3=Burk-Thompson,4=Eta M-Y,5=MRF,
#                                     6=Gayno-Seaman,7=Pleim-Xiu
IBLTYP  = "5,5,2,0,0,0,0,0,0,0"
#
# FRAD - for atmospheric radiation (integer)
#                                   - Radiation cooling of atmosphere 
#                                     0=none,1=simple,2=cloud,3=ccm2,4=rrtm
FRAD = "2,0,0,0,0"
#
# ISOIL - for multi-layer soil temperature model (integer)
#                                   - 0=no,1=yes (only works with IBLTYP=2,4,5,6)
#                                     2=OSU land-surface scheme (IBLTYP=5)
#                                     3=Pleim-Xiu LSM (IBLTYP=7 only)
ISOIL = 1
#
# ISHALLO (array,integer)           - Shallow Convection Option
#                                     1=shallow convection,0=No shallow convection
ISHALLO  = "0,0,0,0,0,0,0,0,0,0"
#-----------------------------------------------------------------------------
# 7. MPP options
#
# For general information and updated "helpdesk" information see
#    http://www.mmm.ucar.edu/mm5/mpp
#    http://www.mmm.ucar.edu/mm5/mpp/helpdesk
#
#-----------------------------------------------------------------------------
#
#                                 Presently, of the MPP platforms only the "sp2"
#                                 is supplied with the "make deck" capability.
#
# MPP Software Layer
MPP_LAYER=RSL
#MPP_LAYER=NNTSMS
# 
# PROCMIN_NS - minimum number of processors allowed in N/S dim
#
PROCMIN_NS = 1
#
# PROCMIN_EW - minimum number of processors allowed in E/W dim
#
PROCMIN_EW = 1
#
# ASSUME_HOMOGENOUS_ENVIRONMENT - on a machine with a heterogeneous
# mix of processors (different speeds) setting this compile time
# constant to 0 (zero) allows the program to detect the speed of each
# processor at the beginning of a run and then to attempt to come up with
# an optimal (static) mapping.  Set this to 0  for a heterogeneous
# mix of processors, set it to 1 for a homogeneous mix.  Unless you
# are certain you have a heterogeneous mix of processors, leave this
# set to 1.  Currently, this option is ignored on platforms other
# than the IBM SP.
#
ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#
#-----------------------------------------------------------------------------
#    7a. IBM SP2
#         type 'make mpp' for the SP2
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "sp2"
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = xlf
#MCC = mpcc
#MLD = mpxlf
#FCFLAGS = -O3 -qstrict -qarch=auto -qhsflt
#LDOPTIONS =
##LOCAL_LIBRARIES = -lmass
#LOCAL_LIBRARIES = -lessl
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI -Drs6000
#CFLAGS = -DNOUNDERSCORE -DMPI
#ARCH_OBJS =  milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
#    7a.1 IBM SP with Silver or Winterhawk nodes
#         type 'make mpp' for the SP2
#       - You must compile with XLF or MPXLF version 6.1 or greater.
#       - Check with your system admin before linking to lessl or lmass.
#       - Note for running on blue.llnl.gov: 
#          newmpxlf_r is LLNL specific wrapper around HPF 6.1 w/ HPF off.
#       - If the newer thread-safe mass library is available, add
#         the -lmass_r option to LOCAL_LIBRARIES.
#       - When MPP builds, it will use a copy of the file in MPP/RSL/Makefile.RSL.sp2
#         which invokes the -qstrict option for the exmois routines.
#       - The -bmaxdata:0x70000000 flag on LDOPTIONS was suggested by
#         Katja Stokely, the IBM Applications Analyst at NCAR
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "sp2"
#MPP_TARGET=$(RUNTIME_SYSTEM)
## On llnl.blue.gov, (3/99)
##MFC = time newmpxlf_r
##MCC = mpcc_r
##MLD = newmpxlf_r
## On systems with R6.1 or greater of IBM Fortran.
#MFC = time mpxlf_r
#MCC = mpcc_r
#MLD = mpxlf_r
#FCFLAGS = -O3 -qarch=auto -qzerosize -qsmp=noauto -qnosave -qmaxmem=-1
#LDOPTIONS =  -qsmp=noauto -bmaxdata:0x70000000
##LOCAL_LIBRARIES = -lmass_r
##LOCAL_LIBRARIES = -lessl
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI -Drs6000
#CFLAGS = -DNOUNDERSCORE -DMPI
#ARCH_OBJS =  milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
#    7b. T3E
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "t3e"
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f90
#MCC = cc
#MLD = $(MFC)
##FCFLAGS = -g
#FCFLAGS = -O2
#LDOPTIONS =
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /opt/ctl/bin/cpp -C -P
#CPPFLAGS = -DMPI -DT3E
#CFLAGS = -DNOUNDERSCORE -Dt3e -DT3E -DMPI
#ARCH_OBJS = error_dupt3d.o t3etraps.o set_to_nan.o milliclock.o
#IWORDSIZE = 8
#RWORDSIZE = 8
#LWORDSIZE = 8
#-----------------------------------------------------------------------------
#    7c. Origin 2000
#    Note that the MPP version of MM5 is not supported for compilation under
#    the "modules" environment.  To see if you are using modules to control
#    compiler versions on your machine, type "module list".
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "o2k"
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f77 -n32 -mips4 -w
#MCC = cc -n32 -mips4 -w
#MLD = f77 -n32 -mips4
##FCFLAGS = -g
#FCFLAGS = -O3 -OPT:roundoff=3:IEEE_arithmetic=3 -OPT:fold_arith_limit=2001
#LDOPTIONS =
#LOCAL_LIBRARIES = -lfastm /usr/lib32/libmpi.so
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI -DO2K
#CFLAGS = -DO2K -DMPI
#ARCH_OBJS = milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
#    7d. HP Exemplar
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "hp"
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f77
#MCC = mpicc
#MLD = mpif77
##FCFLAGS   =  +DA2.0N +DS2.0a -g
#FCFLAGS   = +DA2.0N +DS2.0a +O3
#LDOPTIONS =
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI
#CFLAGS = -DNOUNDERSCORE -DMPI
#ARCH_OBJS = milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
#    7e. DEC ALPHA/MPI/OpenMP (Thanks to Dave Sherden)
#        - For multi-threaded MPI processes (useful on dm-clusters of SMP
#          nodes; such as fir.mmm.ucar.edu), uncomment the definition
#          of the macro: SPECIAL_OMP.
#        - If running with MPICH (public domain MPI) uncomment
#          first set of definitions for MFC, MCC, MLD and LDOPTIONS.  If using
#          the Compaq/DEC MPI, uncomment the second set.
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "alpha"
#MPP_TARGET=$(RUNTIME_SYSTEM)
###### If using OpenMP for SMP parallelism on each MPI process ###
##SPECIAL_OMP = -omp
###### If using MPICH ###
#MFC = f77
#MCC = mpicc
#MLD = mpif77
#LDOPTIONS = $(OMP)
###### If using DEC MPI (e.g. on fir.mmm.ucar.edu) ###
##MFC = f90
##MCC = cc
##MLD = f90
##LDOPTIONS = -lmpi $(SPECIAL_OMP)
###### 
#FCFLAGS = -O4 -Olimit 2000 -fpe0 -align dcommons -align records \
#          -convert big_endian $(SPECIAL_OMP)
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = cpp -C -P
#CPPFLAGS = -DMPI -DDEC_ALPHA
#CFLAGS = -DMPI -DDEC_ALPHA
#ARCH_OBJS = milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
#    7f. Fujitsu VPP
#
# These options have been updated for the newer VPP5000 system. If you
# find that you have trouble compiling on your system, try removing the
# -KA32 and -Ka4 option from FCFLAGS, LDOPTIONS, CFLAGS and from
# MPP/RSL/RSL/makefile.vpp. Note that to successfully compile the RSL
# library (MPP/RSL/RSL) you need the following two environment variables
# set (syntax may vary with shells other than csh):
#
# Older systems:
#
#    setenv MPIINCDIR /usr/lang/mpi/include
#    setenv MPILIBS '-Wl,-P -L/usr/lang/mpi/lib -lmpi -lmp'
#
# Newer systems:
#
#    setenv MPIINCDIR /usr/lang/mpi2/include32
#    setenv MPILIBS '-Wl,-P -L/usr/lang/mpi2/lib32 -lmpi -lmp'
#
# Newer system had difficulty in compiling MPP/FLIC/FLIC/dm. If you have 
# trouble with this program, please download 
#
#        ftp://ftp.ucar.edu/mesouser/MM5V3/Util/dm.gz
#
# 'chmod ugo+x dm' and copy into MPP/FLIC/FLIC. Or contact michalak@ucar.edu.
#
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "vpp"
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = frt
#MCC = cc
#MLD = frt
#FCFLAGS = -Sw -Wv,-Of,-te,-ilfunc,-noalias,-m3,-P255 -Oe,-P -Kfast -Pdos -lmpi -lmp -KA32
#LDOPTIONS = -Wl,-P -L$(MPILIBS) -lmpi -J -lmp -KA32
#LOCAL_LIBRARIES =
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = $(CAT)
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI -Dvpp -I$(MPIINCDIR)
#CFLAGS = -DMPI -Dvpp -I$(MPIINCDIR) -KA32 -Ka4
#ARCH_OBJS = milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#FLIC_MACROS = LMvpp.m4
#-----------------------------------------------------------------------------
#    7g. Linux PCs.  Need Portland Group pgf77 and MPICH.
#
# The following information has been added to this file with MM5v3.2:
#
# This expects mpif77 and mpicc to be installed on your system in
# $(LINUX_MPIHOME)/bin .  These should be configured to use the Portland Group
# pgf77 (v3 or higher) and gcc, respectively.  For information on how to
# download, install, and configure mpich on your system, see:
# 
#   http://www.mcs.anl.gov/mpi/mpich
# 
# Information on Portland Group compiler: 
#
#   http://www.pgroup.com
#
# If using a different Fortran compiler, modify FCFLAGS and LDOPTIONS as
# needed.  The compiler should be capable of doing little- to big-endian
# conversion and it should understand integer (Cray-style) pointers.  It
# is recommended that the same fortran compiler be used to compile
# mpich.  Edit the LINUX_MPIHOME macro, below, to point to the top level mpich
# directory.  See also: 
#
#   http://www.mmm.ucar.edu/mm5/mpp/linuxhelp.html (by Steve Webb, NCAR/RAP)
#
# Note for pgf77 on RedHat Linux6: patches available from Portland Group at:
#
#   http://www.pgroup.com/downloads/rh6patches.html
#
#-----------------------------------------------------------------------------
#RUNTIME_SYSTEM = "linux"
#MPP_TARGET=$(RUNTIME_SYSTEM)
## edit the following definition for your system
#LINUX_MPIHOME = /usr/local/mpich
#MFC = $(LINUX_MPIHOME)/bin/mpif77
#MCC = $(LINUX_MPIHOME)/bin/mpicc
#MLD = $(LINUX_MPIHOME)/bin/mpif77
#FCFLAGS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#LOCAL_LIBRARIES = -L$(LINUX_MPIHOME)/build/LINUX/ch_p4/lib -lfmpich -lmpich
#MAKE = make -i -r
#AWK = awk
#SED = sed
#CAT = cat
#CUT = cut
#EXPAND = expand
#M4 = m4
#CPP = /lib/cpp -C -P
#CPPFLAGS = -DMPI -Dlinux
#CFLAGS = -DMPI -I/usr/local/mpi/include
#ARCH_OBJS =  milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#-----------------------------------------------------------------------------
# Don't touch anything below this line
#-----------------------------------------------------------------------------
.F.i:
        $(RM) $@
        $(CPP) $(CPPFLAGS) $*.F > $@
        mv $*.i $(DEVTOP)/pick/$*.f
        cp $*.F $(DEVTOP)/pick
.c.o:
        $(RM) $@ && \
        $(CC) -c $(CFLAGS) $*.c

.F.o:
        $(RM) $@
        $(FC) -c $(FCFLAGS) $*.F

.F.f:
        $(RM) $@
        $(CPP) $(CPPFLAGS) $*.F > $@

.f.o:
        $(RM) $@
        $(FC) -c $(FCFLAGS) $*.f