Skip to content

Commit

Permalink
Merge branch 'dev/master' of github.com:NOAA-GFDL/MOM6 into dev/master
Browse files Browse the repository at this point in the history
  • Loading branch information
kshedstrom committed Jun 17, 2016
2 parents 97f0ecc + e2ecb5d commit 75a8557
Show file tree
Hide file tree
Showing 7 changed files with 865 additions and 329 deletions.
114 changes: 93 additions & 21 deletions .doxygen
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Doxyfile 1.8.9.1
# Doxyfile 1.8.12

# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
Expand Down Expand Up @@ -293,6 +293,15 @@ EXTENSION_MAPPING =

MARKDOWN_SUPPORT = YES

# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
# to that level are automatically included in the table of contents, even if
# they do not have an id attribute.
# Note: This feature currently applies only to Markdown headings.
# Minimum value: 0, maximum value: 99, default value: 0.
# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.

TOC_INCLUDE_HEADINGS = 0

# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
Expand Down Expand Up @@ -341,7 +350,14 @@ IDL_PROPERTY_SUPPORT = YES
# all members of a group must be documented explicitly.
# The default value is: NO.

DISTRIBUTE_GROUP_DOC = NO
DISTRIBUTE_GROUP_DOC = YES

# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
# is disabled and one has to add nested compounds explicitly via \ingroup.
# The default value is: NO.

GROUP_NESTED_COMPOUNDS = NO

# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
Expand Down Expand Up @@ -732,6 +748,12 @@ WARN_IF_DOC_ERROR = YES

WARN_NO_PARAMDOC = NO

# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered.
# The default value is: NO.

WARN_AS_ERROR = NO

# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
Expand Down Expand Up @@ -771,14 +793,38 @@ INPUT_ENCODING = UTF-8

# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories. If left blank the
# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
# *.qsf, *.as and *.js.

FILE_PATTERNS =
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
# *.vhd, *.vhdl, *.ucf and *.qsf.

FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.f90 \
*.f \
*.for \
*.F90

# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
Expand Down Expand Up @@ -833,7 +879,7 @@ EXAMPLE_PATH =
# *.h) to filter out the source-files in the directories. If left blank all
# files are included.

EXAMPLE_PATTERNS =
EXAMPLE_PATTERNS = *

# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude commands
Expand Down Expand Up @@ -862,6 +908,10 @@ IMAGE_PATH =
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.

INPUT_FILTER =

Expand All @@ -871,6 +921,10 @@ INPUT_FILTER =
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.

FILTER_PATTERNS =

Expand Down Expand Up @@ -1129,6 +1183,7 @@ HTML_COLORSTYLE_GAMMA = 80

# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
# to YES can help to show when doxygen was last run and thus if the
# to NO can help when comparing the output of multiple runs.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
Expand Down Expand Up @@ -1604,9 +1659,12 @@ COMPACT_LATEX = NO
PAPER_TYPE = a4

# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. To get the times font for
# instance you can specify
# EXTRA_PACKAGES=times
# that should be included in the LaTeX output. The package can be specified just
# by its name or with the correct syntax as to be used with the LaTeX
# \usepackage command. To get the times font for instance you can specify :
# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
# To use the option intlimits with the amsmath package you can specify:
# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.

Expand Down Expand Up @@ -1709,6 +1767,14 @@ LATEX_SOURCE_CODE = NO

LATEX_BIB_STYLE = plain

# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
# page will contain the date and time when the page was generated. Setting this
# to NO can help when comparing the output of multiple runs.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.

LATEX_TIMESTAMP = NO

#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
Expand Down Expand Up @@ -1940,15 +2006,15 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

MACRO_EXPANSION = NO
MACRO_EXPANSION = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_ONLY_PREDEF = NO
EXPAND_ONLY_PREDEF = YES

# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
Expand Down Expand Up @@ -1980,7 +2046,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED =
PREDEFINED = ALLOCABLE_=allocatable

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down Expand Up @@ -2207,7 +2273,8 @@ INCLUDED_BY_GRAPH = YES
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command.
# functions only using the \callgraph command. Disabling a call graph can be
# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

Expand All @@ -2218,7 +2285,8 @@ CALL_GRAPH = YES
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command.
# functions only using the \callergraph command. Disabling a caller graph can be
# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.

Expand All @@ -2241,11 +2309,15 @@ GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES

# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot.
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, jpg, gif and svg.
# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.

Expand Down
2 changes: 1 addition & 1 deletion src/ALE/MOM_regridding.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2770,7 +2770,7 @@ subroutine regridding_memory_deallocation( CS )

end subroutine regridding_memory_deallocation

!> \namespace MOM_regridding
!> \namespace mom_regridding
!!
!! A vertical grid is defined solely by the cell thicknesses, \f$h\f$.
!! Most calculations in this module start with the coordinate at the bottom
Expand Down
26 changes: 18 additions & 8 deletions src/core/MOM_forcing_type.F90
Original file line number Diff line number Diff line change
Expand Up @@ -121,14 +121,15 @@ module MOM_forcing_type

