<?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.18">
  <compounddef id="namespacemom__write__cputime" kind="namespace" language="Fortran">
    <compoundname>mom_write_cputime</compoundname>
    <innerclass refid="structmom__write__cputime_1_1write__cputime__cs" prot="public">mom_write_cputime::write_cputime_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacemom__write__cputime_1a37ecb378297ff61d70e35b0b295a214e" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_write_cputime::clocks_per_sec</definition>
        <argsstring></argsstring>
        <name>clocks_per_sec</name>
        <initializer>= 1000</initializer>
        <briefdescription>
<para>The number of clock cycles per second, used by the system clock. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="18" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="18" bodyend="18"/>
        <referencedby refid="namespacemom__write__cputime_1a0228cbfaec6f37997e2fd42124d87fda" compoundref="MOM__write__cputime_8F90" startline="55" endline="101">mom_write_cputime_init</referencedby>
        <referencedby refid="namespacemom__write__cputime_1a4a996420163b5e4985b83ba03652b69d" compoundref="MOM__write__cputime_8F90" startline="125" endline="210">write_cputime</referencedby>
        <referencedby refid="namespacemom__write__cputime_1aa95b991e5550816440480e52a61a50ee" compoundref="MOM__write__cputime_8F90" startline="44" endline="50">write_cputime_start_clock</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__write__cputime_1a6ac4322a83898c01ec5e8e2ffc22f7cd" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_write_cputime::max_ticks</definition>
        <argsstring></argsstring>
        <name>max_ticks</name>
        <initializer>= 1000</initializer>
        <briefdescription>
<para>The number of ticks per second, used by the system clock. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="19" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="19" bodyend="19"/>
        <referencedby refid="namespacemom__write__cputime_1a0228cbfaec6f37997e2fd42124d87fda" compoundref="MOM__write__cputime_8F90" startline="55" endline="101">mom_write_cputime_init</referencedby>
        <referencedby refid="namespacemom__write__cputime_1a4a996420163b5e4985b83ba03652b69d" compoundref="MOM__write__cputime_8F90" startline="125" endline="210">write_cputime</referencedby>
        <referencedby refid="namespacemom__write__cputime_1aa95b991e5550816440480e52a61a50ee" compoundref="MOM__write__cputime_8F90" startline="44" endline="50">write_cputime_start_clock</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__write__cputime_1aa95b991e5550816440480e52a61a50ee" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_write_cputime::write_cputime_start_clock</definition>
        <argsstring>(CS)</argsstring>
        <name>write_cputime_start_clock</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Evaluate the CPU time returned by SYSTEM_CLOCK at the start of a run. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure set up by a previous call to MOM_write_cputime_init. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="43" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="44" bodyend="50"/>
        <references refid="namespacemom__write__cputime_1a37ecb378297ff61d70e35b0b295a214e" compoundref="MOM__write__cputime_8F90" startline="18" endline="18">clocks_per_sec</references>
        <references refid="namespacemom__write__cputime_1a6ac4322a83898c01ec5e8e2ffc22f7cd" compoundref="MOM__write__cputime_8F90" startline="19" endline="19">max_ticks</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__write__cputime_1a0228cbfaec6f37997e2fd42124d87fda" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_write_cputime::mom_write_cputime_init</definition>
        <argsstring>(param_file, directory, Input_start_time, CS)</argsstring>
        <name>mom_write_cputime_init</name>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>directory</type>
          <defname>directory</defname>
        </param>
        <param>
          <type>Input_start_time</type>
          <defname>Input_start_time</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Initialize the MOM_write_cputime module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">directory</parametername>
</parameternamelist>
<parameterdescription>
<para>The directory where the CPU time file goes. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">input_start_time</parametername>
</parameternamelist>
<parameterdescription>
<para>The start model time of the simulation. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that may be set to point to the control structure for this module. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="54" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="55" bodyend="101"/>
        <references refid="namespacemom__write__cputime_1a37ecb378297ff61d70e35b0b295a214e" compoundref="MOM__write__cputime_8F90" startline="18" endline="18">clocks_per_sec</references>
        <references refid="namespacemom__write__cputime_1a6ac4322a83898c01ec5e8e2ffc22f7cd" compoundref="MOM__write__cputime_8F90" startline="19" endline="19">max_ticks</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__write__cputime_1a9e65987c6c974dd7c1c5021239f7df90" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_write_cputime::mom_write_cputime_end</definition>
        <argsstring>(CS)</argsstring>
        <name>mom_write_cputime_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Close the MOM_write_cputime module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure set up by a previous call to MOM_write_cputime_init. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="105" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="106" bodyend="118"/>
        <references refid="namespacemom__error__handler_1ad5f00a53059c72fe2332d1436c80ca71" compoundref="MOM__error__handler_8F90" startline="44" endline="48">mom_error_handler::is_root_pe</references>
        <referencedby refid="namespacemom__write__cputime_1a4a996420163b5e4985b83ba03652b69d" compoundref="MOM__write__cputime_8F90" startline="125" endline="210">write_cputime</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__write__cputime_1a4a996420163b5e4985b83ba03652b69d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_write_cputime::write_cputime</definition>
        <argsstring>(day, n, CS, nmax, call_end)</argsstring>
        <name>write_cputime</name>
        <param>
          <type>day</type>
          <defname>day</defname>
        </param>
        <param>
          <type>n</type>
          <defname>n</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>nmax</type>
          <defname>nmax</defname>
        </param>
        <param>
          <type>call_end</type>
          <defname>call_end</defname>
        </param>
        <briefdescription>
<para>This subroutine assesses how much CPU time the model has taken and determines how long the model should be run before it saves a restart file and stops itself. Optionally this may also be used to trigger this module&apos;s end routine. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">day</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">n</parametername>
</parameternamelist>
<parameterdescription>
<para>The time step number of the current execution. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure set up by a previous call to MOM_write_cputime_init. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">nmax</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of iterations after which to stop so that the simulation will not run out of CPU time. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">call_end</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, also call MOM_write_cputime_end. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="124" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" bodystart="125" bodyend="210"/>
        <references refid="namespacemom__write__cputime_1a37ecb378297ff61d70e35b0b295a214e" compoundref="MOM__write__cputime_8F90" startline="18" endline="18">clocks_per_sec</references>
        <references refid="namespacemom__error__handler_1ad5f00a53059c72fe2332d1436c80ca71" compoundref="MOM__error__handler_8F90" startline="44" endline="48">mom_error_handler::is_root_pe</references>
        <references refid="namespacemom__write__cputime_1a6ac4322a83898c01ec5e8e2ffc22f7cd" compoundref="MOM__write__cputime_8F90" startline="19" endline="19">max_ticks</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__write__cputime_1a9e65987c6c974dd7c1c5021239f7df90" compoundref="MOM__write__cputime_8F90" startline="106" endline="118">mom_write_cputime_end</references>
        <referencedby refid="MOM__driver_8F90_1a08fffeb2d8e8acbf9ed4609be6d258c6" compoundref="MOM__driver_8F90" startline="1">mom_main</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A module to monitor the overall CPU time used by MOM6 and project when to stop the model. </para>
    </briefdescription>
    <detaileddescription>
<para>By Robert Hallberg, May 2006.</para>
<para>This file contains the subroutine (write_cputime) that writes the summed CPU time across all processors to an output file. In addition, write_cputime estimates how many more time steps can be taken before 95% of the available CPU time is used, so that the model can be checkpointed at that time. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_write_cputime.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
