This is a configure.user file that is shipped with the standard MM5 distribution, which is configured to run the SESAME standard case on a Cray YMP or J90. Certain changes can be made for running on distributed memory platforms: items shown in yellow may need to be modified. Items in white may generally be ignored and left as-is. Click on underlined elements for a discussion. A modified version of this file suitable to run the SESAME case on an IBM SP2 can be viewed by clicking here. A modified version of this file suitable to run the largedomain scenario on an IBM SP2 can be viewed by clicking here.

# Sections
# 1. System Variables
# 2. User Variables
# 3. Fortran options
#    3a. Cray (YMP, J90)
#        Note: set RUNTIME_SYSTEM="CRAY_IA" for Cray interactive job
#    3b. IRIX.6.2 (SGI_R8000,SGI_R10000)
#    3c. IRIX.5.2/5.3 (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)
#    3f. IBM (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
#-----------------------------------------------------------------------------
# 2. User Variables
#-----------------------------------------------------------------------------
# RUNTIME_SYSTEM                - Currently supported systems.
#                                 SGI_R4000,SGI_R8000,CRAY,CRAY_IA,
#                                 SUN,DEC_ALPHA,IBM,HP,,HP-SPP,HP-SPP_IA
#                               - MPP version:
#                                 o2k, t3e, alpha, sp2, hp, vpp, linux
#                                 Presently, of the MPP platforms only the "sp2" 
#                                 is supplied with the "make deck" capability.
RUNTIME_SYSTEM = "CRAY"
#
#-----------------------------------------------------------------------------
# 3. Fortran options
#-----------------------------------------------------------------------------
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
#
#-----------------------------------------------------------------------------
# if you are running on paiute/shavano
FC = cf77
FCFLAGS = -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -Zu
# if you are running on ouray
#FC = f90
#FCFLAGS = -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -O task1
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.2 (SGI_R8000,SGI_R10000)
#        - use the second LDOPTIONS if compiling Burk-Thompson PBL scheme       
#        - use the first FCFLAGS if using 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://www2.mmm.ucar.edu/mm5/mm5v2-timing.html
#-----------------------------------------------------------------------------
#FC = f77
#FCFLAGS = -I$(LIBINCLUDE) -O3 -n32 -mips4 -mp -OPT:roundoff=3:IEEE_arithmetic=3
##FCFLAGS = -I$(LIBINCLUDE) -O3 -SWP:=ON -n32 -mips4 -mp \
##-OPT:roundoff=3:IEEE_arithmetic=3 -OPT:fold_arith_limit=2001:fprop_limit=1000 \
##-SWP:body_ins_count_max=0
#CFLAGS = 
#CPP = /usr/lib/cpp 
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = -n32 -mips4 -mp
##LDOPTIONS = -n32 -mips4 -mp -Wl,-Xlocal,bt1_,-Xlocal,blk1_,-Xlocal,blk2_
#LOCAL_LIBRARIES = -lfastm
##LOCAL_LIBRARIES =
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3c. IRIX.6.2 (SGI_R4400/SGI_R4000/SGI_R5000)
#-----------------------------------------------------------------------------
#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)
#-----------------------------------------------------------------------------
#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)
#-----------------------------------------------------------------------------
#FC = f77
#FCFLAGS = -cpp -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -c -O4 -Olimit 2000 \
#-fpe0 -align dcommons -align records -warn nounreachable -convert big_endian
#CFLAGS = 
#CPP = cpp
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
#LDOPTIONS = -math_library accurate
#LOCAL_LIBRARIES = 
#MAKE = make -i -r
#-----------------------------------------------------------------------------
#    3f. IBM (AIX)
#        for xlf compiler, use 'make little_f' instead of 'make' to compile
#-----------------------------------------------------------------------------
#FC = xlf
#FCFLAGS = -I$(LIBINCLUDE) -O -qmaxmem=-1
##FCFLAGS = -I$(LIBINCLUDE) -qmaxmem=-1
#CPP = /usr/lib/cpp
#CFLAGS = 
#CPPFLAGS = -I$(LIBINCLUDE) -C -P
##LDOPTIONS = -qmaxmem=-1 -O
#LDOPTIONS = -qmaxmem=-1 
#LOCAL_LIBRARIES =
#MAKE = make -i
#-----------------------------------------------------------------------------
#    3g. HP (UX)
#-----------------------------------------------------------------------------
#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
#-----------------------------------------------------------------------------
#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
#-----------------------------------------------------------------------------
#
# NHYDRO (integer)                  - "1" -> NonHydrostatic run
#                                   - "0" -> Hydrostatic run
NHYDRO = 1
# FDDAGD (integer)                  - "1" -> FDDA gridded run
#                                   - "0" -> NonFDDA run
FDDAGD = 0
# FDDAOBS (integer)                 - "1" -> FDDA obs run
#                                   - "0" -> NonFDDA run
FDDAOBS = 0
# MAXNES (integer)                  - Max Number of Domains in simulation
MAXNES = 2
# MIX,MJX (integer)                 - Maximum Dimensions of any Domain
MIX = 34
MJX = 37