! land ice-shelf related inputs
real, pointer, dimension(:,:) :: &
ustar_shelf => NULL(), & !< friction velocity under ice-shelves (m/s)
!! as computed by the ocean at the previous time step.
frac_shelf_h => NULL(), & !< Fractional ice shelf coverage of h-, u-, and v-
frac_shelf_u => NULL(), & !< cells, nondimensional from 0 to 1. These are only
frac_shelf_v => NULL(), & !< associated if ice shelves are enabled, and are
!! exactly 0 away from shelves or on land.
rigidity_ice_u => NULL(),& !< Depth-integrated lateral viscosity of ice
rigidity_ice_v => NULL() !< shelves or sea ice at u- or v-points (m3/s)
ustar_shelf => NULL(), & !< friction velocity under ice-shelves (m/s)
!! as computed by the ocean at the previous time step.
frac_shelf_h => NULL(), & !< Fractional ice shelf coverage of h-, u-, and v-
frac_shelf_u => NULL(), & !< cells, nondimensional from 0 to 1. These are only
frac_shelf_v => NULL(), & !< associated if ice shelves are enabled, and are
!! exactly 0 away from shelves or on land.
iceshelf_melt => NULL(), & !< ice shelf melt rate (positive) or freezing (negative) ( m/year )
rigidity_ice_u => NULL(),& !< Depth-integrated lateral viscosity of ice
rigidity_ice_v => NULL() !< shelves or sea ice at u- or v-points (m3/s)

! Scalars set by surface forcing modules
real :: vPrecGlobalAdj !< adjustment to restoring vprec to zero out global net ( kg/(m^2 s) )
Expand Down Expand Up @@ -1615,6 +1616,13 @@ subroutine forcing_accumulate(flux_tmp, fluxes, dt, G, wt2)
fluxes%ustar_shelf(i,j) = flux_tmp%ustar_shelf(i,j)
enddo ; enddo
endif

if (associated(fluxes%iceshelf_melt) .and. associated(flux_tmp%iceshelf_melt)) then
do i=isd,ied ; do j=jsd,jed
fluxes%iceshelf_melt(i,j) = flux_tmp%iceshelf_melt(i,j)
enddo ; enddo
endif

if (associated(fluxes%frac_shelf_h) .and. associated(flux_tmp%frac_shelf_h)) then
do i=isd,ied ; do j=jsd,jed
fluxes%frac_shelf_h(i,j) = flux_tmp%frac_shelf_h(i,j)
Expand Down Expand Up @@ -2198,6 +2206,7 @@ subroutine allocate_forcing_type(G, fluxes, stress, ustar, water, heat, shelf, p
call myAlloc(fluxes%frac_shelf_u,IsdB,IedB,jsd,jed, shelf)
call myAlloc(fluxes%frac_shelf_v,isd,ied,JsdB,JedB, shelf)
call myAlloc(fluxes%ustar_shelf,isd,ied,jsd,jed, shelf)
call myAlloc(fluxes%iceshelf_melt,isd,ied,jsd,jed, shelf)
call myAlloc(fluxes%rigidity_ice_u,IsdB,IedB,jsd,jed, shelf)
call myAlloc(fluxes%rigidity_ice_v,isd,ied,JsdB,JedB, shelf)

Expand Down Expand Up @@ -2263,6 +2272,7 @@ subroutine deallocate_forcing_type(fluxes)
if (associated(fluxes%TKE_tidal)) deallocate(fluxes%TKE_tidal)
if (associated(fluxes%ustar_tidal)) deallocate(fluxes%ustar_tidal)
if (associated(fluxes%ustar_shelf)) deallocate(fluxes%ustar_shelf)
if (associated(fluxes%iceshelf_melt)) deallocate(fluxes%iceshelf_melt)
if (associated(fluxes%frac_shelf_h)) deallocate(fluxes%frac_shelf_h)
if (associated(fluxes%frac_shelf_u)) deallocate(fluxes%frac_shelf_u)
if (associated(fluxes%frac_shelf_v)) deallocate(fluxes%frac_shelf_v)
Expand Down
7 changes: 6 additions & 1 deletion src/ice_shelf/MOM_ice_shelf.F90
Original file line number Diff line number Diff line change
Expand Up @@ -678,10 +678,12 @@ subroutine shelf_calc_flux(state, fluxes, Time, time_step, CS)
else !not shelf
CS%t_flux(i,j) = 0.0
endif

enddo ! i-loop
enddo ! j-loop

! melt in m/year
fluxes%iceshelf_melt = CS%lprec * (86400.0*365.0/CS%density_ice)

if (CS%DEBUG) then
call hchksum (CS%h_shelf, "melt rate", G, haloshift=0)
endif
Expand Down Expand Up @@ -1382,6 +1384,7 @@ subroutine initialize_ice_shelf(param_file, ocn_grid, Time, CS, diag, fluxes, Ti
allocate( fluxes%frac_shelf_u(Isdq:Iedq,jsd:jed) ) ; fluxes%frac_shelf_u(:,:) = 0.0
allocate( fluxes%frac_shelf_v(isd:ied,Jsdq:Jedq) ) ; fluxes%frac_shelf_v(:,:) = 0.0
allocate( fluxes%ustar_shelf(isd:ied,jsd:jed) ) ; fluxes%ustar_shelf(:,:) = 0.0
allocate( fluxes%iceshelf_melt(isd:ied,jsd:jed) ) ; fluxes%iceshelf_melt(:,:) = 0.0
if (.not.associated(fluxes%p_surf)) then
allocate( fluxes%p_surf(isd:ied,jsd:jed) ) ; fluxes%p_surf(:,:) = 0.0
endif
Expand Down Expand Up @@ -1445,6 +1448,8 @@ subroutine initialize_ice_shelf(param_file, ocn_grid, Time, CS, diag, fluxes, Ti
if (.not. solo_ice_sheet) then
vd = var_desc("ustar_shelf","m s-1","Friction velocity under ice shelves",z_grid='1')
call register_restart_field(fluxes%ustar_shelf, vd, .true., CS%restart_CSp)
vd = var_desc("iceshelf_melt","m year-1","Ice Shelf Melt Rate",z_grid='1')
call register_restart_field(fluxes%iceshelf_melt, vd, .true., CS%restart_CSp)
endif

CS%restart_output_dir = dirs%restart_output_dir
Expand Down
Loading

0 comments on commit 75a8557

Please sign in to comment.