--- MITgcm/tools/genmake 1999/03/22 16:27:13 1.9 +++ MITgcm/tools/genmake 2000/11/13 16:40:02 1.20 @@ -1,6 +1,6 @@ #!/bin/csh -f # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.9 1999/03/22 16:27:13 adcroft Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.20 2000/11/13 16:40:02 heimbach Exp $ # # Makefile generator for MITgcm UV codes # created by cnh 03/98 @@ -30,6 +30,10 @@ echo "Enabling MPI options" set USEMPI breaksw + case -jam: + set include_jam_libs + echo "Including paths to JAM libraries" + breaksw case -help: echo "usage: $0 [-help] [-makefile[=...]] [-platform=...] [-mpi]" exit @@ -56,8 +60,8 @@ # copy everything in ../eesupp/src, ../model/src, # ../eesupp/inc and ../model/inc into a directory and then # edit the paths below to ./ -set SOURCEDIRS = ( ../eesupp/src/ ../model/src/ ../diags/src/) -set INCLUDEDIRS = ( ../eesupp/inc/ ../model/inc/ ../diags/inc/) +set SOURCEDIRS = ( ../eesupp/src/ ../model/src/ ../diags/src/ ../pkg/*/ ) +set INCLUDEDIRS = ( ./ ../eesupp/inc/ ../model/inc/ ../diags/inc/ ../pkg/*/ ) set BUILDDIR = ( ../bin/ ) set EXEDIR = ( ../exe/ ) set EXECUTABLE = ( mitgcmuv ) @@ -96,7 +100,7 @@ case OSF1+mpi: echo "Configuring for DEC Alpha" set CPP = ( '/usr/bin/cpp -P' ) - set DEFINES = ( ${DEFINES} '-DTARGET_DEC' ) + set DEFINES = ( ${DEFINES} '-DTARGET_DEC -DWORDLENGTH=1' ) set KPP = ( 'kapf' ) set KPPFILES = ( 'main.F' ) set KFLAGS1 = ( '-scan=132 -noconc -cmp=' ) @@ -105,97 +109,175 @@ set FOPTIM = ( '-O5 -fast -tune host -inline all' ) set NOOPTFLAGS = ( '-O0' ) set LIBS = ( '-lfmpi -lmpi -lkmp_osfp10 -pthread' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F') set RMFILES = ( '*.p.out' ) breaksw case IRIX64+mpi: echo "Configuring for SGI Mips with MPI" - set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) set FC = ( 'mpif77' ) set LINK = ( 'mpif77' ) - set FFLAGS = ( '-extend_source -bytereclen -r10000' ) + set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' ) set FOPTIM = ( '-O3' ) set RMFILES = ( 'rii_files' ) breaksw case IRIX64: echo "Configuring for SGI Mips" - set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) set FFLAGS = ( '-extend_source -mp -mpio -bytereclen -r10000 -mips4' ) + set FOPTIM = ( '-O3' ) +# set NOOPTFLAGS = ( '-O0' ) +# set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ +# 'external_fields_load.F' ) + set RMFILES = ( 'rii_files' ) + breaksw + case o2: + case IRIX: + echo "Configuring for SGI O2 running IRIX 6.5" + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) + set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' ) set FOPTIM = ( '-O2' ) set NOOPTFLAGS = ( '-O0' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ - 'load_external_fields.F' ) - set RMFILES = ( 'rii_files' ) + breaksw + case o2+mpi: + case IRIX+mpi: + echo "Configuring for SGI O2 running IRIX 6.5 with MPI" + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) + set FFLAGS = ( '-extend_source -bytereclen -r10000 -mips4' ) + set FOPTIM = ( '-O2' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F' ) + set NOOPTFLAGS = ( '-O0' ) + set LIBS = ( '-lmpi' ) + breaksw + case o2k+mpi: + echo "Configuring for SGI Origin2000 running IRIX 6.5" + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) + set INCLUDES = ( '-I/usr/include' ) + set FFLAGS = ( '-n32 -extend_source -bytereclen' ) + set FOPTIM = ( '-O2' ) + set NOOPTFILES = ( 'calc_mom_rhs.F' ) + set NOOPTFLAGS = ( '-O1' ) + set LIBS = ( '-lmpi -lscs' ) + breaksw + case onyx: + case onyx+mpi: + echo "Configuring for SGI ONYX running IRIX64" + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) + set FFLAGS = ( '-extend_source -bytereclen -r10000 -64' ) + set FOPTIM = ( '-O2' ) + set NOOPTFLAGS = ( '-O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F' ) + set LIBS = ( '-lmpi' ) breaksw case SunOS: set LN = ( '/usr/bin/ln -fs' ) set CPP = ( '/usr/ccs/lib/cpp -P' ) - set DEFINES = ( ${DEFINES} '-DTARGET_SUN' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' ) set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar') - set FOPTIM = ( '-O5 -fast' ) + set FOPTIM = ( '-fast -O3' ) set NOOPTFLAGS = ( '-O0' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F') breaksw case SunOS+mpi: set LN = ( '/usr/bin/ln -fs' ) set CPP = ( '/usr/ccs/lib/cpp -P' ) - set DEFINES = ( ${DEFINES} '-DTARGET_SUN' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SUN -DWORDLENGTH=4' ) set INCLUDES = ( '-I/usr/local/mpi/include' ) set FFLAGS = ( '-stackvar -explicitpar -vpara -e -u -noautopar') - set FOPTIM = ( '-O5 -fast' ) + set FOPTIM = ( '-fast -O3' ) set NOOPTFLAGS = ( '-O0' ) set LIBS = ( '-L/usr/local/mpi/lib/solaris/ch_shmem -lmpi -lthread' \ '-lsocket -lnsl' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F ini_vertical_grid.F') breaksw case IRIX32: echo "Configuring for SGI ONYX running IRIX64" - set DEFINES = ( ${DEFINES} '-DTARGET_SGI' ) + set DEFINES = ( ${DEFINES} '-DTARGET_SGI -DWORDLENGTH=4' ) set INCLUDES = ( '-I/usr/include' ) set FFLAGS = ( '-extend_source -bytereclen -r10000 -64' ) set FOPTIM = ( '-O2' ) set NOOPTFLAGS = ( '-O0' ) set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ - 'load_external_fields.F' ) + 'external_fields_load.F' ) set LIBS = ( '-lmpi' ) breaksw - case HP-UX: case HP-UX+mpi: - echo "Configuring for HP Exemplar" - set CPP = ( '/usr/ccs/lbin/cpp -P' ) - set DEFINES = ( ${DEFINES} '-DTARGET_HP' ) - set INCLUDES = ( '-I/opt/mpi/include' ) set FC = ( 'mpif77' ) set LINK = ( 'mpif77' ) + set INCLUDES = ( '-I/opt/mpi/include' ) + case HP-UX: + echo "Configuring for HP Exemplar" + set CPP = ( '/usr/ccs/lbin/cpp -P' ) + set DEFINES = ( ${DEFINES} '-DTARGET_HP -DWORDLENGTH=4' ) set FFLAGS = ( '+es +U77 +Onoautopar +Oexemplar_model' \ '+Okernel_threads' ) set FOPTIM = ( '+O2' ) set NOOPTFLAGS = ( '+O0' ) set NOOPTFILES = ( 'barrier.F different_multiple.F' \ - 'load_external_fields.F' ) + 'external_fields_load.F' ) breaksw case Linux+mpi: set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' ) + set INCLUDES = ( '-I/usr/local/include' ) case Linux: set LN = ( '/bin/ln -fs' ) - set CPP = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -traditional -P' ) - set INCLUDES = ( '-I/usr/local/include' ) + set CPP = ( '/lib/cpp -traditional -P' ) + set DEFINES = ( ${DEFINES} '-D_BYTESWAPIO -DWORDLENGTH=4' ) set FC = ( 'g77' ) - set FFLAGS = ( ' ' ) - set FOPTIM = ( '-O3 -funroll-loops ' ) + set FFLAGS = ( '-Wimplicit -Wunused -Wuninitialized' ) + set FOPTIM = ( '-O3 -malign-double -funroll-loops ' ) set LINK = ( 'g77' ) breaksw + case Linux+pgi+mpi: + if ($?include_jam_libs) then + set INCLUDES = ( '-I/usr/local//mpich-cnh-install/include' ) + set LIBS = ( '-L/usr/local/mpich-cnh-install/lib/LINUX/ch_p4/ -lfmpich -lmpich' ) + else + set INCLUDES = ( '-I/usr/local/include' ) + set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' ) + endif case Linux+pgi: set LN = ( '/bin/ln -fs' ) - set CPP = ( '/usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/cpp -P' ) - set INCLUDES = ( '-I/usr/local/include' ) + set CPP = ( '/lib/cpp -traditional -P' ) + set DEFINES = ( ${DEFINES} '-DWORDLENGTH=4' ) set FC = ( 'pgf77' ) set FFLAGS = ( '-byteswapio' ) set FOPTIM = ( '-tp p6 -v -O2 -Munroll -Mvect=cachesize:512000,transform -Kieee' ) set LINK = ( 'pgf77' ) - set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich -Kieee' ) + breaksw + case T3E: + case sn6312: + set CPP = ( '/opt/ctl/bin/cpp -P') + set DEFINES = ( ${DEFINES} '-DTARGET_T3E -DWORDLENGTH=4' ) + set FC = ( 'f90' ) + set LINK = ( 'f90' ) + set FFLAGS = ( '-O 2,fusion' ) + breaksw + case T90: + case sn7113: + set FC = ( 'f90' ) + set LINK = ( 'f90' ) + set LN = ( '/bin/ln -fs' ) + set CPP = ( '/opt/ctl/bin/cpp -N -P' ) + set DEFINES = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' ) + set FFLAGS = ( '-m3 -Rabc -N 132') + set FOPTIM = ( '-O0' ) + set NOOPTFLAGS = ( '-O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F') + breaksw + case SV1: + case sn3002: + set FC = ( 'f90' ) + set LINK = ( 'f90' ) + set LN = ( '/bin/ln -fs' ) + set CPP = ( '/opt/ctl/bin/cpp -N -P' ) + set DEFINES = ( ${DEFINES} '-DTARGET_CRAY_VECTOR -DWORDLENGTH=4' ) + set FFLAGS = ( '-m3 -Rabc -ei -eI -s cf77types -N 132') + set FOPTIM = ( '-O0' ) + set NOOPTFLAGS = ( '-O0' ) + set NOOPTFILES = ( 'barrier.F different_multiple.F external_fields_load.F') breaksw default: echo "Error: platform not recognized: uname -p = " $platform$USEMPI @@ -213,32 +295,29 @@ # Create list of files set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[F]$'` if ( $#flist ) then - echo -n "SRCFILES = " > srclist.inc - echo -n "F77FILES = " > f77list.inc - echo -n "OBJFILES = " > objlist.inc + echo -n 'SRCFILES = ' > srclist.inc foreach ff ( ${flist} ) set fname = ( ${ff:t} ) - echo ' \' >> srclist.inc + echo ' \' >> srclist.inc echo -n " " ${fname:r}.F >> srclist.inc - echo ' \' >> f77list.inc - echo -n " " ${fname:r}.f >> f77list.inc - echo ' \' >> objlist.inc - echo -n " " ${fname:r}.o >> objlist.inc end else echo No source files found...\! exit endif +echo " " >> srclist.inc + set flist = `ls -1 ${SOURCEDIRS} | grep '.*\.[c]$'` if ( $#flist ) then + echo -n 'CSRCFILES = ' > csrclist.inc foreach ff ( ${flist} ) set fname = ( ${ff:t} ) - echo ' \' >> objlist.inc - echo -n " " ${fname:r}.o >> objlist.inc + echo ' \' >> csrclist.inc + echo -n " " ${fname} >> csrclist.inc +else + echo -n 'CSRCFILES =' > csrclist.inc endif -echo " " >> srclist.inc -echo " " >> f77list.inc -echo " " >> objlist.inc +echo " " >> csrclist.inc # Convert lists of directories into command-line options foreach inc ($INCLUDEDIRS) @@ -289,6 +368,43 @@ EXEDIR = ${EXEDIR} EXECUTABLE = \$(EXEDIR)${EXECUTABLE} +EOF + + +# JAM libraries on Hyades +if ($?include_jam_libs) then +cat >> ${mfile} <> ${mfile} <> ${mfile} -cat f77list.inc >> ${mfile} -cat objlist.inc >> ${mfile} -rm -f srclist.inc f77list.inc objlist.inc +cat srclist.inc >> ${mfile} +cat csrclist.inc >> ${mfile} +echo 'F77FILES = $(SRCFILES:.F=.f)' >> ${mfile} +echo 'OBJFILES = $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o)' >> ${mfile} + +rm -f srclist.inc cat >> ${mfile} <