<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.19" xml:lang="en-US">
  <compounddef id="namespacemom__ice__shelf" kind="namespace" language="Fortran">
    <compoundname>mom_ice_shelf</compoundname>
    <innerclass refid="structmom__ice__shelf_1_1ice__shelf__cs" prot="public">mom_ice_shelf::ice_shelf_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacemom__ice__shelf_1a5aff3e9a37cb5bc2b5b998bf296437ff" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_ice_shelf::id_clock_shelf</definition>
        <argsstring></argsstring>
        <name>id_clock_shelf</name>
        <briefdescription>
<para>CPU Clock for the ice shelf code. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="186" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="186" bodyend="186"/>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">initialize_ice_shelf</referencedby>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__ice__shelf_1a3db8709f10aa77ed302598f3a23a608d" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_ice_shelf::id_clock_pass</definition>
        <argsstring></argsstring>
        <name>id_clock_pass</name>
        <briefdescription>
<para>CPU Clock for group pass calls. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="187" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="187" bodyend="187"/>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">initialize_ice_shelf</referencedby>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::shelf_calc_flux</definition>
        <argsstring>(sfc_state, fluxes, Time, time_step, CS, forces)</argsstring>
        <name>shelf_calc_flux</name>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>time_step</type>
          <defname>time_step</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>forces</type>
          <defname>forces</defname>
        </param>
        <briefdescription>
