MM5 on NEC-SX6
NEC SX6 mashines usually have Linux Operating system and run csh
by default
## IMPORTANT! ##
When compiling or running MM5 (and
preprocessing programms) set up
the following enviromental variables:
setenv F_SETBUF 4096
setenv F_RECLUNIT BYTE
## by default F_RECLUNIT is usually set as 'WORD', ##
## TERRAIN and MM5 programms will not run with this setting ##
TERRAIN settings:
grep Linux .tmpfile ; \
if [ $$? = 0 ]; then echo "Compiling for Linux" ; \
( $(CD) src ; $(MAKE) all \
"RM = $(RM)" "RM_LIST = $(RM_LIST)" \
"LN = $(LN)" "MACH = SGI" \
"MAKE = $(MAKE)" "CPP = cpp" \
"CPPFLAGS = -I. -C -traditional -D$(NCARGRAPHICS) -DRECLENBYTE"
\
"FC = sxf90" "FCFLAGS = -dW -sx6 -Wf\"-pvctl
loopcnt=500000\""\
"LDOPTIONS = " "CFLAGS = -I." \
"LOCAL_LIBRARIES= " ) ; \
else echo "Do not know how to compile for the `cat .tmpfile`
machine." \
fi ; \
REGRID settings:
(Similar flags can
be used for LITTLE_R,INTERPF,INTERPB,NESTDOWN)
echo "AR = $(AR)" > macros_pregrid ; \
echo "RM = $(RM)" >> macros_pregrid ; \
echo "RM_LIST = $(RM_LIST)" >> macros_pregrid ;
\
echo "CD = $(CD)" >> macros_pregrid ; \
echo "LN = $(LN)" >> macros_pregrid ; \
echo "MAKE = $(MAKE)" >> macros_pregrid ; \
echo "SHELL = /bin/sh" >> macros_pregrid ; \
echo "TOUCH = touch" >> macros_pregrid ; \
echo "CPP = /usr/bin/cpp" >> macros_pregrid ; \
echo "CPPFLAGS = -I. -DBIT32 -C -P -traditional" >>
macros_pregrid ; \
echo "FC = sxf90" >> macros_pregrid ; \
echo "FCFLAGS = -sx6 -f4 -I/utf/3/m212071/REGRID/pregrid/util"
>> macros_pregrid ; \
echo "LDFLAGS = " >> macros_pregrid ; \
echo "CC = sxc++" >> macros_pregrid ; \
echo "CCFLAGS = -DBIT32 -I." >> macros_pregrid ;
\
echo "LOCAL_LIBRARIES = ../util/libpgu.a" >> macros_pregrid
; \
( $(CD) pregrid ; $(MAKE) all ) ; \
echo "AR = $(AR)" > macros_regridder ; \
echo "RM = $(RM)" >> macros_regridder ; \
echo "RM_LIST = $(RM_LIST)" >> macros_regridder
; \
echo "CD = $(CD)" >> macros_regridder ; \
echo "LN = $(LN)" >> macros_regridder ; \
echo "MAKE = $(MAKE)" >> macros_regridder ; \
echo "SHELL = /bin/sh" >> macros_regridder ; \
echo "TOUCH = touch" >> macros_regridder ; \
echo "CPP = /usr/bin/cpp" >> macros_regridder ;
\
echo "CPPFLAGS = -I. -DBIT32 -C -P -traditional" >>
macros_regridder ; \
echo "FC = sxf90" >> macros_regridder ; \
echo "FCFLAGS = -sx6 -f4" >> macros_regridder ;
\
echo "LDFLAGS = " >> macros_regridder ; \
echo "CC = sxc++" >> macros_regridder ; \
echo "CCFLAGS = -DBIT32 -I." >> macros_regridder
; \
echo "LOCAL_LIBRARIES = " >> macros_regridder ;
\
( $(CD) regridder ; $(MAKE) all ) ; \
MM5 settings in configure.user file
#-----------------------------------------------------------------------------
# 4. General commands
#-----------------------------------------------------------------------------
AR = sxar 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 = sxc++
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# 7h. NEC SX6 (under development, still might be improved)
#-----------------------------------------------------------------------------
RUNTIME_SYSTEM = sx
#MPP_TARGET=$(RUNTIME_SYSTEM)
#MFC = f90
#MCC = cc
FC = sxf90
CC = sxc++
#MLD = $(MFC)
FCFLAGS = -E P -C vopt -Wf"-init stack=zero heap=zero -O nooverlap"
\
-USX -D$(RUNTIME_SYSTEM) -I$(LIBINCLUDE) -f0 \
-Wf"-L transform fmtlist summary" -sx6
LDOPTIONS =
CFLAGS =
LOCAL_LIBRARIES =
MAKE = make -i -r
AWK = awk
SED = sed
CAT = cat
CUT = cut
#EXPAND = expand
#M4 = m4
CPP = /usr/bin/cpp -C -P
CPPFLAGS = -Dvpp -I$(LIBINCLUDE) -I. -C -P -traditional -DDEC_ALPHA
-DSYSTEM_CALL_OK
#CFLAGS = -DMPI -Dvpp -DDEC_ALPHA
ARCH_OBJS = milliclock.o
IWORDSIZE = 4
RWORDSIZE = 4
LWORDSIZE = 4
#ASSUME_HOMOGENEOUS_ENVIRONMENT = 1
#FLIC_MACROS = LMvpp.m4
VECTOR = 1
#-----------------------------------------------------------------------------
P.S. The MM5 configure
settings are well tested for single-processor run of the model,
for multi-processor run they might very much depend on the individual
Multi Processing Interface software on each mashine (e.g. OpenMP,
MPI, etc).
Thanks to Kristina Trusilova from Max-Planck-Institute
for Biogeochemistry, Germany, for this information
|