<?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="namespacemeso__surface__forcing" kind="namespace" language="Fortran">
    <compoundname>meso_surface_forcing</compoundname>
    <innerclass refid="structmeso__surface__forcing_1_1meso__surface__forcing__cs" prot="public">meso_surface_forcing::meso_surface_forcing_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacemeso__surface__forcing_1a2fc3c5390054b3d245f409a1ad34cea1" prot="public" static="no" mutable="no">
        <type>logical</type>
        <definition>logical meso_surface_forcing::first_call</definition>
        <argsstring></argsstring>
        <name>first_call</name>
        <initializer>= .true.</initializer>
        <briefdescription>
<para>True until after the first call to the MESO forcing routines. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" line="52" column="1" bodyfile="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" bodystart="52" bodyend="52"/>
        <referencedby refid="namespacemeso__surface__forcing_1a004a1769318285d7d7ab0c51de8b1d77" compoundref="MESO__surface__forcing_8F90" startline="59" endline="204">meso_buoyancy_forcing</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemeso__surface__forcing_1a004a1769318285d7d7ab0c51de8b1d77" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public meso_surface_forcing::meso_buoyancy_forcing</definition>
        <argsstring>(sfc_state, fluxes, day, dt, G, US, CS)</argsstring>
        <name>meso_buoyancy_forcing</name>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>day</type>
          <defname>day</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine sets up the MESO buoyancy forcing, which uses control-theory style specification restorative buoyancy fluxes at large scales. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing fields that describe the surface state of the ocean. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing thermodynamic forcing fields </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">day</parametername>
</parameternamelist>
<parameterdescription>
<para>The time of the fluxes </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time over which the fluxes apply [s] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure returned by a previous call to MESO_surface_forcing_init </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" line="58" column="1" bodyfile="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" bodystart="59" bodyend="204"/>
        <references refid="namespacemeso__surface__forcing_1a2fc3c5390054b3d245f409a1ad34cea1" compoundref="MESO__surface__forcing_8F90" startline="52" endline="52">first_call</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemeso__surface__forcing_1aff6ab2bfc61d73084c623d1654f85046" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public meso_surface_forcing::meso_surface_forcing_init</definition>
        <argsstring>(Time, G, US, param_file, diag, CS)</argsstring>
        <name>meso_surface_forcing_init</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Initialize the MESO surface forcing module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>structure used to regulate diagnostic output </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for this module </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" line="208" column="1" bodyfile="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" bodystart="209" bodyend="278"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__surface__forcing_1a791cb2bd2daa4fd3f036b121995bfb6c" compoundref="MOM__surface__forcing_8F90" startline="1540" endline="1961">mom_surface_forcing::surface_forcing_init</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Sets forcing for the MESO configuration. </para>
    </briefdescription>
    <detaileddescription>
<para>Rewritten by Robert Hallberg, June 2009</para>
<para>This file contains the subroutines that a user should modify to to set the surface wind stresses and fluxes of buoyancy or temperature and fresh water. They are called when the run-time parameters WIND_CONFIG or BUOY_CONFIG are set to &quot;USER&quot;. The standard version has simple examples, along with run-time error messages that will cause the model to abort if this code has not been modified. This code is intended for use with relatively simple specifications of the forcing. For more complicated forms, it is probably a good idea to read the forcing from input files using &quot;file&quot; for WIND_CONFIG and BUOY_CONFIG.</para>
<para>MESO_buoyancy forcing is used to set the surface buoyancy forcing, which may include a number of fresh water flux fields (evap, liq_precip, froz_precip, liq_runoff, froz_runoff, and vprec) and the surface heat fluxes (sw, lw, latent and sens) if temperature and salinity are state variables, or it may simply be the buoyancy flux if it is not. This routine also has coded a restoring to surface values of temperature and salinity. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/config_src/solo_driver/MESO_surface_forcing.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
