<?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.17">
  <compounddef id="namespacemom" kind="namespace" language="Fortran">
    <compoundname>mom</compoundname>
    <innerclass refid="structmom_1_1mom__control__struct" prot="public">mom::mom_control_struct</innerclass>
    <innerclass refid="structmom_1_1mom__diag__ids" prot="private">mom::mom_diag_ids</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom_1a2e9f4b71ee77ba5bcb3f03a863948db3" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_ocean</definition>
        <argsstring></argsstring>
        <name>id_clock_ocean</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="390" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="390" bodyend="390"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1ae1cf2d523679b925a5e5baa9d974968c" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_dynamics</definition>
        <argsstring></argsstring>
        <name>id_clock_dynamics</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="391" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="391" bodyend="391"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a052256dfa3e56390f62ef3a826d62617" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_thermo</definition>
        <argsstring></argsstring>
        <name>id_clock_thermo</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="392" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="392" bodyend="392"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
        <referencedby refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a0fa4debacd02de6fcd066066c232adf3" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_tracer</definition>
        <argsstring></argsstring>
        <name>id_clock_tracer</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="393" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="393" bodyend="393"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a50edf00aa5998073d2db0360949253ba" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_diabatic</definition>
        <argsstring></argsstring>
        <name>id_clock_diabatic</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="394" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="394" bodyend="394"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1af865d838388a05163e8de8d266316d5f" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_adiabatic</definition>
        <argsstring></argsstring>
        <name>id_clock_adiabatic</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="395" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="395" bodyend="395"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1aa512b2d8dd73b02634e772701be07a87" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_continuity</definition>
        <argsstring></argsstring>
        <name>id_clock_continuity</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="396" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="396" bodyend="396"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a8f5feb87a0cb40d9fcee00456e982b8a" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_thick_diff</definition>
        <argsstring></argsstring>
        <name>id_clock_thick_diff</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="397" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="397" bodyend="397"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1aa69e79e4c51e1c24c474b84311322251" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_bbl_visc</definition>
        <argsstring></argsstring>
        <name>id_clock_bbl_visc</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="398" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="398" bodyend="398"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a41b67fabfc13e52cf3a5d1c337c780eb" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_ml_restrat</definition>
        <argsstring></argsstring>
        <name>id_clock_ml_restrat</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="399" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="399" bodyend="399"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1aa773fddb51f99098d75304eb271270d4" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_diagnostics</definition>
        <argsstring></argsstring>
        <name>id_clock_diagnostics</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="400" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="400" bodyend="400"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
        <referencedby refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a09f2ac3470372b9ee233f4cc5a7a0da1" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_z_diag</definition>
        <argsstring></argsstring>
        <name>id_clock_z_diag</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="401" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="401" bodyend="401"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a7cf03c18244d0630616e925bab1841a2" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_init</definition>
        <argsstring></argsstring>
        <name>id_clock_init</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="402" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="402" bodyend="402"/>
        <referencedby refid="namespacemom_1a2269d5cd79625cbf16cb916346379207" compoundref="MOM_8F90" startline="2774" endline="2819">finish_mom_initialization</referencedby>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a4180eb85bab39df7cbb72bb8e5b19fd4" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_mom_init</definition>
        <argsstring></argsstring>
        <name>id_clock_mom_init</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="403" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="403" bodyend="403"/>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_pass</definition>
        <argsstring></argsstring>
        <name>id_clock_pass</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="404" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="404" bodyend="404"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
        <referencedby refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1ac4d20612cad32d412dae492fedc2e971" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_pass_init</definition>
        <argsstring></argsstring>
        <name>id_clock_pass_init</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="405" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="405" bodyend="405"/>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a722ed13d0e6d76852e680054a0e3c964" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_ale</definition>
        <argsstring></argsstring>
        <name>id_clock_ale</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="406" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="406" bodyend="406"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</referencedby>
        <referencedby refid="namespacemom_1ade4f7557fcda73ffc12284d3cecf4182" compoundref="MOM_8F90" startline="1405" endline="1596">step_offline</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a283a5d32d799a3cd11113a05dcae2d56" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_other</definition>
        <argsstring></argsstring>
        <name>id_clock_other</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="407" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="407" bodyend="407"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</referencedby>
        <referencedby refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a2ab767469f0d918b9e479d8e0fde44b0" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_offline_tracer</definition>
        <argsstring></argsstring>
        <name>id_clock_offline_tracer</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="408" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="408" bodyend="408"/>
        <referencedby refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</referencedby>
        <referencedby refid="namespacemom_1ade4f7557fcda73ffc12284d3cecf4182" compoundref="MOM_8F90" startline="1405" endline="1596">step_offline</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom_1a785851181d2a3db5a938322d2ff9498a" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom::id_clock_unit_tests</definition>
        <argsstring></argsstring>
        <name>id_clock_unit_tests</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="409" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="409" bodyend="409"/>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::step_mom</definition>
        <argsstring>(forces_in, fluxes_in, sfc_state, Time_start, time_int_in, CS, Waves, do_dynamics, do_thermodynamics, start_cycle, end_cycle, cycle_length, reset_therm)</argsstring>
        <name>step_mom</name>
        <param>
          <type>forces_in</type>
          <defname>forces_in</defname>
        </param>
        <param>
          <type>fluxes_in</type>
          <defname>fluxes_in</defname>
        </param>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>Time_start</type>
          <defname>Time_start</defname>
        </param>
        <param>
          <type>time_int_in</type>
          <defname>time_int_in</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Waves</type>
          <defname>Waves</defname>
        </param>
        <param>
          <type>do_dynamics</type>
          <defname>do_dynamics</defname>
        </param>
        <param>
          <type>do_thermodynamics</type>
          <defname>do_thermodynamics</defname>
        </param>
        <param>
          <type>start_cycle</type>
          <defname>start_cycle</defname>
        </param>
        <param>
          <type>end_cycle</type>
          <defname>end_cycle</defname>
        </param>
        <param>
          <type>cycle_length</type>
          <defname>cycle_length</defname>
        </param>
        <param>
          <type>reset_therm</type>
          <defname>reset_therm</defname>
        </param>
        <briefdescription>
