diff --git a/configuration/scripts/cice.batch.csh b/configuration/scripts/cice.batch.csh index 024270039..04f397034 100755 --- a/configuration/scripts/cice.batch.csh +++ b/configuration/scripts/cice.batch.csh @@ -104,6 +104,22 @@ cat >> ${jobfile} << EOFB ###PBS -m be EOFB +else if (${ICE_MACHINE} =~ nrlssc*) then +# nrlssc queue system has nodes with different task per node +if (${taskpernode} <= 12) set tpnstr = 'twelve' +if (${taskpernode} == 20) set tpnstr = 'twenty' +if (${taskpernode} == 24) set tpnstr = 'twentyfour' +if (${taskpernode} == 28) set tpnstr = 'twentyeight' + +cat >> ${jobfile} <&! \$ICE_RUNLOG_FILE EOFR endif +#======= +else if (${ICE_MACHINE} =~ nrlssc*) then +if (${ICE_COMMDIR} =~ serial*) then +cat >> ${jobfile} << EOFR +./cice >&! \$ICE_RUNLOG_FILE +EOFR +else +cat >> ${jobfile} << EOFR +mpirun -np ${ntasks} ./cice >&! \$ICE_RUNLOG_FILE +EOFR +endif + + #======= else if (${ICE_MACHINE} =~ onyx*) then cat >> ${jobfile} << EOFR diff --git a/configuration/scripts/machines/Macros.nrlssc_gnu b/configuration/scripts/machines/Macros.nrlssc_gnu new file mode 100644 index 000000000..91d2fae0b --- /dev/null +++ b/configuration/scripts/machines/Macros.nrlssc_gnu @@ -0,0 +1,59 @@ +#============================================================================== +# Makefile macros for NRLSSC GCC and openmpi compilers +#============================================================================== + +# specific Netcdf and MPI paths, since we use /common instead of /usr + +#MPIHOME := /common/openmpi/gnu10.1.0/3.1.6 +#CDFHOME := /common/netcdf/gnu10.1.0/openmpi3.1.6/4.7.4 + +# use MY defined vars from .setenv_linux +MPIHOME := ${MPI_HOME} +CDFHOME := ${NETCDF_HOME} + +CPP := cpp +CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 -DHAVE_F2008_CONTIGUOUS -DLINUX -DCPRINTEL ${ICE_CPPDEFS} +CFLAGS := -c -O2 + +FIXEDFLAGS := -ffixed-line-length-132 +FREEFLAGS := -ffree-form +FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none +FFLAGS_NOOPT := -O0 + +ifeq ($(ICE_BLDDEBUG), true) + FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow +else + FFLAGS += -O2 +endif + +FC := $(MPIHOME)/bin/mpif90 + +CC:= $(MPIHOME)/bin/mpicc + +MPICC:= $(MPIHOME)/bin/mpicc + +MPIFC:= $(MPIHOME)/bin/mpif90 +LD:= $(FC) + +NETCDF_PATH := $(CDFHOME) + +ifeq ($(ICE_IOTYPE), netcdf) + # NETCDF_PATH := $(shell nc-config --prefix) + INCLDIR := $(INCLDIR) -I$(NETCDF_PATH)/include + LIB_NETCDF := $(NETCDF_PATH)/lib + LIB_PNETCDF := + LD := $(LD) -Wl,-rpath,$(LIB_NETCDF) + SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff +else + SLIBS := +endif + +LIB_MPI := +SCC:= gcc +SFC:= gfortran + +ifeq ($(ICE_THREADED), true) + LDFLAGS += -fopenmp + CFLAGS += -fopenmp + FFLAGS += -fopenmp +endif diff --git a/configuration/scripts/machines/env.nrlssc_gnu b/configuration/scripts/machines/env.nrlssc_gnu new file mode 100755 index 000000000..f050a61b8 --- /dev/null +++ b/configuration/scripts/machines/env.nrlssc_gnu @@ -0,0 +1,16 @@ +#!/bin/csh -f + +setenv ICE_MACHINE_MACHNAME NRLSSC +setenv ICE_MACHINE_MACHINFO "NRLSSC" +setenv ICE_MACHINE_ENVNAME gnu +setenv ICE_MACHINE_ENVINFO "gnu" +setenv ICE_MACHINE_MAKE gmake +setenv ICE_MACHINE_WKDIR /u/data/hebert/CICE_RUNS +setenv ICE_MACHINE_INPUTDATA /u/data/hebert/CICE_RUNS +setenv ICE_MACHINE_BASELINE /u/data/hebert/CICE_BASELINE +setenv ICE_MACHINE_SUBMIT "qsub " +setenv ICE_MACHINE_ACCT P00000000 +setenv ICE_MACHINE_QUEUE "standard" +setenv ICE_MACHINE_TPNODE 20 # tasks per node +setenv ICE_MACHINE_BLDTHRDS 1 +setenv ICE_MACHINE_QSTAT "qstat " diff --git a/configuration/scripts/tests/gridsys_suite.ts b/configuration/scripts/tests/gridsys_suite.ts index 54eeb45ea..afc91fa4f 100644 --- a/configuration/scripts/tests/gridsys_suite.ts +++ b/configuration/scripts/tests/gridsys_suite.ts @@ -3,6 +3,7 @@ smoke gx3 8x2 diag1,run5day restart gx3 4x2 debug,diag1 smoke gbox80 1x1 box2001 smoke gbox80 1x1 boxslotcyl +smoke gbox80 2x4 boxnodyn smoke gbox80 2x2 boxsymn smoke gbox80 4x2 boxsyme smoke gbox80 4x1 boxsymne @@ -13,11 +14,11 @@ smoke gbox80 8x1 boxislandsn smoke gbox80 4x2 boxislandse smoke gbox80 2x4 boxislandsne - smoke gx3 8x2 diag1,run5day,gridcd restart gx3 4x2 debug,diag1,gridcd smoke gbox80 1x1 box2001,gridcd smoke gbox80 1x1 boxslotcyl,gridcd +smoke gbox80 2x4 boxnodyn,gridcd smoke gbox80 2x2 boxsymn,gridcd smoke gbox80 4x2 boxsyme,gridcd smoke gbox80 4x1 boxsymne,gridcd