# 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_PATHSCALE" # #----------------------------------------------------------------------------- # 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 = pathf90 -byteswapio OFLAGS= -O3 -fno-math-errno -OPT:Ofast:fast_math=on:fast_sqrt=on:early_intrinsics=on \ -LNO:vintr=2 -GRA:optimize_boundary=on FCFLAGS = -ftpp $(OFLAGS) -I$(LIBINCLUDE) -DDEC_ALPHA #FCFLAGS = -I$(LIBINCLUDE) -O2 -Mcray=pointer -tp p6 -pc 32 -Mnoframe -byteswapio -mp \ #-Mnosgimp CPP = /lib/cpp CFLAGS = -O3 -DDEC_ALPHA CPPFLAGS = -I$(LIBINCLUDE) LDOPTIONS = $(OFLAGS) #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 = 1 # # MIX,MJX (integer) - Maximum Dimensions of any Domain MIX = 112 MJX = 136 # MKX (integer) - Number of half sigma levels in model MKX = 33 #----------------------------------------------------------------------------- # 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 = "5,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 - 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) # - 0=no PBL fluxes,1=bulk,2=Blackadar, # 3=Burk-Thompson,4=Eta M-Y,5=MRF, # 6=Gayno-Seaman 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 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) 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 -qspillsize=2000 #LDOPTIONS = -qsmp=noauto -bmaxdata:0x70000000 ##LOCAL_LIBRARIES = -lessl #LOCAL_LIBRARIES = #LOCAL_LIBRARIES = -lmass #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 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 #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 #----------------------------------------------------------------------------- .c.o: $(RM) $@ && \ $(CC) -c $(CFLAGS) $*.c .F.o: $(RM) $@ $(FC) -c $(FCFLAGS) $*.F .f.o: $(RM) $@ $(FC) -c $(FCFLAGS) $*.f