<para>Calculates fluxes between the ocean and ice-shelf using the three-equations formulation (optional to use just two equations). See <ref refid="namespacemom__ice__shelf_1section_ICE_SHELF_equations" kindref="member">ICE_SHELF equations</ref>. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing fields that describe the surface state of the ocean. The intent is only inout to allow for halo updates. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>structure containing pointers to any possible thermodynamic or mass-flux forcing fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>Start time of the fluxes. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_step</parametername>
</parameternamelist>
<parameterdescription>
<para>Length of time over which these fluxes will be applied [s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure returned by a previous call to initialize_ice_shelf. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="194" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="195" bodyend="723"/>
        <references refid="namespacemom__ice__shelf_1a8f7eae8642835e30aff99f77f3836945" compoundref="MOM__ice__shelf_8F90" startline="885" endline="1078">add_shelf_flux</references>
        <references refid="namespacemom__ice__shelf_1a0274b25df07d5fa712d038c31f921cbc" compoundref="MOM__ice__shelf_8F90" startline="776" endline="851">add_shelf_forces</references>
        <references refid="namespacemom__ice__shelf_1a787fc1ef4951b3bb4a7d654efb147fc4" compoundref="MOM__ice__shelf_8F90" startline="728" endline="770">change_thickness_using_melt</references>
        <references refid="namespacemom__diag__mediator_1a1761df399ba39742e34ab989469da0f2" compoundref="MOM__diag__mediator_8F90" startline="1906" endline="1910">mom_diag_mediator::disable_averaging</references>
        <references refid="namespacemom__diag__mediator_1a91244f765f2964dfb11f8787f65042f1" compoundref="MOM__diag__mediator_8F90" startline="1871" endline="1881">mom_diag_mediator::enable_averaging</references>
        <references refid="namespacemom__ice__shelf_1a3db8709f10aa77ed302598f3a23a608d" compoundref="MOM__ice__shelf_8F90" startline="187" endline="187">id_clock_pass</references>
        <references refid="namespacemom__ice__shelf_1a5aff3e9a37cb5bc2b5b998bf296437ff" compoundref="MOM__ice__shelf_8F90" startline="186" endline="186">id_clock_shelf</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__domains_1aa7d2122aa278771209b860dbd6788097" compoundref="MOM__domains_8F90" startline="137" endline="137">mom_domains::to_all</references>
        <references refid="namespacemom__ice__shelf_1a6f0fa9f98ac01752ca2983c7e9816097" compoundref="MOM__ice__shelf_8F90" startline="1724" endline="1762">update_shelf_mass</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a787fc1ef4951b3bb4a7d654efb147fc4" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ice_shelf::change_thickness_using_melt</definition>
        <argsstring>(ISS, G, US, time_step, fluxes, density_ice, debug)</argsstring>
        <name>change_thickness_using_melt</name>
        <param>
          <type>ISS</type>
          <defname>ISS</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>time_step</type>
          <defname>time_step</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>density_ice</type>
          <defname>density_ice</defname>
        </param>
        <param>
          <type>debug</type>
          <defname>debug</defname>
        </param>
        <briefdescription>
<para>Changes the thickness (mass) of the ice shelf based on sub-ice-shelf melting. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">iss</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with elements that describe the ice-shelf state </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_step</parametername>
</parameternamelist>
<parameterdescription>
<para>The time step for this update [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>structure containing pointers to any possible thermodynamic or mass-flux forcing fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">density_ice</parametername>
</parameternamelist>
<parameterdescription>
<para>The density of ice-shelf ice [R ~&gt; kg m-3]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">debug</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, write chksums </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="727" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="728" bodyend="770"/>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a0274b25df07d5fa712d038c31f921cbc" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::add_shelf_forces</definition>
        <argsstring>(G, US, CS, forces, do_shelf_area)</argsstring>
        <name>add_shelf_forces</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>forces</type>
          <defname>forces</defname>
        </param>
        <param>
          <type>do_shelf_area</type>
          <defname>do_shelf_area</defname>
        </param>
        <briefdescription>
<para>This subroutine adds the mechanical forcing fields and perhaps shelf areas, based on the ice state in ice_shelf_CS. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>This module&apos;s control structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">do_shelf_area</parametername>
</parameternamelist>
<parameterdescription>
<para>If true find the shelf-covered areas. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="775" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="776" bodyend="851"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__domains_1aa7d2122aa278771209b860dbd6788097" compoundref="MOM__domains_8F90" startline="137" endline="137">mom_domains::to_all</references>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">initialize_ice_shelf</referencedby>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
        <referencedby refid="namespaceocean__model__mod_1a497d254b44f58fb797b9d75bc006eb60" compoundref="ocean__model__MOM_8F90" startline="424" endline="668">ocean_model_mod::update_ocean_model</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1aca1d1c1db015f270ce1b1f93d16dea91" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ice_shelf::add_shelf_pressure</definition>
        <argsstring>(G, US, CS, fluxes)</argsstring>
        <name>add_shelf_pressure</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <briefdescription>
<para>This subroutine adds the ice shelf pressure to the fluxes type. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>This module&apos;s control structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of surface fluxes that may be updated. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="855" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="856" bodyend="880"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__ice__shelf_1a8f7eae8642835e30aff99f77f3836945" compoundref="MOM__ice__shelf_8F90" startline="885" endline="1078">add_shelf_flux</referencedby>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">initialize_ice_shelf</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a8f7eae8642835e30aff99f77f3836945" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::add_shelf_flux</definition>
        <argsstring>(G, US, CS, sfc_state, fluxes)</argsstring>
        <name>add_shelf_flux</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <briefdescription>
<para>Updates surface fluxes that are influenced by sub-ice-shelf melting. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>This module&apos;s control structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface ocean state </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of surface fluxes that may be used/updated. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="884" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="885" bodyend="1078"/>
        <references refid="namespacemom__ice__shelf_1aca1d1c1db015f270ce1b1f93d16dea91" compoundref="MOM__ice__shelf_8F90" startline="856" endline="880">add_shelf_pressure</references>
        <references refid="namespacemom__spatial__means_1a25f8ecef035d51fed0f4e97dbf448b63" compoundref="MOM__spatial__means_8F90" startline="53" endline="79">mom_spatial_means::global_area_integral</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__error__handler_1a1c462df7b61f1296407b4af51dfeceab" compoundref="MOM__error__handler_8F90" startline="53" endline="66">mom_error_handler::mom_mesg</references>
        <references refid="namespacemom__time__manager_1ae2d8736d03ab62310f32ddf01e44a961" compoundref="MOM__time__manager_8F90" startline="47" endline="60">mom_time_manager::real_to_time</references>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::initialize_ice_shelf</definition>
        <argsstring>(param_file, ocn_grid, Time, CS, diag, forces, fluxes, Time_in, solo_ice_sheet_in)</argsstring>
        <name>initialize_ice_shelf</name>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>ocn_grid</type>
          <defname>ocn_grid</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>forces</type>
          <defname>forces</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>Time_in</type>
          <defname>Time_in</defname>
        </param>
        <param>
          <type>solo_ice_sheet_in</type>
          <defname>solo_ice_sheet_in</defname>
        </param>
        <briefdescription>
<para>Initializes shelf model data, parameters and diagnostics. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ocn_grid</parametername>
</parameternamelist>
<parameterdescription>
<para>The calling ocean model&apos;s horizontal grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The clock that that will indicate the model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the ice shelf control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure that is used to regulate the diagnostic output. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to any possible thermodynamic or mass-flux forcing fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The time at initialization. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">solo_ice_sheet_in</parametername>
</parameternamelist>
<parameterdescription>
<para>If present, this indicates whether a solo ice-sheet driver. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1083" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1084" bodyend="1638"/>
        <references refid="namespacemom__ice__shelf_1a0274b25df07d5fa712d038c31f921cbc" compoundref="MOM__ice__shelf_8F90" startline="776" endline="851">add_shelf_forces</references>
        <references refid="namespacemom__ice__shelf_1aca1d1c1db015f270ce1b1f93d16dea91" compoundref="MOM__ice__shelf_8F90" startline="856" endline="880">add_shelf_pressure</references>
        <references refid="namespacemom__transcribe__grid_1abe8bd4f6f75bf431d0b53ef702a91d8d" compoundref="MOM__transcribe__grid_8F90" startline="25" endline="162">mom_transcribe_grid::copy_dyngrid_to_mom_grid</references>
        <references refid="namespacemom__eos_1a3ab220b9c98dac3b8f6b7c1606b811cf" compoundref="MOM__EOS_8F90" startline="1349" endline="1452">mom_eos::eos_init</references>
        <references refid="namespacemom__unit__scaling_1a0d99ae286970838e8f4cd534e3a2744c" compoundref="MOM__unit__scaling_8F90" startline="173" endline="180">mom_unit_scaling::fix_restart_unit_scaling</references>
        <references refid="namespacemom__get__input_1a46e89b56d1317f17ccb44b3fa7694731" compoundref="MOM__get__input_8F90" startline="35" endline="116">mom_get_input::get_mom_input</references>
        <references refid="namespacemom__ice__shelf__state_1a8d567511be122c8312c1efae11ce2fe2" compoundref="MOM__ice__shelf__state_8F90" startline="57" endline="80">mom_ice_shelf_state::ice_shelf_state_init</references>
        <references refid="namespacemom__ice__shelf_1a3db8709f10aa77ed302598f3a23a608d" compoundref="MOM__ice__shelf_8F90" startline="187" endline="187">id_clock_pass</references>
        <references refid="namespacemom__ice__shelf_1a5aff3e9a37cb5bc2b5b998bf296437ff" compoundref="MOM__ice__shelf_8F90" startline="186" endline="186">id_clock_shelf</references>
        <references refid="namespacemom__ice__shelf__initialize_1a1a45ca83d02a01108e202584a95e7527" compoundref="MOM__ice__shelf__initialize_8F90" startline="29" endline="56">mom_ice_shelf_initialize::initialize_ice_thickness</references>
        <references refid="namespacemom__ice__shelf_1ac478a1dd52137f8e851916bee2243fa3" compoundref="MOM__ice__shelf_8F90" startline="1643" endline="1719">initialize_shelf_mass</references>
        <references refid="namespacemom__error__handler_1ad5f00a53059c72fe2332d1436c80ca71" compoundref="MOM__error__handler_8F90" startline="44" endline="48">mom_error_handler::is_root_pe</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__grid_1a1de9705f83b687ad9a711630a95fe52c" compoundref="MOM__grid_8F90" startline="184" endline="382">mom_grid::mom_grid_init</references>
        <references refid="namespacemom__error__handler_1a1c462df7b61f1296407b4af51dfeceab" compoundref="MOM__error__handler_8F90" startline="53" endline="66">mom_error_handler::mom_mesg</references>
        <references refid="namespacemom__dyn__horgrid_1a4c2c545c65e12084cd863f0cade973f2" compoundref="MOM__dyn__horgrid_8F90" startline="285" endline="312">mom_dyn_horgrid::rescale_dyn_horgrid_bathymetry</references>
        <references refid="namespacemom__restart_1a0ad0a0207dceeb1d9e68c7af7fd39bdc" compoundref="MOM__restart_8F90" startline="1506" endline="1587">mom_restart::restart_init</references>
        <references refid="namespacemom__restart_1aec60d8a437fc858db4a020f9985b449d" compoundref="MOM__restart_8F90" startline="1069" endline="1288">mom_restart::restore_state</references>
        <references refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">mom_grid_initialize::set_grid_metrics</references>
        <references refid="namespacemom__unit__scaling_1a74867ddf628f93dcee854980e08bbe21" compoundref="MOM__unit__scaling_8F90" startline="57" endline="167">mom_unit_scaling::unit_scaling_init</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1ac478a1dd52137f8e851916bee2243fa3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ice_shelf::initialize_shelf_mass</definition>
        <argsstring>(G, param_file, CS, ISS, new_sim)</argsstring>
        <name>initialize_shelf_mass</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>ISS</type>
          <defname>ISS</defname>
        </param>
        <param>
          <type>new_sim</type>
          <defname>new_sim</defname>
        </param>
        <briefdescription>
<para>Initializes shelf mass based on three options (file, zero and user) </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the ice shelf control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">iss</parametername>
</parameternamelist>
<parameterdescription>
<para>The ice shelf state type that is being updated </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">new_sim</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and false, this run is being restarted </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1642" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1643" bodyend="1719"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">initialize_ice_shelf</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a6f0fa9f98ac01752ca2983c7e9816097" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ice_shelf::update_shelf_mass</definition>
        <argsstring>(G, US, CS, ISS, Time)</argsstring>
        <name>update_shelf_mass</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>ISS</type>
          <defname>ISS</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <briefdescription>
<para>Updates the ice shelf mass using data from a file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the ice shelf control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">iss</parametername>
</parameternamelist>
<parameterdescription>
<para>The ice shelf state type that is being updated </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1723" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1724" bodyend="1762"/>
        <referencedby refid="namespacemom__ice__shelf_1a21a2a3ddec5ea25c7bca246419e4dcfe" compoundref="MOM__ice__shelf_8F90" startline="195" endline="723">shelf_calc_flux</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a40ae01bbe3155191647f2150903dda69" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::ice_shelf_save_restart</definition>
        <argsstring>(CS, Time, directory, time_stamped, filename_suffix)</argsstring>
        <name>ice_shelf_save_restart</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>directory</type>
          <defname>directory</defname>
        </param>
        <param>
          <type>time_stamped</type>
          <defname>time_stamped</defname>
        </param>
        <param>
          <type>filename_suffix</type>
          <defname>filename_suffix</defname>
        </param>
        <briefdescription>
<para>Save the ice shelf restart file. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>ice shelf control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>model time at this call </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">directory</parametername>
</parameternamelist>
<parameterdescription>
<para>An optional directory into which to write these restart files. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_stamped</parametername>
</parameternamelist>
<parameterdescription>
<para>f true, the restart file names include a unique time stamp. The default is false. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">filename_suffix</parametername>
</parameternamelist>
<parameterdescription>
<para>An optional suffix (e.g., a time-stamp) to append to the restart file names. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1766" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1767" bodyend="1785"/>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
        <referencedby refid="namespaceocean__model__mod_1a908a47d286b0257e91a253272926dc3d" compoundref="ocean__model__MOM_8F90" startline="673" endline="704">ocean_model_mod::ocean_model_restart</referencedby>
        <referencedby refid="namespaceocean__model__mod_1ad969c968b1133584b9dcf48d78f51c01" compoundref="ocean__model__MOM_8F90" startline="727" endline="757">ocean_model_mod::ocean_model_save_restart</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a6d0412c7264e0480d5144d26995dd8d3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::ice_shelf_end</definition>
        <argsstring>(CS)</argsstring>
        <name>ice_shelf_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Deallocates all memory associated with this module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the ice shelf control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1789" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1790" bodyend="1799"/>
        <references refid="namespacemom__ice__shelf__dynamics_1a78c690be8b27b627bc228f1aba28164d" compoundref="MOM__ice__shelf__dynamics_8F90" startline="2955" endline="2970">mom_ice_shelf_dynamics::ice_shelf_dyn_end</references>
        <references refid="namespacemom__ice__shelf__state_1a8b1a83b8efb864a70ef9028b28dc1fcb" compoundref="MOM__ice__shelf__state_8F90" startline="86" endline="96">mom_ice_shelf_state::ice_shelf_state_end</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
        <referencedby refid="namespaceocean__model__mod_1a276959acb69502491d4b3a5a83e596b8" compoundref="ocean__model__MOM_8F90" startline="711" endline="721">ocean_model_mod::ocean_model_end</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ice__shelf_1a0678e919d45fc9e9e9b00dce3564a2fc" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ice_shelf::solo_step_ice_shelf</definition>
        <argsstring>(CS, time_interval, nsteps, Time, min_time_step_in)</argsstring>
        <name>solo_step_ice_shelf</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>time_interval</type>
          <defname>time_interval</defname>
        </param>
        <param>
          <type>nsteps</type>
          <defname>nsteps</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>min_time_step_in</type>
          <defname>min_time_step_in</defname>
        </param>
        <briefdescription>
<para>This routine is for stepping a stand-alone ice shelf model without an ocean. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the ice shelf control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_interval</parametername>
</parameternamelist>
<parameterdescription>
<para>The time interval for this update [s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">nsteps</parametername>
</parameternamelist>
<parameterdescription>
<para>The running number of ice shelf steps. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">min_time_step_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The minimum permitted time step [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="1803" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" bodystart="1804" bodyend="1869"/>
        <references refid="namespacemom__diag__mediator_1a1761df399ba39742e34ab989469da0f2" compoundref="MOM__diag__mediator_8F90" startline="1906" endline="1910">mom_diag_mediator::disable_averaging</references>
        <references refid="namespacemom__diag__mediator_1ada4d9d69fb0d79a0fe20a307eaf1ca9c" compoundref="MOM__diag__mediator_8F90" startline="1886" endline="1901">mom_diag_mediator::enable_averages</references>
        <references refid="namespacemom__ice__shelf__dynamics_1af151ce3690653c467dd78e4ca552cac9" compoundref="MOM__ice__shelf__dynamics_8F90" startline="601" endline="626">mom_ice_shelf_dynamics::ice_time_step_cfl</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__error__handler_1a1c462df7b61f1296407b4af51dfeceab" compoundref="MOM__error__handler_8F90" startline="53" endline="66">mom_error_handler::mom_mesg</references>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Implements the thermodynamic aspects of ocean / ice-shelf interactions, along with a crude placeholder for a later implementation of full ice shelf dynamics, all using the MOM framework and coding style. </para>
    </briefdescription>
    <detaileddescription>
<sect1 id="namespacemom__ice__shelf_1section_ICE_SHELF">
<title>section_ICE_SHELF</title>
<para>This module implements the thermodynamic aspects of ocean/ice-shelf inter-actions using the MOM framework and coding style.</para>
<para>Derived from code by Chris Little, early 2010.</para>
<para>The ice-sheet dynamics subroutines do the following: initialize_shelf_mass - Initializes the ice shelf mass distribution.<itemizedlist>
<listitem><para>Initializes h_shelf, h_mask, area_shelf_h</para>
</listitem><listitem><para>CURRENTLY: initializes mass_shelf as well, but this is unnecessary, as mass_shelf is initialized based on h_shelf and density_ice immediately afterwards. Possibly subroutine should be renamed update_shelf_mass - updates ice shelf mass via netCDF file USER_update_shelf_mass (TODO). solo_step_ice_shelf - called only in ice-only mode. shelf_calc_flux - after melt rate &amp; fluxes are calculated, ice dynamics are done. currently mass_shelf is updated immediately after ice_shelf_advect in fully dynamic mode.</para>
</listitem></itemizedlist>
</para>
<para>NOTES: be aware that hmask(:,:) has a number of functions; it is used for front advancement, for subroutines in the velocity solve, and for thickness boundary conditions (this last one may be removed). in other words, interfering with its updates will have implications you might not expect.</para>
<para>Overall issues: Many variables need better documentation and units and the subgrid on which they are discretized.</para>
<sect2 id="namespacemom__ice__shelf_1section_ICE_SHELF_equations">
<title>ICE_SHELF equations</title>
<para>The three fundamental equations are: Heat flux <formula id="239">\[ \qquad \rho_w C_{pw} \gamma_T (T_w - T_b) = \rho_i \dot{m} L_f \]</formula> Salt flux <formula id="240">\[ \qquad \rho_w \gamma_s (S_w - S_b) = \rho_i \dot{m} S_b \]</formula> Freezing temperature <formula id="241">\[ \qquad T_b = a S_b + b + c P \]</formula></para>
<para>where ....</para>
</sect2>
<sect2 id="namespacemom__ice__shelf_1section_ICE_SHELF_references">
<title>References</title>
<para>Asay-Davis, Xylar S., Stephen L. Cornford, Benjamin K. Galton-Fenzi, Rupert M. Gladstone, G. Hilmar Gudmundsson, David M. Holland, Paul R. Holland, and Daniel F. Martin. Experimental design for three interrelated marine ice sheet and ocean model intercomparison projects: MISMIP v. 3 (MISMIP+), ISOMIP v. 2 (ISOMIP+) and MISOMIP v. 1 (MISOMIP1). Geoscientific Model Development 9, no. 7 (2016): 2471.</para>
<para>Goldberg, D. N., et al. Investigation of land ice-ocean interaction with a fully coupled ice-ocean model: 1. Model description and behavior. Journal of Geophysical Research: Earth Surface 117.F2 (2012).</para>
<para>Goldberg, D. N., et al. Investigation of land ice-ocean interaction with a fully coupled ice-ocean model: 2. Sensitivity to external forcings. Journal of Geophysical Research: Earth Surface 117.F2 (2012).</para>
<para>Holland, David M., and Adrian Jenkins. Modeling thermodynamic ice-ocean interactions at the base of an ice shelf. Journal of Physical Oceanography 29.8 (1999): 1787-1800. </para>
</sect2>
</sect1>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/ice_shelf/MOM_ice_shelf.F90" line="4" column="1"/>
  </compounddef>
</doxygen>
