Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions cicecore/cicedynB/dynamics/ice_dyn_shared.F90
Original file line number Diff line number Diff line change
Expand Up @@ -913,8 +913,10 @@ subroutine basal_stress_coeff (nx_block, ny_block, &
hu, & ! volume per unit area of ice at u location (mean thickness)
hwu, & ! water depth at u location
hcu, & ! critical thickness at u location
k2 = 15.0_dbl_kind , & ! second free parameter (N/m^3) for landfast parametrization
alphab = 20.0_dbl_kind ! alphab=Cb factor in Lemieux et al 2015
k2 = 15.0_dbl_kind , & ! second free parameter (N/m^3) for landfast parametrization
alphab = 20.0_dbl_kind, & ! alphab=Cb factor in Lemieux et al 2015
threshold_hw = 30.0_dbl_kind ! max water depth for grounding
! see keel data from Amundrud et al. 2004 (JGR)

integer (kind=int_kind) :: &
i, j, ij
Expand All @@ -926,15 +928,21 @@ subroutine basal_stress_coeff (nx_block, ny_block, &
j = indxuj(ij)

! convert quantities to u-location
au = max(aice(i,j),aice(i+1,j),aice(i,j+1),aice(i+1,j+1))

hwu = min(hwater(i,j),hwater(i+1,j),hwater(i,j+1),hwater(i+1,j+1))
hu = max(vice(i,j),vice(i+1,j),vice(i,j+1),vice(i+1,j+1))

! 1- calculate critical thickness
hcu = au * hwu / k1
if (hwu < threshold_hw) then

au = max(aice(i,j),aice(i+1,j),aice(i,j+1),aice(i+1,j+1))
hu = max(vice(i,j),vice(i+1,j),vice(i,j+1),vice(i+1,j+1))

! 1- calculate critical thickness
hcu = au * hwu / k1

! 2- calculate basal stress factor
Tbu(i,j) = k2 * max(c0,(hu - hcu)) * exp(-alphab * (c1 - au))
! 2- calculate basal stress factor
Tbu(i,j) = k2 * max(c0,(hu - hcu)) * exp(-alphab * (c1 - au))

endif

enddo ! ij

Expand Down
17 changes: 12 additions & 5 deletions configuration/scripts/machines/Macros.fram_intel
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,17 @@ FFLAGS := -O2 -fp-model precise -convert big_endian -assume byterecl -ftz -t
#-xHost
FFLAGS_NOOPT:= -O0

SCC := s.cc
SFC := s.f90
MPICC := s.cc -mpi
MPIFC := s.f90 -mpi
ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -check -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -init=snan,arrays
# -heap-arrays 1024
else
FFLAGS += -O2
endif

SCC := icc
SFC := ifort
MPICC := mpicc
MPIFC := mpif90

ifeq ($(ICE_COMMDIR), mpi)
FC := $(MPIFC)
Expand All @@ -29,7 +36,7 @@ else
endif
LD:= $(FC)

NETCDF_PATH := $(NETCDF)
NETCDF_PATH := /fs/ssm/hpco/tmp/eccc/201402/04/intel-2016.1.150/ubuntu-14.04-amd64-64/

PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

Expand Down
14 changes: 9 additions & 5 deletions configuration/scripts/machines/env.fram_intel
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
#!/bin/csh -f

#. ssmuse-sh -d /fs/ssm/eccc/mrd/rpn/OCEAN/cncpt-3.1.2
#source NEMO_compiler.ksh
source /fs/ssm/main/opt/ssmuse/ssmuse-1.7/ssmuse_1.7_all/bin/ssmuse-boot.csh >& /dev/null # package loader
set ssmuse=`which ssmuse-csh`
source $ssmuse -d /fs/ssm/main/opt/intelcomp/intelcomp-2016.1.156 # intel compiler
source /fs/ssm/main/opt/intelcomp/intelcomp-2016.1.156/intelcomp_2016.1.156_multi/bin/compilervars.csh intel64 # should be sourced by above domain, but bug in csh script
source $ssmuse -d /fs/ssm/main/opt/openmpi/openmpi-1.6.5/intelcomp-2016.1.156 # openmpi
source $ssmuse -d /fs/ssm/hpco/tmp/eccc/201402/04/intel-2016.1.150 # netcdf (and openmpi)

setenv ICE_MACHINE_ENVNAME fram
setenv ICE_MACHINE_COMPILER intel
setenv ICE_MACHINE_MAKE make
setenv ICE_MACHINE_WKDIR /home/dormrb01/zephyr4/armn/jfl/local1/Minor_modif4july2018/CICE/tests/CICE_RUNS
setenv ICE_MACHINE_INPUTDATA /users/dor/armn/jfl/local1/CICE6/CICE/configuration/data/gx3Ncar
setenv ICE_MACHINE_BASELINE /home/dormrb01/zephyr4/armn/jfl/local1/Minor_modif4july2018/CICE/tests/CICE_BASELINE
setenv ICE_MACHINE_WKDIR /home/dormrb01/zephyr4/armn/jfl/local1/CICEDIRS/CICE_RUNS
setenv ICE_MACHINE_INPUTDATA /users/dor/armn/jfl/local1/FORCING
setenv ICE_MACHINE_BASELINE /home/dormrb01/zephyr4/armn/jfl/local1/CICEDIRS/CICE_BASELINE
setenv ICE_MACHINE_SUBMIT "qsub"
setenv ICE_MACHINE_QUEUE "default"
setenv ICE_MACHINE_TPNODE 36
Expand Down
6 changes: 5 additions & 1 deletion doc/source/science_guide/sg_dynamics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,11 @@ above hydrostatic balance and the value of :math:`k_2`. It is, however, the para
The value of :math:`k_1` can be changed at runtime using the namelist variable ``k1``. The grounding scheme can be turned on or off using the namelist logical basalstress.

Note that the user must provide a bathymetry field for using this grounding
scheme. Grounding occurs up to water depth of ~25 m. It is suggested to have a bathymetry field with water depths larger than 5 m that represents well shallow water regions such as the Laptev Sea and the East Siberian Sea.
scheme. It is suggested to have a bathymetry field with water depths larger than
5 m that represents well shallow water regions such as the Laptev Sea and the
East Siberian Sea. To prevent unrealistic grounding, :math:`T_b` is set to zero when :math:`h_{wu}`
is larger than 30 m. This maximum value is chosen based on observations of large
keels in the Arctic Ocean :cite:`Amundrud04`.


.. _internal-stress:
Expand Down