# Sections
# This configure.user.linux file is used to compile on PC running linux only.
#    For options to compile on Unix systems, please use configure.user
# 1. System Variables
# 2. User Variables
# 3. Fortran options
#    3i. PC_PGF77 (Linux)
# 4. General commands
# 5. Options for making "./include/parame.incl"
# 6. Physics Options (memory related)
#
#-----------------------------------------------------------------------------
# 1. System Variables 
#-----------------------------------------------------------------------------
SHELL =         /bin/sh
.SUFFIXES: .F .i .o .f
#-----------------------------------------------------------------------------
# 2. User Variables
#-----------------------------------------------------------------------------
# RUNTIME_SYSTEM                - Currently supported systems.
#                                 PC_PGF77
RUNTIME_SYSTEM = "PC_PGF77"
#
#-----------------------------------------------------------------------------
# 3. Fortran options
#-----------------------------------------------------------------------------
LIBINCLUDE = $(DEVTOP)/include
#-----------------------------------------------------------------------------
#    3i. PC running Linux and using pgf77 compiler
#        You may also need to unlimit stacksize by typing
#            limit stacksize unlimited
#        or
#            setenv MPSTKZ 8M
#        (or bigger.)
#
#        If your compiler supports both SGI and OpenMP parallel directives,
#           you need -Mnosgimp in your FCFLAGS. Otherwise remove it.
#
#        Add -Kieee option if you compile Gayno-Seaman PBL scheme (IBLTYP=6).
#           MM5 will fail without this option until the compiler bug is fixed.
#-----------------------------------------------------------------------------
#    3i1. PC_PGF77 (LINUX/Portland Group Inc.)
#         pgf77 version 1.6 and above
#         May use pgf90 if the version is 3.1-4
#-----------------------------------------------------------------------------
 FC = pgf90
 FCFLAGS = -I$(LIBINCLUDE) -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#FCFLAGS = -I$(LIBINCLUDE) -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio -mp \
#-Mnosgimp
 CPP = /lib/cpp
 CFLAGS = -O
 CPPFLAGS = -I$(LIBINCLUDE)
 LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio
#LDOPTIONS = -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio -mp
 LOCAL_LIBRARIES =
 MAKE = make -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.
#    Compilation of Arakawa-Schubert cumulus scheme requires imsl.
#-----------------------------------------------------------------------------
# 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,2,2,2,2,2,2,1"
#
# FRAD - for atmospheric radiation (integer)
#                                   - Radiation cooling of atmosphere 
#                                     0=none,1=simple,2=cloud,3=ccm2,rrtm=4
FRAD = "2,0,0,0,0"
#
# ISOIL - for multi-layer soil temperature model (integer)
#                                   - 0=no,1=yes (only works with IBLTYP=2,5)
#                                     2=OSU land-surface scheme (IBLTYP=5 only)
#                                     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"
#-----------------------------------------------------------------------------
# Don't touch anything below this line
#-----------------------------------------------------------------------------
.c.o:
        $(RM) $@ && \
        $(CC) -c $(CFLAGS) $*.c
.F.o:
        $(RM) $@
        $(FC) -c $(FCFLAGS) $*.F
.f.o:
        $(RM) $@
        $(FC) -c $(FCFLAGS) $*.f