<?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__ale__sponge" kind="namespace" language="Fortran">
    <compoundname>mom_ale_sponge</compoundname>
    <innerclass refid="structmom__ale__sponge_1_1ale__sponge__cs" prot="public">mom_ale_sponge::ale_sponge_cs</innerclass>
    <innerclass refid="interfacemom__ale__sponge_1_1initialize__ale__sponge" prot="private">mom_ale_sponge::initialize_ale_sponge</innerclass>
    <innerclass refid="structmom__ale__sponge_1_1p2d" prot="private">mom_ale_sponge::p2d</innerclass>
    <innerclass refid="structmom__ale__sponge_1_1p3d" prot="private">mom_ale_sponge::p3d</innerclass>
    <innerclass refid="interfacemom__ale__sponge_1_1set__up__ale__sponge__field" prot="private">mom_ale_sponge::set_up_ale_sponge_field</innerclass>
    <innerclass refid="interfacemom__ale__sponge_1_1set__up__ale__sponge__vel__field" prot="private">mom_ale_sponge::set_up_ale_sponge_vel_field</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__ale__sponge_1a15129d167423dc162d22ef7cf4742651" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::initialize_ale_sponge_fixed</definition>
        <argsstring>(Iresttime, G, param_file, CS, data_h, nz_data)</argsstring>
        <name>initialize_ale_sponge_fixed</name>
        <param>
          <type>Iresttime</type>
          <defname>Iresttime</defname>
        </param>
        <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>data_h</type>
          <defname>data_h</defname>
        </param>
        <param>
          <type>nz_data</type>
          <defname>nz_data</defname>
        </param>
        <briefdescription>
