325 |
|
|
326 |
#================================================================ |
#================================================================ |
327 |
# look for possible C compilers |
# look for possible C compilers |
328 |
tmp="$MITGCM_CC $CC gcc c89 cc c99 mpicc" |
tmp="$MITGCM_CC $CC gcc c89 cc c99 mpicc icc" |
329 |
p_CC= |
p_CC= |
330 |
for c in $tmp ; do |
for c in $tmp ; do |
331 |
rm -f ./genmake_hello.c ./genmake_hello |
rm -f ./genmake_hello.c ./genmake_hello |
364 |
|
|
365 |
#================================================================ |
#================================================================ |
366 |
# look for possible FORTRAN compilers |
# look for possible FORTRAN compilers |
367 |
tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc f90 f95 mpif77 mpf77 mpxlf95 gfortran" |
tmp="$MITGCM_FC $FC efc g77 f77 pgf77 pgf95 ifc ifort f90 f95 mpif77 mpf77 mpxlf95 gfortran g95" |
368 |
p_FC= |
p_FC= |
369 |
for c in $tmp ; do |
for c in $tmp ; do |
370 |
rm -f ./hello.f ./hello |
rm -f ./hello.f ./hello |
601 |
|
|
602 |
-gsl | --gsl |
-gsl | --gsl |
603 |
Use GSL to control floating point rounding and precision |
Use GSL to control floating point rounding and precision |
604 |
|
-devel | --devel |
605 |
|
Add additional warning and debugging flags for development |
606 |
|
|
607 |
-mpi | --mpi |
-mpi | --mpi |
608 |
Include MPI header files and link to MPI libraries |
Include MPI header files and link to MPI libraries |
985 |
if test "x$RET_COMPILE" = x0 ; then |
if test "x$RET_COMPILE" = x0 ; then |
986 |
LIBS="$LIBS -lnetcdf" |
LIBS="$LIBS -lnetcdf" |
987 |
HAVE_NETCDF=t |
HAVE_NETCDF=t |
988 |
|
else |
989 |
|
# try again with "-lnetcdff" added to the libs |
990 |
|
echo "try again with added '-lnetcdff -lnetcdf'" > genmake_tnc.log |
991 |
|
echo "cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS \ " >> genmake_tnc.log |
992 |
|
echo " && $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log |
993 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log |
994 |
|
cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS 2>/dev/null \ |
995 |
|
&& $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1 \ |
996 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdff -lnetcdf >> genmake_tnc.log 2>&1 |
997 |
|
RET_COMPILE=$? |
998 |
|
cat genmake_tnc.log >> genmake_warnings |
999 |
|
if test "x$RET_COMPILE" = x0 ; then |
1000 |
|
LIBS="$LIBS -lnetcdff -lnetcdf" |
1001 |
|
HAVE_NETCDF=t |
1002 |
|
fi |
1003 |
fi |
fi |
1004 |
fi |
fi |
1005 |
rm -f genmake_tnc* |
rm -f genmake_tnc* |
1053 |
PCL= |
PCL= |
1054 |
HPMT= |
HPMT= |
1055 |
GSL= |
GSL= |
1056 |
|
DEVEL= |
1057 |
HAVE_TEST_L= |
HAVE_TEST_L= |
1058 |
|
|
1059 |
# DEFINES checked by test compilation or command-line |
# DEFINES checked by test compilation or command-line |
1112 |
|
|
1113 |
# The following state can be set directly by command-line switches |
# The following state can be set directly by command-line switches |
1114 |
gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE" |
gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE" |
1115 |
gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL MPI JAM DUMPSTATE STANDARDDIRS" |
gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL DEVEL MPI JAM DUMPSTATE STANDARDDIRS" |
1116 |
|
|
1117 |
# The following state is not directly set by command-line switches |
# The following state is not directly set by command-line switches |
1118 |
gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM " |
gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM " |
1310 |
-gsl | --gsl) |
-gsl | --gsl) |
1311 |
GSL=true ;; |
GSL=true ;; |
1312 |
|
|
1313 |
|
-devel | --devel) |
1314 |
|
DEVEL=true ;; |
1315 |
|
|
1316 |
-mpi | --mpi) |
-mpi | --mpi) |
1317 |
MPI=true ;; |
MPI=true ;; |
1318 |
-mpi=* | --mpi=*) |
-mpi=* | --mpi=*) |
2228 |
perl -i -pe 's/MPI_DISPLACEMENT_CURRENT=-1_8/MPI_DISPLACEMENT_CURRENT=-1/g' mpi_headers/mpif.h |
perl -i -pe 's/MPI_DISPLACEMENT_CURRENT=-1_8/MPI_DISPLACEMENT_CURRENT=-1/g' mpi_headers/mpif.h |
2229 |
else |
else |
2230 |
echo " We cannot create a copy of mpif.h!" |
echo " We cannot create a copy of mpif.h!" |
2231 |
exit -1 |
# exit -1 |
2232 |
fi |
fi |
2233 |
fi |
fi |
2234 |
|
|
2479 |
|
|
2480 |
libmitgcmuv.a: \$(OBJFILES) |
libmitgcmuv.a: \$(OBJFILES) |
2481 |
ar rcv libmitgcmuv.a \$(OBJFILES) |
ar rcv libmitgcmuv.a \$(OBJFILES) |
2482 |
|
ar d libmitgcmuv.a main.o |
2483 |
|
|
2484 |
links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES) |
links: \$(SRCFILES) \$(CSRCFILES) \$(HEADERFILES) \$(F90SRCFILES) \$(SPECIAL_FILES) |
2485 |
|
|
2490 |
@\$(EXECUTABLE) > \$@ |
@\$(EXECUTABLE) > \$@ |
2491 |
|
|
2492 |
clean: |
clean: |
2493 |
-rm -rf *.o *.$FS *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template |
-rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template |
2494 |
|
-rm -rf *.o |
2495 |
|
-rm -rf *.$FS |
2496 |
Clean: |
Clean: |
2497 |
@make clean |
@make clean |
2498 |
@make cleanlinks |
@make cleanlinks |
2562 |
\$(CPP) \$(DEFINES) \$(INCLUDES) > \$@ |
\$(CPP) \$(DEFINES) \$(INCLUDES) > \$@ |
2563 |
.$FS.o: |
.$FS.o: |
2564 |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c \$< |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c \$< |
2565 |
.F90.$FS90: |
.F90.o: |
|
\$(CPP) \$(DEFINES) \$(INCLUDES) > \$@ |
|
|
.$FS90.o: |
|
2566 |
\$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$< |
\$(F90C) \$(F90FLAGS) \$(F90OPTIM) -c \$< |
2567 |
.c.o: |
.c.o: |
2568 |
\$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$< |
\$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$< |