# 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 precip.,warm rain,simple ice 
#                                   - 1  ,2             ,3        ,4
#                                   - mix phase,graupel(gsfc),graupel(reisner2)
#                                   - 5        ,6            ,7
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 - 1,2,3,4,5,6,7
ICUPA  = "3,3,1,1,1,1,1,1,1,1"
#
# IBLTYP - for planetary boundary layer (array,integer)
#                                   - PBL type 0=no PBL fluxes,1=bulk,
#                                     2=Blackadar,3=Burk-Thompson,4=Eta M-Y,5=MRF(ISOIL=1)
IBLTYP  = "5,5,2,2,2,2,2,2,2,1"
#
# FRAD - for atmospheric radiation (integer)
#                                   - Radiation cooling of atmosphere 
#                                     0=none,1=simple,2=cloud,3=ccm2
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)
ISOIL = 1
#
# ISHALLO (array,integer)           - Shallow Convection Option
#                                     1=shallow convection,0=No shallow convection
ISHALLO = "1,0,0,0,0,0,0,0,0,0"
#-----------------------------------------------------------------------------
# 7. MPP options
#-----------------------------------------------------------------------------
# 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.
#   ---(Note to AFGWC: set this to 0 for your SP2)---
#
ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#
#-----------------------------------------------------------------------------
#    
7a. IBM SP2
#         type 'make mpp' for the SP2
#-----------------------------------------------------------------------------
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = xlf
#MCC = mpcc
#MLD = mpxlf
#FCFLAGS = -O3 -qstrict -qarch=pwrx -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
#-----------------------------------------------------------------------------
#    
7b. 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
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#-----------------------------------------------------------------------------
#    
7c. Origin 2000
#-----------------------------------------------------------------------------
#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
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#-----------------------------------------------------------------------------
#    
7d. HP Exemplar
#-----------------------------------------------------------------------------
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f77
#MCC = mpicc
#MLD = mpif77
##FCFLAGS   =  +DA2.0N +DS2.0a -g
#FCFLAGS   = +DA2.0N +DS2.0a +O3 +Oaggressive
#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
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#-----------------------------------------------------------------------------
#    
7e. DEC ALPHA/MPI (Thanks to Dave Sherden)
#-----------------------------------------------------------------------------
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f77
#MCC = cc
#MLD = f77
##FCFLAGS = -g
#FCFLAGS = -O4 -Olimit 2000 -fpe0 -align dcommons -align records -warn nounreachable -convert big_endian
#LDOPTIONS = -lmpi
#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
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#-----------------------------------------------------------------------------
#    7f. 
Fujitsu VPP
#-----------------------------------------------------------------------------
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = frt
#MCC = cc
#MLD = frt
#FCFLAGS =  -Sw -Wl,-P -lmpi -lmp -Of
#LDOPTIONS = -Wl,-P -L$(MPILIBS) -lmpi -J -lmp 
#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)
#ARCH_OBJS = milliclock.o
#IWORDSIZE = 4
#RWORDSIZE = 4
#LWORDSIZE = 4
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#FLIC_MACROS = LMvpp.m4
#-----------------------------------------------------------------------------
#    7g. 
Linux PCs.  Need Portland Group pgf77 and MPICH.
#                    You may need to edit value for LOCAL_LIBRARIES for MPICH
#                    on your machine.
#                    Set RUNTIME_SYSTEM to linux, (Section 2, above)
#         type 'make mpp'
#-----------------------------------------------------------------------------
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = pgf77
#MCC = gcc
#MLD = pgf77
#FCFLAGS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#LOCAL_LIBRARIES = -L/usr/local/mpi/lib/LINUX/ch_p4 -lfmpi -lmpi
#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