<para>This subroutine determines the number of points which are within sponges in this computational domain. Only points that have positive values of Iresttime and which mask2dT indicates are ocean points are included in the sponges. It also stores the target interface heights. </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">nz_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The total number of sponge input layers. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">iresttime</parametername>
</parameternamelist>
<parameterdescription>
<para>The inverse of the restoring time [T-1 ~&gt; s-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure indicating the open file to parse for model parameter values. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for this module (in/out). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data_h</parametername>
</parameternamelist>
<parameterdescription>
<para>The thicknesses of the sponge input layers [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="148" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="149" bodyend="341"/>
        <references refid="namespacemom__remapping_1a81211827af45207130d25cae520b55e5" compoundref="MOM__remapping_8F90" startline="1551" endline="1564">mom_remapping::initialize_remapping</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__ale__sponge_1a0c718798e303111ea3110d5ff07bad5c" compoundref="MOM__ALE__sponge_8F90" startline="1006" endline="1138">rotate_ale_sponge</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a30b98598d25129c9fbb6e7c4b3480e7a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public mom_ale_sponge::get_ale_sponge_nz_data</definition>
        <argsstring>(CS)</argsstring>
        <name>get_ale_sponge_nz_data</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Return the number of layers in the data with a fixed ALE sponge, or 0 if there are no sponge columns on this PE. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for the ALE_sponge module. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The number of layers in the fixed sponge data. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="346" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="347" bodyend="355"/>
        <referencedby refid="namespacergc__tracer_1ad2da37dd791644961aab6e66a2452793" compoundref="RGC__tracer_8F90" startline="156" endline="269">rgc_tracer::initialize_rgc_tracer</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a56eb18da6c1d40f6abb544e5b7114293" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::get_ale_sponge_thicknesses</definition>
        <argsstring>(G, data_h, sponge_mask, CS)</argsstring>
        <name>get_ale_sponge_thicknesses</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>data_h</type>
          <defname>data_h</defname>
        </param>
        <param>
          <type>sponge_mask</type>
          <defname>sponge_mask</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Return the thicknesses used for the data with a fixed ALE sponge. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">data_h</parametername>
</parameternamelist>
<parameterdescription>
<para>The thicknesses of the sponge input layers [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">sponge_mask</parametername>
</parameternamelist>
<parameterdescription>
<para>A logical mask that is true where </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for the ALE_sponge module. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="359" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="360" bodyend="390"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a0febb96fb2fd40a72580d078ca023098" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::initialize_ale_sponge_varying</definition>
        <argsstring>(Iresttime, G, param_file, CS)</argsstring>
        <name>initialize_ale_sponge_varying</name>
        <param>
          <type>Iresttime</type>
          <defname>Iresttime</defname>
        </param>
        <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>
        <briefdescription>
<para>This subroutine determines the number of points which are to be restoref in the computational domain. Only points that have positive values of Iresttime and which mask2dT indicates are ocean points are included in the sponges. </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">iresttime</parametername>
</parameternamelist>
<parameterdescription>
<para>The inverse of the restoring time [T-1 ~&gt; s-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure indicating the open file to parse for model parameter values. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for this module (in/out). </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="396" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="397" bodyend="543"/>
        <references refid="namespacemom__remapping_1a81211827af45207130d25cae520b55e5" compoundref="MOM__remapping_8F90" startline="1551" endline="1564">mom_remapping::initialize_remapping</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__ale__sponge_1a0c718798e303111ea3110d5ff07bad5c" compoundref="MOM__ALE__sponge_8F90" startline="1006" endline="1138">rotate_ale_sponge</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1aed1ab3e7a8063222f1c9b0d3d2336cbe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::init_ale_sponge_diags</definition>
        <argsstring>(Time, G, diag, CS)</argsstring>
        <name>init_ale_sponge_diags</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Initialize diagnostics for the ALE_sponge module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure that is used to regulate diagnostic output. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>ALE sponge control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="548" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="549" bodyend="558"/>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">mom::initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a7b00598b2cf45b865f56515ed5d2ed0a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::set_up_ale_sponge_field_fixed</definition>
        <argsstring>(sp_val, G, f_ptr, CS)</argsstring>
        <name>set_up_ale_sponge_field_fixed</name>
        <param>
          <type>sp_val</type>
          <defname>sp_val</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>f_ptr</type>
          <defname>f_ptr</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine stores the reference profile at h points for the variable whose address is given by f_ptr. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>ALE sponge control structure (in/out). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">sp_val</parametername>
</parameternamelist>
<parameterdescription>
<para>Field to be used in the sponge, it has arbitrary number of layers. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">f_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the field to be damped </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="563" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="564" bodyend="595"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a5222905f5cfddd07b77e05428e88dd85" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::set_up_ale_sponge_field_varying</definition>
        <argsstring>(filename, fieldname, Time, G, GV, US, f_ptr, CS)</argsstring>
        <name>set_up_ale_sponge_field_varying</name>
        <param>
          <type>filename</type>
          <defname>filename</defname>
        </param>
        <param>
          <type>fieldname</type>
          <defname>fieldname</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>f_ptr</type>
          <defname>f_ptr</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine stores the reference profile at h points for the variable whose address is given by filename and fieldname. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">filename</parametername>
</parameternamelist>
<parameterdescription>
<para>The name of the file with the time varying field data </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fieldname</parametername>
</parameternamelist>
<parameterdescription>
<para>The name of the field in the file with the time varying field data </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid structure (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical 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">f_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the field to be damped (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Sponge control structure (in/out). </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="600" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="601" bodyend="660"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a6eb21c5a149d573ba0d67fdb3a932115" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::set_up_ale_sponge_vel_field_fixed</definition>
        <argsstring>(u_val, v_val, G, u_ptr, v_ptr, CS)</argsstring>
        <name>set_up_ale_sponge_vel_field_fixed</name>
        <param>
          <type>u_val</type>
          <defname>u_val</defname>
        </param>
        <param>
          <type>v_val</type>
          <defname>v_val</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>u_ptr</type>
          <defname>u_ptr</defname>
        </param>
        <param>
          <type>v_ptr</type>
          <defname>v_ptr</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine stores the reference profile at u and v points for the variable whose address is given by u_ptr and v_ptr. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid structure (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Sponge structure (in/out). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u_val</parametername>
</parameternamelist>
<parameterdescription>
<para>u field to be used in the sponge, it has arbritary number of layers. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">v_val</parametername>
</parameternamelist>
<parameterdescription>
<para>v field to be used in the sponge, it has arbritary number of layers. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>u pointer to the field to be damped </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">v_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>v pointer to the field to be damped </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="665" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="666" bodyend="697"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a551051d11b239eeef807fb88ab31aba6" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_ale_sponge::set_up_ale_sponge_vel_field_varying</definition>
        <argsstring>(filename_u, fieldname_u, filename_v, fieldname_v, Time, G, US, CS, u_ptr, v_ptr)</argsstring>
        <name>set_up_ale_sponge_vel_field_varying</name>
        <param>
          <type>filename_u</type>
          <defname>filename_u</defname>
        </param>
        <param>
          <type>fieldname_u</type>
          <defname>fieldname_u</defname>
        </param>
        <param>
          <type>filename_v</type>
          <defname>filename_v</defname>
        </param>
        <param>
          <type>fieldname_v</type>
          <defname>fieldname_v</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <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>u_ptr</type>
          <defname>u_ptr</defname>
        </param>
        <param>
          <type>v_ptr</type>
          <defname>v_ptr</defname>
        </param>
        <briefdescription>
<para>This subroutine stores the reference profile at uand v points for the variable whose address is given by u_ptr and v_ptr. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">filename_u</parametername>
</parameternamelist>
<parameterdescription>
<para>File name for u field </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fieldname_u</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of u variable in file </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">filename_v</parametername>
</parameternamelist>
<parameterdescription>
<para>File name for v field </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fieldname_v</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of v variable in file </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>Model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid (in) </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>Sponge structure (in/out). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>u pointer to the field to be damped (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">v_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>v pointer to the field to be damped (in). </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="702" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="704" bodyend="782"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a1f297a8680a56b92ad1ac4e09f375d05" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::apply_ale_sponge</definition>
        <argsstring>(h, dt, G, GV, US, CS, Time)</argsstring>
        <name>apply_ale_sponge</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <briefdescription>
<para>This subroutine applies damping to the layers thicknesses, temp, salt and a variety of tracers for every column where there is damping. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical 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="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness [H ~&gt; m or kg m-2] (in) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time covered by this call [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure for this module that is set by a previous call to initialize_ALE_sponge (in). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model date </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="787" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="788" bodyend="1001"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__remapping_1abe4a1d5b1b9f26063a5e4aba5be0b0a5" compoundref="MOM__remapping_8F90" startline="190" endline="262">mom_remapping::remapping_core_h</references>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">mom_diabatic_driver::diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">mom_diabatic_driver::diabatic_ale_legacy</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1a0c718798e303111ea3110d5ff07bad5c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::rotate_ale_sponge</definition>
        <argsstring>(sponge_in, G_in, sponge, G, turns, param_file)</argsstring>
        <name>rotate_ale_sponge</name>
        <param>
          <type>sponge_in</type>
          <defname>sponge_in</defname>
        </param>
        <param>
          <type>G_in</type>
          <defname>G_in</defname>
        </param>
        <param>
          <type>sponge</type>
          <defname>sponge</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <briefdescription>
<para>Rotate the ALE sponge fields from the input to the model index map. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">sponge_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure for this module with the original grid rotation </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure with the original rotation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sponge</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control that will be set up with the new grid rotation </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure with the new rotation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of 90-degree turns between grids </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure indicating the open file to parse for model parameter values. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="1005" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="1006" bodyend="1138"/>
        <references refid="namespacemom__ale__sponge_1a15129d167423dc162d22ef7cf4742651" compoundref="MOM__ALE__sponge_8F90" startline="149" endline="341">initialize_ale_sponge_fixed</references>
        <references refid="namespacemom__ale__sponge_1a0febb96fb2fd40a72580d078ca023098" compoundref="MOM__ALE__sponge_8F90" startline="397" endline="543">initialize_ale_sponge_varying</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1ab843ab7a29e992d83973c8f9ad6003b1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::update_ale_sponge_field</definition>
        <argsstring>(sponge, p_old, G, GV, p_new)</argsstring>
        <name>update_ale_sponge_field</name>
        <param>
          <type>sponge</type>
          <defname>sponge</defname>
        </param>
        <param>
          <type>p_old</type>
          <defname>p_old</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>p_new</type>
          <defname>p_new</defname>
        </param>
        <briefdescription>
<para>Scan the ALE sponge variables and replace a prescribed pointer to a new value. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sponge</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure for this module that is set by a previous call to initialize_ALE_sponge. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">p_old</parametername>
</parameternamelist>
<parameterdescription>
<para>The previous array of target values </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The updated ocean grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">p_new</parametername>
</parameternamelist>
<parameterdescription>
<para>The new array of target values </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="1146" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="1147" bodyend="1161"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__ale__sponge_1ada4339e461d4b916fc4585ed6fa1482c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_ale_sponge::ale_sponge_end</definition>
        <argsstring>(CS)</argsstring>
        <name>ale_sponge_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine deallocates any memory associated with the ALE_sponge module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure that is set by a previous call to initialize_ALE_sponge. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="1168" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" bodystart="1169" bodyend="1192"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>This module contains the routines used to apply sponge layers when using the ALE mode. </para>
    </briefdescription>
    <detaileddescription>
<para>Applying sponges requires the following:<orderedlist>
<listitem><para>initialize_ALE_sponge</para>
</listitem><listitem><para>set_up_ALE_sponge_field (tracers) and set_up_ALE_sponge_vel_field (vel)</para>
</listitem><listitem><para>apply_ALE_sponge</para>
</listitem><listitem><para>init_ALE_sponge_diags (not being used for now)</para>
</listitem><listitem><para>ALE_sponge_end (not being used for now) </para>
</listitem></orderedlist>
</para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_ALE_sponge.F90" line="11" column="1"/>
  </compounddef>
</doxygen>
