diff --git a/configuration/scripts/cice.run.setup.csh b/configuration/scripts/cice.run.setup.csh index b2ac61631..1735720c7 100755 --- a/configuration/scripts/cice.run.setup.csh +++ b/configuration/scripts/cice.run.setup.csh @@ -45,6 +45,20 @@ cat >> ${jobfile} << EOFB #BSUB -P ${acct} EOFB +#========================================== + +elseif (${CICE_MACHINE} =~ cheyenne*) then +cat >> ${jobfile} << EOFB +#PBS -j oe +#PBS -m ae +#PBS -V +#PBS -q regular +#PBS -N ${CICE_CASENAME} +#PBS -A ${CICE_ACCT} +#PBS -l select=${nnodes}:ncpus=${ntasks}:mpiprocs=${ntasks} +#PBS -l walltime=02:00:00 +EOFB + else if (${CICE_MACHINE} =~ thunder* || ${CICE_MACHINE} =~ gordon* || ${CICE_MACHINE} =~ conrad*) then cat >> ${jobfile} << EOFB #PBS -N ${CICE_CASENAME} @@ -145,6 +159,11 @@ setenv MP_TASK_AFFINITY core:\${OMP_NUM_THREADS} mpirun.lsf ./cice >&! \$CICE_RUNLOG_FILE EOFR +elseif (${CICE_MACHINE} =~ cheyenne*) then +cat >> ${jobfile} << EOFR +mpiexec_mpt -n ${ntasks} ./cice >&! \$CICE_RUNLOG_FILE +EOFR + else if (${CICE_MACHINE} =~ thunder*) then cat >> ${jobfile} << EOFR mpiexec_mpt -np ${ntasks} omplace ./cice >&! \$CICE_RUNLOG_FILE diff --git a/configuration/scripts/machines/Macros.cheyenne b/configuration/scripts/machines/Macros.cheyenne new file mode 100755 index 000000000..c4597ce03 --- /dev/null +++ b/configuration/scripts/machines/Macros.cheyenne @@ -0,0 +1,67 @@ +#============================================================================== +# Makefile macros for "yellowstone" an NCAR Linux Cluster +#============================================================================== +# For use with intel compiler +#============================================================================== + +CPP := fpp +CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 -DHAVE_F2008_CONTIGUOUS -DLINUX -DCPRINTEL ${CICE_CPPDEFS} +CFLAGS := -c -O2 -fp-model precise -xHost + +FIXEDFLAGS := -132 +FREEFLAGS := -FR +FFLAGS := -O2 -fp-model precise -convert big_endian -assume byterecl -ftz -traceback -xHost +FFLAGS_NOOPT:= -O0 + +ifeq ($(CICE_COMMDIR), mpi) + FC := mpif90 +else + FC := ifort +endif + +MPICC:= mpicc + +MPIFC:= mpif90 +LD:= $(MPIFC) + +NETCDF_PATH := $(NETCDF) + +PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs + +#PNETCDF_PATH := $(PNETCDF) +PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib + +INCLDIR := $(INCLDIR) + +LIB_NETCDF := $(NETCDF_PATH)/lib +LIB_PNETCDF := $(PNETCDF_PATH)/lib +LIB_MPI := $(IMPILIBDIR) + +SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl + +SCC:= icc + +SFC:= ifort + +ifeq ($(compile_threaded), true) + LDFLAGS += -openmp + CFLAGS += -openmp + FFLAGS += -openmp +endif + +ifeq ($(DITTO), yes) + CPPDEFS := $(CPPDEFS) -DREPRODUCIBLE +endif + +### if using parallel I/O, load all 3 libraries. PIO must be first! +ifeq ($(IO_TYPE), pio) + PIO_PATH:=/glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib + INCLDIR += -I/glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/include + SLIBS := $(SLIBS) -L$(PIO_PATH) -lpiof + + CPPDEFS := $(CPPDEFS) -Dncdf +endif + +ifeq ($(IO_TYPE), netcdf) + CPPDEFS := $(CPPDEFS) -Dncdf +endif diff --git a/configuration/scripts/machines/env.cheyenne b/configuration/scripts/machines/env.cheyenne new file mode 100644 index 000000000..df082e551 --- /dev/null +++ b/configuration/scripts/machines/env.cheyenne @@ -0,0 +1,23 @@ +#!/bin/csh -f + +source /glade/u/apps/ch/opt/lmod/7.2.1/lmod/7.2.1/init/csh + +module purge +module load ncarenv/1.1 +module load intel/17.0.1 +module load mpt/2.15f +module load ncarcompilers/0.4.1 +module load pio/2.2.0 + +setenv CICE_MACHINE_ENVNAME cheyenne +setenv CICE_MACHINE_WKDIR /glade/scratch/$user/CICE_RUNS +setenv CICE_MACHINE_INPUTDATA /glade/p/work/dbailey/atm/gx3v2m/NCAR_bulk +setenv CICE_MACHINE_SUBMIT "qsub" +setenv CICE_MACHINE_TPNODE 36 +setenv CICE_MACHINE_ACCT P0000000 +setenv CICE_MACHINE_BLDTHRDS 1 + +if (-e ~/.cice_proj) then + set account_name = `head -1 ~/.cice_proj` + setenv CICE_ACCT ${account_name} +endif