--- MITgcm/tools/genmake 1998/10/28 03:11:38 1.6 +++ MITgcm/tools/genmake 2000/06/21 19:57:55 1.17 @@ -1,6 +1,6 @@ #!/bin/csh -f # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.6 1998/10/28 03:11:38 cnh Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/Attic/genmake,v 1.17 2000/06/21 19:57:55 adcroft Exp $ # # Makefile generator for MITgcm UV codes # created by cnh 03/98 @@ -11,12 +11,11 @@ while ($#allargs) set arg = $allargs[1] switch ($arg) - case -makefile*: - if ($arg == "-makefile") then - set mfile = ( Makefile ) - else - set mfile = ( `echo $arg | sed 's/-makefile=//' `) - endif + case -makefile: + set mfile = ( Makefile ) + breaksw + case -makefile=*: + set mfile = ( `echo $arg | sed 's/-makefile=//' `) breaksw case -platform: case -platform=: @@ -31,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 @@ -57,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 ) @@ -97,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=' ) @@ -111,49 +114,49 @@ 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 = ( '-O2' ) - set NOOPTFLAGS = ( '-O0' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ - 'load_external_fields.F' ) + set FOPTIM = ( '-O3' ) +# set NOOPTFLAGS = ( '-O0' ) +# set NOOPTFILES = ( 'barrier.F different_multiple.F ' \ +# 'load_external_fields.F' ) set RMFILES = ( 'rii_files' ) 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 -O4' ) set NOOPTFLAGS = ( '-O0' ) - set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.F') + set NOOPTFILES = ( 'barrier.F different_multiple.F load_external_fields.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 -O4' ) 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 load_external_fields.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' ) @@ -162,14 +165,14 @@ 'load_external_fields.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' ) @@ -177,25 +180,42 @@ set NOOPTFILES = ( 'barrier.F different_multiple.F' \ 'load_external_fields.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 -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' ) - set LIBS = ( '-L/usr/local/lib/LINUX/ch_p4/ -lfmpich -lmpich' ) 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 default: echo "Error: platform not recognized: uname -p = " $platform$USEMPI @@ -289,6 +309,43 @@ EXEDIR = ${EXEDIR} EXECUTABLE = \$(EXEDIR)${EXECUTABLE} +EOF + + +# JAM libraries on Hyades +if ($?include_jam_libs) then +cat >> ${mfile} <> ${mfile} <