<para>This subroutine orchestrates the time stepping of MOM. The adiabatic dynamics are stepped by calls to one of the step_MOM_dyn_...routines. The action of lateral processes on tracers occur in calls to advect_tracer and tracer_hordiff. Vertical mixing and possibly remapping occur inside of diabatic. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">forces_in</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes_in</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with pointers to themodynamic, tracer and mass exchange forcing fields </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>surface ocean state </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_start</parametername>
</parameternamelist>
<parameterdescription>
<para>starting time of a segment, as a time type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_int_in</parametername>
</parameternamelist>
<parameterdescription>
<para>time interval covered by this run segment [s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure from initialize_MOM </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>An optional pointer to a wave property CS </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">do_dynamics</parametername>
</parameternamelist>
<parameterdescription>
<para>Present and false, do not do updates due to the dynamics. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">do_thermodynamics</parametername>
</parameternamelist>
<parameterdescription>
<para>Present and false, do not do updates due to the thermodynamics or remapping. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">start_cycle</parametername>
</parameternamelist>
<parameterdescription>
<para>This indicates whether this call is to be treated as the first call to step_MOM in a time-stepping cycle; missing is like true. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">end_cycle</parametername>
</parameternamelist>
<parameterdescription>
<para>This indicates whether this call is to be treated as the last call to step_MOM in a time-stepping cycle; missing is like true. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cycle_length</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time in a coupled time stepping cycle [s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">reset_therm</parametername>
</parameternamelist>
<parameterdescription>
<para>This indicates whether the running sums of thermodynamic quantities should be reset. If missing, this is like start_cycle. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="419" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="422" bodyend="940"/>
        <references refid="namespacemom_1a16f7cc52cef3eb7a99687bf3d0694285" compoundref="MOM_8F90" startline="2964" endline="3001">adjust_ssh_for_p_atm</references>
        <references refid="namespacemom__lateral__mixing__coeffs_1a6e09cc5b57817576a6ba61b9c630f608" compoundref="MOM__lateral__mixing__coeffs_8F90" startline="157" endline="186">mom_lateral_mixing_coeffs::calc_depth_function</references>
        <references refid="namespacemom__lateral__mixing__coeffs_1a8652c5651033573cfd6f09b789d64713" compoundref="MOM__lateral__mixing__coeffs_8F90" startline="191" endline="431">mom_lateral_mixing_coeffs::calc_resoln_function</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__domains_1a242daf83cdf6041f5023f7da49d6da37" compoundref="MOM__domains_8F90" startline="1154" endline="1169">mom_domains::complete_group_pass</references>
        <references refid="namespacemom__diag__mediator_1a4c15fc11c4d220ebcdd38adb692950db" compoundref="MOM__diag__mediator_8F90" startline="3613" endline="3627">mom_diag_mediator::diag_copy_diag_to_storage</references>
        <references refid="namespacemom_1a699d6c5bfb5b9dcdaa03c18806fa824e" compoundref="MOM_8F90" startline="3008" endline="3408">extract_surface_state</references>
        <references refid="namespacemom_1aa773fddb51f99098d75304eb271270d4" compoundref="MOM_8F90" startline="400" endline="400">id_clock_diagnostics</references>
        <references refid="namespacemom_1ae1cf2d523679b925a5e5baa9d974968c" compoundref="MOM_8F90" startline="391" endline="391">id_clock_dynamics</references>
        <references refid="namespacemom_1a2e9f4b71ee77ba5bcb3f03a863948db3" compoundref="MOM_8F90" startline="390" endline="390">id_clock_ocean</references>
        <references refid="namespacemom_1a283a5d32d799a3cd11113a05dcae2d56" compoundref="MOM_8F90" startline="407" endline="407">id_clock_other</references>
        <references refid="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" compoundref="MOM_8F90" startline="404" endline="404">id_clock_pass</references>
        <references refid="namespacemom_1ada38a8329b76f9fa1685a230869a7647" compoundref="MOM_8F90" startline="3429" endline="3444">mom_state_is_synchronized</references>
        <references refid="namespacemom__forcing__type_1a904033b8a97fed683d795460b555ce9b" compoundref="MOM__forcing__type_8F90" startline="3187" endline="3308">mom_forcing_type::rotate_forcing</references>
        <references refid="namespacemom__forcing__type_1a7b1d8f7fa2ffad01d699febbf042ac74" compoundref="MOM__forcing__type_8F90" startline="3313" endline="3357">mom_forcing_type::rotate_mech_forcing</references>
        <references refid="namespacemom__variables_1a880f21fbfee383e8ee7c5ec114036f2f" compoundref="MOM__variables_8F90" startline="404" endline="472">mom_variables::rotate_surface_state</references>
        <references refid="namespacemom__oda__driver__mod_1a6df570bae958c31d3aab1053484e1f5d" compoundref="MOM__oda__driver_8F90" startline="475" endline="497">mom_oda_driver_mod::set_analysis_time</references>
        <references refid="namespacemom__oda__driver__mod_1a24806346258e5d9143e233999eef0e7f" compoundref="MOM__oda__driver_8F90" startline="308" endline="359">mom_oda_driver_mod::set_prior_tracer</references>
        <references refid="namespacemom__domains_1ab27e1cc5953c88e733e0f9f55e4fd446" compoundref="MOM__domains_8F90" startline="1133" endline="1149">mom_domains::start_group_pass</references>
        <references refid="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" compoundref="MOM_8F90" startline="946" endline="1125">step_mom_dynamics</references>
        <references refid="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" compoundref="MOM_8F90" startline="1213" endline="1396">step_mom_thermo</references>
        <references refid="namespacemom_1a0a07938ed3127b70bab5d466967aec80" compoundref="MOM_8F90" startline="1132" endline="1206">step_mom_tracer_dyn</references>
        <references refid="namespacemom__wave__interface_1a42b769030d04a1c087e168de36ce7285" compoundref="MOM__wave__interface_8F90" startline="479" endline="704">mom_wave_interface::update_stokes_drift</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a42ee7e91ffcf1340679e29ab28d9b41d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::step_mom_dynamics</definition>
        <argsstring>(forces, p_surf_begin, p_surf_end, dt, dt_thermo, bbl_time_int, CS, Time_local, Waves)</argsstring>
        <name>step_mom_dynamics</name>
        <param>
          <type>forces</type>
          <defname>forces</defname>
        </param>
        <param>
          <type>p_surf_begin</type>
          <defname>p_surf_begin</defname>
        </param>
        <param>
          <type>p_surf_end</type>
          <defname>p_surf_end</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>dt_thermo</type>
          <defname>dt_thermo</defname>
        </param>
        <param>
          <type>bbl_time_int</type>
          <defname>bbl_time_int</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Time_local</type>
          <defname>Time_local</defname>
        </param>
        <param>
          <type>Waves</type>
          <defname>Waves</defname>
        </param>
        <briefdescription>
<para>Time step the ocean dynamics, including the momentum and continuity equations. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>p_surf_begin</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer (perhaps NULL) to the surface pressure at the beginning of this dynamic step, intent in [R L2 T-2 ~&gt; Pa]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>p_surf_end</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer (perhaps NULL) to the surface pressure at the end of this dynamic step, intent in [R L2 T-2 ~&gt; Pa]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time interval covered by this call [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_thermo</parametername>
</parameternamelist>
<parameterdescription>
<para>time interval covered by any updates that may span multiple dynamics steps [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">bbl_time_int</parametername>
</parameternamelist>
<parameterdescription>
<para>time interval over which updates to the bottom boundary layer properties will apply [T ~&gt; s], or zero not to update the properties. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure from initialize_MOM </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_local</parametername>
</parameternamelist>
<parameterdescription>
<para>End time of a segment, as a time type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Container for wave related parameters; the </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="944" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="946" bodyend="1125"/>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom_1aa69e79e4c51e1c24c474b84311322251" compoundref="MOM_8F90" startline="398" endline="398">id_clock_bbl_visc</references>
        <references refid="namespacemom_1aa773fddb51f99098d75304eb271270d4" compoundref="MOM_8F90" startline="400" endline="400">id_clock_diagnostics</references>
        <references refid="namespacemom_1ae1cf2d523679b925a5e5baa9d974968c" compoundref="MOM_8F90" startline="391" endline="391">id_clock_dynamics</references>
        <references refid="namespacemom_1a41b67fabfc13e52cf3a5d1c337c780eb" compoundref="MOM_8F90" startline="399" endline="399">id_clock_ml_restrat</references>
        <references refid="namespacemom_1a283a5d32d799a3cd11113a05dcae2d56" compoundref="MOM_8F90" startline="407" endline="407">id_clock_other</references>
        <references refid="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" compoundref="MOM_8F90" startline="404" endline="404">id_clock_pass</references>
        <references refid="namespacemom_1a8f5feb87a0cb40d9fcee00456e982b8a" compoundref="MOM_8F90" startline="397" endline="397">id_clock_thick_diff</references>
        <references refid="namespacemom__meke_1a5f752f097ddeba7071e1703110e51bc2" compoundref="MOM__MEKE_8F90" startline="112" endline="637">mom_meke::step_forward_meke</references>
        <references refid="namespacemom__thickness__diffuse_1a8a538b778a567f489bfd9c5eadeeebef" compoundref="MOM__thickness__diffuse_8F90" startline="109" endline="547">mom_thickness_diffuse::thickness_diffuse</references>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a0a07938ed3127b70bab5d466967aec80" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::step_mom_tracer_dyn</definition>
        <argsstring>(CS, G, GV, US, h, Time_local)</argsstring>
        <name>step_mom_tracer_dyn</name>
        <param>
          <type>CS</type>
          <defname>CS</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>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>Time_local</type>
          <defname>Time_local</defname>
        </param>
        <briefdescription>
<para>step_MOM_tracer_dyn does tracer advection and lateral diffusion, bringing the tracers up to date with the changes in state due to the dynamics. Surface sources and sinks and remapping are handled via step_MOM_thermo. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thicknesses after the transports [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_local</parametername>
</parameternamelist>
<parameterdescription>
<para>The model time at the end of the time step. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="1131" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="1132" bodyend="1206"/>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom_1aa773fddb51f99098d75304eb271270d4" compoundref="MOM_8F90" startline="400" endline="400">id_clock_diagnostics</references>
        <references refid="namespacemom_1a283a5d32d799a3cd11113a05dcae2d56" compoundref="MOM_8F90" startline="407" endline="407">id_clock_other</references>
        <references refid="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" compoundref="MOM_8F90" startline="404" endline="404">id_clock_pass</references>
        <references refid="namespacemom_1a052256dfa3e56390f62ef3a826d62617" compoundref="MOM_8F90" startline="392" endline="392">id_clock_thermo</references>
        <references refid="namespacemom_1a0fa4debacd02de6fcd066066c232adf3" compoundref="MOM_8F90" startline="393" endline="393">id_clock_tracer</references>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a1a81ea749a309f10f5c3c7a17efa3606" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::step_mom_thermo</definition>
        <argsstring>(CS, G, GV, US, u, v, h, tv, fluxes, dtdia, Time_end_thermo, update_BBL, Waves)</argsstring>
        <name>step_mom_thermo</name>
        <param>
          <type>CS</type>
          <defname>CS</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>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>dtdia</type>
          <defname>dtdia</defname>
        </param>
        <param>
          <type>Time_end_thermo</type>
          <defname>Time_end_thermo</defname>
        </param>
        <param>
          <type>update_BBL</type>
          <defname>update_BBL</defname>
        </param>
        <param>
          <type>Waves</type>
          <defname>Waves</defname>
        </param>
        <briefdescription>
<para>MOM_step_thermo orchestrates the thermodynamic time stepping and vertical remapping, via calls to diabatic (or adiabatic) and ALE_main. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Master MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">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">u</parametername>
</parameternamelist>
<parameterdescription>
<para>zonal velocity [L T-1 ~&gt; m s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">v</parametername>
</parameternamelist>
<parameterdescription>
<para>meridional velocity [L T-1 ~&gt; m s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thickness [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure pointing to various thermodynamic variables </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>pointers to forcing fields </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dtdia</parametername>
</parameternamelist>
<parameterdescription>
<para>The time interval over which to advance [T ~&gt; s] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_end_thermo</parametername>
</parameternamelist>
<parameterdescription>
<para>End of averaging interval for thermo diags </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">update_bbl</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, calculate the bottom boundary layer properties. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Container for wave related parameters </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="1211" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="1213" bodyend="1396"/>
        <references refid="namespacemom__diabatic__driver_1aef60aa7bfe62f65408c7005b6cb613e8" compoundref="MOM__diabatic__driver_8F90" startline="2849" endline="2865">mom_diabatic_driver::adiabatic</references>
        <references refid="namespacemom__oda__driver__mod_1a1591229c657f196c97b87b77ca4378a6" compoundref="MOM__oda__driver_8F90" startline="529" endline="535">mom_oda_driver_mod::apply_oda_tracer_increments</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom_1af865d838388a05163e8de8d266316d5f" compoundref="MOM_8F90" startline="395" endline="395">id_clock_adiabatic</references>
        <references refid="namespacemom_1a722ed13d0e6d76852e680054a0e3c964" compoundref="MOM_8F90" startline="406" endline="406">id_clock_ale</references>
        <references refid="namespacemom_1aa69e79e4c51e1c24c474b84311322251" compoundref="MOM_8F90" startline="398" endline="398">id_clock_bbl_visc</references>
        <references refid="namespacemom_1a50edf00aa5998073d2db0360949253ba" compoundref="MOM_8F90" startline="394" endline="394">id_clock_diabatic</references>
        <references refid="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" compoundref="MOM_8F90" startline="404" endline="404">id_clock_pass</references>
        <references refid="namespacemom_1a052256dfa3e56390f62ef3a826d62617" compoundref="MOM_8F90" startline="392" endline="392">id_clock_thermo</references>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1ade4f7557fcda73ffc12284d3cecf4182" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::step_offline</definition>
        <argsstring>(forces, fluxes, sfc_state, Time_start, time_interval, CS)</argsstring>
        <name>step_offline</name>
        <param>
          <type>forces</type>
          <defname>forces</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>Time_start</type>
          <defname>Time_start</defname>
        </param>
        <param>
          <type>time_interval</type>
          <defname>time_interval</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>step_offline is the main driver for running tracers offline in MOM6. This has been primarily developed with ALE configurations in mind. Some work has been done in isopycnal configuration, but the work is very preliminary. Some more detail about this capability along with some of the subroutines called here can be found in tracers/MOM_offline_control.F90 </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>pointers to forcing fields </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>surface ocean state </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_start</parametername>
</parameternamelist>
<parameterdescription>
<para>starting time of a segment, as a time type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_interval</parametername>
</parameternamelist>
<parameterdescription>
<para>time interval </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure from initialize_MOM </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="1404" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="1405" bodyend="1596"/>
        <references refid="namespacemom_1a16f7cc52cef3eb7a99687bf3d0694285" compoundref="MOM_8F90" startline="2964" endline="3001">adjust_ssh_for_p_atm</references>
        <references refid="namespacemom__ale_1aa7a1311028c2cd514b4b5224c5c7fe17" compoundref="MOM__ALE_8F90" startline="544" endline="584">mom_ale::ale_offline_tracer_final</references>
        <references refid="namespacemom__lateral__mixing__coeffs_1a6e09cc5b57817576a6ba61b9c630f608" compoundref="MOM__lateral__mixing__coeffs_8F90" startline="157" endline="186">mom_lateral_mixing_coeffs::calc_depth_function</references>
        <references refid="namespacemom__lateral__mixing__coeffs_1a8652c5651033573cfd6f09b789d64713" compoundref="MOM__lateral__mixing__coeffs_8F90" startline="191" endline="431">mom_lateral_mixing_coeffs::calc_resoln_function</references>
        <references refid="namespacemom_1a699d6c5bfb5b9dcdaa03c18806fa824e" compoundref="MOM_8F90" startline="3008" endline="3408">extract_surface_state</references>
        <references refid="namespacemom_1a722ed13d0e6d76852e680054a0e3c964" compoundref="MOM_8F90" startline="406" endline="406">id_clock_ale</references>
        <references refid="namespacemom_1a2ab767469f0d918b9e479d8e0fde44b0" compoundref="MOM_8F90" startline="408" endline="408">id_clock_offline_tracer</references>
        <references refid="namespacemom__offline__main_1a887d59c64eb269aad257eacc8cf30444" compoundref="MOM__offline__main_8F90" startline="846" endline="1013">mom_offline_main::offline_advection_layer</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</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_1a96708b16215666edbfa5b46228f3a200" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::initialize_mom</definition>
        <argsstring>(Time, Time_init, param_file, dirs, CS, restart_CSp, Time_in, offline_tracer_mode, input_restart_file, diag_ptr, count_calls, tracer_flow_CSp)</argsstring>
        <name>initialize_mom</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>Time_init</type>
          <defname>Time_init</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>dirs</type>
          <defname>dirs</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>restart_CSp</type>
          <defname>restart_CSp</defname>
        </param>
        <param>
          <type>Time_in</type>
          <defname>Time_in</defname>
        </param>
        <param>
          <type>offline_tracer_mode</type>
          <defname>offline_tracer_mode</defname>
        </param>
        <param>
          <type>input_restart_file</type>
          <defname>input_restart_file</defname>
        </param>
        <param>
          <type>diag_ptr</type>
          <defname>diag_ptr</defname>
        </param>
        <param>
          <type>count_calls</type>
          <defname>count_calls</defname>
        </param>
        <param>
          <type>tracer_flow_CSp</type>
          <defname>tracer_flow_CSp</defname>
        </param>
        <briefdescription>
<para>Initialize MOM, including memory allocation, setting up parameters and diagnostics, initializing the ocean state variables, and initializing subsidiary modules. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">time</parametername>
</parameternamelist>
<parameterdescription>
<para>model time, set in this routine </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_init</parametername>
</parameternamelist>
<parameterdescription>
<para>The start time for the coupled model&apos;s calendar </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>structure indicating parameter file to parse </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dirs</parametername>
</parameternamelist>
<parameterdescription>
<para>structure with directory paths </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer set in this routine to MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer set in this routine to the restart control structure that will be used for MOM. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">time_in</parametername>
</parameternamelist>
<parameterdescription>
<para>time passed to MOM_initialize_state when model is not being started from a restart file </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">offline_tracer_mode</parametername>
</parameternamelist>
<parameterdescription>
<para>True is returned if tracers are being run offline </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">input_restart_file</parametername>
</parameternamelist>
<parameterdescription>
<para>If present, name of restart file to read </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>diag_ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer set in this routine to the diagnostic regulatory structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tracer_flow_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer set in this routine to </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">count_calls</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, nstep_tot counts the number of calls to step_MOM instead of the number of dynamics timesteps. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="1601" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="1604" bodyend="2769"/>
        <references refid="namespacemom__diabatic__driver_1aebe83a2ee710958a79623d1ccdde56d2" compoundref="MOM__diabatic__driver_8F90" startline="3115" endline="3139">mom_diabatic_driver::adiabatic_driver_init</references>
        <references refid="namespacemom__boundary__update_1a455e3d4565a6023e3c144eefb9bafac5" compoundref="MOM__boundary__update_8F90" startline="62" endline="109">mom_boundary_update::call_obc_register</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__dyn__horgrid_1a6dd89718602439a6bca59608e0f7e9f5" compoundref="MOM__dyn__horgrid_8F90" startline="176" endline="279">mom_dyn_horgrid::create_dyn_horgrid</references>
        <references refid="namespacemom__dyn__horgrid_1a23c063bf0f2d5e5e96569a6bc5f8f382" compoundref="MOM__dyn__horgrid_8F90" startline="377" endline="420">mom_dyn_horgrid::destroy_dyn_horgrid</references>
        <references refid="namespacemom__diag__mediator_1a4c15fc11c4d220ebcdd38adb692950db" compoundref="MOM__diag__mediator_8F90" startline="3613" endline="3627">mom_diag_mediator::diag_copy_diag_to_storage</references>
        <references refid="namespacemom__eos_1a3ab220b9c98dac3b8f6b7c1606b811cf" compoundref="MOM__EOS_8F90" startline="1349" endline="1452">mom_eos::eos_init</references>
        <references refid="namespacemom__obsolete__params_1adeed714b8b74959c25e3acd8e40061f6" compoundref="MOM__obsolete__params_8F90" startline="21" endline="97">mom_obsolete_params::find_obsolete_params</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__verticalgrid_1a908fc7025e6cf5d60885dbb7565093cd" compoundref="MOM__verticalGrid_8F90" startline="220" endline="271">mom_verticalgrid::get_tr_flux_units</references>
        <references refid="namespacemom_1a7cf03c18244d0630616e925bab1841a2" compoundref="MOM_8F90" startline="402" endline="402">id_clock_init</references>
        <references refid="namespacemom_1a4180eb85bab39df7cbb72bb8e5b19fd4" compoundref="MOM_8F90" startline="403" endline="403">id_clock_mom_init</references>
        <references refid="namespacemom_1ac4d20612cad32d412dae492fedc2e971" compoundref="MOM_8F90" startline="405" endline="405">id_clock_pass_init</references>
        <references refid="namespacemom_1a785851181d2a3db5a938322d2ff9498a" compoundref="MOM_8F90" startline="409" endline="409">id_clock_unit_tests</references>
        <references refid="namespacemom__ale__sponge_1aed1ab3e7a8063222f1c9b0d3d2336cbe" compoundref="MOM__ALE__sponge_8F90" startline="549" endline="558">mom_ale_sponge::init_ale_sponge_diags</references>
        <references refid="namespacemom__sponge_1ad4b2c0efb73f14a43936a11b39027f57" compoundref="MOM__sponge_8F90" startline="194" endline="207">mom_sponge::init_sponge_diags</references>
        <references refid="namespacemom__restart_1a39d14aecb41df2cc730035cca8467f69" compoundref="MOM__restart_8F90" startline="1351" endline="1362">mom_restart::is_new_run</references>
        <references refid="namespacemom__tracer__registry_1af9889848c1f3801951b0c79cace52e8d" compoundref="MOM__tracer__registry_8F90" startline="332" endline="338">mom_tracer_registry::lock_tracer_registry</references>
        <references refid="namespacemom__meke_1a1900316331157e48f1a6029bac63fbd0" compoundref="MOM__MEKE_8F90" startline="1347" endline="1421">mom_meke::meke_alloc_register_restart</references>
        <references refid="namespacemom__meke_1a099f1cfad37430ef1bd60972a92b1be4" compoundref="MOM__MEKE_8F90" startline="984" endline="1342">mom_meke::meke_init</references>
        <references refid="namespacemom__mixed__layer__restrat_1aea597553dfa98cc7c972784f476ad3fc" compoundref="MOM__mixed__layer__restrat_8F90" startline="949" endline="986">mom_mixed_layer_restrat::mixedlayer_restrat_register_restarts</references>
        <references refid="namespacemom__coord__initialization_1a08150041e51696069c49248793248c77" compoundref="MOM__coord__initialization_8F90" startline="40" endline="123">mom_coord_initialization::mom_initialize_coord</references>
        <references refid="namespacemom__fixed__initialization_1a79fad1bd49f85eaa0579def2d9d4ae53" compoundref="MOM__fixed__initialization_8F90" startline="57" endline="169">mom_fixed_initialization::mom_initialize_fixed</references>
        <references refid="namespacemom__state__initialization_1a81503d4f1855cb185f122d6314e4f06c" compoundref="MOM__state__initialization_8F90" startline="117" endline="615">mom_state_initialization::mom_initialize_state</references>
        <references refid="namespacemom__sum__output_1a05003e74cbb39fbdf760d23617390445" compoundref="MOM__sum__output_8F90" startline="136" endline="279">mom_sum_output::mom_sum_output_init</references>
        <references refid="namespacemom_1ab57e47834591c651339770f7e51efe57" compoundref="MOM_8F90" startline="2855" endline="2883">mom_timing_init</references>
        <references refid="namespacemom_1af0f791729b0ccb6cb8ae2f4d28edee21" compoundref="MOM_8F90" startline="2824" endline="2850">register_diags</references>
        <references refid="namespacemom__obsolete__diagnostics_1ad5e890c09abd2c650beb9ac36bbb49b4" compoundref="MOM__obsolete__diagnostics_8F90" startline="23" endline="61">mom_obsolete_diagnostics::register_obsolete_diagnostics</references>
        <references refid="namespacemom__restart_1a0ad0a0207dceeb1d9e68c7af7fd39bdc" compoundref="MOM__restart_8F90" startline="1506" endline="1587">mom_restart::restart_init</references>
        <references refid="namespacemom__transcribe__grid_1a6eb8778abd0e6800af90271536b19796" compoundref="MOM__transcribe__grid_8F90" startline="311" endline="395">mom_transcribe_grid::rotate_dyngrid</references>
        <references refid="namespacemom__hor__index_1a36e9e0a5f546003867db38ae1edbc4fc" compoundref="MOM__hor__index_8F90" startline="125" endline="165">mom_hor_index::rotate_hor_index</references>
        <references refid="namespacemom_1a8f5160e583b599050515b8fe5575aa15" compoundref="MOM_8F90" startline="3414" endline="3424">rotate_initial_state</references>
        <references refid="namespacemom__open__boundary_1a0c4401f57b9a8275c8bb3d2f7c5e013f" compoundref="MOM__open__boundary_8F90" startline="5245" endline="5319">mom_open_boundary::rotate_obc_config</references>
        <references refid="namespacemom__open__boundary_1acafa1a47d4e7f4d347963286d7614104" compoundref="MOM__open__boundary_8F90" startline="5458" endline="5481">mom_open_boundary::rotate_obc_init</references>
        <references refid="namespacemom__grid_1a9d2aac0ba53c9072f5f37d9bf97187b2" compoundref="MOM__grid_8F90" startline="509" endline="512">mom_grid::set_first_direction</references>
        <references refid="namespacemom_1a76cb0af280a5c9e877dc206a6849b46b" compoundref="MOM_8F90" startline="2896" endline="2958">set_restart_fields</references>
        <references refid="namespacemom__set__visc_1ae2d9d9f74c1e9aec56257cfad372b0fd" compoundref="MOM__set__viscosity_8F90" startline="1887" endline="1968">mom_set_visc::set_visc_register_restarts</references>
        <references refid="namespacemom__thickness__diffuse_1affd209ab72d54799680c78d8ba1ad779" compoundref="MOM__thickness__diffuse_8F90" startline="1882" endline="2086">mom_thickness_diffuse::thickness_diffuse_init</references>
        <references refid="namespacemom__unit__tests_1a57645db02bc734c32de50d028ef906ac" compoundref="MOM__unit__tests_8F90" startline="24" endline="45">mom_unit_tests::unit_tests</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a2269d5cd79625cbf16cb916346379207" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::finish_mom_initialization</definition>
        <argsstring>(Time, dirs, CS, restart_CSp)</argsstring>
        <name>finish_mom_initialization</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>dirs</type>
          <defname>dirs</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>restart_CSp</type>
          <defname>restart_CSp</defname>
        </param>
        <briefdescription>
<para>Finishes initializing MOM and writes out the initial conditions. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>model time, used in this routine </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dirs</parametername>
</parameternamelist>
<parameterdescription>
<para>structure with directory paths </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the restart control structure that will be used for MOM. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2773" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="2774" bodyend="2819"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</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_1a7cf03c18244d0630616e925bab1841a2" compoundref="MOM_8F90" startline="402" endline="402">id_clock_init</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1af0f791729b0ccb6cb8ae2f4d28edee21" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::register_diags</definition>
        <argsstring>(Time, G, GV, US, IDs, diag)</argsstring>
        <name>register_diags</name>
        <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>IDs</type>
          <defname>IDs</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <briefdescription>
<para>Register certain diagnostics. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>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="inout">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ids</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the diagnostic IDs. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>regulates diagnostic output </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2823" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="2824" bodyend="2850"/>
        <references refid="namespacemom__verticalgrid_1a1eea13d63bdc910462ffba406d32fe04" compoundref="MOM__verticalGrid_8F90" startline="190" endline="200">mom_verticalgrid::get_thickness_units</references>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1ab57e47834591c651339770f7e51efe57" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::mom_timing_init</definition>
        <argsstring>(CS)</argsstring>
        <name>mom_timing_init</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Set up CPU clock IDs for timing various subroutines. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure set up by initialize_MOM. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2854" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="2855" bodyend="2883"/>
        <references refid="namespacemom_1af865d838388a05163e8de8d266316d5f" compoundref="MOM_8F90" startline="395" endline="395">id_clock_adiabatic</references>
        <references refid="namespacemom_1a722ed13d0e6d76852e680054a0e3c964" compoundref="MOM_8F90" startline="406" endline="406">id_clock_ale</references>
        <references refid="namespacemom_1aa69e79e4c51e1c24c474b84311322251" compoundref="MOM_8F90" startline="398" endline="398">id_clock_bbl_visc</references>
        <references refid="namespacemom_1aa512b2d8dd73b02634e772701be07a87" compoundref="MOM_8F90" startline="396" endline="396">id_clock_continuity</references>
        <references refid="namespacemom_1a50edf00aa5998073d2db0360949253ba" compoundref="MOM_8F90" startline="394" endline="394">id_clock_diabatic</references>
        <references refid="namespacemom_1aa773fddb51f99098d75304eb271270d4" compoundref="MOM_8F90" startline="400" endline="400">id_clock_diagnostics</references>
        <references refid="namespacemom_1ae1cf2d523679b925a5e5baa9d974968c" compoundref="MOM_8F90" startline="391" endline="391">id_clock_dynamics</references>
        <references refid="namespacemom_1a41b67fabfc13e52cf3a5d1c337c780eb" compoundref="MOM_8F90" startline="399" endline="399">id_clock_ml_restrat</references>
        <references refid="namespacemom_1a4180eb85bab39df7cbb72bb8e5b19fd4" compoundref="MOM_8F90" startline="403" endline="403">id_clock_mom_init</references>
        <references refid="namespacemom_1a2e9f4b71ee77ba5bcb3f03a863948db3" compoundref="MOM_8F90" startline="390" endline="390">id_clock_ocean</references>
        <references refid="namespacemom_1a2ab767469f0d918b9e479d8e0fde44b0" compoundref="MOM_8F90" startline="408" endline="408">id_clock_offline_tracer</references>
        <references refid="namespacemom_1a283a5d32d799a3cd11113a05dcae2d56" compoundref="MOM_8F90" startline="407" endline="407">id_clock_other</references>
        <references refid="namespacemom_1a7af2f783166f32739569e4ed6ed6a98f" compoundref="MOM_8F90" startline="404" endline="404">id_clock_pass</references>
        <references refid="namespacemom_1ac4d20612cad32d412dae492fedc2e971" compoundref="MOM_8F90" startline="405" endline="405">id_clock_pass_init</references>
        <references refid="namespacemom_1a052256dfa3e56390f62ef3a826d62617" compoundref="MOM_8F90" startline="392" endline="392">id_clock_thermo</references>
        <references refid="namespacemom_1a8f5feb87a0cb40d9fcee00456e982b8a" compoundref="MOM_8F90" startline="397" endline="397">id_clock_thick_diff</references>
        <references refid="namespacemom_1a0fa4debacd02de6fcd066066c232adf3" compoundref="MOM_8F90" startline="393" endline="393">id_clock_tracer</references>
        <references refid="namespacemom_1a09f2ac3470372b9ee233f4cc5a7a0da1" compoundref="MOM_8F90" startline="401" endline="401">id_clock_z_diag</references>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a76cb0af280a5c9e877dc206a6849b46b" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::set_restart_fields</definition>
        <argsstring>(GV, US, param_file, CS, restart_CSp)</argsstring>
        <name>set_restart_fields</name>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>restart_CSp</type>
          <defname>restart_CSp</defname>
        </param>
        <briefdescription>
<para>Set the fields that are needed for bitwise identical restarting the time stepping scheme. In addition to those specified here directly, there may be fields related to the forcing or to the barotropic solver that are needed; these are specified in sub- routines that are called from this one. </para>
        </briefdescription>
        <detaileddescription>
<para>This routine should be altered if there are any changes to the time stepping scheme. The CHECK_RESTART facility may be used to confirm that all needed restart fields have been included. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>opened file for parsing to get parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure set up by initialize_MOM </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the restart control structure that will be used for MOM. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2895" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="2896" bodyend="2958"/>
        <references refid="namespacemom__verticalgrid_1af027c312e660a932b3f430f4c7a9675d" compoundref="MOM__verticalGrid_8F90" startline="205" endline="215">mom_verticalgrid::get_flux_units</references>
        <references refid="namespacemom__verticalgrid_1a1eea13d63bdc910462ffba406d32fe04" compoundref="MOM__verticalGrid_8F90" startline="190" endline="200">mom_verticalgrid::get_thickness_units</references>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a16f7cc52cef3eb7a99687bf3d0694285" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::adjust_ssh_for_p_atm</definition>
        <argsstring>(tv, G, GV, US, ssh, p_atm, use_EOS)</argsstring>
        <name>adjust_ssh_for_p_atm</name>
        <param>
          <type>tv</type>
          <defname>tv</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>ssh</type>
          <defname>ssh</defname>
        </param>
        <param>
          <type>p_atm</type>
          <defname>p_atm</defname>
        </param>
        <param>
          <type>use_EOS</type>
          <defname>use_EOS</defname>
        </param>
        <briefdescription>
<para>Apply a correction to the sea surface height to compensate for the atmospheric pressure (the inverse barometer). </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure pointing to various thermodynamic variables </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ssh</parametername>
</parameternamelist>
<parameterdescription>
<para>time mean surface height [m] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>p_atm</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean surface pressure [R L2 T-2 ~&gt; Pa] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">use_eos</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, calculate the density for the SSH correction using the equation of state. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2963" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="2964" bodyend="3001"/>
        <references refid="namespacemom__eos_1a782d326108e390902e520efc078e8296" compoundref="MOM__EOS_8F90" startline="1163" endline="1175">mom_eos::eos_domain</references>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1ade4f7557fcda73ffc12284d3cecf4182" compoundref="MOM_8F90" startline="1405" endline="1596">step_offline</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a699d6c5bfb5b9dcdaa03c18806fa824e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::extract_surface_state</definition>
        <argsstring>(CS, sfc_state_in)</argsstring>
        <name>extract_surface_state</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>sfc_state_in</type>
          <defname>sfc_state_in</defname>
        </param>
        <briefdescription>
<para>Set the surface (return) properties of the ocean model by setting the appropriate fields in sfc_state. Unused fields are set to NULL or are unallocated. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Master MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state_in</parametername>
</parameternamelist>
<parameterdescription>
<para>transparent ocean surface state structure shared with the calling routine data in this structure is intent out. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3007" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3008" bodyend="3408"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__checksum__packages_1a08ce62d457cefb539b6919601ca70a75" compoundref="MOM__checksum__packages_8F90" startline="145" endline="174">mom_checksum_packages::mom_surface_chksum</references>
        <references refid="namespacemom__variables_1a880f21fbfee383e8ee7c5ec114036f2f" compoundref="MOM__variables_8F90" startline="404" endline="472">mom_variables::rotate_surface_state</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
        <referencedby refid="namespacemom_1ade4f7557fcda73ffc12284d3cecf4182" compoundref="MOM_8F90" startline="1405" endline="1596">step_offline</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a8f5160e583b599050515b8fe5575aa15" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom::rotate_initial_state</definition>
        <argsstring>(u_in, v_in, h_in, T_in, S_in, use_temperature, turns, u, v, h, T, S)</argsstring>
        <name>rotate_initial_state</name>
        <param>
          <type>u_in</type>
          <defname>u_in</defname>
        </param>
        <param>
          <type>v_in</type>
          <defname>v_in</defname>
        </param>
        <param>
          <type>h_in</type>
          <defname>h_in</defname>
        </param>
        <param>
          <type>T_in</type>
          <defname>T_in</defname>
        </param>
        <param>
          <type>S_in</type>
          <defname>S_in</defname>
        </param>
        <param>
          <type>use_temperature</type>
          <defname>use_temperature</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>T</type>
          <defname>T</defname>
        </param>
        <param>
          <type>S</type>
          <defname>S</defname>
        </param>
        <briefdescription>
<para>Rotate initialization fields from input to rotated arrays. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3412" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3414" bodyend="3424"/>
        <referencedby refid="namespacemom_1a96708b16215666edbfa5b46228f3a200" compoundref="MOM_8F90" startline="1604" endline="2769">initialize_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1ada38a8329b76f9fa1685a230869a7647" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public mom::mom_state_is_synchronized</definition>
        <argsstring>(CS, adv_dyn)</argsstring>
        <name>mom_state_is_synchronized</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>adv_dyn</type>
          <defname>adv_dyn</defname>
        </param>
        <briefdescription>
<para>Return true if all phases of step_MOM are at the same point in time. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">adv_dyn</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, only check whether the advection is up-to-date with the dynamics. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>True if all phases of the update are synchronized. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3428" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3429" bodyend="3444"/>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
        <referencedby refid="namespacemom_1adf54a4e3a72611aa2088f46076e56e53" compoundref="MOM_8F90" startline="422" endline="940">step_mom</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1aece0dd1e2c9498844befd8ba71986b96" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::get_mom_state_elements</definition>
        <argsstring>(CS, G, GV, US, C_p, C_p_scaled, use_temp)</argsstring>
        <name>get_mom_state_elements</name>
        <param>
          <type>CS</type>
          <defname>CS</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>C_p</type>
          <defname>C_p</defname>
        </param>
        <param>
          <type>C_p_scaled</type>
          <defname>C_p_scaled</defname>
        </param>
        <param>
          <type>use_temp</type>
          <defname>use_temp</defname>
        </param>
        <briefdescription>
<para>This subroutine offers access to values or pointers to other types from within the MOM_control_struct, allowing the MOM_control_struct to be opaque. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>g</parametername>
</parameternamelist>
<parameterdescription>
<para>structure containing metrics and grid info </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>gv</parametername>
</parameternamelist>
<parameterdescription>
<para>structure containing vertical grid info </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">c_p</parametername>
</parameternamelist>
<parameterdescription>
<para>The heat capacity [J kg degC-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">c_p_scaled</parametername>
</parameternamelist>
<parameterdescription>
<para>The heat capacity in scaled units [Q degC-1 ~&gt; J kg degC-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">use_temp</parametername>
</parameternamelist>
<parameterdescription>
<para>True if temperature is a state variable </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3449" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3450" bodyend="3464"/>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1a462293ed92e99927ef9939747d633080" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::get_ocean_stocks</definition>
        <argsstring>(CS, mass, heat, salt, on_PE_only)</argsstring>
        <name>get_ocean_stocks</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>mass</type>
          <defname>mass</defname>
        </param>
        <param>
          <type>heat</type>
          <defname>heat</defname>
        </param>
        <param>
          <type>salt</type>
          <defname>salt</defname>
        </param>
        <param>
          <type>on_PE_only</type>
          <defname>on_PE_only</defname>
        </param>
        <briefdescription>
<para>Find the global integrals of various quantities. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>MOM control structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">heat</parametername>
</parameternamelist>
<parameterdescription>
<para>The globally integrated integrated ocean heat [J]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">salt</parametername>
</parameternamelist>
<parameterdescription>
<para>The globally integrated integrated ocean salt [kg]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">mass</parametername>
</parameternamelist>
<parameterdescription>
<para>The globally integrated integrated ocean mass [kg]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">on_pe_only</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, only sum on the local PE. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3468" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3469" bodyend="3481"/>
        <references refid="namespacemom__spatial__means_1a4c637edc1baf0fbac110c0c6b98ee161" compoundref="MOM__spatial__means_8F90" startline="149" endline="190">mom_spatial_means::global_mass_integral</references>
        <referencedby refid="namespaceocean__model__mod_1a7ecaaa406a1cba3e9bcd84d375247ec5" compoundref="ocean__model__MOM_8F90" startline="973" endline="1008">ocean_model_mod::ocean_stock_pe</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom_1ae6dad976fb4be1c7ba7fc1aff809616b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom::mom_end</definition>
        <argsstring>(CS)</argsstring>
        <name>mom_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>End of ocean model, including memory deallocation. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>MOM control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="3485" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" bodystart="3486" bodyend="3525"/>
        <references refid="namespacemom__diabatic__driver_1a6eac8317c3b569e414fb5a6678afc598" compoundref="MOM__diabatic__driver_8F90" startline="3733" endline="3770">mom_diabatic_driver::diabatic_driver_end</references>
        <references refid="namespacemom__boundary__update_1a32cfc645987cee827d4d193537b09c71" compoundref="MOM__boundary__update_8F90" startline="155" endline="161">mom_boundary_update::obc_register_end</references>
        <references refid="namespacemom__offline__main_1a853e9fbade83984621d26f51c1a2d651" compoundref="MOM__offline__main_8F90" startline="1506" endline="1527">mom_offline_main::offline_transport_end</references>
        <references refid="namespacemom__tracer__advect_1a2e466a8a34546bb9265a74ff0209df47" compoundref="MOM__tracer__advect_8F90" startline="1125" endline="1128">mom_tracer_advect::tracer_advect_end</references>
        <references refid="namespacemom__tracer__flow__control_1a3c5edb854704860d08de4d68d815d920" compoundref="MOM__tracer__flow__control_8F90" startline="760" endline="778">mom_tracer_flow_control::tracer_flow_control_end</references>
        <references refid="namespacemom__tracer__hor__diff_1a715439f7286842d78d2ce52b7e5371a4" compoundref="MOM__tracer__hor__diff_8F90" startline="1554" endline="1558">mom_tracer_hor_diff::tracer_hor_diff_end</references>
        <references refid="namespacemom__tracer__registry_1aaca7f6bcdb5f1d8cb247e24719d37df9" compoundref="MOM__tracer__registry_8F90" startline="891" endline="892">mom_tracer_registry::tracer_registry_end</references>
        <references refid="namespacemom__unit__scaling_1a6b58ce1b6a08d07a84da1257cd8e8694" compoundref="MOM__unit__scaling_8F90" startline="185" endline="188">mom_unit_scaling::unit_scaling_end</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>The central module of the MOM6 ocean model. </para>
    </briefdescription>
    <detaileddescription>
<para>Modular Ocean Model (MOM) Version 6.0 (MOM6)</para>
<para><simplesect kind="authors"><para>Alistair Adcroft, Robert Hallberg, and Stephen Griffies</para>
</simplesect>
Additional contributions from:<itemizedlist>
<listitem><para>Whit Anderson</para>
</listitem><listitem><para>Brian Arbic</para>
</listitem><listitem><para>Will Cooke</para>
</listitem><listitem><para>Anand Gnanadesikan</para>
</listitem><listitem><para>Matthew Harrison</para>
</listitem><listitem><para>Mehmet Ilicak</para>
</listitem><listitem><para>Laura Jackson</para>
</listitem><listitem><para>Jasmine John</para>
</listitem><listitem><para>John Krasting</para>
</listitem><listitem><para>Zhi Liang</para>
</listitem><listitem><para>Bonnie Samuels</para>
</listitem><listitem><para>Harper Simmons</para>
</listitem><listitem><para>Laurent White</para>
</listitem><listitem><para>Niki Zadeh</para>
</listitem></itemizedlist>
</para>
<para>MOM ice-shelf code was developed by<itemizedlist>
<listitem><para>Daniel Goldberg</para>
</listitem><listitem><para>Robert Hallberg</para>
</listitem><listitem><para>Chris Little</para>
</listitem><listitem><para>Olga Sergienko</para>
</listitem></itemizedlist>
</para>
<sect1 id="namespacemom_1section_overview">
<title>Overview of MOM</title>
<para>This program (MOM) simulates the ocean by numerically solving the hydrostatic primitive equations in generalized Lagrangian vertical coordinates, typically tracking stretched pressure (p*) surfaces or following isopycnals in the ocean&apos;s interior, and general orthogonal horizontal coordinates. Unlike earlier versions of MOM, in MOM6 these equations are horizontally discretized on an Arakawa C-grid. (It remains to be seen whether a B-grid dynamic core will be revived in MOM6 at a later date; for now applications requiring a B-grid discretization should use MOM5.1.) MOM6 offers a range of options for the physical parameterizations, from those most appropriate to highly idealized models for geophysical fluid dynamics studies to a rich suite of processes appropriate for realistic ocean simulations. The thermodynamic options typically use conservative temperature and preformed salinity as conservative state variables and a full nonlinear equation of state, but there are also idealized adiabatic configurations of the model that use fixed density layers. Version 6.0 of MOM continues in the long tradition of a commitment to climate-quality ocean simulations embodied in previous versions of MOM, even as it draws extensively on the lessons learned in the development of the Generalized Ocean Layered Dynamics (GOLD) ocean model, which was also primarily developed at NOAA/GFDL. MOM has also benefited tremendously from the FMS infrastructure, which it utilizes and shares with other component models developed at NOAA/GFDL.</para>
<para>When run is isopycnal-coordinate mode, the uppermost few layers are often used to describe a bulk mixed layer, including the effects of penetrating shortwave radiation. Either a split- explicit time stepping scheme or a non-split scheme may be used for the dynamics, while the time stepping may be split (and use different numbers of steps to cover the same interval) for the forcing, the thermodynamics, and for the dynamics. Most of the numerics are second order accurate in space. MOM can run with an absurdly thin minimum layer thickness. A variety of non-isopycnal vertical coordinate options are under development, but all exploit the advantages of a Lagrangian vertical coordinate, as discussed in detail by Adcroft and Hallberg (Ocean Modelling, 2006).</para>
<para>Details of the numerics and physical parameterizations are provided in the appropriate source files. All of the available options are selected at run-time by parsing the input files, usually MOM_input and MOM_override, and the options choices are then documented for each run in MOM_param_docs.</para>
<para>MOM6 integrates the equations forward in time in three distinct phases. In one phase, the dynamic equations for the velocities and layer thicknesses are advanced, capturing the propagation of external and internal inertia-gravity waves, Rossby waves, and other strictly adiabatic processes, including lateral stresses, vertical viscosity and momentum forcing, and interface height diffusion (commonly called Gent-McWilliams diffusion in depth- coordinate models). In the second phase, all tracers are advected and diffused along the layers. The third phase applies diabatic processes, vertical mixing of water properties, and perhaps vertical remapping to cause the layers to track the desired vertical coordinate.</para>
<para>The present file (<ref refid="MOM_8F90" kindref="compound">MOM.F90</ref>) orchestrates the main time stepping loops. One time integration option for the dynamics uses a split explicit time stepping scheme to rapidly step the barotropic pressure and velocity fields. The barotropic velocities are averaged over the baroclinic time step before they are used to advect thickness and determine the baroclinic accelerations. As described in Hallberg and Adcroft (2009), a barotropic correction is applied to the time-mean layer velocities to ensure that the sum of the layer transports agrees with the time-mean barotropic transport, thereby ensuring that the estimates of the free surface from the sum of the layer thicknesses agrees with the final free surface height as calculated by the barotropic solver. The barotropic and baroclinic velocities are kept consistent by recalculating the barotropic velocities from the baroclinic transports each time step. This scheme is described in Hallberg, 1997, J. Comp. Phys. 135, 54-65 and in Hallberg and Adcroft, 2009, Ocean Modelling, 29, 15-26.</para>
<para>The other time integration options use non-split time stepping schemes based on the 3-step third order Runge-Kutta scheme described in Matsuno, 1966, J. Met. Soc. Japan, 44, 85-88, or on a two-step quasi-2nd order Runge-Kutta scheme. These are much slower than the split time-stepping scheme, but they are useful for providing a more robust solution for debugging cases where the more complicated split time-stepping scheme may be giving suspect solutions.</para>
<para>There are a range of closure options available. Horizontal velocities are subject to a combination of horizontal biharmonic and Laplacian friction (based on a stress tensor formalism) and a vertical Fickian viscosity (perhaps using the kinematic viscosity of water). The horizontal viscosities may be constant, spatially varying or may be dynamically calculated using Smagorinsky&apos;s approach. A diapycnal diffusion of density and thermodynamic quantities is also allowed, but not required, as is horizontal diffusion of interface heights (akin to the Gent-McWilliams closure of geopotential coordinate models). The diapycnal mixing may use a fixed diffusivity or it may use the shear Richardson number dependent closure, like that described in Jackson et al. (JPO, 2008). When there is diapycnal diffusion, it applies to momentum as well. As this is in addition to the vertical viscosity, the vertical Prandtl always exceeds 1. A refined bulk-mixed layer is often used to describe the planetary boundary layer in realistic ocean simulations.</para>
<para>MOM has a number of noteworthy debugging capabilities. Excessively large velocities are truncated and MOM will stop itself after a number of such instances to keep the model from crashing altogether. This is useful in diagnosing failures, or (by accepting some truncations) it may be useful for getting the model past the adjustment from an ill-balanced initial condition. In addition, all of the accelerations in the columns with excessively large velocities may be directed to a text file. Parallelization errors may be diagnosed using the DEBUG option, which causes extensive checksums to be written out along with comments indicating where in the algorithm the sums originate and what variable is being summed. The point where these checksums differ between runs is usually a good indication of where in the code the problem lies. All of the test cases provided with MOM are routinely tested to ensure that they give bitwise identical results regardless of the domain decomposition, or whether they use static or dynamic memory allocation.</para>
</sect1>
<sect1 id="namespacemom_1section_structure">
<title>Structure of MOM</title>
<para>About 115 other files of source code and 4 header files comprise the MOM code, although there are several hundred more files that make up the FMS infrastructure upon which MOM is built. Each of the MOM files contains comments documenting what it does, and most of the file names are fairly self-evident. In addition, all subroutines and data types are referenced via a module use, only statement, and the module names are consistent with the file names, so it is not too hard to find the source file for a subroutine.</para>
<para>The typical MOM directory tree is as follows:</para>
<para><verbatim>        ../MOM
        |-- config_src
        |   |-- coupled_driver
        |   |-- dynamic
        |   `-- solo_driver
        |-- examples
        |   |-- CM2G
        |   |-- ...
        |   `-- torus_advection_test
        `-- src
            |-- core
            |-- diagnostics
            |-- equation_of_state
            |-- framework
            |-- ice_shelf
            |-- initialization
            |-- parameterizations
            |   |-- lateral
            |   `-- vertical
            |-- tracer
            `-- user</verbatim></para>
<para>Rather than describing each file here, each directory contents will be described to give a broad overview of the MOM code structure.</para>
<para>The directories under config_src contain files that are used for configuring the code, for instance for coupled or ocean-only runs. Only one or two of these directories are used in compiling any, particular run.</para>
<para><itemizedlist>
<listitem><para>config_src/coupled_driver: The files here are used to couple MOM as a component in a larger run driven by the FMS coupler. This includes code that converts various forcing fields into the code structures and flux and unit conventions used by MOM, and converts the MOM surface fields back to the forms used by other FMS components.</para>
</listitem><listitem><para>config_src/dynamic: The only file here is the version of <ref refid="MOM__memory_8h" kindref="compound">MOM_memory.h</ref> that is used for dynamic memory configurations of MOM.</para>
</listitem><listitem><para>config_src/solo_driver: The files here are include the _main driver that is used when MOM is configured as an ocean-only model, as well as the files that specify the surface forcing in this configuration.</para>
<para>The directories under examples provide a large number of working configurations of MOM, along with reference solutions for several different compilers on GFDL&apos;s latest large computer. The versions of <ref refid="MOM__memory_8h" kindref="compound">MOM_memory.h</ref> in these directories need not be used if dynamic memory allocation is desired, and the answers should be unchanged.</para>
<para>The directories under src contain most of the MOM files. These files are used in every configuration using MOM.</para>
</listitem><listitem><para>src/core: The files here constitute the MOM dynamic core. This directory also includes files with the types that describe the model&apos;s lateral grid and have defined types that are shared across various MOM modules to allow for more succinct and flexible subroutine argument lists.</para>
</listitem><listitem><para>src/diagnostics: The files here calculate various diagnostics that are anciliary to the model itself. While most of these diagnostics do not directly affect the model&apos;s solution, there are some, like the calculation of the deformation radius, that are used in some of the process parameterizations.</para>
</listitem><listitem><para>src/equation_of_state: These files describe the physical properties of sea-water, including both the equation of state and when it freezes.</para>
</listitem><listitem><para>src/framework: These files provide infrastructure utilities for MOM. Many are simply wrappers for capabilities provided by FMS, although others provide capabilities (like the file_parser) that are unique to MOM. When MOM is adapted to use a modeling infrastructure distinct from FMS, most of the required changes are in this directory.</para>
</listitem><listitem><para>src/initialization: These are the files that are used to initialize the MOM grid or provide the initial physical state for MOM. These files are not intended to be modified, but provide a means for calling user-specific initialization code like the examples in src/user.</para>
</listitem><listitem><para>src/parameterizations/lateral: These files implement a number of quasi-lateral (along-layer) process parameterizations, including lateral viscosities, parameterizations of eddy effects, and the calculation of tidal forcing.</para>
</listitem><listitem><para>src/parameterizations/vertical: These files implement a number of vertical mixing or diabatic processes, including the effects of vertical viscosity and code to parameterize the planetary boundary layer. There is a separate driver that orchestrates this portion of the algorithm, and there is a diversity of parameterizations to be found here.</para>
</listitem><listitem><para>src/tracer: These files handle the lateral transport and diffusion of tracers, or are the code to implement various passive tracer packages. Additional tracer packages are readily accommodated.</para>
</listitem><listitem><para>src/user: These are either stub routines that a user could use to change the model&apos;s initial conditions or forcing, or are examples that implement specific test cases. These files can easily be hand edited to create new analytically specified configurations.</para>
</listitem></itemizedlist>
</para>
<para>Most simulations can be set up by modifying only the files MOM_input, and possibly one or two of the files in src/user. In addition, the diag_table (MOM_diag_table) will commonly be modified to tailor the output to the needs of the question at hand. The FMS utility mkmf works with a file called path_names to build an appropriate makefile, and path_names should be edited to reflect the actual location of the desired source code.</para>
<para>There are 3 publicly visible subroutines in this file (<ref refid="MOM_8F90" kindref="compound">MOM.F90</ref>).<itemizedlist>
<listitem><para>step_MOM steps MOM over a specified interval of time.</para>
</listitem><listitem><para>MOM_initialize calls initialize and does other initialization that does not warrant user modification.</para>
</listitem><listitem><para>extract_surface_state determines the surface (bulk mixed layer if traditional isoycnal vertical coordinate) properties of the current model state and packages pointers to these fields into an exported structure.</para>
<para>The remaining subroutines in this file (<ref refid="MOM_8F90" kindref="compound">src/core/MOM.F90</ref>) are:</para>
</listitem><listitem><para>find_total_transport determines the barotropic mass transport.</para>
</listitem><listitem><para>register_diags registers many diagnostic fields for the dynamic solver, or of the main model variables.</para>
</listitem><listitem><para>MOM_timing_init initializes various CPU time clocks.</para>
</listitem><listitem><para>write_static_fields writes out various time-invariant fields.</para>
</listitem><listitem><para>set_restart_fields is used to specify those fields that are written to and read from the restart file.</para>
</listitem></itemizedlist>
</para>
</sect1>
<sect1 id="namespacemom_1section_heat_budget">
<title>Diagnosing MOM heat budget</title>
<para>Here are some example heat budgets for the ALE version of MOM6.</para>
<sect2 id="namespacemom_1subsection_2d_heat_budget">
<title>Depth integrated heat budget</title>
<para>Depth integrated heat budget diagnostic for MOM.</para>
<para><itemizedlist>
<listitem><para>OPOTTEMPTEND_2d = T_ADVECTION_XY_2d + OPOTTEMPPMDIFF_2d + HFDS + HFGEOU</para>
</listitem><listitem><para>T_ADVECTION_XY_2d = horizontal advection</para>
</listitem><listitem><para>OPOTTEMPPMDIFF_2d = neutral diffusion</para>
</listitem><listitem><para>HFDS = net surface boundary heat flux</para>
</listitem><listitem><para>HFGEOU = geothermal heat flux</para>
</listitem><listitem><para>HFDS = net surface boundary heat flux entering the ocean = rsntds + rlntds + hfls + hfss + heat_pme + hfsifrazil</para>
</listitem><listitem><para>More heat flux cross-checks<itemizedlist>
<listitem><para>hfds = net_heat_coupler + hfsifrazil + heat_pme</para>
</listitem><listitem><para>heat_pme = heat_content_surfwater = heat_content_massin + heat_content_massout = heat_content_fprec + heat_content_cond + heat_content_vprec<itemizedlist>
<listitem><para>hfrunoffds + hfevapds + hfrainds</para>
</listitem></itemizedlist>
</para>
</listitem></itemizedlist>
</para>
</listitem></itemizedlist>
</para>
</sect2>
<sect2 id="namespacemom_1subsection_3d_heat_budget">
<title>Depth integrated heat budget</title>
<para>Here is an example 3d heat budget diagnostic for MOM.</para>
<para><itemizedlist>
<listitem><para>OPOTTEMPTEND = T_ADVECTION_XY + TH_TENDENCY_VERT_REMAP + OPOTTEMPDIFF + OPOTTEMPPMDIFF<itemizedlist>
<listitem><para>BOUNDARY_FORCING_HEAT_TENDENCY + FRAZIL_HEAT_TENDENCY</para>
</listitem></itemizedlist>
</para>
</listitem><listitem><para>OPOTTEMPTEND = net tendency of heat as diagnosed in <ref refid="MOM_8F90" kindref="compound">MOM.F90</ref></para>
</listitem><listitem><para>T_ADVECTION_XY = heating of a cell from lateral advection</para>
</listitem><listitem><para>TH_TENDENCY_VERT_REMAP = heating of a cell from vertical remapping</para>
</listitem><listitem><para>OPOTTEMPDIFF = heating of a cell from diabatic diffusion</para>
</listitem><listitem><para>OPOTTEMPPMDIFF = heating of a cell from neutral diffusion</para>
</listitem><listitem><para>BOUNDARY_FORCING_HEAT_TENDENCY = heating of cell from boundary fluxes</para>
</listitem><listitem><para>FRAZIL_HEAT_TENDENCY = heating of cell from frazil</para>
</listitem><listitem><para>TH_TENDENCY_VERT_REMAP has zero vertical sum, as it redistributes heat in vertical.</para>
</listitem><listitem><para>OPOTTEMPDIFF has zero vertical sum, as it redistributes heat in the vertical.</para>
</listitem><listitem><para>BOUNDARY_FORCING_HEAT_TENDENCY generally has 3d structure, with k &gt; 1 contributions from penetrative shortwave, and from other fluxes for the case when layers are tiny, in which case MOM6 partitions tendencies into k &gt; 1 layers.</para>
</listitem><listitem><para>FRAZIL_HEAT_TENDENCY generally has 3d structure, since MOM6 frazil calculation checks the full ocean column.</para>
</listitem><listitem><para>FRAZIL_HEAT_TENDENCY[k=@sum] = HFSIFRAZIL = column integrated frazil heating.</para>
</listitem><listitem><para>HFDS = FRAZIL_HEAT_TENDENCY[k=@sum] + BOUNDARY_FORCING_HEAT_TENDENCY[k=@sum]</para>
<para>Here is an example 2d heat budget (depth summed) diagnostic for MOM.</para>
</listitem><listitem><para>OPOTTEMPTEND_2d = T_ADVECTION_XY_2d + OPOTTEMPPMDIFF_2d + HFDS</para>
<para>Here is an example 3d salt budget diagnostic for MOM.</para>
</listitem><listitem><para>OSALTTEND = S_ADVECTION_XY + SH_TENDENCY_VERT_REMAP + OSALTDIFF + OSALTPMDIFF<itemizedlist>
<listitem><para>BOUNDARY_FORCING_SALT_TENDENCY</para>
</listitem></itemizedlist>
</para>
</listitem><listitem><para>OSALTTEND = net tendency of salt as diagnosed in <ref refid="MOM_8F90" kindref="compound">MOM.F90</ref></para>
</listitem><listitem><para>S_ADVECTION_XY = salt convergence to cell from lateral advection</para>
</listitem><listitem><para>SH_TENDENCY_VERT_REMAP = salt convergence to cell from vertical remapping</para>
</listitem><listitem><para>OSALTDIFF = salt convergence to cell from diabatic diffusion</para>
</listitem><listitem><para>OSALTPMDIFF = salt convergence to cell from neutral diffusion</para>
</listitem><listitem><para>BOUNDARY_FORCING_SALT_TENDENCY = salt convergence to cell from boundary fluxes</para>
</listitem><listitem><para>SH_TENDENCY_VERT_REMAP has zero vertical sum, as it redistributes salt in vertical.</para>
</listitem><listitem><para>OSALTDIFF has zero vertical sum, as it redistributes salt in the vertical.</para>
</listitem><listitem><para>BOUNDARY_FORCING_SALT_TENDENCY generally has 3d structure, with k &gt; 1 contributions from the case when layers are tiny, in which case MOM6 partitions tendencies into k &gt; 1 layers.</para>
</listitem><listitem><para>SFDSI = BOUNDARY_FORCING_SALT_TENDENCY[k=@sum]</para>
<para>Here is an example 2d salt budget (depth summed) diagnostic for MOM.</para>
</listitem><listitem><para>OSALTTEND_2d = S_ADVECTION_XY_2d + OSALTPMDIFF_2d + SFDSI (+ SALT_FLUX_RESTORE) </para>
</listitem></itemizedlist>
</para>
</sect2>
</sect1>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/core/MOM.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
