New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 12193 – NEMO

Changeset 12193


Ignore:
Timestamp:
2019-12-11T17:15:54+01:00 (4 years ago)
Author:
davestorkey
Message:

2019/dev_r11943_MERGE_2019: Merge in dev_r12072_TOP-01_ENHANCE-11_cethe

Location:
NEMO/branches/2019/dev_r11943_MERGE_2019
Files:
3 deleted
73 edited
23 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/1_context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="1_nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
    20     <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     23    <field_definition src="./field_def_nemo-ice.xml"/>   <!--  NEMO ocean sea ice                      --> 
     24 
    2125 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    24     <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     27    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO ocean sea ice                      --> 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/2_context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="2_nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
    20     <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     23    <field_definition src="./field_def_nemo-ice.xml"/>   <!--  NEMO ocean sea ice                      --> 
     24 
    2125 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    24     <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     27    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO ocean sea ice                      --> 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/3_context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="3_nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
    20     <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     23    <field_definition src="./field_def_nemo-ice.xml"/>   <!--  NEMO ocean sea ice                      --> 
     24 
    2125 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    24     <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     27    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO ocean sea ice                      --> 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AGRIF_DEMO/EXPREF/context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
    20     <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     23    <field_definition src="./field_def_nemo-ice.xml"/>   <!--  NEMO ocean sea ice                      --> 
     24 
    2125 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    24     <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     27    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO ocean sea ice                      --> 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/AMM12/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/C1D_PAPA/EXPREF/context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
     8 
    89<!-- Fields definition --> 
    910    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    1112<!-- Files definition --> 
    1213    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    13     <!--  
    14 ============================================================================================================ 
    15 = grid definition = = DO NOT CHANGE = 
    16 ============================================================================================================ 
    17     --> 
    18      
    19     <axis_definition> 
    20       <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 
    21       <axis id="depthu" long_name="Vertical U levels" unit="m" positive="down" /> 
    22       <axis id="depthv" long_name="Vertical V levels" unit="m" positive="down" /> 
    23       <axis id="depthw" long_name="Vertical W levels" unit="m" positive="down" /> 
    24       <axis id="nfloat" long_name="Float number"      unit="-"                 /> 
    25       <axis id="icbcla"  long_name="Iceberg class"      unit="1"               /> 
    26       <axis id="ncatice" long_name="Ice category"       unit="1"               /> 
    27       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"            /> 
    28       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"            /> 
    29     </axis_definition> 
     14 
     15<!-- Axis definition --> 
     16    <axis_definition src="./axis_def_nemo.xml"/> 
    3017  
     18<!-- Domain definition --> 
    3119    <domain_definition src="./domain_def_nemo.xml"/> 
     20 
     21<!-- Grids definition --> 
     22    <grid_definition   src="./grid_def_nemo.xml"/> 
    3223   
    33     <grid_definition src="./grid_def_nemo.xml"/> 
    34      
     24 
    3525</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/GYRE_BFM/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>      <!--  NEMO ocean dynamics                     --> 
    2023    <field_definition src="./field_def_nemo-pisces.xml"/>   <!--  NEMO ocean dynamics                     --> 
    2124 
     25 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo.xml"/>      
    24     <!--  
    25 ============================================================================================================ 
    26 = grid definition = = DO NOT CHANGE = 
    27 ============================================================================================================ 
    28     --> 
    29      
    30     <axis_definition> 
    31       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    32       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    33       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    34       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    35       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    36       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    37       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    38       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    39       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    40     </axis_definition> 
     27    <file_definition src="./file_def_nemo.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28 
     29<!-- Axis definition --> 
     30    <axis_definition src="./axis_def_nemo.xml"/> 
    4131  
     32<!-- Domain definition --> 
    4233    <domain_definition src="./domain_def_nemo.xml"/> 
     34 
     35<!-- Grids definition --> 
     36    <grid_definition   src="./grid_def_nemo.xml"/> 
    4337   
    44     <grid_definition src="./grid_def_nemo.xml"/> 
    4538 
    4639</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/GYRE_PISCES/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>      <!--  NEMO ocean dynamics                     --> 
    2023    <field_definition src="./field_def_nemo-pisces.xml"/>   <!--  NEMO ocean dynamics                     --> 
    2124 
     25 
    2226<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo.xml"/>      
    24     <!--  
    25 ============================================================================================================ 
    26 = grid definition = = DO NOT CHANGE = 
    27 ============================================================================================================ 
    28     --> 
    29      
    30     <axis_definition> 
    31       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    32       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    33       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    34       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    35       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    36       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    37       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    38       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    39       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    40     </axis_definition> 
     27    <file_definition src="./file_def_nemo.xml"/>     <!--  NEMO ocean dynamics                     --> 
     28 
     29<!-- Axis definition --> 
     30    <axis_definition src="./axis_def_nemo.xml"/> 
    4131  
     32<!-- Domain definition --> 
    4233    <domain_definition src="./domain_def_nemo.xml"/> 
     34 
     35<!-- Grids definition --> 
     36    <grid_definition   src="./grid_def_nemo.xml"/> 
    4337   
    44     <grid_definition src="./grid_def_nemo.xml"/> 
    4538 
    4639</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     -->  
    20     <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      -->  
    21     <field_definition src="./field_def_nemo-pisces.xml"/> <!--  NEMO ocean biology      -->  
     22    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     23    <field_definition src="./field_def_nemo-ice.xml"/>    <!--  NEMO sea-ice model      --> 
     24    <field_definition src="./field_def_nemo-pisces.xml"/> <!--  NEMO ocean biology      --> 
    2225 
    2326<!-- Files definition --> 
    24     <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      -->  
    25     <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       -->  
    26     <file_definition src="./file_def_nemo-pisces.xml"/>  <!--  NEMO ocean biology       -->  
    27     <!--  
    28 ============================================================================================================ 
    29 = grid definition = = DO NOT CHANGE = 
    30 ============================================================================================================ 
    31     --> 
    32      
    33     <axis_definition> 
    34       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    35       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    36       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    37       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    38       <axis id="profsed" long_name="Vertical S levels" unit="cm" positive="down"/> 
    39       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    40       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    41       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    42       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    43       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    44     </axis_definition> 
     27    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
     28    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
     29    <file_definition src="./file_def_nemo-pisces.xml"/>  <!--  NEMO ocean biology       --> 
     30 
     31 
     32<!-- Axis definition --> 
     33    <axis_definition src="./axis_def_nemo.xml"/> 
    4534  
     35<!-- Domain definition --> 
    4636    <domain_definition src="./domain_def_nemo.xml"/> 
     37 
     38<!-- Grids definition --> 
     39    <grid_definition   src="./grid_def_nemo.xml"/> 
    4740   
    48     <grid_definition src="./grid_def_nemo.xml"/> 
    49      
     41 
    5042</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-ice.xml

    r12153 r12193  
    123123   <file_group id="3h"  output_freq="3h"  output_level="10" enabled=".TRUE."/> <!-- 3h files -->      
    124124   <file_group id="4h"  output_freq="4h"  output_level="10" enabled=".TRUE."/> <!-- 4h files --> 
    125    <file_group id="6h"  output_freq="6h"  output_level="10" enabled=".TRUE."/> <!-- 6h files -->         
    126    <file_group id="1m"  output_freq="1mo" output_level="10" enabled=".TRUE."/> <!-- real monthly files --> 
     125   <file_group id="6h"  output_freq="6h"  output_level="10" enabled=".TRUE."/> <!-- 6h files -->       
     126 
     127   <file_group id="1m"  output_freq="1mo" output_level="10" enabled=".TRUE."> <!-- real monthly files --> 
     128 
     129     <!-- To compute transport through straits : need to read ice mask at ice iteration at freq_offset = 1mo - nn_fsbc 
     130      <file id="file23" name_suffix="_strait_ice" description="transport variables through straits" > 
     131          <field field_ref="strait_mifl"      name="simassacrossline"  freq_offset="1mo-4ts" /> 
     132          <field field_ref="strait_msfl"      name="snmassacrossline"  freq_offset="1mo-4ts" /> 
     133          <field field_ref="strait_arfl"      name="siareaacrossline"  freq_offset="1mo-4ts" /> 
     134        </file> 
     135     --> 
     136 
     137    </file_group> 
     138 
    127139   <file_group id="2m"  output_freq="2mo" output_level="10" enabled=".TRUE."/> <!-- real 2m files --> 
    128140   <file_group id="3m"  output_freq="3mo" output_level="10" enabled=".TRUE."/> <!-- real 3m files --> 
     
    133145   <file_group id="5y"  output_freq="5y"  output_level="10" enabled=".TRUE."/> <!-- real 5y files --> 
    134146   <file_group id="10y" output_freq="10y" output_level="10" enabled=".TRUE."/> <!-- real 10y files --> 
    135     
     147  
     148   <!-- To compute transport through straits : need to read ice mask at ice iteration at freq_offset = - nn_fsbc + 1 
     149   <file id="maskMFO" name="maskMFO" enabled="true" mode="read" output_freq="1mo" cyclic="true"  > 
     150      <field id="maskMFO_u_ice" operation="instant"  freq_offset="-3ts"  grid_ref="grid_U_4strait_ice" /> 
     151      <field id="maskMFO_v_ice" operation="instant"  freq_offset="-3ts"  grid_ref="grid_V_4strait_ice" /> 
     152   </file> 
     153 
     154     --> 
    136155 </file_definition> 
    137156  
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/file_def_nemo-oce.xml

    r11536 r12193  
    9393          <field field_ref="bgfrctem"     name="bgfrctem"    /> 
    9494          <field field_ref="bgfrchfx"     name="bgfrchfx"    /> 
    95           <field field_ref="bgfrcsal"     name="bgfrcsal"    /> 
     95     <field field_ref="bgfrcsal"     name="bgfrcsal"    /> 
     96 
     97     <field field_ref="masstot"      name="masso"  /> 
     98          <field field_ref="voltot"       name="volo"  /> 
     99          <field field_ref="sshthster"    name="zostoga"  /> 
     100          <field field_ref="temptot"      name="bigthetaoga"  /> 
     101          <field field_ref="saltot"       name="soga"  /> 
     102          <field field_ref="ssttot"       name="tosga"  /> 
    96103        </file> 
    97104 
     
    100107 
    101108      <file_group id="1m" output_freq="1mo" output_level="10" enabled=".TRUE."> <!-- real monthly files --> 
     109 
     110        <file id="file16" name_suffix="_diaptr2D" description="zonal mean variables" > 
     111          <field field_ref="sophtove"    name="htovovrt"      grid_ref="grid_ptr_T_2D"  /> 
     112          <field field_ref="sopstove"    name="sltovovrt"     grid_ref="grid_ptr_T_2D"  /> 
     113          <field field_ref="sophtgyre"   name="htovgyre"      grid_ref="grid_ptr_T_2D"  /> 
     114          <field field_ref="sopstgyre"   name="sltogyre"      grid_ref="grid_ptr_T_2D"  /> 
     115          <field field_ref="sophtbtr"    name="htbtr"         grid_ref="grid_ptr_T_2D"  /> 
     116          <field field_ref="sopstbtr"    name="sltbtr"        grid_ref="grid_ptr_T_2D"  /> 
     117          <field field_ref="sophtadv"    name="htadv"         grid_ref="grid_ptr_T_2D"  /> 
     118          <field field_ref="sopstadv"    name="sltadv"        grid_ref="grid_ptr_T_2D"  /> 
     119          <field field_ref="sophtldf"    name="htldf"         grid_ref="grid_ptr_T_2D"  /> 
     120          <field field_ref="sopstldf"    name="sltldf"        grid_ref="grid_ptr_T_2D"  /> 
     121          <field field_ref="sophtvtr"    name="hfbasin"       grid_ref="grid_ptr_T_2D"  /> 
     122          <field field_ref="sopstvtr"    name="sltbasin"      grid_ref="grid_ptr_T_2D"  /> 
     123          <field field_ref="sophteiv"    name="hfbasinpmadv"  grid_ref="grid_ptr_T_2D"  /> 
     124          <field field_ref="sopsteiv"    name="sltbasinpmadv" grid_ref="grid_ptr_T_2D"  /> 
     125        </file> 
     126 
     127 
     128         <file id="file17" name_suffix="_diaptr3D" description="zonal mean variables" > 
     129          <field field_ref="zomsf"       name="msftyz"        grid_ref="grid_ptr_W_3D"  /> 
     130          <field field_ref="zotem"       name="znltem"        grid_ref="grid_ptr_T_3D"  /> 
     131          <field field_ref="zosal"       name="znlsal"        grid_ref="grid_ptr_T_3D"  /> 
     132          <field field_ref="zosrf"       name="znlsrf"        grid_ref="grid_ptr_T_3D"  /> 
     133        </file> 
     134 
     135      <!--   
     136         <file id="file18" name_suffix="_strait_oce" description="transport variables through straits" > 
     137           <field field_ref="masstr_strait"        name="mfo"               /> 
     138         </file>      
     139      --> 
     140 
    102141      </file_group> 
    103142 
    104143      <file_group id="1y"  output_freq="1y" output_level="10" enabled=".TRUE."> <!-- real yearly files --> 
    105144      </file_group> 
    106     
     145 
     146      <!--  To compute transport through straits : need to read mask file ( every month is the best otherwise costly ) 
     147 
     148      <file id="maskMFO"  name="maskMFO" enabled="true" mode="read" output_freq="1mo" cyclic="true"  > 
     149        <field id="maskMFO_u" operation="instant" freq_offset="1mo" grid_ref="grid_U_4strait" /> 
     150        <field id="maskMFO_v" operation="instant" freq_offset="1mo" grid_ref="grid_V_4strait" /> 
     151      </file> 
     152 
     153    --> 
     154 
    107155       
    108156      <file_group id="1ts" output_freq="1ts" output_level="10" enabled=".TRUE."/> <!-- 1 time step files --> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_pisces_cfg

    r10227 r12193  
    8080/ 
    8181!----------------------------------------------------------------------- 
    82 &nampissbc     !   parameters for inputs deposition 
     82&nampisbc      !   parameters for inputs deposition 
     83!----------------------------------------------------------------------- 
     84   sn_dust     = 'dust.orca.new'       ,     -1            , 'dust'        ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     85   ln_ironsed  =  .true.   ! boolean for Fe input from sediments 
     86   ln_ironice  =  .true.   ! boolean for Fe input from sea ice 
     87   ln_hydrofe  =  .true.   ! boolean for from hydrothermal vents 
     88/ 
     89!----------------------------------------------------------------------- 
     90&nampissed     !   parameters for sediments mobilization 
    8391!----------------------------------------------------------------------- 
    8492/ 
     
    94102&nampisdmp     !   Damping  
    95103!----------------------------------------------------------------------- 
     104   nn_pisdmp    =  5840       !  Frequency of Relaxation 
    96105/ 
    97106!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_top_cfg

    r11536 r12193  
    2020! 
    2121   ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F) 
    22 !                 !           !                                          !             ! 
    23 !                 !    name   !           title of the field             !   units     ! initial data from file or not ! 
    24 !                 !           !                                          !             ! 
    25    sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' ,  .true. 
    26    sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   ,  .true. 
    27    sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' ,  .true. 
    28    sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' , .false. 
    29    sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' ,  .true. 
    30    sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' , .false. 
    31    sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' ,  .true. 
    32    sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' , .false. 
    33    sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' , .false. 
    34    sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' ,  .true. 
    35    sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' , .false. 
    36    sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' , .false. 
    37    sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' , .false. 
    38    sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' ,  .true. 
    39    sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' , .false. 
    40    sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' , .false. 
    41    sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' , .false. 
    42    sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' , .false. 
    43    sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' , .false. 
    44    sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' , .false. 
    45    sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' , .false. 
    46    sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' , .false. 
    47    sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' ,  .true. 
    48    sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' , .false. 
     22   ln_trcbc      =  .true.   !  Enables Boundary conditions 
     23!                !           !                                           !             !        ! 
     24!                !    name   !           title of the field              !   units     ! init    ! sbc    ! cbc    !  obc  !  
     25   sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' , .true.  , .false., .true. , .false.  
     26   sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   , .true.  , .false., .true. , .false. 
     27   sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' , .true.  , .false., .false., .false.  
     28   sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' , .false. , .false., .false., .false. 
     29   sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     30   sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' , .false. , .false., .false., .false. 
     31   sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     32   sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' , .false. , .false., .false., .false. 
     33   sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' , .false. , .false., .false., .false. 
     34   sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' , .true.  , .false., .true. , .false. 
     35   sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' , .false. , .false., .false., .false. 
     36   sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' , .false. , .false., .false., .false. 
     37   sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' , .false. , .false., .false., .false. 
     38   sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     39   sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     40   sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     41   sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' , .false. , .false., .false., .false. 
     42   sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' , .false. , .false., .false., .false. 
     43   sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' , .false. , .false., .false., .false. 
     44   sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' , .false. , .false., .false., .false. 
     45   sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' , .false. , .false., .false., .false. 
     46   sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     47   sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     48   sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' , .false. , .false., .false., .false. 
    4949/ 
    5050!----------------------------------------------------------------------- 
     
    7777&namtrc_adv      !   advection scheme for passive tracer                (default: NO selection) 
    7878!----------------------------------------------------------------------- 
    79    ln_trcadv_mus =  .true.  !  MUSCL scheme 
     79   ln_trcadv_mus =  .true.   !  MUSCL scheme 
    8080      ln_mus_ups =  .false.         !  use upstream scheme near river mouths 
    8181/ 
     
    8383&namtrc_ldf      !   lateral diffusion scheme for passive tracer        (default: NO selection) 
    8484!----------------------------------------------------------------------- 
    85    ln_trcldf_tra   = .true.      !  use active tracer setting 
     85   ln_trcldf_tra   =  .true.     !  use active tracer setting 
    8686/ 
    8787!----------------------------------------------------------------------- 
     
    108108&namtrc_bc       !   data for boundary conditions 
    109109!----------------------------------------------------------------------- 
     110!                !  file name        ! frequency (hours) ! variable      ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     111!                !                   !  (if <0  months)  !   name        !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
     112   sn_trcsbc(5)  = 'dust.orca.new'   ,       -1          , 'dustpo4'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     113   sn_trcsbc(7)  = 'dust.orca.new'   ,       -1          , 'dustsi'      ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     114   sn_trcsbc(14) = 'dust.orca.new'   ,       -1          , 'dustfer'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     115   sn_trcsbc(23) = 'ndeposition.orca',      -12          , 'ndep'        ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
     116   rn_trsfac(5)  = 8.264e-02   !  (  0.021 / 31. * 122 ) 
     117   rn_trsfac(7)  = 3.313e-01     !  ( 8.8   / 28.1 ) 
     118   rn_trsfac(14) = 6.266e-04   !  (  0.035 / 55.85 ) 
     119   rn_trsfac(23) =  5.4464e-01  !  ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.625/14 ) 
     120   rn_sbc_time   =  1.          !  Time scaling factor for SBC and CBC data (seconds in a day) 
     121   ! 
     122   sn_trccbc(1)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     123   sn_trccbc(2)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     124   sn_trccbc(5)  = 'river.orca'      ,    120            , 'riverdip'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     125   sn_trccbc(7)  = 'river.orca'      ,    120            , 'riverdsi'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     126   sn_trccbc(10) = 'river.orca'      ,    120            , 'riverdoc'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     127   sn_trccbc(14) = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     128   sn_trccbc(23) = 'river.orca'      ,    120            , 'riverdin'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     129   rn_trcfac(1)  = 8.333e+01   !  ( data in Mg/m2/yr : 1e3/12/ryyss) 
     130   rn_trcfac(2)  = 8.333e+01   !  ( 1e3 /12 ) 
     131   rn_trcfac(5)  = 3.935e+04   !  ( 1e3 / 31. * 122 ) 
     132   rn_trcfac(7)  = 3.588e+01   !  ( 1e3 / 28.1 ) 
     133   rn_trcfac(10) = 8.333e+01   !  ( 1e3 / 12 
     134   rn_trcfac(14) = 4.166e-03   !  ( 1e3 / 12 * 5e-5 ) 
     135   rn_trcfac(23) = 5.446e+02   !  (  1e3 / 14 * 7.625 ) 
     136   rn_cbc_time   = 3.1536e+7   !  Time scaling factor for CBC data (seconds in a year) 
    110137/ 
    111138!---------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>   <!--  Ocean biology                     --> 
    20     <field_definition src="./field_def_nemo-pisces.xml"/>   <!--  Ocean biology                     --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     23    <field_definition src="./field_def_nemo-pisces.xml"/> <!--  NEMO ocean biology      --> 
    2124 
    2225<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo.xml"/>     <!--  NEMO ocean dynamics                     --> 
    24     <!--  
    25 ============================================================================================================ 
    26 = grid definition = = DO NOT CHANGE = 
    27 ============================================================================================================ 
    28     --> 
    29      
    30     <axis_definition> 
    31       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    32       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    33       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    34       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    35       <axis id="profsed" long_name="Vertical S levels" unit="cm" positive="down"/> 
    36       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    41     </axis_definition> 
     26    <file_definition src="./file_def_nemo-pisces.xml"/>  <!--  NEMO ocean biology       --> 
     27 
     28 
     29<!-- Axis definition --> 
     30    <axis_definition src="./axis_def_nemo.xml"/> 
    4231  
     32<!-- Domain definition --> 
    4333    <domain_definition src="./domain_def_nemo.xml"/> 
     34 
     35<!-- Grids definition --> 
     36    <grid_definition   src="./grid_def_nemo.xml"/> 
    4437   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    46      
     38 
    4739</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_pisces_cfg

    r10227 r12193  
    8181/ 
    8282!----------------------------------------------------------------------- 
    83 &nampissbc     !   parameters for inputs deposition 
     83&nampisbc      !   parameters for inputs deposition 
     84!----------------------------------------------------------------------- 
     85   sn_dust     = 'dust.orca.new'       ,     -1            , 'dust'        ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     86   ln_ironsed  =  .true.   ! boolean for Fe input from sediments 
     87   ln_ironice  =  .true.   ! boolean for Fe input from sea ice 
     88   ln_hydrofe  =  .true.   ! boolean for from hydrothermal vents 
     89/ 
     90!----------------------------------------------------------------------- 
     91&nampissed     !   parameters for sediments mobilization 
    8492!----------------------------------------------------------------------- 
    8593/ 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_PISCES/EXPREF/namelist_top_cfg

    r11536 r12193  
    1919   ln_c14        =  .false. 
    2020! 
    21    ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F) 
    22 !                !           !                                         !            !                               ! 
    23 !                !    name   !           title of the field            !   units    ! initial data from file or not !  
    24    sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' ,  .true. 
    25    sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   ,  .true. 
    26    sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' ,  .true. 
    27    sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' ,  .false. 
    28    sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' ,  .true. 
    29    sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' ,  .false. 
    30    sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' ,  .true. 
    31    sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' ,  .false. 
    32    sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' ,  .false. 
    33    sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' ,  .true. 
    34    sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' ,  .false. 
    35    sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' ,  .false. 
    36    sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' ,  .false. 
    37    sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' ,  .true. 
    38    sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' ,  .false. 
    39    sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' ,  .false. 
    40    sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' ,  .false. 
    41    sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' ,  .false. 
    42    sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' ,  .false. 
    43    sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' ,  .false. 
    44    sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' ,  .false. 
    45    sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' ,  .false. 
    46    sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' ,  .true. 
    47    sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' ,  .false. 
     21   ln_trcdta     =  .true.   !  Initialisation from data input file (T) or not (F) 
     22   ln_trcbc      =  .true.   !  Enables Boundary conditions 
     23!                !           !                                           !             !         ! 
     24!                !    name   !           title of the field              !   units     ! init    ! sbc    ! cbc    !  obc  !  
     25   sn_tracer(1)   = 'DIC     ' , 'Dissolved inorganic Concentration      ',  'mol-C/L' , .true.  , .false., .true. , .false.  
     26   sn_tracer(2)   = 'Alkalini' , 'Total Alkalinity Concentration         ',  'eq/L '   , .true.  , .false., .true. , .false. 
     27   sn_tracer(3)   = 'O2      ' , 'Dissolved Oxygen Concentration         ',  'mol-C/L' , .true.  , .false., .false., .false.  
     28   sn_tracer(4)   = 'CaCO3   ' , 'Calcite Concentration                  ',  'mol-C/L' , .false. , .false., .false., .false. 
     29   sn_tracer(5)   = 'PO4     ' , 'Phosphate Concentration                ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     30   sn_tracer(6)   = 'POC     ' , 'Small organic carbon Concentration     ',  'mol-C/L' , .false. , .false., .false., .false. 
     31   sn_tracer(7)   = 'Si      ' , 'Silicate Concentration                 ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     32   sn_tracer(8)   = 'PHY     ' , 'Nanophytoplankton Concentration        ',  'mol-C/L' , .false. , .false., .false., .false. 
     33   sn_tracer(9)   = 'ZOO     ' , 'Microzooplankton Concentration         ',  'mol-C/L' , .false. , .false., .false., .false. 
     34   sn_tracer(10)  = 'DOC     ' , 'Dissolved organic Concentration        ',  'mol-C/L' , .true.  , .false., .true. , .false. 
     35   sn_tracer(11)  = 'PHY2    ' , 'Diatoms Concentration                  ',  'mol-C/L' , .false. , .false., .false., .false. 
     36   sn_tracer(12)  = 'ZOO2    ' , 'Mesozooplankton Concentration          ',  'mol-C/L' , .false. , .false., .false., .false. 
     37   sn_tracer(13)  = 'DSi     ' , 'Diatoms Silicate Concentration         ',  'mol-C/L' , .false. , .false., .false., .false. 
     38   sn_tracer(14)  = 'Fer     ' , 'Dissolved Iron Concentration           ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     39   sn_tracer(15)  = 'BFe     ' , 'Big iron particles Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     40   sn_tracer(16)  = 'GOC     ' , 'Big organic carbon Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     41   sn_tracer(17)  = 'SFe     ' , 'Small iron particles Concentration     ',  'mol-C/L' , .false. , .false., .false., .false. 
     42   sn_tracer(18)  = 'DFe     ' , 'Diatoms iron  Concentration            ',  'mol-C/L' , .false. , .false., .false., .false. 
     43   sn_tracer(19)  = 'GSi     ' , 'Sinking biogenic Silicate Concentration',  'mol-C/L' , .false. , .false., .false., .false. 
     44   sn_tracer(20)  = 'NFe     ' , 'Nano iron Concentration                ',  'mol-C/L' , .false. , .false., .false., .false. 
     45   sn_tracer(21)  = 'NCHL    ' , 'Nano chlorophyl Concentration          ',  'mol-C/L' , .false. , .false., .false., .false. 
     46   sn_tracer(22)  = 'DCHL    ' , 'Diatoms chlorophyl Concentration       ',  'mol-C/L' , .false. , .false., .false., .false. 
     47   sn_tracer(23)  = 'NO3     ' , 'Nitrates Concentration                 ',  'mol-C/L' , .true.  , .true. , .true. , .false. 
     48   sn_tracer(24)  = 'NH4     ' , 'Ammonium Concentration                 ',  'mol-C/L' , .false. , .false., .false., .false. 
    4849/ 
    4950!----------------------------------------------------------------------- 
     
    107108&namtrc_bc       !   data for boundary conditions 
    108109!----------------------------------------------------------------------- 
     110!                !  file name        ! frequency (hours) ! variable      ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     111!                !                   !  (if <0  months)  !   name        !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
     112   sn_trcsbc(5)  = 'dust.orca.new'   ,       -1          , 'dustpo4'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     113   sn_trcsbc(7)  = 'dust.orca.new'   ,       -1          , 'dustsi'      ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     114   sn_trcsbc(14) = 'dust.orca.new'   ,       -1          , 'dustfer'     ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     115   sn_trcsbc(23) = 'ndeposition.orca',      -12          , 'ndep'        ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
     116   rn_trsfac(5)  = 8.264e-02   !  (  0.021 / 31. * 122 ) 
     117   rn_trsfac(7)  = 3.313e-01     !  ( 8.8   / 28.1 ) 
     118   rn_trsfac(14) = 6.266e-04   !  (  0.035 / 55.85 ) 
     119   rn_trsfac(23) =  5.4464e-01  !  ( From kgN m-2 s-1 to molC l-1 ====> zfact = 7.625/14 ) 
     120   rn_sbc_time   =  1.          !  Time scaling factor for SBC and CBC data (seconds in a day) 
     121   ! 
     122   sn_trccbc(1)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     123   sn_trccbc(2)  = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     124   sn_trccbc(5)  = 'river.orca'      ,    120            , 'riverdip'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     125   sn_trccbc(7)  = 'river.orca'      ,    120            , 'riverdsi'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     126   sn_trccbc(10) = 'river.orca'      ,    120            , 'riverdoc'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     127   sn_trccbc(14) = 'river.orca'      ,    120            , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     128   sn_trccbc(23) = 'river.orca'      ,    120            , 'riverdin'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     129   rn_trcfac(1)  = 8.333e+01   !  ( data in Mg/m2/yr : 1e3/12/ryyss) 
     130   rn_trcfac(2)  = 8.333e+01   !  ( 1e3 /12 ) 
     131   rn_trcfac(5)  = 3.935e+04   !  ( 1e3 / 31. * 122 ) 
     132   rn_trcfac(7)  = 3.588e+01   !  ( 1e3 / 28.1 ) 
     133   rn_trcfac(10) = 8.333e+01   !  ( 1e3 / 12 
     134   rn_trcfac(14) = 4.166e-03   !  ( 1e3 / 12 * 5e-5 ) 
     135   rn_trcfac(23) = 5.446e+02   !  (  1e3 / 14 * 7.625 ) 
     136   rn_cbc_time   = 3.1536e+7   !  Time scaling factor for CBC data (seconds in a year) 
    109137/ 
    110138!---------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_OFF_TRC/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    19     <field_definition src="./field_def_nemo-oce.xml"/>   <!--  Ocean biology                     --> 
    20     <field_definition src="./field_def_nemo-innerttrc.xml"/>   <!--  Ocean biology                     --> 
     22    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     23    <field_definition src="./field_def_nemo-innerttrc.xml"/> <!--  NEMO ocean biology      --> 
    2124 
    2225<!-- Files definition --> 
    23     <file_definition src="./file_def_nemo.xml"/>     <!--  NEMO ocean dynamics                     --> 
    24     <!--  
    25 ============================================================================================================ 
    26 = grid definition = = DO NOT CHANGE = 
    27 ============================================================================================================ 
    28     --> 
    29      
    30     <axis_definition> 
    31       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    32       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    33       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    34       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    35       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    36       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    37       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    38       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    39       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    40     </axis_definition> 
     26    <file_definition src="./file_def_nemo-innerttrc.xml"/>  <!--  NEMO ocean biology       --> 
     27 
     28 
     29<!-- Axis definition --> 
     30    <axis_definition src="./axis_def_nemo.xml"/> 
    4131  
     32<!-- Domain definition --> 
    4233    <domain_definition src="./domain_def_nemo.xml"/> 
     34 
     35<!-- Grids definition --> 
     36    <grid_definition   src="./grid_def_nemo.xml"/> 
    4337   
    44     <grid_definition src="./grid_def_nemo.xml"/> 
    45      
     38 
    4639</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_SAS_ICE/EXPREF/context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     
    2326    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    2427    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     28 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/domain_def_nemo.xml

    r11536 r12193  
    99       <zoom_domain ibegin="1" jbegin="1" ni="2" nj="3"/> 
    1010     </domain> 
     11 
     12      <domain id="1point" domain_ref="grid_T" > 
     13         <zoom_domain ibegin="139" jbegin="119" ni="1" nj="1"/> 
     14      </domain> 
     15 
    1116 
    1217     <!--   Eq section --> 
     
    176181     <domain id="EqW" domain_ref="grid_W" > <zoom_domain id="EqW"/> </domain> 
    177182 
    178       
    179      <!--   zonal mean grid   --> 
    180      <domain id="gznl" long_name="gznl"/> 
    181      <domain id="znl_T" domain_ref="gznl" > <zoom_domain id="znl_T"/> </domain> 
    182      <domain id="znl_W" domain_ref="gznl" > <zoom_domain id="znl_W"/> </domain> 
     183              <!--   zonal mean grid   --> 
     184     <domain_group id="gznl"> 
     185        <domain id="gznl" long_name="gznl"/> 
     186        <domain id="ptr" domain_ref="gznl" >  
     187            <zoom_domain id="ptr" ibegin="0000" jbegin="0" ni="1" nj="0000" />  
     188        </domain> 
     189      </domain_group> 
    183190 
    184191      
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-ice.xml

    r12182 r12193  
    230230 
    231231     <!-- momentum (advection) --> 
    232      <field id="xmtrpice"     long_name="X-component of ice mass transport"                       standard_name="ice_x_transport"                       unit="kg/s" /> 
     232        <field id="xmtrpice"     long_name="X-component of ice mass transport"                       standard_name="ice_x_transport"                       unit="kg/s" /> 
    233233          <field id="ymtrpice"     long_name="Y-component of ice mass transport"                       standard_name="ice_y_transport"                       unit="kg/s" /> 
    234234          <field id="xmtrpsnw"     long_name="X-component of snw mass transport"                       standard_name="snw_x_transport"                       unit="kg/s" /> 
     
    237237          <field id="yatrp"        long_name="Y-component of ice area transport"                       standard_name="area_y_transport"                      unit="m2/s" /> 
    238238          <field id="xmtrptot"     long_name="X-component of sea-ice mass transport"                   standard_name="sea_ice_x_transport"                   unit="kg/s" > xmtrpice + xmtrpsnw </field> 
    239           <field id="ymtrptot"     long_name="Y-component of sea-ice mass transport"                   standard_name="sea_ice_y_transport"                   unit="kg/s" > ymtrpice + ymtrpsnw </field> 
    240      
     239        <field id="ymtrptot"     long_name="Y-component of sea-ice mass transport"                   standard_name="sea_ice_y_transport"                   unit="kg/s" > ymtrpice + ymtrpsnw </field> 
     240 
     241     <!-- Ice transport through straits" --> 
     242         <field id="xmtrpice_ave"     long_name="Monthly average of x-ice mass transport"   field_ref="xmtrpice"          grid_ref="grid_U_2D"        freq_op="1mo" freq_offset="_reset_"  > @xmtrpice </field> 
     243         <field id="xmtrpice_section"                                                                                     grid_ref="grid_U_scalar"  > xmtrpice_ave </field> 
     244         <field id="xmtrpice_strait"                                                        field_ref="xmtrpice_section"  grid_ref="grid_U_4strait_ice"  /> 
     245         <field id="xstrait_mifl"                                                           field_ref="xmtrpice_strait"   grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 
     246 
     247         <field id="ymtrpice_ave"     long_name="Monthly average of y-ice mass transport"   field_ref="ymtrpice"          grid_ref="grid_V_2D"        freq_op="1mo" freq_offset="_reset_"  > @ymtrpice </field> 
     248         <field id="ymtrpice_section"                                                                                     grid_ref="grid_V_scalar"  > ymtrpice_ave </field> 
     249         <field id="ymtrpice_strait"                                                        field_ref="ymtrpice_section"  grid_ref="grid_V_4strait_ice"  /> 
     250    <field id="ystrait_mifl"                                                           field_ref="ymtrpice_strait"   grid_ref="grid_V_4strait_ice_hsum" unit="kg/s" detect_missing_value="true"  > this * maskMFO_v_ice </field> 
     251 
     252         <field id="xmtrpsnw_ave"     long_name="Monthly average of x-snow mass transport"  field_ref="xmtrpsnw"          grid_ref="grid_U_2D"        freq_op="1mo" freq_offset="_reset_"  > @xmtrpsnw </field> 
     253         <field id="xmtrpsnw_section"                                                                                     grid_ref="grid_U_scalar"  > xmtrpsnw_ave </field> 
     254         <field id="xmtrpsnw_strait"                                                        field_ref="xmtrpsnw_section"  grid_ref="grid_U_4strait_ice"  /> 
     255         <field id="xstrait_msfl"                                                           field_ref="xmtrpsnw_strait"   grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 
     256 
     257         <field id="ymtrpsnw_ave"     long_name="Monthly average of y-snow mass transport"  field_ref="ymtrpsnw"          grid_ref="grid_V_2D"        freq_op="1mo" freq_offset="_reset_"  > @ymtrpsnw </field> 
     258         <field id="ymtrpsnw_section"                                                                                     grid_ref="grid_V_scalar"  > ymtrpsnw_ave </field> 
     259         <field id="ymtrpsnw_strait"                                                        field_ref="ymtrpsnw_section"  grid_ref="grid_V_4strait_ice"  /> 
     260    <field id="ystrait_msfl"                                                           field_ref="ymtrpsnw_strait"   grid_ref="grid_V_4strait_ice_hsum" unit="kg/s" detect_missing_value="true"  > this * maskMFO_v_ice </field> 
     261 
     262         <field id="xatrp_ave"        long_name="Monthly average of x-ice area transport"   field_ref="xatrp"             grid_ref="grid_U_2D"        freq_op="1mo" freq_offset="_reset_"  > @xatrp </field> 
     263         <field id="xatrp_section"                                                                                        grid_ref="grid_U_scalar"  > xatrp_ave </field> 
     264         <field id="xatrp_strait"                                                           field_ref="xatrp_section"     grid_ref="grid_U_4strait_ice"  /> 
     265         <field id="xstrait_arfl"                                                           field_ref="xatrp_strait"      grid_ref="grid_U_4strait_ice_hsum" unit="kg/s" detect_missing_value="true" > this * maskMFO_u_ice </field> 
     266 
     267         <field id="yatrp_ave"        long_name="Monthly average of y-ice area transport"   field_ref="yatrp"             grid_ref="grid_V_2D"        freq_op="1mo" freq_offset="_reset_"  > @yatrp </field> 
     268         <field id="yatrp_section"                                                                                        grid_ref="grid_V_scalar"  > yatrp_ave </field> 
     269         <field id="yatrp_strait"                                                           field_ref="yatrp_section"     grid_ref="grid_V_4strait_ice"  /> 
     270    <field id="ystrait_arfl"                                                           field_ref="yatrp_strait"      grid_ref="grid_V_4strait_ice_hsum" unit="m2/s" detect_missing_value="true"  > this * maskMFO_v_ice </field> 
     271 
     272         <field id="strait_mifl"      long_name="Sea ice mass flux through straits"      standard_name="sea_ice_mass_transport_across_line"   unit="kg/s"  freq_op="1mo"  grid_ref="grid_4strait_ice" > xstrait_mifl + ystrait_mifl </field> 
     273         <field id="strait_msfl"      long_name="Snow mass flux through straits"         standard_name="snow_mass_transport_across_line"      unit="kg/s"  freq_op="1mo"  grid_ref="grid_4strait_ice" > xstrait_msfl + ystrait_msfl </field> 
     274    <field id="strait_arfl"      long_name="Sea ice area flux through straits"      standard_name="sea_area_mass_transport_across_line"  unit="m2/s"  freq_op="1mo"  grid_ref="grid_4strait_ice" > xstrait_arfl + ystrait_arfl </field> 
     275 
    241276   </field_group> <!-- SBC_2D --> 
    242277 
     
    298333          <field id="sbgheat_tot"     long_name="global mean snow heat content"                                                             unit="1e20J"    /> 
    299334 
    300      <!-- available later --> 
    301      <!-- 
    302           <field id="strait_mifl"     long_name="Sea ice mass flux through straits"      standard_name="sea_ice_mass_transport_across_line" unit="kg/s"  grid_ref="grid_4strait" /> 
    303           <field id="strait_arfl"     long_name="Sea ice area flux through straits"      standard_name="sea_ice_area_transport_across_line" unit="m2/s"  grid_ref="grid_4strait" />   
    304           <field id="strait_msfl"     long_name="Sea ice snow flux through straits"      standard_name="snow_mass_transport_across_line"    unit="kg/s"  grid_ref="grid_4strait" /> 
    305           --> 
    306335   </field_group> 
    307336   
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-oce.xml

    r12182 r12193  
    1919       
    2020      <field_group id="grid_T" grid_ref="grid_T_2D" > 
    21         <field id="e3t"          long_name="T-cell thickness"                    standard_name="cell_thickness"     unit="m"   grid_ref="grid_T_3D" /> 
    22         <field id="e3t_surf"     long_name="T-cell thickness"   field_ref="e3t"  standard_name="cell_thickness"     unit="m"   grid_ref="grid_T_SFC"/> 
    23         <field id="e3t_0"        long_name="Initial T-cell thickness"            standard_name="ref_cell_thickness" unit="m"   grid_ref="grid_T_3D" /> 
    24  
     21        <field id="e3t"          long_name="T-cell thickness"                    standard_name="cell_thickness"        unit="m"   grid_ref="grid_T_3D" /> 
     22        <field id="e3ts"         long_name="T-cell thickness"   field_ref="e3t"  standard_name="cell_thickness"        unit="m"   grid_ref="grid_T_SFC"/> 
     23        <field id="e3t_0"        long_name="Initial T-cell thickness"            standard_name="ref_cell_thickness"    unit="m"   grid_ref="grid_T_3D" /> 
     24        <field id="e3tb"         long_name="bottom T-cell thickness"             standard_name="bottom_cell_thickness" unit="m"   grid_ref="grid_T_2D"/>  
     25        <field id="e3t_300"      field_ref="e3t"                grid_ref="grid_T_zoom_300"       detect_missing_value="true" /> 
     26        <field id="e3t_vsum300"  field_ref="e3t_300"            grid_ref="grid_T_vsum"   detect_missing_value="true" /> 
     27   <field id="masscello"    long_name="Sea Water Mass per unit area"   standard_name="sea_water_mass_per_unit_area"   unit="kg/m2"   grid_ref="grid_T_3D"/> 
     28        <field id="volcello"     long_name="Ocean Volume"                   standard_name="ocean_volume"   unit="m3"       grid_ref="grid_T_3D"/>  
    2529        <field id="toce"         long_name="temperature"                         standard_name="sea_water_potential_temperature"   unit="degC"     grid_ref="grid_T_3D"/> 
    2630        <field id="toce_e3t"     long_name="temperature (thickness weighted)"                                                      unit="degC"     grid_ref="grid_T_3D" > toce * e3t </field > 
    2731        <field id="soce"         long_name="salinity"                            standard_name="sea_water_practical_salinity"      unit="1e-3"     grid_ref="grid_T_3D"/> 
    2832        <field id="soce_e3t"     long_name="salinity    (thickness weighted)"                                                      unit="1e-3"     grid_ref="grid_T_3D" > soce * e3t </field > 
     33 
     34        <field id="toce_e3t_300"      field_ref="toce_e3t"          unit="degree_C"     grid_ref="grid_T_zoom_300"      detect_missing_value="true" /> 
     35        <field id="toce_e3t_vsum300"  field_ref="toce_e3t_300"      unit="degress_C*m"  grid_ref="grid_T_vsum"  detect_missing_value="true" /> 
     36        <field id="toce_vmean300"     field_ref="toce_e3t_vsum300"  unit="degree_C"     grid_ref="grid_T_vsum"  detect_missing_value="true" > toce_e3t_vsum300/e3t_vsum300 </field> 
     37 
    2938 
    3039        <!-- t-eddy viscosity coefficients (ldfdyn) --> 
     
    5463        <field id="taubot"       long_name="bottom stress module"                                                                                   unit="N/m2"     />  
    5564 
     65         <!-- Case EOS = TEOS-10 : output potential temperature --> 
     66   <field id="toce_pot"     long_name="Sea Water Potential Temperature"              standard_name="sea_water_potential_temperature"   unit="degC"     grid_ref="grid_T_3D"/> 
     67        <field id="sst_pot"      long_name="potential sea surface temperature"             standard_name="sea_surface_temperature"             unit="degC"     /> 
     68        <field id="tosmint_pot"  long_name="vertical integral of potential temperature times density"   standard_name="integral_wrt_depth_of_product_of_density_and_potential_temperature"  unit="(kg m2) degree_C" /> 
     69 
     70 
    5671        <field id="ssh"          long_name="sea surface height"                                 standard_name="sea_surface_height_above_geoid"             unit="m" /> 
    5772        <field id="ssh2"         long_name="square of sea surface height"                       standard_name="square_of_sea_surface_height_above_geoid"   unit="m2" > ssh * ssh </field > 
     
    93108        <field id="topthdep"     long_name="Top of Thermocline Depth (dT = -0.2 wrt 10m)"   standard_name="ocean_mixed_layer_thickness_defined_by_temperature"                                unit="m"                         /> 
    94109        <field id="pycndep"      long_name="Pycnocline Depth (dsigma[dT=-0.2] wrt 10m)"     standard_name="ocean_mixed_layer_thickness_defined_by_sigma_theta"                                unit="m"                         /> 
    95         <field id="BLT"          long_name="Barrier Layer Thickness"                                                                                                                          unit="m"                          > topthdep - pycndep </field> 
     110        <field id="BLT"          long_name="Barrier Layer Thickness"                                                                                                                          unit="m"   > topthdep - pycndep </field> 
    96111        <field id="tinv"         long_name="Max of vertical invertion of temperature"                                                                                                         unit="degC"                      /> 
    97112        <field id="depti"        long_name="Depth of max. vert. inv. of temperature"                                                                                                          unit="m"                         /> 
    98         <field id="20d"          long_name="Depth of 20C isotherm"                          standard_name="depth_of_isosurface_of_sea_water_potential_temperature"                            unit="m"      axis_ref="iax_20C" /> 
    99         <field id="28d"          long_name="Depth of 28C isotherm"                          standard_name="depth_of_isosurface_of_sea_water_potential_temperature"                            unit="m"      axis_ref="iax_28C" /> 
     113   <field id="20d"          long_name="Depth of 20C isotherm"                          standard_name="depth_of_isosurface_of_sea_water_potential_temperature"                            unit="m"   axis_ref="iax_20C" /> 
     114        <field id="26d"          long_name="Depth of 26C isotherm"                          standard_name="depth_of_isosurface_of_sea_water_potential_temperature"                            unit="m"   axis_ref="iax_26C"   /> 
     115        <field id="28d"          long_name="Depth of 28C isotherm"                          standard_name="depth_of_isosurface_of_sea_water_potential_temperature"                            unit="m"   axis_ref="iax_28C" /> 
    100116        <field id="hc300"        long_name="Heat content 0-300m"                            standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content"   unit="J/m2"                      /> 
     117        <field id="hc700"        long_name="Heat content 0-700m"                            standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content"   unit="J/m2"                      /> 
     118        <field id="hc2000"       long_name="Heat content 0-2000m"                           standard_name="integral_of_sea_water_potential_temperature_wrt_depth_expressed_as_heat_content"   unit="J/m2"                      /> 
    101119 
    102120        <!-- variables available with diaar5 --> 
     
    321339 
    322340          <!-- available if key_oasis3 + conservative method --> 
    323           <field id="rain"          long_name="Liquid precipitation"                                     standard_name="rainfall_flux"                                                                 unit="kg/m2/s"  /> 
     341     <field id="rain"          long_name="Liquid precipitation"                                     standard_name="rainfall_flux"                                                                 unit="kg/m2/s"  /> 
     342          <field id="rain_ao_cea"   long_name="Liquid precipitation over ice-free ocean (cell average)"  standard_name="rainfall_flux"                                                                 unit="kg/m2/s"  /> 
    324343          <field id="evap_ao_cea"   long_name="Evaporation over ice-free ocean (cell average)"           standard_name="water_evaporation_flux"                                                        unit="kg/m2/s"  /> 
    325344          <field id="isnwmlt_cea"   long_name="Snow over Ice melting (cell average)"                     standard_name="surface_snow_melt_flux"                                                        unit="kg/m2/s"  /> 
     
    362381   </field_group> 
    363382    
     383   <!-- scalar variables --> 
     384   <field_group id="SBC_0D"  grid_ref="grid_1point" > 
     385   </field_group> 
    364386 
    365387      </field_group> <!-- SBC --> 
     
    410432       
    411433      <field_group id="grid_U"   grid_ref="grid_U_2D"> 
    412         <field id="e3u"          long_name="U-cell thickness"                                       standard_name="cell_thickness"              unit="m"          grid_ref="grid_U_3D" /> 
    413         <field id="e3u_0"        long_name="Initial U-cell thickness"                               standard_name="ref_cell_thickness"          unit="m"          grid_ref="grid_U_3D"/> 
    414         <field id="utau"         long_name="Wind Stress along i-axis"                               standard_name="surface_downward_x_stress"   unit="N/m2"                            /> 
    415         <field id="uoce"         long_name="ocean current along i-axis"                             standard_name="sea_water_x_velocity"        unit="m/s"        grid_ref="grid_U_3D" /> 
    416         <field id="uoce_e3u"     long_name="ocean current along i-axis  (thickness weighted)"                                                   unit="m/s"        grid_ref="grid_U_3D"  > uoce * e3u </field> 
     434        <field id="e2u"           long_name="U-cell width in meridional direction"                   standard_name="cell_width"                  unit="m"                               /> 
     435        <field id="e3u"           long_name="U-cell thickness"                                       standard_name="cell_thickness"              unit="m"          grid_ref="grid_U_3D" /> 
     436        <field id="e3u_0"         long_name="Initial U-cell thickness"                               standard_name="ref_cell_thickness"          unit="m"          grid_ref="grid_U_3D"/> 
     437        <field id="utau"          long_name="Wind Stress along i-axis"                               standard_name="surface_downward_x_stress"   unit="N/m2"                            /> 
     438        <field id="uoce"          long_name="ocean current along i-axis"                             standard_name="sea_water_x_velocity"        unit="m/s"        grid_ref="grid_U_3D" /> 
     439      <field id="uoce_e3u"      long_name="ocean current along i-axis  (thickness weighted)"                                                   unit="m/s"        grid_ref="grid_U_3D"  > uoce * e3u </field> 
     440      <field id="uoce_e3u_vsum" long_name="ocean current along i-axis * e3u summed on the vertical"  field_ref="uoce_e3u"    unit="m3/s"       grid_ref="grid_U_vsum"/> 
     441        <field id="uocetr_vsum"   long_name="ocean transport along i-axis  summed on the vertical"         field_ref="e2u"       unit="m3/s"> this * uoce_e3u_vsum  </field>  
     442 
     443        <field id="uocetr_vsum_op"    long_name="ocean current along i-axis * e3u * e2u summed on the vertical"  read_access="true"  freq_op="1mo"    field_ref="e2u"       unit="m3/s"> @uocetr_vsum </field> 
     444        <field id="uocetr_vsum_cumul" long_name="ocean current along i-axis * e3u * e2u cumulated from southwest point" freq_offset="_reset_" operation="instant" freq_op="1mo"  unit="m3/s" />  
     445        <field id="msftbarot"         long_name="ocean_barotropic_mass_streamfunction"   unit="kg s-1" > uocetr_vsum_cumul * $rau0 </field> 
     446 
     447 
    417448        <field id="ssu"          long_name="ocean surface current along i-axis"                                                                 unit="m/s"                             /> 
    418449        <field id="sbu"          long_name="ocean bottom current along i-axis"                                                                  unit="m/s"                             /> 
     
    434465 
    435466        <!-- uoce_eiv: available EIV (ln_ldfeiv=T and ln_ldfeiv_dia=T) --> 
    436         <field id="uoce_eiv"     long_name="EIV ocean current along i-axis"   standard_name="bolus_sea_water_x_velocity"   unit="m/s"   grid_ref="grid_U_3D" /> 
     467      <field id="uoce_eiv"      long_name="EIV ocean current along i-axis"                                  standard_name="bolus_sea_water_x_velocity"                     unit="m/s"   grid_ref="grid_U_3D" /> 
     468        <field id="ueiv_masstr"   long_name="EIV Ocean Mass X Transport"                                      standard_name="bolus_ocean_mass_x_transport"                   unit="kg/s"  grid_ref="grid_U_3D" /> 
     469        <field id="ueiv_heattr"   long_name="ocean bolus heat transport along i-axis"                         standard_name="ocean_heat_x_transport_due_to_bolus_advection"  unit="W"                         /> 
     470        <field id="ueiv_salttr"   long_name="ocean bolus salt transport along i-axis"                         standard_name="ocean_salt_x_transport_due_to_bolus_advection"  unit="Kg"                        /> 
     471        <field id="ueiv_heattr3d" long_name="ocean bolus heat transport along i-axis"                         standard_name="ocean_heat_x_transport_due_to_bolus_advection"  unit="W"     grid_ref="grid_U_3D" /> 
     472        <field id="ueiv_salttr3d" long_name="ocean bolus salt transport along i-axis"                         standard_name="ocean_salt_x_transport_due_to_bolus_advection"  unit="kg"    grid_ref="grid_U_3D" /> 
    437473 
    438474        <!-- uoce_bbl: available with ln_trabbl=T and nn_bbl_adv=1 --> 
     
    448484        <field id="utbl"         long_name="zonal current in the Losh tbl"     unit="m/s" /> 
    449485 
    450         <field id="u_masstr"      long_name="Ocean Mass X Transport"                                          standard_name="ocean_mass_x_transport"                         unit="kg/s" grid_ref="grid_U_3D" /> 
     486        <!-- variables available with diaar5 --> 
     487        <field id="u_masstr"      long_name="Ocean Mass X Transport"                                          standard_name="ocean_mass_x_transport"                         unit="kg/s"  grid_ref="grid_U_3D" /> 
    451488        <field id="u_masstr_vint" long_name="vertical integral of ocean eulerian mass transport along i-axis" standard_name="vertical_integral_of_ocean_mass_x_transport"    unit="kg/s"                      /> 
    452489        <field id="u_heattr"      long_name="ocean eulerian heat transport along i-axis"                      standard_name="ocean_heat_x_transport"                         unit="W"                         /> 
     
    454491        <field id="uadv_heattr"   long_name="ocean advective heat transport along i-axis"                     standard_name="advectice_ocean_heat_x_transport"               unit="W"                         /> 
    455492        <field id="uadv_salttr"   long_name="ocean advective salt transport along i-axis"                     standard_name="advectice_ocean_salt_x_transport"               unit="1e-3*kg/s"                 /> 
    456         <field id="ueiv_heattr"   long_name="ocean bolus heat transport along i-axis"                         standard_name="ocean_heat_x_transport_due_to_bolus_advection"  unit="W"                         /> 
    457         <field id="ueiv_salttr"   long_name="ocean bolus salt transport along i-axis"                         standard_name="ocean_salt_x_transport_due_to_bolus_advection"  unit="Kg"                        /> 
    458         <field id="ueiv_heattr3d" long_name="ocean bolus heat transport along i-axis"                         standard_name="ocean_heat_x_transport_due_to_bolus_advection"  unit="W"    grid_ref="grid_U_3D" /> 
    459         <field id="ueiv_salttr3d" long_name="ocean bolus salt transport along i-axis"                         standard_name="ocean_salt_x_transport_due_to_bolus_advection"  unit="kg"   grid_ref="grid_U_3D" /> 
    460493        <field id="udiff_heattr"  long_name="ocean diffusion heat transport along i-axis"                     standard_name="ocean_heat_x_transport_due_to_diffusion"        unit="W"                         /> 
    461494        <field id="udiff_salttr"  long_name="ocean diffusion salt transport along i-axis"                     standard_name="ocean_salt_x_transport_due_to_diffusion"        unit="1e-3*kg/s"                 /> 
     
    465498       
    466499      <field_group id="grid_V"   grid_ref="grid_V_2D"> 
     500        <field id="e1v"          long_name="V-cell width in longitudinal direction"                 standard_name="cell_width"                  unit="m"                              /> 
    467501        <field id="e3v"          long_name="V-cell thickness"                                       standard_name="cell_thickness"              unit="m"          grid_ref="grid_V_3D" /> 
    468502        <field id="e3v_0"        long_name="Initial V-cell thickness"                               standard_name="ref_cell_thickness"          unit="m"          grid_ref="grid_V_3D" /> 
     
    489523 
    490524        <!-- voce_eiv: available EIV (ln_ldfeiv=T and ln_ldfeiv_dia=T)  --> 
    491         <field id="voce_eiv"     long_name="EIV ocean current along j-axis"   standard_name="bolus_sea_water_y_velocity"   unit="m/s"   grid_ref="grid_V_3D" /> 
     525   <field id="voce_eiv"     long_name="EIV ocean current along j-axis"  standard_name="bolus_sea_water_y_velocity"     unit="m/s"   grid_ref="grid_V_3D" /> 
     526        <field id="veiv_masstr"  long_name="EIV Ocean Mass Y Transport"      standard_name="bolus_ocean_mass_y_transport"   unit="kg/s"  grid_ref="grid_V_3D" /> 
     527        <field id="veiv_heattr"   long_name="ocean bolus heat transport along j-axis"       standard_name="ocean_heat_y_transport_due_to_bolus_advection"   unit="W"                         /> 
     528        <field id="veiv_salttr"   long_name="ocean bolus salt transport along j-axis"       standard_name="ocean_salt_x_transport_due_to_bolus_advection"   unit="Kg"                        /> 
     529        <field id="veiv_heattr3d" long_name="ocean bolus heat transport along j-axis"       standard_name="ocean_heat_y_transport_due_to_bolus_advection"   unit="W"    grid_ref="grid_V_3D" /> 
     530        <field id="veiv_salttr3d" long_name="ocean bolus salt transport along j-axis"       standard_name="ocean_salt_y_transport_due_to_bolus_advection"   unit="kg"   grid_ref="grid_V_3D" /> 
     531 
    492532 
    493533        <!-- voce_bbl: available with ln_trabbl=T and nn_bbl_adv=1 --> 
     
    509549        <field id="vadv_heattr"   long_name="ocean advective heat transport along j-axis"   standard_name="advectice_ocean_heat_y_transport"                unit="W"                         /> 
    510550        <field id="vadv_salttr"   long_name="ocean advective salt transport along j-axis"   standard_name="advectice_ocean_salt_y_transport"                unit="1e-3*kg/s"                 /> 
    511         <field id="veiv_heattr"   long_name="ocean bolus heat transport along j-axis"       standard_name="ocean_heat_y_transport_due_to_bolus_advection"   unit="W"                         /> 
    512         <field id="veiv_salttr"   long_name="ocean bolus salt transport along j-axis"       standard_name="ocean_salt_x_transport_due_to_bolus_advection"   unit="Kg"                        /> 
    513         <field id="veiv_heattr3d" long_name="ocean bolus heat transport along j-axis"       standard_name="ocean_heat_y_transport_due_to_bolus_advection"   unit="W"    grid_ref="grid_V_3D" /> 
    514         <field id="veiv_salttr3d" long_name="ocean bolus salt transport along j-axis"       standard_name="ocean_salt_y_transport_due_to_bolus_advection"   unit="kg"   grid_ref="grid_V_3D" /> 
    515551        <field id="vdiff_heattr"  long_name="ocean diffusion heat transport along j-axis"   standard_name="ocean_heat_y_transport_due_to_diffusion"         unit="W"                         /> 
    516552        <field id="vdiff_salttr"  long_name="ocean diffusion salt transport along j-axis"   standard_name="ocean_salt_y_transport_due_to_diffusion"         unit="1e-3*kg/s"                 /> 
     
    521557      <field_group id="grid_W" grid_ref="grid_W_3D"> 
    522558        <field id="e3w"          long_name="W-cell thickness"                              standard_name="cell_thickness"                         unit="m"    /> 
    523         <field id="woce"         long_name="ocean vertical velocity"                       standard_name="upward_sea_water_velocity"              unit="m/s"  /> 
     559   <field id="woce"         long_name="ocean vertical velocity"                       standard_name="upward_sea_water_velocity"              unit="m/s"  /> 
     560   <field id="woce_e3w"     long_name="ocean vertical velocity * e3w"                                                                        unit="m2/s"  > woce * e3w </field>   
    524561        <field id="wocetr_eff"   long_name="effective ocean vertical transport"                                                                   unit="m3/s" /> 
    525562 
    526563        <!-- woce_eiv: available with EIV  (ln_ldfeiv=T and ln_ldfeiv_dia=T)  --> 
    527564        <field id="woce_eiv"     long_name="EIV ocean vertical velocity"                    standard_name="bolus_upward_sea_water_velocity"       unit="m/s"  /> 
    528  
    529         <field id="avt"          long_name="vertical eddy diffusivity"                      standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
     565        <field id="weiv_masstr"  long_name="EIV Upward Ocean Mass Transport"  standard_name="bolus_upward_ocean_mass_transport"             unit="kg/s"   /> 
     566        <field id="weiv_heattr3d" long_name="ocean bolus heat transport"    standard_name="ocean_heat_z_transport_due_to_bolus_advection"   unit="W"    /> 
     567        <field id="weiv_salttr3d" long_name="ocean bolus salt transport"    standard_name="ocean_salt_z_transport_due_to_bolus_advection"   unit="kg"   /> 
     568 
     569   <field id="avt"          long_name="vertical eddy diffusivity"                      standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
     570        <field id="avt_e3w"      long_name="vertical heat diffusivity * e3w"                unit="m3/s" > avt * e3w </field>      
    530571        <field id="logavt"       long_name="logarithm of vertical eddy diffusivity"         standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
    531572        <field id="avm"          long_name="vertical eddy viscosity"                        standard_name="ocean_vertical_momentum_diffusivity"   unit="m2/s" /> 
     573        <field id="avm_e3w"      long_name="vertical eddy viscosity * e3w"   unit="m3/s" > avm * e3w </field>  
    532574 
    533575        <!-- avs: /= avt with ln_zdfddm=T --> 
    534576        <field id="avs"          long_name="salt vertical eddy diffusivity"                 standard_name="ocean_vertical_salt_diffusivity"       unit="m2/s" /> 
    535         <field id="logavs"       long_name="logarithm of salt vertical eddy diffusivity"    standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
     577        <field id="avs_e3w"      long_name="vertical salt diffusivity * e3w"   unit="m3/s" > avs * e3w </field>  
     578   <field id="logavs"       long_name="logarithm of salt vertical eddy diffusivity"    standard_name="ocean_vertical_heat_diffusivity"       unit="m2/s" /> 
    536579 
    537580        <!-- avt_evd and avm_evd: available with ln_zdfevd --> 
    538581        <field id="avt_evd"      long_name="convective enhancement of vertical diffusivity" standard_name="ocean_vertical_tracer_diffusivity_due_to_convection"     unit="m2/s" /> 
    539         <field id="avm_evd"      long_name="convective enhancement of vertical viscosity"   standard_name="ocean_vertical_momentum_diffusivity_due_to_convection"   unit="m2/s" /> 
     582        <field id="avt_evd_e3w"  long_name="convective enhancement to vertical diffusivity * e3w "    unit="m3/s" > avt_evd * e3w </field>  
     583   <field id="avm_evd"      long_name="convective enhancement of vertical viscosity"   standard_name="ocean_vertical_momentum_diffusivity_due_to_convection"   unit="m2/s" /> 
    540584 
    541585        <!-- avt_tide: available with ln_zdfiwm=T --> 
     
    568612        <field id="masstot"    long_name="global total mass"                            standard_name="sea_water_mass"                                 unit="kg"   /> 
    569613        <field id="temptot"    long_name="global mean temperature"                      standard_name="sea_water_potential_temperature"                unit="degC" /> 
    570         <field id="saltot"     long_name="global mean salinity"                         standard_name="sea_water_salinity"                             unit="1e-3" /> 
    571         <field id="fram_trans" long_name="Sea Ice Mass Transport Through Fram Strait"   standard_name="sea_ice_transport_across_line"                  unit="kg/s" /> 
     614   <field id="saltot"     long_name="global mean salinity"                         standard_name="sea_water_salinity"                             unit="1e-3" /> 
     615        <field id="ssttot"     long_name="global mean sea surface temperature"          standard_name="sea_water_conservative_temperature"             unit="degC" /> 
     616         <!-- EOS = TEOS-10 --> 
     617        <field id="temptot_pot" long_name="global mean potential temperature"            standard_name="sea_water_potential_temperature"               unit="degC" /> 
    572618 
    573619         <!-- available with ln_diahsb --> 
     
    586632        <field id="bgmissal"     long_name="global mean salinity error due to free surface (linssh true)"                                                                          unit="1e-3"     /> 
    587633      </field_group> 
    588        
    589       <!-- variables available with ln_floats --> 
     634 
     635 
     636      <!-- transects --> 
     637      <field_group id="oce_straits"> 
     638         <field id="uoce_e3u_ave"         long_name="Monthly average of u*e3u"                        field_ref="uoce_e3u"                    freq_op="1mo"   freq_offset="_reset_" > @uoce_e3u </field> 
     639         <field id="uoce_e3u_ave_vsum"    long_name="Vertical sum of u*e3u"                           field_ref="uoce_e3u_ave"         grid_ref="grid_U_vsum"     /> 
     640         <field id="uocetr_vsum_section"  long_name="Total 2D transport in i-direction"               field_ref="uoce_e3u_ave_vsum"    grid_ref="grid_U_scalar"  detect_missing_value="true"> this * e2u </field> 
     641         <field id="uocetr_strait"        long_name="Total transport across lines in i-direction"     field_ref="uocetr_vsum_section"  grid_ref="grid_U_4strait" /> 
     642         <field id="u_masstr_strait"      long_name="Sea water transport across line in i-direction"  field_ref="uocetr_strait"        grid_ref="grid_U_4strait_hsum" unit="kg/s"> this * maskMFO_u * $rau0 </field> 
     643 
     644         <field id="voce_e3v_ave"         long_name="Monthly average of v*e3v"                        field_ref="voce_e3v"                    freq_op="1mo"   freq_offset="_reset_" > @voce_e3v </field> 
     645         <field id="voce_e3v_ave_vsum"    long_name="Vertical sum of v*e3v"                           field_ref="voce_e3v_ave"         grid_ref="grid_V_vsum"      /> 
     646         <field id="vocetr_vsum_section"  long_name="Total 2D transport of in j-direction"            field_ref="voce_e3v_ave_vsum"    grid_ref="grid_V_scalar"  detect_missing_value="true"> this * e1v </field> 
     647         <field id="vocetr_strait"        long_name="Total transport across lines in j-direction"     field_ref="vocetr_vsum_section"  grid_ref="grid_V_4strait"  /> 
     648         <field id="v_masstr_strait"      long_name="Sea water transport across line in j-direction"  field_ref="vocetr_strait"        grid_ref="grid_V_4strait_hsum" unit="kg/s"> this * maskMFO_v * $rau0 </field> 
     649 
     650         <field id="masstr_strait"        long_name="Sea water transport across line"                                                  grid_ref="grid_4strait"  > u_masstr_strait + v_masstr_strait </field> 
     651      </field_group> 
     652 
     653       
     654      <!-- variables available with key_float --> 
    590655 
    591656      <field_group id="floatvar" grid_ref="grid_T_nfloat"  operation="instant" > 
     
    621686      <!-- Poleward transport : ptr -->      
    622687      <field_group id="diaptr" >   
    623         <field id="zomsfglo"          long_name="Meridional Stream-Function: Global"           unit="Sv"        grid_ref="gznl_W_3D" /> 
    624         <field id="zomsfatl"          long_name="Meridional Stream-Function: Atlantic"         unit="Sv"        grid_ref="gznl_W_3D" /> 
    625         <field id="zomsfpac"          long_name="Meridional Stream-Function: Pacific"          unit="Sv"        grid_ref="gznl_W_3D" /> 
    626         <field id="zomsfind"          long_name="Meridional Stream-Function: Indian"           unit="Sv"        grid_ref="gznl_W_3D" /> 
    627         <field id="zomsfipc"          long_name="Meridional Stream-Function: Pacific+Indian"   unit="Sv"        grid_ref="gznl_W_3D" /> 
    628         <field id="zotemglo"          long_name="Zonal Mean Temperature : Global"              unit="degree_C"  grid_ref="gznl_T_3D" /> 
    629         <field id="zotematl"          long_name="Zonal Mean Temperature : Atlantic"            unit="degree_C"  grid_ref="gznl_T_3D" /> 
    630         <field id="zotempac"          long_name="Zonal Mean Temperature : Pacific"             unit="degree_C"  grid_ref="gznl_T_3D" /> 
    631         <field id="zotemind"          long_name="Zonal Mean Temperature : Indian"              unit="degree_C"  grid_ref="gznl_T_3D" /> 
    632         <field id="zotemipc"          long_name="Zonal Mean Temperature : Pacific+Indian"      unit="degree_C"  grid_ref="gznl_T_3D" /> 
    633         <field id="zosalglo"          long_name="Zonal Mean Salinity : Global"                 unit="0.001"     grid_ref="gznl_T_3D" /> 
    634         <field id="zosalatl"          long_name="Zonal Mean Salinity : Atlantic"               unit="0.001"     grid_ref="gznl_T_3D" /> 
    635         <field id="zosalpac"          long_name="Zonal Mean Salinity : Pacific"                unit="0.001"     grid_ref="gznl_T_3D" /> 
    636         <field id="zosalind"          long_name="Zonal Mean Salinity : Indian"                 unit="0.001"     grid_ref="gznl_T_3D" /> 
    637         <field id="zosalipc"          long_name="Zonal Mean Salinity : Pacific+Indian"         unit="0.001"     grid_ref="gznl_T_3D" /> 
    638         <field id="zosrfglo"          long_name="Zonal Mean Surface"                           unit="m2"        grid_ref="gznl_T_3D" /> 
    639         <field id="zosrfatl"          long_name="Zonal Mean Surface : Atlantic"                unit="m2"        grid_ref="gznl_T_3D" /> 
    640         <field id="zosrfpac"          long_name="Zonal Mean Surface : Pacific"                 unit="m2"        grid_ref="gznl_T_3D" /> 
    641         <field id="zosrfind"          long_name="Zonal Mean Surface : Indian"                  unit="m2"        grid_ref="gznl_T_3D" /> 
    642         <field id="zosrfipc"          long_name="Zonal Mean Surface : Pacific+Indian"          unit="m2"        grid_ref="gznl_T_3D" /> 
    643         <field id="sophtadv"          long_name="Advective Heat Transport"                     unit="PW"        grid_ref="gznl_T_2D" /> 
    644         <field id="sophtadv_atl"      long_name="Advective Heat Transport: Atlantic"           unit="PW"        grid_ref="gznl_T_2D" /> 
    645         <field id="sophtadv_pac"      long_name="Advective Heat Transport: Pacific"            unit="PW"        grid_ref="gznl_T_2D" /> 
    646         <field id="sophtadv_ind"      long_name="Advective Heat Transport: Indian"             unit="PW"        grid_ref="gznl_T_2D" /> 
    647         <field id="sophtadv_ipc"      long_name="Advective Heat Transport: Pacific+Indian"     unit="PW"        grid_ref="gznl_T_2D" /> 
    648         <field id="sophtldf"          long_name="Diffusive Heat Transport"                     unit="PW"        grid_ref="gznl_T_2D" /> 
    649         <field id="sophtldf_atl"      long_name="Diffusive Heat Transport: Atlantic"           unit="PW"        grid_ref="gznl_T_2D" /> 
    650         <field id="sophtldf_pac"      long_name="Diffusive Heat Transport: Pacific"            unit="PW"        grid_ref="gznl_T_2D" /> 
    651         <field id="sophtldf_ind"      long_name="Diffusive Heat Transport: Indian"             unit="PW"        grid_ref="gznl_T_2D" /> 
    652         <field id="sophtldf_ipc"      long_name="Diffusive Heat Transport: Pacific+Indian"     unit="PW"        grid_ref="gznl_T_2D" /> 
    653         <field id="sophtove"          long_name="Overturning Heat Transport"                   unit="PW"        grid_ref="gznl_T_2D" /> 
    654         <field id="sophtove_atl"      long_name="Overturning Heat Transport: Atlantic"         unit="PW"        grid_ref="gznl_T_2D" /> 
    655         <field id="sophtove_pac"      long_name="Overturning Heat Transport: Pacific"          unit="PW"        grid_ref="gznl_T_2D" /> 
    656         <field id="sophtove_ind"      long_name="Overturning Heat Transport: Indian"           unit="PW"        grid_ref="gznl_T_2D" /> 
    657         <field id="sophtove_ipc"      long_name="Overturning Heat Transport: Pacific+Indian"   unit="PW"        grid_ref="gznl_T_2D" /> 
    658         <field id="sophtbtr"          long_name="Barotropic Heat Transport"                    unit="PW"        grid_ref="gznl_T_2D" /> 
    659         <field id="sophtbtr_atl"      long_name="Barotropic Heat Transport: Atlantic"          unit="PW"        grid_ref="gznl_T_2D" /> 
    660         <field id="sophtbtr_pac"      long_name="Barotropic Heat Transport: Pacific"           unit="PW"        grid_ref="gznl_T_2D" /> 
    661         <field id="sophtbtr_ind"      long_name="Barotropic Heat Transport: Indian"            unit="PW"        grid_ref="gznl_T_2D" /> 
    662         <field id="sophtbtr_ipc"      long_name="Barotropic Heat Transport: Pacific+Indian"    unit="PW"        grid_ref="gznl_T_2D" /> 
    663         <field id="sophteiv"          long_name="Heat Transport from mesoscale eddy advection"                     unit="PW"       grid_ref="gznl_T_2D" /> 
    664         <field id="sophteiv_atl"      long_name="Heat Transport from mesoscale eddy advection: Atlantic"           unit="PW"       grid_ref="gznl_T_2D" /> 
    665         <field id="sophteiv_pac"      long_name="Heat Transport from mesoscale eddy advection: Pacific"            unit="PW"       grid_ref="gznl_T_2D" /> 
    666         <field id="sophteiv_ind"      long_name="Heat Transport from mesoscale eddy advection: Indian"             unit="PW"       grid_ref="gznl_T_2D" /> 
    667         <field id="sophteiv_ipc"      long_name="Heat Transport from mesoscale eddy advection: Pacific+Indian"     unit="PW"       grid_ref="gznl_T_2D" /> 
    668         <field id="sopstadv"          long_name="Advective Salt Transport"                     unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    669         <field id="sopstadv_atl"      long_name="Advective Salt Transport: Atlantic"           unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    670         <field id="sopstadv_pac"      long_name="Advective Salt Transport: Pacific"            unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    671         <field id="sopstadv_ind"      long_name="Advective Salt Transport: Indian"             unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    672         <field id="sopstadv_ipc"      long_name="Advective Salt Transport: Pacific+Indian"     unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    673         <field id="sopstove"          long_name="Overturning Salt Transport"                   unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    674         <field id="sopstove_atl"      long_name="Overturning Salt Transport: Atlantic"         unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    675         <field id="sopstove_pac"      long_name="Overturning Salt Transport: Pacific"          unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    676         <field id="sopstove_ind"      long_name="Overturning Salt Transport: Indian"           unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    677         <field id="sopstove_ipc"      long_name="Overturning Salt Transport: Pacific+Indian"   unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    678         <field id="sopstbtr"          long_name="Barotropic Salt Transport"                    unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    679         <field id="sopstbtr_atl"      long_name="Barotropic Salt Transport: Atlantic"          unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    680         <field id="sopstbtr_pac"      long_name="Barotropic Salt Transport: Pacific"           unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    681         <field id="sopstbtr_ind"      long_name="Barotropic Salt Transport: Indian"            unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    682         <field id="sopstbtr_ipc"      long_name="Barotropic Salt Transport: Pacific+Indian"    unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    683         <field id="sopstldf"          long_name="Diffusive Salt Transport"                     unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    684         <field id="sopstldf_atl"      long_name="Diffusive Salt Transport: Atlantic"           unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    685         <field id="sopstldf_pac"      long_name="Diffusive Salt Transport: Pacific"            unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    686         <field id="sopstldf_ind"      long_name="Diffusive Salt Transport: Indian"             unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    687         <field id="sopstldf_ipc"      long_name="Diffusive Salt Transport: Pacific+Indian"     unit="Giga g/s"  grid_ref="gznl_T_2D" /> 
    688         <field id="sopsteiv"          long_name="Salt Transport from mesoscale eddy advection"                     unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    689         <field id="sopsteiv_atl"      long_name="Salt Transport from mesoscale eddy advection: Atlantic"           unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    690         <field id="sopsteiv_pac"      long_name="Salt Transport from mesoscale eddy advection: Pacific"            unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    691         <field id="sopsteiv_ind"      long_name="Salt Transport from mesoscale eddy advection: Indian"             unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    692         <field id="sopsteiv_ipc"      long_name="Salt Transport from mesoscale eddy advection: Pacific+Indian"     unit="Giga g/s"       grid_ref="gznl_T_2D" />        
    693       </field_group> 
     688        <field id="zomsf"         long_name="Overturning Stream-Function : All basins"                     unit="Sv"         grid_ref="grid_znl_W_3D" /> 
     689        <field id="zotem"         long_name="Zonal Mean Temperature : All basins"                          unit="degree_C"   grid_ref="grid_znl_T_3D" /> 
     690        <field id="zosal"         long_name="Zonal Mean Salinity : All basins"                             unit="0.001"      grid_ref="grid_znl_T_3D" /> 
     691        <field id="zosrf"         long_name="Zonal Mean Surface : All basins"                              unit="m2"         grid_ref="grid_znl_T_3D" /> 
     692        <field id="sophtove"      long_name="Overturning Heat Transport: All basins"                       unit="PW"         grid_ref="grid_znl_T_2D" /> 
     693        <field id="sopstove"      long_name="Overturning Salt Transport: All basins"                       unit="Giga g/s"   grid_ref="grid_znl_T_2D" /> 
     694        <field id="sophtbtr"      long_name="Barotropic Heat Transport: All basins"                        unit="PW"         grid_ref="grid_znl_T_2D" /> 
     695        <field id="sopstbtr"      long_name="Barotropic Salt Transport: All basins"                        unit="Giga g/s"   grid_ref="grid_znl_T_2D" />  
     696        <field id="sophtadv"      long_name="Advective Heat Transport: All basins"                         unit="PW"         grid_ref="grid_znl_T_2D" /> 
     697        <field id="sopstadv"      long_name="Advective Salt Transport: All basins"                         unit="Giga g/s"   grid_ref="grid_znl_T_2D" /> 
     698        <field id="sophtldf"      long_name="Diffusive Heat Transport: All basins"                         unit="PW"         grid_ref="grid_znl_T_2D" /> 
     699        <field id="sopstldf"      long_name="Diffusive Salt Transport: All basins"                         unit="Giga g/s"   grid_ref="grid_znl_T_2D" /> 
     700        <field id="sophtvtr"      long_name="Heat Transport : All basins"                                  unit="PW"         grid_ref="grid_znl_T_2D" /> 
     701        <field id="sopstvtr"      long_name="Salt Transport : All basins"                                  unit="Giga g/s"   grid_ref="grid_znl_T_2D" />   
     702        <field id="sophteiv"      long_name="Heat Transport from mesoscale eddy advection: All basins"     unit="PW"         grid_ref="grid_znl_T_2D" /> 
     703        <field id="sopsteiv"      long_name="Salt Transport from mesoscale eddy advection : All basins"    unit="Giga g/s"   grid_ref="grid_znl_T_2D" /> 
     704   <field id="sopstadv"      long_name="Advective Salt Transport"                                     unit="Giga g/s"   grid_ref="grid_znl_T_2D" /> 
     705        <field id="sophtgyre"     long_name="Overturning heat transport due to gyre" field_ref="sophtove"  unit="W"          grid_ref="grid_znl_T_2D" > sophtvtr - sophtove  </field> 
     706   <field id="sopstgyre"     long_name="Overturning salt transport due to gyre" field_ref="sopstove"  unit="kg/s"       grid_ref="grid_znl_T_2D" > sophtvtr - sopstove  </field> 
     707       </field_group> 
     708 
     709       <field_group id="constant_fields"  grid_ref="grid_T_2D"  operation="once" > 
     710         <field id="bathy"       long_name="Sea floor depth below geoid"               standard_name="sea_floor_depth_below_geoid"               unit="m"/> 
     711         <field id="areacello"   long_name="Horizontal area of ocean grid cells"       standard_name="cell_area"                                 unit="m2" /> 
     712         <field id="hfgeou"      long_name="Upward geothermal heat flux at sea floor"  standard_name="upward_geothermal_heat_flux_at_sea_floor"  unit="W/m2"/> 
     713         <field id="basins"      long_name="ocean tracer region masks"                 standard_name="ocean_tracer_region_masks"   unit="none" grid_ref="grid_basin"  /> 
     714       </field_group> 
     715 
    694716 
    695717    <!--  
     
    724746     <field id="ttrd_totad"    long_name="temperature-trend: total advection"         standard_name="tendency_of_sea_water_salinity_due_to_advection"              unit="degC/s"                        /> 
    725747     <field id="strd_totad"    long_name="salinity   -trend: total advection"         standard_name="tendency_of_sea_water_salinity_due_to_advection"              unit="1e-3/s"                        /> 
    726      <field id="ttrd_sad"      long_name="temperature-trend: surface adv. (linssh true)"                                                                                unit="degC/s"   grid_ref="grid_T_2D" /> 
    727      <field id="strd_sad"      long_name="salinity   -trend: surface adv. (linssh true)"                                                                                unit="1e-3/s"   grid_ref="grid_T_2D" /> 
     748     <field id="ttrd_sad"      long_name="temperature-trend: surface adv. (linssh true)"                                                                           unit="degC/s"   grid_ref="grid_T_2D" /> 
     749     <field id="strd_sad"      long_name="salinity   -trend: surface adv. (linssh true)"                                                                           unit="1e-3/s"   grid_ref="grid_T_2D" /> 
    728750     <field id="ttrd_ldf"      long_name="temperature-trend: lateral  diffusion"      standard_name="tendency_of_sea_water_temperature_due_to_horizontal_mixing"   unit="degC/s"                        /> 
    729751     <field id="strd_ldf"      long_name="salinity   -trend: lateral  diffusion"      standard_name="tendency_of_sea_water_salinity_due_to_horizontal_mixing"      unit="1e-3/s"                        /> 
     
    782804     <field id="ttrd_npc_e3t"      unit="degC/s * m"  >  ttrd_npc * e3t </field> 
    783805     <field id="strd_npc_e3t"      unit="1e-3/s * m"  >  strd_npc * e3t </field> 
    784      <field id="ttrd_qns_e3t"      unit="degC/s * m"  >  ttrd_qns * e3t_surf </field> 
    785      <field id="strd_cdt_e3t"      unit="degC/s * m"  >  strd_cdt * e3t_surf </field> 
     806     <field id="ttrd_qns_e3t"      unit="degC/s * m"  >  ttrd_qns * e3ts </field> 
     807     <field id="strd_cdt_e3t"      unit="degC/s * m"  >  strd_cdt * e3ts </field> 
    786808     <field id="ttrd_qsr_e3t"      unit="degC/s * m"  >  ttrd_qsr * e3t </field> 
    787809     <field id="ttrd_bbc_e3t"      unit="degC/s * m"  >  ttrd_bbc * e3t </field> 
     
    9851007    <field_group id="groupU" > 
    9861008      <field field_ref="uoce"         name="uo"      long_name="sea_water_x_velocity"      /> 
    987       <field field_ref="ssu"          name="uos"     long_name="sea_surface_x_velocity"    /> 
    9881009      <field field_ref="utau"         name="tauuo"   long_name="surface_downward_x_stress" /> 
    9891010    </field_group> 
     
    9911012    <field_group id="groupV" > 
    9921013      <field field_ref="voce"         name="vo"      long_name="sea_water_y_velocity"      /> 
    993       <field field_ref="ssv"          name="vos"     long_name="sea_surface_y_velocity"    /> 
    9941014      <field field_ref="vtau"         name="tauvo"   long_name="surface_downward_y_stress" /> 
    9951015    </field_group> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-pisces.xml

    r11536 r12193  
    6060       <field id="NFe"          long_name="Nano iron Concentration"                  unit="mmol/m3" /> 
    6161       <field id="NFe_e3t"      long_name="NFe * e3t"                                unit="mmol/m2"  > NFe * e3t </field > 
    62        <field id="NCHL"         long_name="Nano chlorophyl Concentration"            unit="mg/m3"   /> 
     62       <field id="NCHL"         long_name="Nano chlorophyl Concentration"            unit="gChl/m3"   /> 
    6363       <field id="NCHL_e3t"     long_name="NCHL * e3t"                               unit="mmol/m2"  > NCHL * e3t </field > 
    64        <field id="DCHL"         long_name="Diatoms chlorophyl Concentration"         unit="mg/m3"   /> 
     64       <field id="DCHL"         long_name="Diatoms chlorophyl Concentration"         unit="gChl/m3"   /> 
    6565       <field id="DCHL_e3t"     long_name="DCHL * e3t"                               unit="mmol/m2"  > DCHL * e3t </field > 
    6666       <field id="NO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" /> 
     
    9999       <field id="PFe"          long_name="Picophytoplankton Fe biomass"             unit="mmol/m3" /> 
    100100       <field id="PFe_e3t"      long_name="PFe * e3t"                                unit="mmol/m2"  > PFe * e3t </field > 
    101        <field id="PCHL"         long_name="Picophytoplankton Chl biomass"            unit="mg/m3" /> 
     101       <field id="PCHL"         long_name="Picophytoplankton Chl biomass"            unit="gChl/m3" /> 
    102102       <field id="PCHL_e3t"     long_name="PCHL * e3t"                               unit="mmol/m2"  > PCHL * e3t </field > 
    103103 
     
    230230       <field id="Kg"          long_name="Gas transfer"                            unit="mol/m2/s/uatm"                   /> 
    231231       <field id="Dpco2"       long_name="Delta CO2"                               unit="uatm"                            /> 
     232       <field id="pCO2sea"     long_name="surface ocean pCO2"                      unit="uatm"                            /> 
    232233       <field id="Dpo2"        long_name="Delta O2"                                unit="uatm"                            /> 
    233234       <field id="Heup"        long_name="Euphotic layer depth"                    unit="m"                               /> 
     235       <field id="AtmCo2"      long_name="Atmospheric CO2 concentration"           unit="ppm"                               /> 
    234236       <field id="Irondep"     long_name="Iron deposition from dust"               unit="mol/m2/s"                        /> 
    235237       <field id="Ironsed"     long_name="Iron deposition from sediment"           unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    236       <field id="FESCAV"      long_name="Scavenging of Iron"                      unit="mmol-Fe/m3/s"   grid_ref="grid_T_3D" /> 
     238       <field id="FESCAV"      long_name="Scavenging of Iron"                      unit="mmol-Fe/m3/s"   grid_ref="grid_T_3D" /> 
    237239       <field id="FECOLL"      long_name="Colloidal Pumping of FeL"                unit="mmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
    238240       <field id="LGWCOLL"     long_name="Coagulation loss of ligands"             unit="mmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     
    249251       <field id="FEZOO"       long_name="microzooplankton iron recycling rate"    unit="nmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
    250252       <field id="FEZOO2"      long_name="mesozooplankton iron recycling rate"     unit="nmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
     253 
     254       <!-- PISCES tracers trends --> 
     255       <field id="INTdtAlk"    long_name="Vertically int. of change of alkalinity"             unit="mol/m2/s"                       /> 
     256       <field id="INTdtDIC"    long_name="Vertically int. of change of dissic    "             unit="mol/m2/s"                       /> 
     257       <field id="INTdtFer"    long_name="Vertically int. of change of iron      "             unit="mol/m2/s"                       /> 
     258       <field id="INTdtDIN"    long_name="Vertically int. of change of nitrogen  "             unit="mol/m2/s"                       /> 
     259       <field id="INTdtDIP"    long_name="Vertically int. of change of phophate  "             unit="mol/m2/s"                       /> 
     260       <field id="INTdtSil"    long_name="Vertically int. of change of silicon   "             unit="mol/m2/s"                       /> 
     261 
    251262 
    252263       <!-- dbio_T on T grid : variables available with diaar5 --> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/grid_def_nemo.xml

    r12182 r12193  
    1  
     1<!-- 
     2============================================================================================================ 
     3= grid definition = = DO NOT CHANGE = 
     4============================================================================================================ 
     5    --> 
     6  
    27    <grid_definition>     
    38 
    49        <!--  --> 
    510       <grid id="grid_T_2D" > 
    6          <domain id="grid_T" /> 
     11         <domain domain_ref="grid_T" /> 
    712       </grid> 
    813        <!--  --> 
    914       <grid id="grid_T_ncatice" > 
    10          <domain id="grid_T" /> 
    11          <axis id="ncatice" /> 
     15         <domain domain_ref="grid_T" /> 
     16         <axis axis_ref="ncatice" /> 
    1217       </grid> 
    1318        <!--  --> 
    1419       <grid id="grid_T_3D" > 
    15          <domain id="grid_T" /> 
    16          <axis id="deptht" /> 
     20         <domain domain_ref="grid_T" /> 
     21         <axis axis_ref="deptht" /> 
    1722       </grid> 
    1823        <!--  --> 
     
    2328        <!--  --> 
    2429       <grid id="grid_U_2D" > 
    25          <domain id="grid_U" /> 
     30         <domain domain_ref="grid_U" /> 
    2631       </grid> 
    2732        <!--  --> 
    2833       <grid id="grid_U_3D" > 
    29          <domain id="grid_U" /> 
    30          <axis id="depthu" /> 
     34         <domain domain_ref="grid_U" /> 
     35         <axis axis_ref="depthu" /> 
    3136       </grid> 
    3237        <!--  --> 
    3338       <grid id="grid_V_2D" > 
    34          <domain id="grid_V" /> 
     39         <domain domain_ref="grid_V" /> 
    3540       </grid> 
    3641        <!--  --> 
    3742       <grid id="grid_V_3D" > 
    38          <domain id="grid_V" /> 
    39          <axis id="depthv" /> 
     43         <domain domain_ref="grid_V" /> 
     44         <axis axis_ref="depthv" /> 
    4045       </grid> 
    4146        <!--  --> 
    4247       <grid id="grid_W_2D" > 
    43          <domain id="grid_W" /> 
     48         <domain domain_ref="grid_W" /> 
    4449       </grid> 
    4550        <!--  --> 
    4651       <grid id="grid_W_3D" > 
    47          <domain id="grid_W" /> 
    48          <axis id="depthw" /> 
     52         <domain domain_ref="grid_W" /> 
     53         <axis axis_ref="depthw" /> 
     54       </grid> 
     55        <!--  --> 
     56       <grid id="grid_1point" > 
     57         <domain domain_ref="1point"/> 
    4958       </grid> 
    5059        <!--  --> 
     
    5362         <axis id="nfloat" /> 
    5463       </grid> 
     64 
     65       <!-- ABL grid definition --> 
     66       <grid id="grid_TA_2D"> 
     67         <domain domain_ref="grid_T" /> 
     68       </grid> 
     69       <grid id="grid_TA_3D"> 
     70         <domain domain_ref="grid_T" /> 
     71         <axis  id="ght_abl" /> 
     72       </grid> 
     73       <grid id="grid_WA_3D"> 
     74         <domain domain_ref="grid_T" /> 
     75         <axis  id="ghw_abl" /> 
     76       </grid> 
     77       <!--  --> 
     78       <grid id="grid_EqT" > 
     79         <domain domain_ref="EqT" /> 
     80       </grid> 
     81        <!--  --> 
     82 
     83 
     84       <grid id="grid_znl_T_2D"> 
     85         <domain domain_ref="gznl" /> 
     86         <axis axis_ref="basin" /> 
     87       </grid> 
     88 
     89       <grid id="grid_znl_T_3D"> 
     90         <domain domain_ref="gznl" /> 
     91         <axis axis_ref="deptht"  /> 
     92         <axis axis_ref="basin" /> 
     93       </grid> 
     94 
     95       <grid id="grid_znl_W_3D"> 
     96         <domain domain_ref="gznl" /> 
     97         <axis axis_ref="depthw"  /> 
     98         <axis axis_ref="basin" /> 
     99       </grid> 
     100 
     101      <grid id="grid_ptr_T_2D"> 
     102         <domain domain_ref="ptr" /> 
     103         <axis axis_ref="basin" /> 
     104       </grid> 
     105 
     106       <grid id="grid_ptr_T_3D"> 
     107         <domain  domain_ref="ptr" /> 
     108         <axis axis_ref="deptht"  /> 
     109         <axis axis_ref="basin" /> 
     110       </grid> 
     111 
     112       <grid id="grid_ptr_W_3D"> 
     113         <domain  domain_ref="ptr" /> 
     114         <axis axis_ref="depthw"  /> 
     115         <axis axis_ref="basin" /> 
     116       </grid> 
     117 
     118       <grid id="grid_T_SFC"> 
     119         <domain domain_ref="grid_T" /> 
     120         <scalar> 
     121           <extract_axis position="0" /> 
     122         </scalar> 
     123       </grid> 
     124 
     125       <grid id="grid_T_vsum"> 
     126         <domain domain_ref="grid_T"/> 
     127         <scalar> 
     128            <reduce_axis operation="sum" /> 
     129         </scalar> 
     130       </grid> 
     131 
     132       <grid id="grid_U_vsum"> 
     133         <domain domain_ref="grid_U"/> 
     134         <scalar> 
     135            <reduce_axis operation="sum" /> 
     136         </scalar> 
     137       </grid> 
     138 
     139       <grid id="grid_V_vsum"> 
     140         <domain domain_ref="grid_V"/> 
     141         <scalar> 
     142            <reduce_axis operation="sum" /> 
     143         </scalar> 
     144       </grid> 
     145 
     146       <!-- for ORCA2 grid  --> 
     147       <grid id="cumul_U"> 
     148         <axis axis_ref="cumul_U" n_glo="182" > 
     149           <reduce_domain local="true" operation="sum" direction="jDir" /> 
     150           <reduce_axis operation="sum" /> 
     151         </axis> 
     152         <axis axis_ref="depthu" /> 
     153       </grid> 
     154 
     155       <!-- for eORCA1 grid 
     156 
     157       <grid id="cumul_U"> 
     158         <axis axis_ref="cumul_U" n_glo="362" > 
     159           <reduce_domain local="true" operation="sum" direction="jDir" /> 
     160           <reduce_axis operation="sum" /> 
     161         </axis> 
     162         <axis axis_ref="depthu" /> 
     163       </grid> 
     164 
     165      --> 
     166 
     167 
     168       <grid id="grid_T_zoom_300"> 
     169         <domain domain_ref="grid_T" /> 
     170         <axis axis_ref="deptht300" /> 
     171       </grid> 
     172 
     173       <grid id="grid_U_scalar" > 
     174         <domain domain_ref="grid_U" /> 
     175         <scalar/> 
     176       </grid> 
     177 
     178       <grid id="grid_V_scalar" > 
     179         <domain domain_ref="grid_V" /> 
     180         <scalar/> 
     181       </grid> 
     182  
     183       <grid id="grid_U_4strait"> 
     184         <domain domain_ref="grid_U" /> 
     185         <axis axis_ref="section"> 
     186           <duplicate_scalar/> 
     187         </axis> 
     188       </grid> 
     189  
     190       <grid id="grid_V_4strait"> 
     191         <domain domain_ref="grid_V" /> 
     192         <axis axis_ref="section"> 
     193           <duplicate_scalar/> 
     194         </axis> 
     195       </grid> 
     196  
     197       <grid id="grid_U_4strait_hsum"> 
     198         <scalar > 
     199           <reduce_domain operation="sum" local="true"/> 
     200           <reduce_scalar operation="sum" /> 
     201         </scalar> 
     202         <axis axis_ref="section"/> 
     203       </grid> 
     204  
     205       <grid id="grid_V_4strait_hsum"> 
     206         <scalar > 
     207           <reduce_domain operation="sum" local="true"/> 
     208           <reduce_scalar operation="sum" /> 
     209         </scalar> 
     210         <axis axis_ref="section"/> 
     211       </grid> 
     212  
     213       <grid id="grid_4strait"> 
     214         <axis axis_ref="section"/> 
     215       </grid> 
     216 
     217      <grid id="grid_U_4strait_ice"> 
     218        <domain domain_ref="grid_U" /> 
     219        <axis axis_ref="section_ice"> 
     220          <duplicate_scalar/> 
     221        </axis> 
     222      </grid> 
     223 
     224      <grid id="grid_V_4strait_ice"> 
     225        <domain domain_ref="grid_V" /> 
     226        <axis axis_ref="section_ice"> 
     227         <duplicate_scalar/> 
     228        </axis> 
     229      </grid> 
     230 
     231      <grid id="grid_U_4strait_ice_hsum"> 
     232        <scalar > 
     233         <reduce_domain operation="sum" local="true"/> 
     234         <reduce_scalar operation="sum" /> 
     235        </scalar> 
     236        <axis axis_ref="section_ice"/> 
     237      </grid> 
     238 
     239     <grid id="grid_V_4strait_ice_hsum"> 
     240        <scalar > 
     241         <reduce_domain operation="sum" local="true"/> 
     242         <reduce_scalar operation="sum" /> 
     243        </scalar> 
     244        <axis axis_ref="section_ice"/> 
     245     </grid> 
     246 
     247     <grid id="grid_4strait_ice"> 
     248       <axis axis_ref="section_ice"/> 
     249     </grid> 
     250  
    55251      <!-- scalars --> 
    56252      <grid id="grid_scalar" > 
    57253        <scalar/> 
    58254      </grid> 
    59  
    60        <!-- ABL grid definition --> 
    61        <grid id="grid_TA_2D"> 
    62          <domain domain_ref="grid_T" /> 
    63        </grid> 
    64        <grid id="grid_TA_3D"> 
    65          <domain domain_ref="grid_T" /> 
    66          <axis  id="ght_abl" /> 
    67        </grid> 
    68        <grid id="grid_WA_3D"> 
    69          <domain domain_ref="grid_T" /> 
    70          <axis  id="ghw_abl" /> 
    71        </grid> 
    72        <!--  --> 
    73  
    74     </grid_definition> 
    75      
     255  
     256    </grid_definition>    
     257  
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_pisces_ref

    r11536 r12193  
    3434!              !  file name   ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    3535!              !              !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
    36    sn_patm     = 'presatm'    ,     -1.           , 'patm'    ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
    37    sn_atmco2   = 'presatmco2' ,     -1.           , 'xco2'    ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
     36   sn_patm     = 'presatm'    ,     -1            , 'patm'    ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
     37   sn_atmco2   = 'presatmco2' ,     -1            , 'xco2'    ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
    3838   cn_dir      = './'     !  root directory for the location of the dynamical files 
    3939! 
     
    141141!              !  file name       ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    142142!              !                  !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
    143    sn_par      = 'par.orca'       ,     24.           , 'fr_par'  ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
     143   sn_par      = 'par.orca'       ,     24            , 'fr_par'  ,  .true.      , .true. , 'yearly'  , ''       , ''       , '' 
    144144   cn_dir      = './'      !  root directory for the location of the dynamical files 
    145145   ln_varpar   =  .true.   ! boolean for PAR variable 
     
    343343/ 
    344344!----------------------------------------------------------------------- 
    345 &nampissbc     !   parameters for inputs deposition 
     345&nampisbc     !   parameters for inputs deposition 
    346346!----------------------------------------------------------------------- 
    347347!              !  file name        ! frequency (hours) ! variable      ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
    348348!              !                   !  (if <0  months)  !   name        !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
    349    sn_dust     = 'dust.orca'       ,     -1.           , 'dust'        ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    350    sn_solub    = 'solubility.orca' ,    -12.           , 'solubility1' ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    351    sn_riverdic = 'river.orca'      ,    120.           , 'riverdic'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    352    sn_riverdoc = 'river.orca'      ,    120.           , 'riverdoc'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    353    sn_riverdin = 'river.orca'      ,    120.           , 'riverdin'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    354    sn_riverdon = 'river.orca'      ,    120.           , 'riverdon'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    355    sn_riverdip = 'river.orca'      ,    120.           , 'riverdip'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    356    sn_riverdop = 'river.orca'      ,    120.           , 'riverdop'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    357    sn_riverdsi = 'river.orca'      ,    120.           , 'riverdsi'    ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
    358    sn_ndepo    = 'ndeposition.orca',    -12.           , 'ndep'        ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    359    sn_ironsed  = 'bathy.orca'      ,    -12.           , 'bathy'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    360    sn_hydrofe  = 'hydrofe.orca'    ,    -12.           , 'epsdb'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
     349   sn_dust     = 'dust.orca'       ,     -1            , 'dust'        ,  .true.      , .true. , 'yearly'  , ''       , ''    , '' 
     350   sn_ironsed  = 'bathy.orca'      ,    -12            , 'bathy'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
     351   sn_hydrofe  = 'hydrofe.orca'    ,    -12            , 'epsdb'       ,  .false.     , .true. , 'yearly'  , ''       , ''    , '' 
    361352! 
    362353   cn_dir      = './'      !  root directory for the location of the dynamical files 
    363    ln_dust     =  .true.   ! boolean for dust input from the atmosphere 
    364    ln_solub    =  .true.   ! boolean for variable solubility of atm. Iron 
    365    ln_river    =  .true.   ! boolean for river input of nutrients 
    366    ln_ndepo    =  .true.   ! boolean for atmospheric deposition of N 
    367354   ln_ironsed  =  .true.   ! boolean for Fe input from sediments 
    368355   ln_ironice  =  .true.   ! boolean for Fe input from sea ice 
     
    370357   sedfeinput  =  2.e-9    ! Coastal release of Iron 
    371358   distcoast   =  5.e3     ! Distance off the coast for Iron from sediments 
    372    dustsolub   =  0.02     ! Solubility of the dusta 
    373359   mfrac       =  0.035    ! Fe mineral fraction of dust 
    374360   wdust       =  2.0      ! Dust sinking speed  
    375361   icefeinput  =  15.e-9   ! Iron concentration in sea ice 
     362   hratio      =  1.e+7    ! Fe to 3He ratio assumed for vent iron supply  
     363!                          ! ln_ligand 
     364   lgw_rath    =  0.5      ! Weak ligand ratio from sed hydro sources  
     365/ 
     366!----------------------------------------------------------------------- 
     367&nampissed     !   parameters for sediments mobilization 
     368!----------------------------------------------------------------------- 
    376369   nitrfix     =  1.e-7    ! Nitrogen fixation rate 
    377370   diazolight  =  50.      ! Diazotrophs sensitivity to light (W/m2) 
    378371   concfediaz  =  1.e-10   ! Diazotrophs half-saturation Cste for Iron 
    379    hratio      =  1.e+7    ! Fe to 3He ratio assumed for vent iron supply  
    380 !                          ! ln_ligand 
    381    lgw_rath    =  0.5      ! Weak ligand ratio from sed hydro sources  
    382372/ 
    383373!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_ref

    r12182 r12193  
    437437      ln_sssr_bnd =  .true.   !  flag to bound erp term (associated with nn_sssr=2) 
    438438      rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day] 
     439      nn_sssr_ice =   1       ! control of sea surface restoring under sea-ice 
     440                              ! 0 = no restoration under ice : * (1-icefrac) 
     441                              ! 1 = restoration everywhere  
     442                              ! >1 = enhanced restoration under ice : 1+(nn_icedmp-1)*icefrac 
    439443 
    440444   cn_dir      = './'      !  root directory for the SST/SSS data location 
     
    12151219!!gm   ln_trdmld_instant = .false.         !  flag to diagnose trends of instantantaneous or mean ML T/S 
    12161220!!gm 
    1217 !----------------------------------------------------------------------- 
    1218 &namptr        !   Poleward Transport Diagnostic                        (default: OFF) 
    1219 !----------------------------------------------------------------------- 
    1220    ln_diaptr   = .false.   !  Poleward heat and salt transport (T) or not (F) 
    1221    ln_subbas   = .false.   !  Atlantic/Pacific/Indian basins computation (T) or not 
    12221221/ 
    12231222!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_top_ref

    r11949 r12193  
    4040   ln_trcdmp     =  .false.  !  add a damping termn (T) or not (F) 
    4141   ln_trcdmp_clo =  .false.  !  damping term (T) or not (F) on closed seas 
     42   ln_trcbc      =  .false.  !  Surface, Lateral or Open Boundaries conditions 
    4243   ! 
    4344   jp_dia3d      = 0         ! Number of 3D diagnostic variables 
     
    134135   cn_dir_obc    =  './'     !  root directory for the location of OPEN data files 
    135136   ln_rnf_ctl    = .false.   !  Remove runoff dilution on tracers with absent river load 
    136    rn_bc_time    =  86400.   !  Time scaling factor for SBC and CBC data (seconds in a day) 
     137   rn_sbc_time   =  86400.   !  Time scaling factor for SBC data (seconds in a day) 
     138   rn_cbc_time   =  86400.   !  Time scaling factor for CBC data (seconds in a day) 
    137139/ 
    138140!---------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SPITZ12/EXPREF/context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     
    2326    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    2427    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     28 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/ABL/sbcabl.F90

    r12063 r12193  
    7777      !!--------------------------------------------------------------------- 
    7878 
    79       REWIND( numnam_ref )              ! Namelist namsbc_abl in reference namelist : ABL parameters 
    8079      READ  ( numnam_ref, namsbc_abl, IOSTAT = ios, ERR = 901 ) 
    8180901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in reference namelist' ) 
    8281      ! 
    83       REWIND( numnam_cfg )              ! Namelist namsbc_abl in configuration namelist : ABL parameters 
    8482      READ  ( numnam_cfg, namsbc_abl, IOSTAT = ios, ERR = 902 ) 
    8583902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in configuration namelist' ) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diaar5.F90

    r11949 r12193  
    7272      INTEGER, INTENT( in ) ::   Kmm  ! ocean time level index 
    7373      ! 
    74       INTEGER  ::   ji, jj, jk                      ! dummy loop arguments 
    75       REAL(wp) ::   zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass 
     74      INTEGER  ::   ji, jj, jk, iks, ikb                      ! dummy loop arguments 
     75      REAL(wp) ::   zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass, zsst 
    7676      REAL(wp) ::   zaw, zbw, zrw 
    7777      ! 
    7878      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zarea_ssh , zbotpres       ! 2D workspace  
    79       REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zpe                         ! 2D workspace  
    80       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd , zrhop               ! 3D workspace 
     79      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     :: zpe, z2d                   ! 2D workspace  
     80      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:)   :: zrhd , zrhop, ztpot   ! 3D workspace 
    8181      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: ztsn                       ! 4D workspace 
    8282 
     
    8787 
    8888      IF( l_ar5 ) THEN  
    89          ALLOCATE( zarea_ssh(jpi,jpj) , zbotpres(jpi,jpj) ) 
     89         ALLOCATE( zarea_ssh(jpi,jpj), zbotpres(jpi,jpj), z2d(jpi,jpj) ) 
    9090         ALLOCATE( zrhd(jpi,jpj,jpk) , zrhop(jpi,jpj,jpk) ) 
    9191         ALLOCATE( ztsn(jpi,jpj,jpk,jpts) ) 
     
    9393      ENDIF 
    9494      ! 
     95      CALL iom_put( 'e2u'      , e2u (:,:) ) 
     96      CALL iom_put( 'e1v'      , e1v (:,:) ) 
     97      CALL iom_put( 'areacello', area(:,:) ) 
     98      ! 
     99      IF( iom_use( 'volcello' ) .OR. iom_use( 'masscello' )  ) THEN   
     100         zrhd(:,:,jpk) = 0._wp        ! ocean volume ; rhd is used as workspace 
     101         DO jk = 1, jpkm1 
     102            zrhd(:,:,jk) = area(:,:) * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 
     103         END DO 
     104         CALL iom_put( 'volcello'  , zrhd(:,:,:)  )  ! WARNING not consistent with CMIP DR where volcello is at ca. 2000 
     105         CALL iom_put( 'masscello' , rau0 * e3t(:,:,:,Kmm) * tmask(:,:,:) )  ! ocean mass 
     106      ENDIF  
     107      ! 
     108      IF( iom_use( 'e3tb' ) )  THEN    ! bottom layer thickness 
     109         DO jj = 1, jpj 
     110            DO ji = 1, jpi 
     111               ikb = mbkt(ji,jj) 
     112               z2d(ji,jj) = e3t(ji,jj,ikb,Kmm) 
     113            END DO 
     114         END DO 
     115         CALL iom_put( 'e3tb', z2d ) 
     116      ENDIF  
     117      ! 
    95118      IF( iom_use( 'voltot' ) .OR. iom_use( 'sshtot' )  .OR. iom_use( 'sshdyn' )  ) THEN     
    96119         !                                         ! total volume of liquid seawater 
    97          zvolssh = SUM( zarea_ssh(:,:) )  
    98          CALL mpp_sum( 'diaar5', zvolssh ) 
    99          zvol = vol0 + zvolssh 
     120         zvolssh = glob_sum( 'diaar5', zarea_ssh(:,:) )  
     121         zvol    = vol0 + zvolssh 
    100122       
    101123         CALL iom_put( 'voltot', zvol               ) 
     
    119141               DO ji = 1, jpi 
    120142                  DO jj = 1, jpj 
    121                      zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 
     143                     iks = mikt(ji,jj) 
     144                     zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 
    122145                  END DO 
    123146               END DO 
     
    130153         END IF 
    131154         !                                          
    132          zarho = SUM( area(:,:) * zbotpres(:,:) )  
    133          CALL mpp_sum( 'diaar5', zarho ) 
     155         zarho = glob_sum( 'diaar5', area(:,:) * zbotpres(:,:) )  
    134156         zssh_steric = - zarho / area_tot 
    135157         CALL iom_put( 'sshthster', zssh_steric ) 
     
    148170               DO ji = 1,jpi 
    149171                  DO jj = 1,jpj 
    150                      zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,mikt(ji,jj)) + riceload(ji,jj) 
     172                     iks = mikt(ji,jj) 
     173                     zbotpres(ji,jj) = zbotpres(ji,jj) + ssh(ji,jj,Kmm) * zrhd(ji,jj,iks) + riceload(ji,jj) 
    151174                  END DO 
    152175               END DO 
     
    156179         END IF 
    157180         !     
    158          zarho = SUM( area(:,:) * zbotpres(:,:) )  
    159          CALL mpp_sum( 'diaar5', zarho ) 
     181         zarho = glob_sum( 'diaar5', area(:,:) * zbotpres(:,:) )  
    160182         zssh_steric = - zarho / area_tot 
    161183         CALL iom_put( 'sshsteric', zssh_steric ) 
    162        
    163184         !                                         ! ocean bottom pressure 
    164185         zztmp = rau0 * grav * 1.e-4_wp               ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa 
     
    169190 
    170191      IF( iom_use( 'masstot' ) .OR. iom_use( 'temptot' )  .OR. iom_use( 'saltot' )  ) THEN     
    171          !                                         ! Mean density anomalie, temperature and salinity 
    172          ztemp = 0._wp 
    173          zsal  = 0._wp 
    174          DO jk = 1, jpkm1 
    175             DO jj = 1, jpj 
    176                DO ji = 1, jpi 
    177                   zztmp = area(ji,jj) * e3t(ji,jj,jk,Kmm) 
    178                   ztemp = ztemp + zztmp * ts(ji,jj,jk,jp_tem,Kmm) 
    179                   zsal  = zsal  + zztmp * ts(ji,jj,jk,jp_sal,Kmm) 
    180                END DO 
    181             END DO 
    182          END DO 
    183          IF( ln_linssh ) THEN 
     192          !                                         ! Mean density anomalie, temperature and salinity 
     193          ztsn(:,:,:,:) = 0._wp                    ! ztsn(:,:,1,jp_tem/sal) is used here as 2D Workspace for temperature & salinity 
     194          DO jk = 1, jpkm1 
     195             DO jj = 1, jpj 
     196                DO ji = 1, jpi 
     197                   zztmp = area(ji,jj) * e3t(ji,jj,jk,Kmm) 
     198                   ztsn(ji,jj,1,jp_tem) = ztsn(ji,jj,1,jp_tem) + zztmp * ts(ji,jj,jk,jp_tem,Kmm) 
     199                   ztsn(ji,jj,1,jp_sal) = ztsn(ji,jj,1,jp_sal) + zztmp * ts(ji,jj,jk,jp_sal,Kmm) 
     200                ENDDO 
     201             ENDDO 
     202          ENDDO 
     203 
     204          IF( ln_linssh ) THEN 
    184205            IF( ln_isfcav ) THEN 
    185206               DO ji = 1, jpi 
    186207                  DO jj = 1, jpj 
    187                      ztemp = ztemp + zarea_ssh(ji,jj) * ts(ji,jj,mikt(ji,jj),jp_tem,Kmm)  
    188                      zsal  = zsal  + zarea_ssh(ji,jj) * ts(ji,jj,mikt(ji,jj),jp_sal,Kmm)  
     208                     iks = mikt(ji,jj) 
     209                     ztsn(ji,jj,1,jp_tem) = ztsn(ji,jj,1,jp_tem) + zarea_ssh(ji,jj) * ts(ji,jj,iks,jp_tem,Kmm)  
     210                     ztsn(ji,jj,1,jp_sal) = ztsn(ji,jj,1,jp_sal) + zarea_ssh(ji,jj) * ts(ji,jj,iks,jp_sal,Kmm)  
    189211                  END DO 
    190212               END DO 
    191213            ELSE 
    192                ztemp = ztemp + SUM( zarea_ssh(:,:) * ts(:,:,1,jp_tem,Kmm) ) 
    193                zsal  = zsal  + SUM( zarea_ssh(:,:) * ts(:,:,1,jp_sal,Kmm) ) 
     214               ztsn(:,:,1,jp_tem) = ztsn(:,:,1,jp_tem) + zarea_ssh(:,:) * ts(:,:,1,jp_tem,Kmm)  
     215               ztsn(:,:,1,jp_sal) = ztsn(:,:,1,jp_sal) + zarea_ssh(:,:) * ts(:,:,1,jp_sal,Kmm)  
    194216            END IF 
    195217         ENDIF 
    196          IF( lk_mpp ) THEN   
    197             CALL mpp_sum( 'diaar5', ztemp ) 
    198             CALL mpp_sum( 'diaar5', zsal  ) 
    199          END IF 
    200          ! 
    201          zmass = rau0 * ( zarho + zvol )                 ! total mass of liquid seawater 
    202          ztemp = ztemp / zvol                            ! potential temperature in liquid seawater 
    203          zsal  = zsal  / zvol                            ! Salinity of liquid seawater 
     218         ! 
     219         ztemp = glob_sum( 'diaar5', ztsn(:,:,1,jp_tem) ) 
     220         zsal  = glob_sum( 'diaar5', ztsn(:,:,1,jp_sal) ) 
     221         zmass = rau0 * ( zarho + zvol )       
    204222         ! 
    205223         CALL iom_put( 'masstot', zmass ) 
    206          CALL iom_put( 'temptot', ztemp ) 
    207          CALL iom_put( 'saltot' , zsal  ) 
    208          ! 
     224         CALL iom_put( 'temptot', ztemp / zvol ) 
     225         CALL iom_put( 'saltot' , zsal  / zvol ) 
     226         ! 
     227      ENDIF      
     228 
     229      IF( ln_teos10 ) THEN        ! ! potential temperature (TEOS-10 case) 
     230         IF( iom_use( 'toce_pot') .OR. iom_use( 'temptot_pot' ) .OR. iom_use( 'sst_pot' )  & 
     231                                  .OR. iom_use( 'ssttot' ) .OR.  iom_use( 'tosmint_pot' ) ) THEN 
     232            ! 
     233            ALLOCATE( ztpot(jpi,jpj,jpk) ) 
     234            ztpot(:,:,jpk) = 0._wp 
     235            DO jk = 1, jpkm1 
     236               ztpot(:,:,jk) = eos_pt_from_ct( ts(:,:,jk,jp_tem,Kmm), ts(:,:,jk,jp_sal,Kmm) ) 
     237            END DO 
     238            ! 
     239            CALL iom_put( 'toce_pot', ztpot(:,:,:) )  ! potential temperature (TEOS-10 case) 
     240            CALL iom_put( 'sst_pot' , ztpot(:,:,1) )  ! surface temperature 
     241            ! 
     242            IF( iom_use( 'temptot_pot' ) ) THEN   ! Output potential temperature in case we use TEOS-10 
     243               z2d(:,:) = 0._wp 
     244               DO jk = 1, jpkm1 
     245                 z2d(:,:) = z2d(:,:) + area(:,:) * e3t(:,:,jk,Kmm) * ztpot(:,:,jk) 
     246               END DO 
     247               ztemp = glob_sum( 'diaar5', z2d(:,:)  )  
     248               CALL iom_put( 'temptot_pot', ztemp / zvol ) 
     249             ENDIF 
     250             ! 
     251             IF( iom_use( 'ssttot' ) ) THEN   ! Output potential temperature in case we use TEOS-10 
     252               zsst = glob_sum( 'diaar5',  area(:,:) * ztpot(:,:,1)  )  
     253               CALL iom_put( 'ssttot', zsst / area_tot ) 
     254             ENDIF 
     255             ! Vertical integral of temperature 
     256             IF( iom_use( 'tosmint_pot') ) THEN 
     257               z2d(:,:) = 0._wp 
     258               DO jk = 1, jpkm1 
     259                  DO jj = 1, jpj 
     260                     DO ji = 1, jpi   ! vector opt. 
     261                        z2d(ji,jj) = z2d(ji,jj) + rau0 * e3t(ji,jj,jk,Kmm) *  ztpot(ji,jj,jk) 
     262                     END DO 
     263                  END DO 
     264               END DO 
     265               CALL iom_put( 'tosmint_pot', z2d )  
     266            ENDIF 
     267            DEALLOCATE( ztpot ) 
     268        ENDIF 
     269      ELSE        
     270         IF( iom_use('ssttot') ) THEN   ! Output sst in case we use EOS-80 
     271            zsst  = glob_sum( 'diaar5', area(:,:) * ts(:,:,1,jp_tem,Kmm) ) 
     272            CALL iom_put('ssttot', zsst / area_tot ) 
     273         ENDIF 
    209274      ENDIF 
    210275 
    211276      IF( iom_use( 'tnpeo' )) THEN     
    212       ! Work done against stratification by vertical mixing 
    213       ! Exclude points where rn2 is negative as convection kicks in here and 
    214       ! work is not being done against stratification 
     277        ! Work done against stratification by vertical mixing 
     278        ! Exclude points where rn2 is negative as convection kicks in here and 
     279        ! work is not being done against stratification 
    215280         ALLOCATE( zpe(jpi,jpj) ) 
    216281         zpe(:,:) = 0._wp 
     
    220285                  DO ji = 1, jpi 
    221286                     IF( rn2(ji,jj,jk) > 0._wp ) THEN 
    222                         zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
    223                            &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) ) 
    224 !!gm  this can be reduced to :  (depw-dept) / e3w   (NB idem dans bn2 !) 
    225 !                        zrw =   ( gdept(ji,jj,jk,Kmm) - gdepw(ji,jj,jk,Kmm) ) / e3w(ji,jj,jk,Kmm) 
    226 !!gm end 
     287                        zrw = ( gdept(ji,jj,jk,Kmm) - gdepw(ji,jj,jk,Kmm) ) / e3w(ji,jj,jk,Kmm) 
    227288                        ! 
    228289                        zaw = rab_n(ji,jj,jk,jp_tem) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_tem)* zrw 
    229290                        zbw = rab_n(ji,jj,jk,jp_sal) * (1. - zrw) + rab_n(ji,jj,jk-1,jp_sal)* zrw 
    230291                        ! 
    231                         zpe(ji, jj) = zpe(ji, jj)            & 
     292                        zpe(ji, jj) = zpe(ji,jj)   & 
    232293                           &        -  grav * (  avt(ji,jj,jk) * zaw * (ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) )  & 
    233294                           &                   - avs(ji,jj,jk) * zbw * (ts(ji,jj,jk-1,jp_sal,Kmm) - ts(ji,jj,jk,jp_sal,Kmm) ) ) 
     
    240301               DO ji = 1, jpi 
    241302                  DO jj = 1, jpj 
    242                      zpe(ji,jj) = zpe(ji,jj) + avt(ji, jj, jk) * MIN(0._wp,rn2(ji, jj, jk)) * rau0 * e3w(ji, jj, jk,Kmm) 
     303                     zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rau0 * e3w(ji,jj,jk,Kmm) 
    243304                  END DO 
    244305               END DO 
    245306            END DO 
    246307         ENDIF 
    247 !!gm useless lbc_lnk since the computation above is performed over 1:jpi & 1:jpj 
    248 !!gm           CALL lbc_lnk( 'diaar5', zpe, 'T', 1._wp)          
    249308          CALL iom_put( 'tnpeo', zpe ) 
    250309          DEALLOCATE( zpe ) 
     
    252311 
    253312      IF( l_ar5 ) THEN 
    254         DEALLOCATE( zarea_ssh , zbotpres ) 
     313        DEALLOCATE( zarea_ssh , zbotpres, z2d ) 
    255314        DEALLOCATE( zrhd      , zrhop    ) 
    256315        DEALLOCATE( ztsn                 ) 
     
    288347       CALL lbc_lnk( 'diaar5', z2d, 'U', -1. ) 
    289348       IF( cptr == 'adv' ) THEN 
    290           IF( ktra == jp_tem ) CALL iom_put( "uadv_heattr" , rau0_rcp * z2d )  ! advective heat transport in i-direction 
    291           IF( ktra == jp_sal ) CALL iom_put( "uadv_salttr" , rau0     * z2d )  ! advective salt transport in i-direction 
     349          IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , rau0_rcp * z2d )  ! advective heat transport in i-direction 
     350          IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , rau0     * z2d )  ! advective salt transport in i-direction 
    292351       ENDIF 
    293352       IF( cptr == 'ldf' ) THEN 
    294           IF( ktra == jp_tem ) CALL iom_put( "udiff_heattr" , rau0_rcp * z2d ) ! diffusive heat transport in i-direction 
    295           IF( ktra == jp_sal ) CALL iom_put( "udiff_salttr" , rau0     * z2d ) ! diffusive salt transport in i-direction 
     353          IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in i-direction 
     354          IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , rau0     * z2d ) ! diffusive salt transport in i-direction 
    296355       ENDIF 
    297356       ! 
     
    306365       CALL lbc_lnk( 'diaar5', z2d, 'V', -1. ) 
    307366       IF( cptr == 'adv' ) THEN 
    308           IF( ktra == jp_tem ) CALL iom_put( "vadv_heattr" , rau0_rcp * z2d )  ! advective heat transport in j-direction 
    309           IF( ktra == jp_sal ) CALL iom_put( "vadv_salttr" , rau0     * z2d )  ! advective salt transport in j-direction 
     367          IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , rau0_rcp * z2d )  ! advective heat transport in j-direction 
     368          IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , rau0     * z2d )  ! advective salt transport in j-direction 
    310369       ENDIF 
    311370       IF( cptr == 'ldf' ) THEN 
    312           IF( ktra == jp_tem ) CALL iom_put( "vdiff_heattr" , rau0_rcp * z2d ) ! diffusive heat transport in j-direction 
    313           IF( ktra == jp_sal ) CALL iom_put( "vdiff_salttr" , rau0     * z2d ) ! diffusive salt transport in j-direction 
     371          IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , rau0_rcp * z2d ) ! diffusive heat transport in j-direction 
     372          IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , rau0     * z2d ) ! diffusive salt transport in j-direction 
    314373       ENDIF 
    315374           
     
    324383      !!---------------------------------------------------------------------- 
    325384      INTEGER  ::   inum 
    326       INTEGER  ::   ik 
     385      INTEGER  ::   ik, idep 
    327386      INTEGER  ::   ji, jj, jk  ! dummy loop indices 
    328387      REAL(wp) ::   zztmp   
    329388      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   zsaldta   ! Jan/Dec levitus salinity 
     389      REAL(wp), ALLOCATABLE, DIMENSION(:,:)     ::   zvol0      
    330390      ! 
    331391      !!---------------------------------------------------------------------- 
     
    341401         IF( dia_ar5_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_ar5_init : unable to allocate arrays' ) 
    342402 
    343          area(:,:) = e1e2t(:,:) * tmask_i(:,:) 
    344  
    345          area_tot = SUM( area(:,:) )   ;   CALL mpp_sum( 'diaar5', area_tot ) 
    346  
    347          vol0        = 0._wp 
     403         area(:,:) = e1e2t(:,:) 
     404         area_tot  = glob_sum( 'diaar5', area(:,:) ) 
     405 
     406         ALLOCATE( zvol0(jpi,jpj) ) 
     407         zvol0 (:,:) = 0._wp 
    348408         thick0(:,:) = 0._wp 
    349409         DO jk = 1, jpkm1 
    350             vol0        = vol0        + SUM( area (:,:) * tmask(:,:,jk) * e3t_0(:,:,jk) ) 
    351             thick0(:,:) = thick0(:,:) +    tmask_i(:,:) * tmask(:,:,jk) * e3t_0(:,:,jk) 
    352          END DO 
    353          CALL mpp_sum( 'diaar5', vol0 ) 
     410            DO jj = 1, jpj               ! interpolation of salinity at the last ocean level (i.e. the partial step) 
     411               DO ji = 1, jpi 
     412                  idep = tmask(ji,jj,jk) * e3t_0(ji,jj,jk) 
     413                  zvol0 (ji,jj) = zvol0 (ji,jj) +  idep * area(ji,jj) 
     414                  thick0(ji,jj) = thick0(ji,jj) +  idep     
     415               END DO 
     416            END DO 
     417         END DO 
     418         vol0 = glob_sum( 'diaar5', zvol0 ) 
     419         DEALLOCATE( zvol0 ) 
    354420 
    355421         IF( iom_use( 'sshthster' ) ) THEN 
    356             ALLOCATE( zsaldta(jpi,jpj,jpj,jpts) ) 
     422            ALLOCATE( zsaldta(jpi,jpj,jpk,jpts) ) 
    357423            CALL iom_open ( 'sali_ref_clim_monthly', inum ) 
    358424            CALL iom_get  ( inum, jpdom_data, 'vosaline' , zsaldta(:,:,:,1), 1  ) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diahth.F90

    r11949 r12193  
    1111   !!            3.2  !  2009-07  (S. Masson) hc300 bugfix + cleaning + add new diag 
    1212   !!---------------------------------------------------------------------- 
    13 #if   defined key_diahth 
    14    !!---------------------------------------------------------------------- 
    15    !!   'key_diahth' :                              thermocline depth diag. 
    16    !!---------------------------------------------------------------------- 
    1713   !!   dia_hth      : Compute varius diagnostics associated with the mixed layer 
    1814   !!---------------------------------------------------------------------- 
     
    3228   PUBLIC   dia_hth_alloc ! routine called by nemogcm.F90 
    3329 
    34    LOGICAL , PUBLIC, PARAMETER ::   lk_diahth = .TRUE.    !: thermocline-20d depths flag 
     30   LOGICAL, SAVE  ::   l_hth     !: thermocline-20d depths flag 
    3531    
    3632   ! note: following variables should move to local variables once iom_put is always used  
    3733   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hth    !: depth of the max vertical temperature gradient [m] 
    3834   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd20   !: depth of 20 C isotherm                         [m] 
     35   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd26   !: depth of 26 C isotherm                         [m] 
    3936   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hd28   !: depth of 28 C isotherm                         [m] 
    4037   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc3   !: heat content of first 300 m                    [W] 
     38   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc7   !: heat content of first 700 m                    [W] 
     39   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   htc20  !: heat content of first 2000 m                   [W] 
     40 
    4141 
    4242   !!---------------------------------------------------------------------- 
     
    5252      !!--------------------------------------------------------------------- 
    5353      ! 
    54       ALLOCATE( hth(jpi,jpj), hd20(jpi,jpj), hd28(jpi,jpj), htc3(jpi,jpj), STAT=dia_hth_alloc ) 
     54      ALLOCATE( hth(jpi,jpj), hd20(jpi,jpj), hd26(jpi,jpj), hd28(jpi,jpj), & 
     55         &      htc3(jpi,jpj), htc7(jpi,jpj), htc20(jpi,jpj), STAT=dia_hth_alloc ) 
    5556      ! 
    5657      CALL mpp_sum ( 'diahth', dia_hth_alloc ) 
     
    8384      INTEGER, INTENT( in ) ::   Kmm     ! ocean time level index 
    8485      !! 
    85       INTEGER                          ::   ji, jj, jk            ! dummy loop arguments 
    86       INTEGER                          ::   iid, ilevel           ! temporary integers 
    87       INTEGER, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ik20, ik28  ! levels 
    88       REAL(wp)                         ::   zavt5 = 5.e-4_wp      ! Kz criterion for the turbocline depth 
    89       REAL(wp)                         ::   zrho3 = 0.03_wp       ! density     criterion for mixed layer depth 
    90       REAL(wp)                         ::   zrho1 = 0.01_wp       ! density     criterion for mixed layer depth 
    91       REAL(wp)                         ::   ztem2 = 0.2_wp        ! temperature criterion for mixed layer depth 
    92       REAL(wp)                         ::   zthick_0, zcoef       ! temporary scalars 
    93       REAL(wp)                         ::   zztmp, zzdep          ! temporary scalars inside do loop 
    94       REAL(wp)                         ::   zu, zv, zw, zut, zvt  ! temporary workspace 
    95       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zabs2      ! MLD: abs( tn - tn(10m) ) = ztem2  
    96       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ztm2       ! Top of thermocline: tn = tn(10m) - ztem2      
    97       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zrho10_3   ! MLD: rho = rho10m + zrho3       
    98       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zpycn      ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) 
    99       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ztinv      ! max of temperature inversion 
    100       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zdepinv    ! depth of temperature inversion 
    101       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zrho0_3    ! MLD rho = rho(surf) = 0.03 
    102       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zrho0_1    ! MLD rho = rho(surf) = 0.01 
    103       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zmaxdzT    ! max of dT/dz 
    104       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zthick     ! vertical integration thickness  
    105       REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   zdelr      ! delta rho equivalent to deltaT = 0.2 
     86      INTEGER                      ::   ji, jj, jk            ! dummy loop arguments 
     87      REAL(wp)                     ::   zrho3 = 0.03_wp       ! density     criterion for mixed layer depth 
     88      REAL(wp)                     ::   zrho1 = 0.01_wp       ! density     criterion for mixed layer depth 
     89      REAL(wp)                     ::   ztem2 = 0.2_wp        ! temperature criterion for mixed layer depth 
     90      REAL(wp)                     ::   zztmp, zzdep          ! temporary scalars inside do loop 
     91      REAL(wp)                     ::   zu, zv, zw, zut, zvt  ! temporary workspace 
     92      REAL(wp), DIMENSION(jpi,jpj) ::   zabs2      ! MLD: abs( tn - tn(10m) ) = ztem2  
     93      REAL(wp), DIMENSION(jpi,jpj) ::   ztm2       ! Top of thermocline: tn = tn(10m) - ztem2      
     94      REAL(wp), DIMENSION(jpi,jpj) ::   zrho10_3   ! MLD: rho = rho10m + zrho3       
     95      REAL(wp), DIMENSION(jpi,jpj) ::   zpycn      ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC) 
     96      REAL(wp), DIMENSION(jpi,jpj) ::   ztinv      ! max of temperature inversion 
     97      REAL(wp), DIMENSION(jpi,jpj) ::   zdepinv    ! depth of temperature inversion 
     98      REAL(wp), DIMENSION(jpi,jpj) ::   zrho0_3    ! MLD rho = rho(surf) = 0.03 
     99      REAL(wp), DIMENSION(jpi,jpj) ::   zrho0_1    ! MLD rho = rho(surf) = 0.01 
     100      REAL(wp), DIMENSION(jpi,jpj) ::   zmaxdzT    ! max of dT/dz 
     101      REAL(wp), DIMENSION(jpi,jpj) ::   zdelr      ! delta rho equivalent to deltaT = 0.2 
    106102      !!---------------------------------------------------------------------- 
    107103      IF( ln_timing )   CALL timing_start('dia_hth') 
    108104 
    109105      IF( kt == nit000 ) THEN 
     106         l_hth = .FALSE. 
     107         IF(   iom_use( 'mlddzt'   ) .OR. iom_use( 'mldr0_3'  ) .OR. iom_use( 'mldr0_1'  )    .OR.  &  
     108            &  iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' ) .OR. iom_use( 'mldr10_3' )    .OR.  &     
     109            &  iom_use( '20d'      ) .OR. iom_use( '26d'      ) .OR. iom_use( '28d'      )    .OR.  &     
     110            &  iom_use( 'hc300'    ) .OR. iom_use( 'hc700'    ) .OR. iom_use( 'hc2000'   )    .OR.  &     
     111            &  iom_use( 'pycndep'  ) .OR. iom_use( 'tinv'     ) .OR. iom_use( 'depti'    )  ) l_hth = .TRUE. 
    110112         !                                      ! allocate dia_hth array 
    111          IF( dia_hth_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard arrays' ) 
    112  
    113          IF(.NOT. ALLOCATED(ik20) ) THEN 
    114             ALLOCATE(ik20(jpi,jpj), ik28(jpi,jpj), & 
    115                &      zabs2(jpi,jpj),   & 
    116                &      ztm2(jpi,jpj),    & 
    117                &      zrho10_3(jpi,jpj),& 
    118                &      zpycn(jpi,jpj),   & 
    119                &      ztinv(jpi,jpj),   & 
    120                &      zdepinv(jpi,jpj), & 
    121                &      zrho0_3(jpi,jpj), & 
    122                &      zrho0_1(jpi,jpj), & 
    123                &      zmaxdzT(jpi,jpj), & 
    124                &      zthick(jpi,jpj),  & 
    125                &      zdelr(jpi,jpj), STAT=ji) 
    126             CALL mpp_sum('diahth', ji) 
    127             IF( ji /= 0 )   CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard ocean arrays' ) 
    128          END IF 
    129  
    130          IF(lwp) WRITE(numout,*) 
    131          IF(lwp) WRITE(numout,*) 'dia_hth : diagnostics of the thermocline depth' 
    132          IF(lwp) WRITE(numout,*) '~~~~~~~ ' 
    133          IF(lwp) WRITE(numout,*) 
     113         IF( l_hth ) THEN  
     114            IF( dia_hth_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_hth : unable to allocate standard arrays' ) 
     115            IF(lwp) WRITE(numout,*) 
     116            IF(lwp) WRITE(numout,*) 'dia_hth : diagnostics of the thermocline depth' 
     117            IF(lwp) WRITE(numout,*) '~~~~~~~ ' 
     118            IF(lwp) WRITE(numout,*) 
     119         ENDIF 
    134120      ENDIF 
    135121 
    136       ! initialization 
    137       ztinv  (:,:) = 0._wp   
    138       zdepinv(:,:) = 0._wp   
    139       zmaxdzT(:,:) = 0._wp   
    140       DO jj = 1, jpj 
    141          DO ji = 1, jpi 
    142             zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
    143             hth     (ji,jj) = zztmp 
    144             zabs2   (ji,jj) = zztmp 
    145             ztm2    (ji,jj) = zztmp 
    146             zrho10_3(ji,jj) = zztmp 
    147             zpycn   (ji,jj) = zztmp 
    148         END DO 
    149       END DO 
    150       IF( nla10 > 1 ) THEN  
    151          DO jj = 1, jpj 
    152             DO ji = 1, jpi 
    153                zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
    154                zrho0_3(ji,jj) = zztmp 
    155                zrho0_1(ji,jj) = zztmp 
    156             END DO 
    157          END DO 
     122      IF( l_hth ) THEN 
     123         ! 
     124         IF( iom_use( 'mlddzt' ) .OR. iom_use( 'mldr0_3' ) .OR. iom_use( 'mldr0_1' ) ) THEN 
     125            ! initialization 
     126            ztinv  (:,:) = 0._wp   
     127            zdepinv(:,:) = 0._wp   
     128            zmaxdzT(:,:) = 0._wp   
     129            DO jj = 1, jpj 
     130               DO ji = 1, jpi 
     131                  zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
     132                  hth     (ji,jj) = zztmp 
     133                  zabs2   (ji,jj) = zztmp 
     134                  ztm2    (ji,jj) = zztmp 
     135                  zrho10_3(ji,jj) = zztmp 
     136                  zpycn   (ji,jj) = zztmp 
     137                 END DO 
     138            END DO 
     139            IF( nla10 > 1 ) THEN  
     140               DO jj = 1, jpj 
     141                  DO ji = 1, jpi 
     142                     zztmp = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)  
     143                     zrho0_3(ji,jj) = zztmp 
     144                     zrho0_1(ji,jj) = zztmp 
     145                  END DO 
     146               END DO 
     147            ENDIF 
     148       
     149            ! Preliminary computation 
     150            ! computation of zdelr = (dr/dT)(T,S,10m)*(-0.2 degC) 
     151            DO jj = 1, jpj 
     152               DO ji = 1, jpi 
     153                  IF( tmask(ji,jj,nla10) == 1. ) THEN 
     154                     zu  =  1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80   * ts(ji,jj,nla10,jp_sal,Kmm)  & 
     155                        &           - 0.0745 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm)   & 
     156                        &           - 0.0100 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_sal,Kmm) 
     157                     zv  =  5891.00 + 38.000 * ts(ji,jj,nla10,jp_tem,Kmm) + 3.00   * ts(ji,jj,nla10,jp_sal,Kmm)  & 
     158                        &           - 0.3750 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) 
     159                     zut =    11.25 -  0.149 * ts(ji,jj,nla10,jp_tem,Kmm) - 0.01   * ts(ji,jj,nla10,jp_sal,Kmm) 
     160                     zvt =    38.00 -  0.750 * ts(ji,jj,nla10,jp_tem,Kmm) 
     161                     zw  = (zu + 0.698*zv) * (zu + 0.698*zv) 
     162                     zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw) 
     163                  ELSE 
     164                     zdelr(ji,jj) = 0._wp 
     165                  ENDIF 
     166               END DO 
     167            END DO 
     168 
     169            ! ------------------------------------------------------------- ! 
     170            ! thermocline depth: strongest vertical gradient of temperature ! 
     171            ! turbocline depth (mixing layer depth): avt = zavt5            ! 
     172            ! MLD: rho = rho(1) + zrho3                                     ! 
     173            ! MLD: rho = rho(1) + zrho1                                     ! 
     174            ! ------------------------------------------------------------- ! 
     175            DO jk = jpkm1, 2, -1   ! loop from bottom to 2 
     176               DO jj = 1, jpj 
     177                  DO ji = 1, jpi 
     178                     ! 
     179                     zzdep = gdepw(ji,jj,jk,Kmm) 
     180                     zztmp = ( ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ) & 
     181                            & / zzdep * tmask(ji,jj,jk)   ! vertical gradient of temperature (dT/dz) 
     182                     zzdep = zzdep * tmask(ji,jj,1) 
     183 
     184                     IF( zztmp > zmaxdzT(ji,jj) ) THEN                         
     185                         zmaxdzT(ji,jj) = zztmp    
     186                         hth    (ji,jj) = zzdep                ! max and depth of dT/dz 
     187                     ENDIF 
     188                
     189                     IF( nla10 > 1 ) THEN  
     190                        zztmp = rhop(ji,jj,jk) - rhop(ji,jj,1)                       ! delta rho(1) 
     191                        IF( zztmp > zrho3 )   zrho0_3(ji,jj) = zzdep                ! > 0.03 
     192                        IF( zztmp > zrho1 )   zrho0_1(ji,jj) = zzdep                ! > 0.01 
     193                     ENDIF 
     194                  END DO 
     195               END DO 
     196            END DO 
     197          
     198            CALL iom_put( 'mlddzt', hth )            ! depth of the thermocline 
     199            IF( nla10 > 1 ) THEN  
     200               CALL iom_put( 'mldr0_3', zrho0_3 )   ! MLD delta rho(surf) = 0.03 
     201               CALL iom_put( 'mldr0_1', zrho0_1 )   ! MLD delta rho(surf) = 0.01 
     202            ENDIF 
     203            ! 
     204         ENDIF 
     205         ! 
     206         IF(  iom_use( 'mld_dt02' ) .OR. iom_use( 'topthdep' ) .OR. iom_use( 'mldr10_3' ) .OR.  &     
     207            &  iom_use( 'pycndep' ) .OR. iom_use( 'tinv'     ) .OR. iom_use( 'depti'    )  ) THEN 
     208            ! ------------------------------------------------------------- ! 
     209            ! MLD: abs( tn - tn(10m) ) = ztem2                              ! 
     210            ! Top of thermocline: tn = tn(10m) - ztem2                      ! 
     211            ! MLD: rho = rho10m + zrho3                                     ! 
     212            ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC)       ! 
     213            ! temperature inversion: max( 0, max of tn - tn(10m) )          ! 
     214            ! depth of temperature inversion                                ! 
     215            ! ------------------------------------------------------------- ! 
     216            DO jk = jpkm1, nlb10, -1   ! loop from bottom to nlb10 
     217               DO jj = 1, jpj 
     218                  DO ji = 1, jpi 
     219                     ! 
     220                     zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 
     221                     ! 
     222                     zztmp = ts(ji,jj,nla10,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm)  ! - delta T(10m) 
     223                     IF( ABS(zztmp) > ztem2 )      zabs2   (ji,jj) = zzdep   ! abs > 0.2 
     224                     IF(     zztmp  > ztem2 )      ztm2    (ji,jj) = zzdep   ! > 0.2 
     225                     zztmp = -zztmp                                          ! delta T(10m) 
     226                     IF( zztmp >  ztinv(ji,jj) ) THEN                        ! temperature inversion 
     227                        ztinv(ji,jj) = zztmp    
     228                        zdepinv (ji,jj) = zzdep   ! max value and depth 
     229                     ENDIF 
     230 
     231                     zztmp = rhop(ji,jj,jk) - rhop(ji,jj,nla10)              ! delta rho(10m) 
     232                     IF( zztmp > zrho3        )    zrho10_3(ji,jj) = zzdep   ! > 0.03 
     233                     IF( zztmp > zdelr(ji,jj) )    zpycn   (ji,jj) = zzdep   ! > equi. delta T(10m) - 0.2 
     234                     ! 
     235                  END DO 
     236               END DO 
     237            END DO 
     238 
     239            CALL iom_put( 'mld_dt02', zabs2    )   ! MLD abs(delta t) - 0.2 
     240            CALL iom_put( 'topthdep', ztm2     )   ! T(10) - 0.2 
     241            CALL iom_put( 'mldr10_3', zrho10_3 )   ! MLD delta rho(10m) = 0.03 
     242            CALL iom_put( 'pycndep' , zpycn    )   ! MLD delta rho equi. delta T(10m) = 0.2 
     243            CALL iom_put( 'tinv'    , ztinv    )   ! max. temp. inv. (t10 ref)  
     244            CALL iom_put( 'depti'   , zdepinv  )   ! depth of max. temp. inv. (t10 ref)  
     245            ! 
     246         ENDIF 
     247  
     248         ! ------------------------------- ! 
     249         !  Depth of 20C/26C/28C isotherm  ! 
     250         ! ------------------------------- ! 
     251         IF( iom_use ('20d') ) THEN  ! depth of the 20 isotherm 
     252            ztem2 = 20. 
     253            CALL dia_hth_dep( Kmm, ztem2, hd20 )   
     254            CALL iom_put( '20d', hd20 )     
     255         ENDIF 
     256         ! 
     257         IF( iom_use ('26d') ) THEN  ! depth of the 26 isotherm 
     258            ztem2 = 26. 
     259            CALL dia_hth_dep( Kmm, ztem2, hd26 )   
     260            CALL iom_put( '26d', hd26 )     
     261         ENDIF 
     262         ! 
     263         IF( iom_use ('28d') ) THEN  ! depth of the 28 isotherm 
     264            ztem2 = 28. 
     265            CALL dia_hth_dep( Kmm, ztem2, hd28 )   
     266            CALL iom_put( '28d', hd28 )     
     267         ENDIF 
     268         
     269         ! ----------------------------- ! 
     270         !  Heat content of first 300 m  ! 
     271         ! ----------------------------- ! 
     272         IF( iom_use ('hc300') ) THEN   
     273            zzdep = 300. 
     274            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc3 ) 
     275            CALL iom_put( 'hc300', rau0_rcp * htc3 )  ! vertically integrated heat content (J/m2) 
     276         ENDIF 
     277         ! 
     278         ! ----------------------------- ! 
     279         !  Heat content of first 700 m  ! 
     280         ! ----------------------------- ! 
     281         IF( iom_use ('hc700') ) THEN   
     282            zzdep = 700. 
     283            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc7 ) 
     284            CALL iom_put( 'hc700', rau0_rcp * htc7 )  ! vertically integrated heat content (J/m2) 
     285   
     286         ENDIF 
     287         ! 
     288         ! ----------------------------- ! 
     289         !  Heat content of first 2000 m  ! 
     290         ! ----------------------------- ! 
     291         IF( iom_use ('hc2000') ) THEN   
     292            zzdep = 2000. 
     293            CALL  dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc20 ) 
     294            CALL iom_put( 'hc2000', rau0_rcp * htc20 )  ! vertically integrated heat content (J/m2)   
     295         ENDIF 
     296         ! 
    158297      ENDIF 
     298 
     299      ! 
     300      IF( ln_timing )   CALL timing_stop('dia_hth') 
     301      ! 
     302   END SUBROUTINE dia_hth 
     303 
     304   SUBROUTINE dia_hth_dep( Kmm, ptem, pdept ) 
     305      ! 
     306      INTEGER , INTENT(in) :: Kmm      ! ocean time level index 
     307      REAL(wp), INTENT(in) :: ptem 
     308      REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: pdept      
     309      ! 
     310      INTEGER  :: ji, jj, jk, iid 
     311      REAL(wp) :: zztmp, zzdep 
     312      INTEGER, DIMENSION(jpi,jpj) :: iktem 
    159313       
    160       ! Preliminary computation 
    161       ! computation of zdelr = (dr/dT)(T,S,10m)*(-0.2 degC) 
    162       DO jj = 1, jpj 
    163          DO ji = 1, jpi 
    164             IF( tmask(ji,jj,nla10) == 1. ) THEN 
    165                zu  =  1779.50 + 11.250 * ts(ji,jj,nla10,jp_tem,Kmm) - 3.80   * ts(ji,jj,nla10,jp_sal,Kmm)                             & 
    166                   &                                              - 0.0745 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm)   & 
    167                   &                                              - 0.0100 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_sal,Kmm) 
    168                zv  =  5891.00 + 38.000 * ts(ji,jj,nla10,jp_tem,Kmm) + 3.00   * ts(ji,jj,nla10,jp_sal,Kmm)                             & 
    169                   &                                              - 0.3750 * ts(ji,jj,nla10,jp_tem,Kmm) * ts(ji,jj,nla10,jp_tem,Kmm) 
    170                zut =    11.25 -  0.149 * ts(ji,jj,nla10,jp_tem,Kmm) - 0.01   * ts(ji,jj,nla10,jp_sal,Kmm) 
    171                zvt =    38.00 -  0.750 * ts(ji,jj,nla10,jp_tem,Kmm) 
    172                zw  = (zu + 0.698*zv) * (zu + 0.698*zv) 
    173                zdelr(ji,jj) = ztem2 * (1000.*(zut*zv - zvt*zu)/zw) 
    174             ELSE 
    175                zdelr(ji,jj) = 0._wp 
    176             ENDIF 
    177          END DO 
    178       END DO 
    179  
    180       ! ------------------------------------------------------------- ! 
    181       ! thermocline depth: strongest vertical gradient of temperature ! 
    182       ! turbocline depth (mixing layer depth): avt = zavt5            ! 
    183       ! MLD: rho = rho(1) + zrho3                                     ! 
    184       ! MLD: rho = rho(1) + zrho1                                     ! 
    185       ! ------------------------------------------------------------- ! 
    186       DO jk = jpkm1, 2, -1   ! loop from bottom to 2 
    187          DO jj = 1, jpj 
    188             DO ji = 1, jpi 
    189                ! 
    190                zzdep = gdepw(ji,jj,jk,Kmm) 
    191                zztmp = ( ts(ji,jj,jk-1,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm) ) / zzdep * tmask(ji,jj,jk)   ! vertical gradient of temperature (dT/dz) 
    192                zzdep = zzdep * tmask(ji,jj,1) 
    193  
    194                IF( zztmp > zmaxdzT(ji,jj) ) THEN                         
    195                   zmaxdzT(ji,jj) = zztmp   ;   hth    (ji,jj) = zzdep                ! max and depth of dT/dz 
    196                ENDIF 
    197                 
    198                IF( nla10 > 1 ) THEN  
    199                   zztmp = rhop(ji,jj,jk) - rhop(ji,jj,1)                             ! delta rho(1) 
    200                   IF( zztmp > zrho3 )          zrho0_3(ji,jj) = zzdep                ! > 0.03 
    201                   IF( zztmp > zrho1 )          zrho0_1(ji,jj) = zzdep                ! > 0.01 
    202                ENDIF 
    203  
    204             END DO 
    205          END DO 
    206       END DO 
    207        
    208       CALL iom_put( "mlddzt", hth )            ! depth of the thermocline 
    209       IF( nla10 > 1 ) THEN  
    210          CALL iom_put( "mldr0_3", zrho0_3 )   ! MLD delta rho(surf) = 0.03 
    211          CALL iom_put( "mldr0_1", zrho0_1 )   ! MLD delta rho(surf) = 0.01 
    212       ENDIF 
    213  
    214       ! ------------------------------------------------------------- ! 
    215       ! MLD: abs( tn - tn(10m) ) = ztem2                              ! 
    216       ! Top of thermocline: tn = tn(10m) - ztem2                      ! 
    217       ! MLD: rho = rho10m + zrho3                                     ! 
    218       ! pycnocline: rho = rho10m + (dr/dT)(T,S,10m)*(-0.2 degC)       ! 
    219       ! temperature inversion: max( 0, max of tn - tn(10m) )          ! 
    220       ! depth of temperature inversion                                ! 
    221       ! ------------------------------------------------------------- ! 
    222       DO jk = jpkm1, nlb10, -1   ! loop from bottom to nlb10 
    223          DO jj = 1, jpj 
    224             DO ji = 1, jpi 
    225                ! 
    226                zzdep = gdepw(ji,jj,jk,Kmm) * tmask(ji,jj,1) 
    227                ! 
    228                zztmp = ts(ji,jj,nla10,jp_tem,Kmm) - ts(ji,jj,jk,jp_tem,Kmm)  ! - delta T(10m) 
    229                IF( ABS(zztmp) > ztem2 )      zabs2   (ji,jj) = zzdep   ! abs > 0.2 
    230                IF(     zztmp  > ztem2 )      ztm2    (ji,jj) = zzdep   ! > 0.2 
    231                zztmp = -zztmp                                          ! delta T(10m) 
    232                IF( zztmp >  ztinv(ji,jj) ) THEN                        ! temperature inversion 
    233                   ztinv(ji,jj) = zztmp   ;   zdepinv (ji,jj) = zzdep   ! max value and depth 
    234                ENDIF 
    235  
    236                zztmp = rhop(ji,jj,jk) - rhop(ji,jj,nla10)              ! delta rho(10m) 
    237                IF( zztmp > zrho3        )    zrho10_3(ji,jj) = zzdep   ! > 0.03 
    238                IF( zztmp > zdelr(ji,jj) )    zpycn   (ji,jj) = zzdep   ! > equi. delta T(10m) - 0.2 
    239                ! 
    240             END DO 
    241          END DO 
    242       END DO 
    243  
    244       CALL iom_put( "mld_dt02", zabs2        )   ! MLD abs(delta t) - 0.2 
    245       CALL iom_put( "topthdep", ztm2         )   ! T(10) - 0.2 
    246       CALL iom_put( "mldr10_3", zrho10_3     )   ! MLD delta rho(10m) = 0.03 
    247       CALL iom_put( "pycndep" , zpycn        )   ! MLD delta rho equi. delta T(10m) = 0.2 
    248       CALL iom_put( "tinv"    , ztinv        )   ! max. temp. inv. (t10 ref)  
    249       CALL iom_put( "depti"   , zdepinv      )   ! depth of max. temp. inv. (t10 ref)  
    250  
    251  
    252       ! ----------------------------------- ! 
    253       ! search deepest level above 20C/28C  ! 
    254       ! ----------------------------------- ! 
    255       ik20(:,:) = 1 
    256       ik28(:,:) = 1 
     314      ! --------------------------------------- ! 
     315      ! search deepest level above ptem         ! 
     316      ! --------------------------------------- ! 
     317      iktem(:,:) = 1 
    257318      DO jk = 1, jpkm1   ! beware temperature is not always decreasing with depth => loop from top to bottom 
    258319         DO jj = 1, jpj 
    259320            DO ji = 1, jpi 
    260321               zztmp = ts(ji,jj,jk,jp_tem,Kmm) 
    261                IF( zztmp >= 20. )   ik20(ji,jj) = jk 
    262                IF( zztmp >= 28. )   ik28(ji,jj) = jk 
     322               IF( zztmp >= ptem )   iktem(ji,jj) = jk 
    263323            END DO 
    264324         END DO 
    265325      END DO 
    266326 
    267       ! --------------------------- ! 
    268       !  Depth of 20C/28C isotherm  ! 
    269       ! --------------------------- ! 
     327      ! ------------------------------- ! 
     328      !  Depth of ptem isotherm         ! 
     329      ! ------------------------------- ! 
    270330      DO jj = 1, jpj 
    271331         DO ji = 1, jpi 
    272332            ! 
    273             zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)       ! depth of the oean bottom 
     333            zzdep = gdepw(ji,jj,mbkt(ji,jj)+1,Kmm)       ! depth of the ocean bottom 
    274334            ! 
    275             iid = ik20(ji,jj) 
     335            iid = iktem(ji,jj) 
    276336            IF( iid /= 1 ) THEN  
    277                zztmp =      gdept(ji,jj,iid  ,Kmm)   &                     ! linear interpolation 
     337                zztmp =     gdept(ji,jj,iid  ,Kmm)   &                     ! linear interpolation 
    278338                  &  + (    gdept(ji,jj,iid+1,Kmm) - gdept(ji,jj,iid,Kmm)                       )   & 
    279339                  &  * ( 20.*tmask(ji,jj,iid+1) - ts(ji,jj,iid,jp_tem,Kmm)                       )   & 
    280340                  &  / ( ts(ji,jj,iid+1,jp_tem,Kmm) - ts(ji,jj,iid,jp_tem,Kmm) + (1.-tmask(ji,jj,1)) ) 
    281                hd20(ji,jj) = MIN( zztmp , zzdep) * tmask(ji,jj,1)       ! bound by the ocean depth 
     341               pdept(ji,jj) = MIN( zztmp , zzdep) * tmask(ji,jj,1)       ! bound by the ocean depth 
    282342            ELSE  
    283                hd20(ji,jj) = 0._wp 
     343               pdept(ji,jj) = 0._wp 
    284344            ENDIF 
    285             ! 
    286             iid = ik28(ji,jj) 
    287             IF( iid /= 1 ) THEN  
    288                zztmp =      gdept(ji,jj,iid  ,Kmm)   &                     ! linear interpolation 
    289                   &  + (    gdept(ji,jj,iid+1,Kmm) - gdept(ji,jj,iid,Kmm)                       )   & 
    290                   &  * ( 28.*tmask(ji,jj,iid+1) -    ts(ji,jj,iid,jp_tem,Kmm)                       )   & 
    291                   &  / (  ts(ji,jj,iid+1,jp_tem,Kmm) -    ts(ji,jj,iid,jp_tem,Kmm) + (1.-tmask(ji,jj,1)) ) 
    292                hd28(ji,jj) = MIN( zztmp , zzdep ) * tmask(ji,jj,1)      ! bound by the ocean depth 
    293             ELSE  
    294                hd28(ji,jj) = 0._wp 
    295             ENDIF 
    296  
    297345         END DO 
    298346      END DO 
    299       CALL iom_put( "20d", hd20 )   ! depth of the 20 isotherm 
    300       CALL iom_put( "28d", hd28 )   ! depth of the 28 isotherm 
    301  
    302       ! ----------------------------- ! 
    303       !  Heat content of first 300 m  ! 
    304       ! ----------------------------- ! 
    305  
    306       ! find ilevel with (ilevel+1) the deepest W-level above 300m (we assume we can use e3t_1d to do this search...) 
    307       ilevel   = 0 
    308       zthick_0 = 0._wp 
    309       DO jk = 1, jpkm1                       
    310          zthick_0 = zthick_0 + e3t_1d(jk) 
    311          IF( zthick_0 < 300. )   ilevel = jk 
    312       END DO 
     347      ! 
     348   END SUBROUTINE dia_hth_dep 
     349 
     350 
     351   SUBROUTINE dia_hth_htc( Kmm, pdep, pt, phtc ) 
     352      ! 
     353      INTEGER , INTENT(in) :: Kmm      ! ocean time level index 
     354      REAL(wp), INTENT(in) :: pdep     ! depth over the heat content 
     355      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: pt    
     356      REAL(wp), DIMENSION(jpi,jpj), INTENT(inout) :: phtc   
     357      ! 
     358      INTEGER  :: ji, jj, jk, ik 
     359      REAL(wp), DIMENSION(jpi,jpj) :: zthick 
     360      INTEGER , DIMENSION(jpi,jpj) :: ilevel 
     361 
     362 
    313363      ! surface boundary condition 
    314       IF( ln_linssh ) THEN   ;   zthick(:,:) = ssh(:,:,Kmm)   ;   htc3(:,:) = ts(:,:,1,jp_tem,Kmm) * ssh(:,:,Kmm) * tmask(:,:,1)   
    315       ELSE                   ;   zthick(:,:) = 0._wp       ;   htc3(:,:) = 0._wp                                    
     364       
     365      IF( .NOT. ln_linssh ) THEN   ;   zthick(:,:) = 0._wp       ;   phtc(:,:) = 0._wp                                    
     366      ELSE                         ;   zthick(:,:) = ssh(:,:,Kmm)   ;   phtc(:,:) = pt(:,:,1) * ssh(:,:,Kmm) * tmask(:,:,1)    
    316367      ENDIF 
    317       ! integration down to ilevel 
    318       DO jk = 1, ilevel 
    319          zthick(:,:) = zthick(:,:) + e3t(:,:,jk,Kmm) 
    320          htc3  (:,:) = htc3  (:,:) + e3t(:,:,jk,Kmm) * ts(:,:,jk,jp_tem,Kmm) * tmask(:,:,jk) 
    321       END DO 
    322       ! deepest layer 
    323       zthick(:,:) = 300. - zthick(:,:)   !   remaining thickness to reach 300m 
     368      ! 
     369      ilevel(:,:) = 1 
     370      DO jk = 2, jpkm1 
     371         DO jj = 1, jpj 
     372            DO ji = 1, jpi 
     373               IF( ( gdept(ji,jj,jk,Kmm) < pdep ) .AND. ( tmask(ji,jj,jk) == 1 ) ) THEN 
     374                   ilevel(ji,jj) = jk 
     375                   zthick(ji,jj) = zthick(ji,jj) + e3t(ji,jj,jk,Kmm) 
     376                   phtc  (ji,jj) = phtc  (ji,jj) + e3t(ji,jj,jk,Kmm) * pt(ji,jj,jk) 
     377               ENDIF 
     378            ENDDO 
     379         ENDDO 
     380      ENDDO 
     381      ! 
    324382      DO jj = 1, jpj 
    325383         DO ji = 1, jpi 
    326             htc3(ji,jj) = htc3(ji,jj) + ts(ji,jj,ilevel+1,jp_tem,Kmm)                  & 
    327                &                      * MIN( e3t(ji,jj,ilevel+1,Kmm), zthick(ji,jj) ) * tmask(ji,jj,ilevel+1) 
     384            ik = ilevel(ji,jj) 
     385            zthick(ji,jj) = pdep - zthick(ji,jj)   !   remaining thickness to reach depht pdep 
     386            phtc(ji,jj)   = phtc(ji,jj) + pt(ji,jj,ik+1) * MIN( e3t(ji,jj,ik+1,Kmm), zthick(ji,jj) ) & 
     387                                                          * tmask(ji,jj,ik+1) 
    328388         END DO 
    329       END DO 
    330       ! from temperature to heat contain 
    331       zcoef = rau0 * rcp 
    332       htc3(:,:) = zcoef * htc3(:,:) 
    333       CALL iom_put( "hc300", htc3 )      ! first 300m heat content 
    334       ! 
    335       IF( ln_timing )   CALL timing_stop('dia_hth') 
    336       ! 
    337    END SUBROUTINE dia_hth 
    338  
    339 #else 
    340    !!---------------------------------------------------------------------- 
    341    !!   Default option :                                       Empty module 
    342    !!---------------------------------------------------------------------- 
    343    LOGICAL , PUBLIC, PARAMETER ::   lk_diahth = .FALSE.  !: thermocline-20d depths flag 
    344 CONTAINS 
    345    SUBROUTINE dia_hth( kt, Kmm )         ! Empty routine 
    346       IMPLICIT NONE 
    347       INTEGER, INTENT( in ) :: kt 
    348       INTEGER, INTENT( in ) :: Kmm 
    349       WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 
    350    END SUBROUTINE dia_hth 
    351 #endif 
     389      ENDDO 
     390      ! 
     391      ! 
     392   END SUBROUTINE dia_hth_htc 
    352393 
    353394   !!====================================================================== 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DIA/diaptr.F90

    r11960 r12193  
    1010   !!            3.6  ! 2014-12  (C. Ethe) use of IOM 
    1111   !!            3.6  ! 2016-06  (T. Graham) Addition of diagnostics for CMIP6 
     12   !!            4.0  ! 2010-08  ( C. Ethe, J. Deshayes ) Improvment 
    1213   !!---------------------------------------------------------------------- 
    1314 
     
    4243 
    4344   !                                  !!** namelist  namptr  ** 
    44    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_adv, htr_ldf, htr_eiv   !: Heat TRansports (adv, diff, Bolus.) 
    45    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   str_adv, str_ldf, str_eiv   !: Salt TRansports (adv, diff, Bolus.) 
    46    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_ove, str_ove   !: heat Salt TRansports ( overturn.) 
    47    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_btr, str_btr   !: heat Salt TRansports ( barotropic ) 
    48  
    49    LOGICAL, PUBLIC ::   ln_diaptr   !  Poleward transport flag (T) or not (F) 
    50    LOGICAL, PUBLIC ::   ln_subbas   !  Atlantic/Pacific/Indian basins calculation 
    51    INTEGER, PUBLIC ::   nptr        ! = 1 (l_subbas=F) or = 5 (glo, atl, pac, ind, ipc) (l_subbas=T)  
     45   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hstr_adv, hstr_ldf, hstr_eiv   !: Heat/Salt TRansports(adv, diff, Bolus.) 
     46   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hstr_ove, hstr_btr, hstr_vtr   !: heat Salt TRansports(overturn, baro, merional) 
     47 
     48   LOGICAL , PUBLIC ::   l_diaptr        !: tracers  trend flag (set from namelist in trdini) 
     49   INTEGER, PARAMETER, PUBLIC ::   nptr = 5  ! (glo, atl, pac, ind, ipc) 
    5250 
    5351   REAL(wp) ::   rc_sv    = 1.e-6_wp   ! conversion from m3/s to Sverdrup 
    5452   REAL(wp) ::   rc_pwatt = 1.e-15_wp  ! conversion from W    to PW (further x rau0 x Cp) 
    55    REAL(wp) ::   rc_ggram = 1.e-6_wp   ! conversion from g    to Pg 
    56  
    57    CHARACTER(len=3), ALLOCATABLE, SAVE, DIMENSION(:)     :: clsubb 
    58    REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk   ! T-point basin interior masks 
    59    REAL(wp),         ALLOCATABLE, SAVE, DIMENSION(:,:)   :: btm30   ! mask out Southern Ocean (=0 south of 30°S) 
    60  
    61    REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:)     :: p_fval1d 
    62    REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:,:)   :: p_fval2d 
    63  
     53   REAL(wp) ::   rc_ggram = 1.e-9_wp   ! conversion from g    to Gg  (further x rau0) 
     54 
     55   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk   ! T-point basin interior masks 
     56   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk34 ! mask out Southern Ocean (=0 south of 34°S) 
     57 
     58   REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:)   :: p_fval1d 
     59   REAL(wp), TARGET, ALLOCATABLE, SAVE, DIMENSION(:,:) :: p_fval2d 
     60 
     61   LOGICAL ::   ll_init = .TRUE.        !: tracers  trend flag (set from namelist in trdini) 
    6462   !! * Substitutions 
    6563#  include "vectopt_loop_substitute.h90" 
     
    7169CONTAINS 
    7270 
    73    SUBROUTINE dia_ptr( Kmm, pvtr ) 
     71   SUBROUTINE dia_ptr( kt, Kmm, pvtr ) 
    7472      !!---------------------------------------------------------------------- 
    7573      !!                  ***  ROUTINE dia_ptr  *** 
    7674      !!---------------------------------------------------------------------- 
     75      INTEGER                         , INTENT(in)           ::   kt     ! ocean time-step index      
    7776      INTEGER                         , INTENT(in)           ::   Kmm    ! time level index 
    7877      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL ::   pvtr   ! j-effective transport 
     
    8180      REAL(wp) ::   zsfc,zvfc               ! local scalar 
    8281      REAL(wp), DIMENSION(jpi,jpj)     ::  z2d   ! 2D workspace 
    83       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  z3d   ! 3D workspace 
    8482      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zmask   ! 3D workspace 
     83      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  z3d    ! 3D workspace 
    8584      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts   ! 3D workspace 
    86       REAL(wp), DIMENSION(jpj)     ::  vsum   ! 1D workspace 
    87       REAL(wp), DIMENSION(jpj,jpts)     ::  tssum   ! 1D workspace 
    88   
     85      REAL(wp), DIMENSION(jpj)      ::  zvsum, ztsum, zssum   ! 1D workspace 
    8986      ! 
    9087      !overturning calculation 
    91       REAL(wp), DIMENSION(jpj,jpk,nptr) ::   sjk  , r1_sjk ! i-mean i-k-surface and its inverse 
    92       REAL(wp), DIMENSION(jpj,jpk,nptr) ::   v_msf, sn_jk  , tn_jk ! i-mean T and S, j-Stream-Function 
    93       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zvv   ! 3D workspace 
    94  
    95  
    96       CHARACTER( len = 12 )  :: cl1 
     88      REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk, r1_sjk, v_msf  ! i-mean i-k-surface and its inverse 
     89      REAL(wp), DIMENSION(jpj,jpk,nptr) :: zt_jk, zs_jk ! i-mean T and S, j-Stream-Function 
     90 
     91      REAL(wp), DIMENSION(jpi,jpj,jpk,nptr)  :: z4d1, z4d2 
     92      REAL(wp), DIMENSION(jpi,jpj,nptr)      :: z3dtr ! i-mean T and S, j-Stream-Function 
    9793      !!---------------------------------------------------------------------- 
    9894      ! 
    9995      IF( ln_timing )   CALL timing_start('dia_ptr') 
    10096 
    101       ! 
     97      IF( kt == nit000 .AND. ll_init )   CALL dia_ptr_init 
     98      ! 
     99      IF( .NOT. l_diaptr )   RETURN 
     100 
    102101      IF( PRESENT( pvtr ) ) THEN 
    103          IF( iom_use("zomsfglo") ) THEN    ! effective MSF 
    104             z3d(1,:,:) = ptr_sjk( pvtr(:,:,:) )  ! zonal cumulative effective transport 
    105             DO jk = 2, jpkm1  
    106               z3d(1,:,jk) = z3d(1,:,jk-1) + z3d(1,:,jk)   ! effective j-Stream-Function (MSF) 
     102         IF( iom_use( 'zomsf' ) ) THEN    ! effective MSF 
     103            DO jn = 1, nptr                                    ! by sub-basins 
     104               z4d1(1,:,:,jn) =  ptr_sjk( pvtr(:,:,:), btmsk34(:,:,jn) )  ! zonal cumulative effective transport excluding closed seas 
     105               DO jk = jpkm1, 1, -1  
     106                  z4d1(1,:,jk,jn) = z4d1(1,:,jk+1,jn) - z4d1(1,:,jk,jn)    ! effective j-Stream-Function (MSF) 
     107               END DO 
     108               DO ji = 1, jpi 
     109                  z4d1(ji,:,:,jn) = z4d1(1,:,:,jn) 
     110               ENDDO 
    107111            END DO 
    108             DO ji = 1, jpi 
    109                z3d(ji,:,:) = z3d(1,:,:) 
    110             ENDDO 
    111             cl1 = TRIM('zomsf'//clsubb(1) ) 
    112             CALL iom_put( cl1, z3d * rc_sv ) 
    113             DO jn = 2, nptr                                    ! by sub-basins 
    114                z3d(1,:,:) =  ptr_sjk( pvtr(:,:,:), btmsk(:,:,jn)*btm30(:,:) )  
    115                DO jk = 2, jpkm1  
    116                   z3d(1,:,jk) = z3d(1,:,jk-1) + z3d(1,:,jk)    ! effective j-Stream-Function (MSF) 
    117                END DO 
    118                DO ji = 1, jpi 
    119                   z3d(ji,:,:) = z3d(1,:,:) 
    120                ENDDO 
    121                cl1 = TRIM('zomsf'//clsubb(jn) ) 
    122                CALL iom_put( cl1, z3d * rc_sv ) 
    123             END DO 
    124          ENDIF 
    125          IF( iom_use("sopstove") .OR. iom_use("sophtove") .OR. iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 
     112            CALL iom_put( 'zomsf', z4d1 * rc_sv ) 
     113         ENDIF 
     114         IF(  iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) .OR.   & 
     115            & iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) ) THEN 
    126116            ! define fields multiplied by scalar 
    127117            zmask(:,:,:) = 0._wp 
    128118            zts(:,:,:,:) = 0._wp 
    129             zvv(:,:,:) = 0._wp 
    130119            DO jk = 1, jpkm1 
    131120               DO jj = 1, jpjm1 
     
    135124                     zts(ji,jj,jk,jp_tem) = (ts(ji,jj,jk,jp_tem,Kmm)+ts(ji,jj+1,jk,jp_tem,Kmm)) * 0.5 * zvfc  !Tracers averaged onto V grid 
    136125                     zts(ji,jj,jk,jp_sal) = (ts(ji,jj,jk,jp_sal,Kmm)+ts(ji,jj+1,jk,jp_sal,Kmm)) * 0.5 * zvfc 
    137                      zvv(ji,jj,jk)        = vv(ji,jj,jk,Kmm)         * zvfc 
    138126                  ENDDO 
    139127               ENDDO 
    140128             ENDDO 
    141129         ENDIF 
    142          IF( iom_use("sopstove") .OR. iom_use("sophtove") ) THEN 
    143              sjk(:,:,1) = ptr_sjk( zmask(:,:,:), btmsk(:,:,1) ) 
    144              r1_sjk(:,:,1) = 0._wp 
    145              WHERE( sjk(:,:,1) /= 0._wp )   r1_sjk(:,:,1) = 1._wp / sjk(:,:,1) 
    146  
    147              ! i-mean T and S, j-Stream-Function, global 
    148              tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 
    149              sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 
    150              v_msf(:,:,1) = ptr_sjk( zvv(:,:,:) ) 
    151  
    152              htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) 
    153              str_ove(:,1) = SUM( v_msf(:,:,1)*sn_jk(:,:,1) ,2 ) 
    154  
    155              z2d(1,:) = htr_ove(:,1) * rc_pwatt        !  (conversion in PW) 
    156              DO ji = 1, jpi 
    157                z2d(ji,:) = z2d(1,:) 
    158              ENDDO 
    159              cl1 = 'sophtove' 
    160              CALL iom_put( TRIM(cl1), z2d ) 
    161              z2d(1,:) = str_ove(:,1) * rc_ggram        !  (conversion in Gg) 
    162              DO ji = 1, jpi 
    163                z2d(ji,:) = z2d(1,:) 
    164              ENDDO 
    165              cl1 = 'sopstove' 
    166              CALL iom_put( TRIM(cl1), z2d ) 
    167              IF( ln_subbas ) THEN 
    168                 DO jn = 2, nptr 
    169                     sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 
    170                     r1_sjk(:,:,jn) = 0._wp 
    171                     WHERE( sjk(:,:,jn) /= 0._wp )   r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 
    172  
    173                     ! i-mean T and S, j-Stream-Function, basin 
    174                     tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
    175                     sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
    176                     v_msf(:,:,jn) = ptr_sjk( zvv(:,:,:), btmsk(:,:,jn) )  
    177                     htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 
    178                     str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) 
    179  
    180                     z2d(1,:) = htr_ove(:,jn) * rc_pwatt !  (conversion in PW) 
    181                     DO ji = 1, jpi 
    182                         z2d(ji,:) = z2d(1,:) 
    183                     ENDDO 
    184                     cl1 = TRIM('sophtove_'//clsubb(jn)) 
    185                     CALL iom_put( cl1, z2d ) 
    186                     z2d(1,:) = str_ove(:,jn) * rc_ggram        ! (conversion in Gg) 
    187                     DO ji = 1, jpi 
    188                         z2d(ji,:) = z2d(1,:) 
    189                     ENDDO 
    190                     cl1 = TRIM('sopstove_'//clsubb(jn)) 
    191                     CALL iom_put( cl1, z2d ) 
    192                 END DO 
    193              ENDIF 
    194          ENDIF 
    195          IF( iom_use("sopstbtr") .OR. iom_use("sophtbtr") ) THEN 
    196          ! Calculate barotropic heat and salt transport here  
    197              sjk(:,1,1) = ptr_sj( zmask(:,:,:), btmsk(:,:,1) ) 
    198              r1_sjk(:,1,1) = 0._wp 
    199              WHERE( sjk(:,1,1) /= 0._wp )   r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 
    200              
    201             vsum = ptr_sj( zvv(:,:,:), btmsk(:,:,1)) 
    202             tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 
    203             tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 
    204             htr_btr(:,1) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,1) 
    205             str_btr(:,1) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,1) 
    206             z2d(1,:) = htr_btr(:,1) * rc_pwatt        !  (conversion in PW) 
    207             DO ji = 2, jpi 
    208                z2d(ji,:) = z2d(1,:) 
    209             ENDDO 
    210             cl1 = 'sophtbtr' 
    211             CALL iom_put( TRIM(cl1), z2d ) 
    212             z2d(1,:) = str_btr(:,1) * rc_ggram        !  (conversion in Gg) 
    213             DO ji = 2, jpi 
    214               z2d(ji,:) = z2d(1,:) 
    215             ENDDO 
    216             cl1 = 'sopstbtr' 
    217             CALL iom_put( TRIM(cl1), z2d ) 
    218             IF( ln_subbas ) THEN 
    219                 DO jn = 2, nptr 
    220                     sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 
    221                     r1_sjk(:,1,jn) = 0._wp 
    222                     WHERE( sjk(:,1,jn) /= 0._wp )   r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 
    223                     vsum = ptr_sj( zvv(:,:,:), btmsk(:,:,jn)) 
    224                     tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 
    225                     tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 
    226                     htr_btr(:,jn) = vsum * tssum(:,jp_tem) * r1_sjk(:,1,jn) 
    227                     str_btr(:,jn) = vsum * tssum(:,jp_sal) * r1_sjk(:,1,jn) 
    228                     z2d(1,:) = htr_btr(:,jn) * rc_pwatt !  (conversion in PW) 
    229                     DO ji = 1, jpi 
    230                         z2d(ji,:) = z2d(1,:) 
    231                     ENDDO 
    232                     cl1 = TRIM('sophtbtr_'//clsubb(jn)) 
    233                     CALL iom_put( cl1, z2d ) 
    234                     z2d(1,:) = str_btr(:,jn) * rc_ggram        ! (conversion in Gg) 
    235                     DO ji = 1, jpi 
    236                         z2d(ji,:) = z2d(1,:) 
    237                     ENDDO 
    238                     cl1 = TRIM('sopstbtr_'//clsubb(jn)) 
    239                     CALL iom_put( cl1, z2d ) 
    240                ENDDO 
    241             ENDIF !ln_subbas 
    242          ENDIF !iom_use("sopstbtr....) 
     130         IF( iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) ) THEN 
     131            DO jn = 1, nptr 
     132               sjk(:,:,jn) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 
     133               r1_sjk(:,:,jn) = 0._wp 
     134               WHERE( sjk(:,:,jn) /= 0._wp )   r1_sjk(:,:,jn) = 1._wp / sjk(:,:,jn) 
     135               ! i-mean T and S, j-Stream-Function, basin 
     136               zt_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
     137               zs_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
     138               v_msf(:,:,jn) = ptr_sjk( pvtr(:,:,:), btmsk34(:,:,jn) )  
     139               hstr_ove(:,jp_tem,jn) = SUM( v_msf(:,:,jn)*zt_jk(:,:,jn), 2 ) 
     140               hstr_ove(:,jp_sal,jn) = SUM( v_msf(:,:,jn)*zs_jk(:,:,jn), 2 ) 
     141               ! 
     142            ENDDO 
     143            DO jn = 1, nptr 
     144               z3dtr(1,:,jn) = hstr_ove(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     145               DO ji = 1, jpi 
     146                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     147               ENDDO 
     148            ENDDO 
     149            CALL iom_put( 'sophtove', z3dtr ) 
     150            DO jn = 1, nptr 
     151               z3dtr(1,:,jn) = hstr_ove(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     152               DO ji = 1, jpi 
     153                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     154               ENDDO 
     155            ENDDO 
     156            CALL iom_put( 'sopstove', z3dtr ) 
     157         ENDIF 
     158 
     159         IF( iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) ) THEN 
     160            ! Calculate barotropic heat and salt transport here  
     161            DO jn = 1, nptr 
     162               sjk(:,1,jn) = ptr_sj( zmask(:,:,:), btmsk(:,:,jn) ) 
     163               r1_sjk(:,1,jn) = 0._wp 
     164               WHERE( sjk(:,1,jn) /= 0._wp )   r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 
     165               ! 
     166               zvsum(:) = ptr_sj( pvtr(:,:,:), btmsk34(:,:,jn) ) 
     167               ztsum(:) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 
     168               zssum(:) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 
     169               hstr_btr(:,jp_tem,jn) = zvsum(:) * ztsum(:) * r1_sjk(:,1,jn) 
     170               hstr_btr(:,jp_sal,jn) = zvsum(:) * zssum(:) * r1_sjk(:,1,jn) 
     171               ! 
     172            ENDDO 
     173            DO jn = 1, nptr 
     174               z3dtr(1,:,jn) = hstr_btr(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     175               DO ji = 1, jpi 
     176                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     177               ENDDO 
     178            ENDDO 
     179            CALL iom_put( 'sophtbtr', z3dtr ) 
     180            DO jn = 1, nptr 
     181               z3dtr(1,:,jn) = hstr_btr(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     182               DO ji = 1, jpi 
     183                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     184               ENDDO 
     185            ENDDO 
     186            CALL iom_put( 'sopstbtr', z3dtr ) 
     187         ENDIF  
    243188         ! 
    244189      ELSE 
    245190         ! 
    246          IF( iom_use("zotemglo") ) THEN    ! i-mean i-k-surface  
     191         zmask(:,:,:) = 0._wp 
     192         zts(:,:,:,:) = 0._wp 
     193         IF( iom_use( 'zotem' ) .OR. iom_use( 'zosal' ) .OR. iom_use( 'zosrf' )  ) THEN    ! i-mean i-k-surface  
    247194            DO jk = 1, jpkm1 
    248195               DO jj = 1, jpj 
     
    255202               END DO 
    256203            END DO 
     204            ! 
    257205            DO jn = 1, nptr 
    258206               zmask(1,:,:) = ptr_sjk( zmask(:,:,:), btmsk(:,:,jn) ) 
    259                cl1 = TRIM('zosrf'//clsubb(jn) ) 
    260                CALL iom_put( cl1, zmask ) 
    261                ! 
    262                z3d(1,:,:) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) & 
    263                   &            / MAX( zmask(1,:,:), 10.e-15 ) 
    264                DO ji = 1, jpi 
    265                   z3d(ji,:,:) = z3d(1,:,:) 
    266                ENDDO 
    267                cl1 = TRIM('zotem'//clsubb(jn) ) 
    268                CALL iom_put( cl1, z3d ) 
    269                ! 
    270                z3d(1,:,:) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) & 
    271                   &            / MAX( zmask(1,:,:), 10.e-15 ) 
    272                DO ji = 1, jpi 
    273                   z3d(ji,:,:) = z3d(1,:,:) 
    274                ENDDO 
    275                cl1 = TRIM('zosal'//clsubb(jn) ) 
    276                CALL iom_put( cl1, z3d ) 
    277             END DO 
     207               z4d1(:,:,:,jn) = zmask(:,:,:) 
     208            ENDDO 
     209            CALL iom_put( 'zosrf', z4d1 ) 
     210            ! 
     211            DO jn = 1, nptr 
     212               z4d2(1,:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) & 
     213                  &            / MAX( z4d1(1,:,:,jn), 10.e-15 ) 
     214               DO ji = 1, jpi 
     215                  z4d2(ji,:,:,jn) = z4d2(1,:,:,jn) 
     216               ENDDO 
     217            ENDDO 
     218            CALL iom_put( 'zotem', z4d2 ) 
     219            ! 
     220            DO jn = 1, nptr 
     221               z4d2(1,:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) & 
     222                  &            / MAX( z4d1(1,:,:,jn), 10.e-15 ) 
     223               DO ji = 1, jpi 
     224                  z4d2(ji,:,:,jn) = z4d2(1,:,:,jn) 
     225               ENDDO 
     226            ENDDO 
     227            CALL iom_put( 'zosal', z4d2 ) 
     228            ! 
    278229         ENDIF 
    279230         ! 
    280231         !                                ! Advective and diffusive heat and salt transport 
    281          IF( iom_use("sophtadv") .OR. iom_use("sopstadv") ) THEN    
    282             z2d(1,:) = htr_adv(:,1) * rc_pwatt        !  (conversion in PW) 
    283             DO ji = 1, jpi 
    284                z2d(ji,:) = z2d(1,:) 
    285             ENDDO 
    286             cl1 = 'sophtadv'                  
    287             CALL iom_put( TRIM(cl1), z2d ) 
    288             z2d(1,:) = str_adv(:,1) * rc_ggram        ! (conversion in Gg) 
    289             DO ji = 1, jpi 
    290                z2d(ji,:) = z2d(1,:) 
    291             ENDDO 
    292             cl1 = 'sopstadv' 
    293             CALL iom_put( TRIM(cl1), z2d ) 
    294             IF( ln_subbas ) THEN 
    295               DO jn=2,nptr 
    296                z2d(1,:) = htr_adv(:,jn) * rc_pwatt        !  (conversion in PW) 
    297                DO ji = 1, jpi 
    298                  z2d(ji,:) = z2d(1,:) 
    299                ENDDO 
    300                cl1 = TRIM('sophtadv_'//clsubb(jn))                  
    301                CALL iom_put( cl1, z2d ) 
    302                z2d(1,:) = str_adv(:,jn) * rc_ggram        ! (conversion in Gg) 
    303                DO ji = 1, jpi 
    304                   z2d(ji,:) = z2d(1,:) 
    305                ENDDO 
    306                cl1 = TRIM('sopstadv_'//clsubb(jn))                  
    307                CALL iom_put( cl1, z2d )               
    308               ENDDO 
    309             ENDIF 
    310          ENDIF 
    311          ! 
    312          IF( iom_use("sophtldf") .OR. iom_use("sopstldf") ) THEN    
    313             z2d(1,:) = htr_ldf(:,1) * rc_pwatt        !  (conversion in PW)  
    314             DO ji = 1, jpi 
    315                z2d(ji,:) = z2d(1,:) 
    316             ENDDO 
    317             cl1 = 'sophtldf' 
    318             CALL iom_put( TRIM(cl1), z2d ) 
    319             z2d(1,:) = str_ldf(:,1) * rc_ggram        !  (conversion in Gg) 
    320             DO ji = 1, jpi 
    321                z2d(ji,:) = z2d(1,:) 
    322             ENDDO 
    323             cl1 = 'sopstldf' 
    324             CALL iom_put( TRIM(cl1), z2d ) 
    325             IF( ln_subbas ) THEN 
    326               DO jn=2,nptr 
    327                z2d(1,:) = htr_ldf(:,jn) * rc_pwatt        !  (conversion in PW) 
    328                DO ji = 1, jpi 
    329                  z2d(ji,:) = z2d(1,:) 
    330                ENDDO 
    331                cl1 = TRIM('sophtldf_'//clsubb(jn))                  
    332                CALL iom_put( cl1, z2d ) 
    333                z2d(1,:) = str_ldf(:,jn) * rc_ggram        ! (conversion in Gg) 
    334                DO ji = 1, jpi 
    335                   z2d(ji,:) = z2d(1,:) 
    336                ENDDO 
    337                cl1 = TRIM('sopstldf_'//clsubb(jn))                  
    338                CALL iom_put( cl1, z2d )               
    339               ENDDO 
    340             ENDIF 
    341          ENDIF 
    342  
    343          IF( iom_use("sophteiv") .OR. iom_use("sopsteiv") ) THEN  
    344             z2d(1,:) = htr_eiv(:,1) * rc_pwatt        !  (conversion in PW)  
    345             DO ji = 1, jpi 
    346                z2d(ji,:) = z2d(1,:) 
    347             ENDDO 
    348             cl1 = 'sophteiv' 
    349             CALL iom_put( TRIM(cl1), z2d ) 
    350             z2d(1,:) = str_eiv(:,1) * rc_ggram        !  (conversion in Gg) 
    351             DO ji = 1, jpi 
    352                z2d(ji,:) = z2d(1,:) 
    353             ENDDO 
    354             cl1 = 'sopsteiv' 
    355             CALL iom_put( TRIM(cl1), z2d ) 
    356             IF( ln_subbas ) THEN 
    357                DO jn=2,nptr 
    358                   z2d(1,:) = htr_eiv(:,jn) * rc_pwatt        !  (conversion in PW) 
     232         IF( iom_use( 'sophtadv' ) .OR. iom_use( 'sopstadv' ) ) THEN   
     233            !  
     234            DO jn = 1, nptr 
     235               z3dtr(1,:,jn) = hstr_adv(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     236               DO ji = 1, jpi 
     237                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     238               ENDDO 
     239            ENDDO 
     240            CALL iom_put( 'sophtadv', z3dtr ) 
     241            DO jn = 1, nptr 
     242               z3dtr(1,:,jn) = hstr_adv(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     243               DO ji = 1, jpi 
     244                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     245               ENDDO 
     246            ENDDO 
     247            CALL iom_put( 'sopstadv', z3dtr ) 
     248         ENDIF 
     249         ! 
     250         IF( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) THEN   
     251            !  
     252            DO jn = 1, nptr 
     253               z3dtr(1,:,jn) = hstr_ldf(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     254               DO ji = 1, jpi 
     255                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     256               ENDDO 
     257            ENDDO 
     258            CALL iom_put( 'sophtldf', z3dtr ) 
     259            DO jn = 1, nptr 
     260               z3dtr(1,:,jn) = hstr_ldf(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     261               DO ji = 1, jpi 
     262                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     263               ENDDO 
     264            ENDDO 
     265            CALL iom_put( 'sopstldf', z3dtr ) 
     266         ENDIF 
     267         ! 
     268         IF( iom_use( 'sophteiv' ) .OR. iom_use( 'sopsteiv' ) ) THEN   
     269            !  
     270            DO jn = 1, nptr 
     271               z3dtr(1,:,jn) = hstr_eiv(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     272               DO ji = 1, jpi 
     273                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     274               ENDDO 
     275            ENDDO 
     276            CALL iom_put( 'sophteiv', z3dtr ) 
     277            DO jn = 1, nptr 
     278               z3dtr(1,:,jn) = hstr_eiv(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     279               DO ji = 1, jpi 
     280                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     281               ENDDO 
     282            ENDDO 
     283            CALL iom_put( 'sopsteiv', z3dtr ) 
     284         ENDIF 
     285         ! 
     286         IF( iom_use( 'sopstvtr' ) .OR. iom_use( 'sophtvtr' ) ) THEN 
     287            zts(:,:,:,:) = 0._wp 
     288            DO jk = 1, jpkm1 
     289               DO jj = 1, jpjm1 
    359290                  DO ji = 1, jpi 
    360                      z2d(ji,:) = z2d(1,:) 
     291                     zvfc = e1v(ji,jj) * e3v(ji,jj,jk,Kmm) 
     292                     zts(ji,jj,jk,jp_tem) = (ts(ji,jj,jk,jp_tem,Kmm)+ts(ji,jj+1,jk,jp_tem,Kmm)) * 0.5 * zvfc  !Tracers averaged onto V grid 
     293                     zts(ji,jj,jk,jp_sal) = (ts(ji,jj,jk,jp_sal,Kmm)+ts(ji,jj+1,jk,jp_sal,Kmm)) * 0.5 * zvfc 
    361294                  ENDDO 
    362                   cl1 = TRIM('sophteiv_'//clsubb(jn))                  
    363                   CALL iom_put( cl1, z2d ) 
    364                   z2d(1,:) = str_eiv(:,jn) * rc_ggram        ! (conversion in Gg) 
    365                   DO ji = 1, jpi 
    366                      z2d(ji,:) = z2d(1,:) 
    367                   ENDDO 
    368                   cl1 = TRIM('sopsteiv_'//clsubb(jn))  
    369                   CALL iom_put( cl1, z2d )               
    370                ENDDO 
    371             ENDIF 
     295               ENDDO 
     296             ENDDO 
     297             CALL dia_ptr_hst( jp_tem, 'vtr', zts(:,:,:,jp_tem) ) 
     298             CALL dia_ptr_hst( jp_sal, 'vtr', zts(:,:,:,jp_sal) ) 
     299             DO jn = 1, nptr 
     300                z3dtr(1,:,jn) = hstr_vtr(:,jp_tem,jn) * rc_pwatt  !  (conversion in PW) 
     301                DO ji = 1, jpi 
     302                   z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     303                ENDDO 
     304             ENDDO 
     305             CALL iom_put( 'sophtvtr', z3dtr ) 
     306             DO jn = 1, nptr 
     307               z3dtr(1,:,jn) = hstr_vtr(:,jp_sal,jn) * rc_ggram !  (conversion in Gg) 
     308               DO ji = 1, jpi 
     309                  z3dtr(ji,:,jn) = z3dtr(1,:,jn) 
     310               ENDDO 
     311            ENDDO 
     312            CALL iom_put( 'sopstvtr', z3dtr ) 
     313         ENDIF 
     314         ! 
     315         IF( iom_use( 'uocetr_vsum_cumul' ) ) THEN 
     316            CALL iom_get_var(  'uocetr_vsum_op', z2d ) ! get uocetr_vsum_op from xml 
     317            z2d(:,:) = ptr_ci_2d( z2d(:,:) )   
     318            CALL iom_put( 'uocetr_vsum_cumul', z2d ) 
    372319         ENDIF 
    373320         ! 
     
    385332      !! ** Purpose :   Initialization, namelist read 
    386333      !!---------------------------------------------------------------------- 
    387       INTEGER ::  jn           ! local integers 
    388       INTEGER ::  inum, ierr   ! local integers 
    389       INTEGER ::  ios          ! Local integer output status for namelist read 
    390       !! 
    391       NAMELIST/namptr/ ln_diaptr, ln_subbas 
    392       !!---------------------------------------------------------------------- 
    393  
    394       READ  ( numnam_ref, namptr, IOSTAT = ios, ERR = 901) 
    395 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namptr in reference namelist' ) 
    396  
    397       READ  ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 ) 
    398 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist' ) 
    399       IF(lwm) WRITE ( numond, namptr ) 
    400  
     334      INTEGER ::  inum, jn           ! local integers 
     335      !! 
     336      REAL(wp), DIMENSION(jpi,jpj) :: zmsk 
     337      !!---------------------------------------------------------------------- 
     338 
     339      l_diaptr = .FALSE. 
     340      IF(   iom_use( 'zomsf'    ) .OR. iom_use( 'zotem'    ) .OR. iom_use( 'zosal'    ) .OR.  & 
     341         &  iom_use( 'zosrf'    ) .OR. iom_use( 'sopstove' ) .OR. iom_use( 'sophtove' ) .OR.  & 
     342         &  iom_use( 'sopstbtr' ) .OR. iom_use( 'sophtbtr' ) .OR. iom_use( 'sophtadv' ) .OR.  & 
     343         &  iom_use( 'sopstadv' ) .OR. iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) .OR.  &  
     344         &  iom_use( 'sophteiv' ) .OR. iom_use( 'sopsteiv' ) .OR. iom_use( 'sopstvtr' ) .OR.  & 
     345         &  iom_use( 'sophtvtr' ) .OR. iom_use( 'uocetr_vsum_cumul' ) )  l_diaptr  = .TRUE. 
     346 
     347  
    401348      IF(lwp) THEN                     ! Control print 
    402349         WRITE(numout,*) 
     
    404351         WRITE(numout,*) '~~~~~~~~~~~~' 
    405352         WRITE(numout,*) '   Namelist namptr : set ptr parameters' 
    406          WRITE(numout,*) '      Poleward heat & salt transport (T) or not (F)      ln_diaptr  = ', ln_diaptr 
    407          WRITE(numout,*) '      Global (F) or glo/Atl/Pac/Ind/Indo-Pac basins      ln_subbas  = ', ln_subbas 
     353         WRITE(numout,*) '      Poleward heat & salt transport (T) or not (F)      l_diaptr  = ', l_diaptr 
    408354      ENDIF 
    409355 
    410       IF( ln_diaptr ) THEN   
    411          ! 
    412          IF( ln_subbas ) THEN  
    413             nptr = 5            ! Global, Atlantic, Pacific, Indian, Indo-Pacific 
    414             ALLOCATE( clsubb(nptr) ) 
    415             clsubb(1) = 'glo' ;  clsubb(2) = 'atl'  ;  clsubb(3) = 'pac'  ;  clsubb(4) = 'ind'  ;  clsubb(5) = 'ipc' 
    416          ELSE                
    417             nptr = 1       ! Global only 
    418             ALLOCATE( clsubb(nptr) ) 
    419             clsubb(1) = 'glo'  
    420          ENDIF 
    421  
    422          !                                      ! allocate dia_ptr arrays 
     356      IF( l_diaptr ) THEN   
     357         ! 
    423358         IF( dia_ptr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dia_ptr_init : unable to allocate arrays' ) 
    424359 
    425360         rc_pwatt = rc_pwatt * rau0_rcp          ! conversion from K.s-1 to PetaWatt 
     361         rc_ggram = rc_ggram * rau0              ! conversion from m3/s to Gg/s 
    426362 
    427363         IF( lk_mpp )   CALL mpp_ini_znl( numout )     ! Define MPI communicator for zonal sum 
    428364 
    429          IF( ln_subbas ) THEN                ! load sub-basin mask 
    430             CALL iom_open( 'subbasins', inum,  ldstop = .FALSE.  ) 
    431             CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) )   ! Atlantic basin 
    432             CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) )   ! Pacific  basin 
    433             CALL iom_get( inum, jpdom_data, 'indmsk', btmsk(:,:,4) )   ! Indian   basin 
    434             CALL iom_close( inum ) 
    435             btmsk(:,:,5) = MAX ( btmsk(:,:,3), btmsk(:,:,4) )          ! Indo-Pacific basin 
    436             WHERE( gphit(:,:) < -30._wp)   ;   btm30(:,:) = 0._wp      ! mask out Southern Ocean 
    437             ELSE WHERE                     ;   btm30(:,:) = ssmask(:,:) 
    438             END WHERE 
    439          ENDIF 
    440     
    441          btmsk(:,:,1) = tmask_i(:,:)                                   ! global ocean 
    442        
    443          DO jn = 1, nptr 
     365         btmsk(:,:,1) = tmask_i(:,:)                  
     366         CALL iom_open( 'subbasins', inum,  ldstop = .FALSE.  ) 
     367         CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) )   ! Atlantic basin 
     368         CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) )   ! Pacific  basin 
     369         CALL iom_get( inum, jpdom_data, 'indmsk', btmsk(:,:,4) )   ! Indian   basin 
     370         CALL iom_close( inum ) 
     371         btmsk(:,:,5) = MAX ( btmsk(:,:,3), btmsk(:,:,4) )          ! Indo-Pacific basin 
     372         DO jn = 2, nptr 
    444373            btmsk(:,:,jn) = btmsk(:,:,jn) * tmask_i(:,:)               ! interior domain only 
    445374         END DO 
     375         ! JD : modification so that overturning streamfunction is available in Atlantic at 34S to compare with observations 
     376         WHERE( gphit(:,:)*tmask_i(:,:) < -34._wp) 
     377           zmsk(:,:) = 0._wp      ! mask out Southern Ocean 
     378         ELSE WHERE                   
     379           zmsk(:,:) = ssmask(:,:) 
     380         END WHERE 
     381         btmsk34(:,:,1) = btmsk(:,:,1)                  
     382         DO jn = 2, nptr 
     383            btmsk34(:,:,jn) = btmsk(:,:,jn) * zmsk(:,:)               ! interior domain only 
     384         ENDDO 
    446385 
    447386         ! Initialise arrays to zero because diatpr is called before they are first calculated 
    448387         ! Note that this means diagnostics will not be exactly correct when model run is restarted. 
    449          htr_adv(:,:) = 0._wp  ;  str_adv(:,:) =  0._wp  
    450          htr_ldf(:,:) = 0._wp  ;  str_ldf(:,:) =  0._wp  
    451          htr_eiv(:,:) = 0._wp  ;  str_eiv(:,:) =  0._wp  
    452          htr_ove(:,:) = 0._wp  ;   str_ove(:,:) =  0._wp 
    453          htr_btr(:,:) = 0._wp  ;   str_btr(:,:) =  0._wp 
     388         hstr_adv(:,:,:) = 0._wp            
     389         hstr_ldf(:,:,:) = 0._wp            
     390         hstr_eiv(:,:,:) = 0._wp            
     391         hstr_ove(:,:,:) = 0._wp            
     392         hstr_btr(:,:,:) = 0._wp           ! 
     393         hstr_vtr(:,:,:) = 0._wp           ! 
     394         ! 
     395         ll_init = .FALSE. 
    454396         ! 
    455397      ENDIF  
     
    470412      INTEGER                                        :: jn    ! 
    471413 
     414      ! 
    472415      IF( cptr == 'adv' ) THEN 
    473          IF( ktra == jp_tem )  htr_adv(:,1) = ptr_sj( pvflx ) 
    474          IF( ktra == jp_sal )  str_adv(:,1) = ptr_sj( pvflx ) 
     416         IF( ktra == jp_tem )  THEN 
     417             DO jn = 1, nptr 
     418                hstr_adv(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     419             ENDDO 
     420         ENDIF 
     421         IF( ktra == jp_sal )  THEN 
     422             DO jn = 1, nptr 
     423                hstr_adv(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     424             ENDDO 
     425         ENDIF 
    475426      ENDIF 
     427      ! 
    476428      IF( cptr == 'ldf' ) THEN 
    477          IF( ktra == jp_tem )  htr_ldf(:,1) = ptr_sj( pvflx ) 
    478          IF( ktra == jp_sal )  str_ldf(:,1) = ptr_sj( pvflx ) 
     429         IF( ktra == jp_tem )  THEN 
     430             DO jn = 1, nptr 
     431                hstr_ldf(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     432             ENDDO 
     433         ENDIF 
     434         IF( ktra == jp_sal )  THEN 
     435             DO jn = 1, nptr 
     436                hstr_ldf(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     437             ENDDO 
     438         ENDIF 
    479439      ENDIF 
     440      ! 
    480441      IF( cptr == 'eiv' ) THEN 
    481          IF( ktra == jp_tem )  htr_eiv(:,1) = ptr_sj( pvflx ) 
    482          IF( ktra == jp_sal )  str_eiv(:,1) = ptr_sj( pvflx ) 
     442         IF( ktra == jp_tem )  THEN 
     443             DO jn = 1, nptr 
     444                hstr_eiv(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     445             ENDDO 
     446         ENDIF 
     447         IF( ktra == jp_sal )  THEN 
     448             DO jn = 1, nptr 
     449                hstr_eiv(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     450             ENDDO 
     451         ENDIF 
    483452      ENDIF 
    484453      ! 
    485       IF( ln_subbas ) THEN 
    486          ! 
    487          IF( cptr == 'adv' ) THEN 
    488              IF( ktra == jp_tem ) THEN  
    489                 DO jn = 2, nptr 
    490                    htr_adv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    491                 END DO 
    492              ENDIF 
    493              IF( ktra == jp_sal ) THEN  
    494                 DO jn = 2, nptr 
    495                    str_adv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    496                 END DO 
    497              ENDIF 
    498          ENDIF 
    499          IF( cptr == 'ldf' ) THEN 
    500              IF( ktra == jp_tem ) THEN  
    501                 DO jn = 2, nptr 
    502                     htr_ldf(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    503                  END DO 
    504              ENDIF 
    505              IF( ktra == jp_sal ) THEN  
    506                 DO jn = 2, nptr 
    507                    str_ldf(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    508                 END DO 
    509              ENDIF 
    510          ENDIF 
    511          IF( cptr == 'eiv' ) THEN 
    512              IF( ktra == jp_tem ) THEN  
    513                 DO jn = 2, nptr 
    514                     htr_eiv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    515                  END DO 
    516              ENDIF 
    517              IF( ktra == jp_sal ) THEN  
    518                 DO jn = 2, nptr 
    519                    str_eiv(:,jn) = ptr_sj( pvflx, btmsk(:,:,jn) ) 
    520                 END DO 
    521              ENDIF 
    522          ENDIF 
    523          ! 
     454      IF( cptr == 'vtr' ) THEN 
     455         IF( ktra == jp_tem )  THEN 
     456             DO jn = 1, nptr 
     457                hstr_vtr(:,jp_tem,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     458             ENDDO 
     459         ENDIF 
     460         IF( ktra == jp_sal )  THEN 
     461             DO jn = 1, nptr 
     462                hstr_vtr(:,jp_sal,jn) = ptr_sj( pvflx(:,:,:), btmsk(:,:,jn) ) 
     463             ENDDO 
     464         ENDIF 
    524465      ENDIF 
     466      ! 
    525467   END SUBROUTINE dia_ptr_hst 
    526468 
     
    535477      ierr(:) = 0 
    536478      ! 
    537       ALLOCATE( btmsk(jpi,jpj,nptr) ,              & 
    538          &      htr_adv(jpj,nptr) , str_adv(jpj,nptr) ,   & 
    539          &      htr_eiv(jpj,nptr) , str_eiv(jpj,nptr) ,   & 
    540          &      htr_ove(jpj,nptr) , str_ove(jpj,nptr) ,   & 
    541          &      htr_btr(jpj,nptr) , str_btr(jpj,nptr) ,   & 
    542          &      htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1)  ) 
    543          ! 
    544       ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) 
    545       ! 
    546       ALLOCATE( btm30(jpi,jpj), STAT=ierr(3)  ) 
    547  
    548          ! 
    549       dia_ptr_alloc = MAXVAL( ierr ) 
    550       CALL mpp_sum( 'diaptr', dia_ptr_alloc ) 
     479      IF( .NOT. ALLOCATED( btmsk ) ) THEN 
     480         ALLOCATE( btmsk(jpi,jpj,nptr)    , btmsk34(jpi,jpj,nptr),   & 
     481            &      hstr_adv(jpj,jpts,nptr), hstr_eiv(jpj,jpts,nptr), & 
     482            &      hstr_ove(jpj,jpts,nptr), hstr_btr(jpj,jpts,nptr), & 
     483            &      hstr_ldf(jpj,jpts,nptr), hstr_vtr(jpj,jpts,nptr), STAT=ierr(1)  ) 
     484            ! 
     485         ALLOCATE( p_fval1d(jpj), p_fval2d(jpj,jpk), Stat=ierr(2)) 
     486         ! 
     487         dia_ptr_alloc = MAXVAL( ierr ) 
     488         CALL mpp_sum( 'diaptr', dia_ptr_alloc ) 
     489      ENDIF 
    551490      ! 
    552491   END FUNCTION dia_ptr_alloc 
     
    564503      !! ** Action  : - p_fval: i-k-mean poleward flux of pvflx 
    565504      !!---------------------------------------------------------------------- 
    566       REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk)       ::   pvflx   ! mask flux array at V-point 
    567       REAL(wp), INTENT(in), DIMENSION(jpi,jpj), OPTIONAL ::   pmsk   ! Optional 2D basin mask 
     505      REAL(wp), INTENT(in), DIMENSION(jpi,jpj,jpk)  ::   pvflx  ! mask flux array at V-point 
     506      REAL(wp), INTENT(in), DIMENSION(jpi,jpj)      ::   pmsk   ! Optional 2D basin mask 
    568507      ! 
    569508      INTEGER                  ::   ji, jj, jk   ! dummy loop arguments 
     
    576515      ijpj = jpj 
    577516      p_fval(:) = 0._wp 
    578       IF( PRESENT( pmsk ) ) THEN  
    579          DO jk = 1, jpkm1 
    580             DO jj = 2, jpjm1 
    581                DO ji = fs_2, fs_jpim1   ! Vector opt. 
    582                   p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * tmask_i(ji,jj) * pmsk(ji,jj) 
    583                END DO 
     517      DO jk = 1, jpkm1 
     518         DO jj = 2, jpjm1 
     519            DO ji = fs_2, fs_jpim1   ! Vector opt. 
     520               p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 
    584521            END DO 
    585522         END DO 
    586       ELSE 
    587          DO jk = 1, jpkm1 
    588             DO jj = 2, jpjm1 
    589                DO ji = fs_2, fs_jpim1   ! Vector opt. 
    590                   p_fval(jj) = p_fval(jj) + pvflx(ji,jj,jk) * tmask_i(ji,jj)  
    591                END DO 
    592             END DO 
    593          END DO 
    594       ENDIF 
     523      END DO 
    595524#if defined key_mpp_mpi 
    596525      CALL mpp_sum( 'diaptr', p_fval, ijpj, ncomm_znl) 
     
    611540      !! ** Action  : - p_fval: i-k-mean poleward flux of pvflx 
    612541      !!---------------------------------------------------------------------- 
    613       REAL(wp) , INTENT(in), DIMENSION(jpi,jpj)           ::   pvflx   ! mask flux array at V-point 
    614       REAL(wp) , INTENT(in), DIMENSION(jpi,jpj), OPTIONAL ::   pmsk   ! Optional 2D basin mask 
     542      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) ::   pvflx  ! mask flux array at V-point 
     543      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) ::   pmsk   ! Optional 2D basin mask 
    615544      ! 
    616545      INTEGER                  ::   ji,jj       ! dummy loop arguments 
     
    623552      ijpj = jpj 
    624553      p_fval(:) = 0._wp 
    625       IF( PRESENT( pmsk ) ) THEN  
    626          DO jj = 2, jpjm1 
    627             DO ji = nldi, nlei   ! No vector optimisation here. Better use a mask ? 
    628                p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * tmask_i(ji,jj) * pmsk(ji,jj) 
    629             END DO 
     554      DO jj = 2, jpjm1 
     555         DO ji = fs_2, fs_jpim1   ! Vector opt. 
     556            p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * pmsk(ji,jj) * tmask_i(ji,jj) 
    630557         END DO 
    631       ELSE 
    632          DO jj = 2, jpjm1 
    633             DO ji = nldi, nlei   ! No vector optimisation here. Better use a mask ? 
    634                p_fval(jj) = p_fval(jj) + pvflx(ji,jj) * tmask_i(ji,jj) 
    635             END DO 
    636          END DO 
    637       ENDIF 
     558      END DO 
    638559#if defined key_mpp_mpi 
    639560      CALL mpp_sum( 'diaptr', p_fval, ijpj, ncomm_znl ) 
     
    642563   END FUNCTION ptr_sj_2d 
    643564 
    644  
    645    FUNCTION ptr_sjk( pfld, pmsk )   RESULT ( p_fval ) 
     565   FUNCTION ptr_ci_2d( pva )   RESULT ( p_fval ) 
     566      !!---------------------------------------------------------------------- 
     567      !!                    ***  ROUTINE ptr_ci_2d  *** 
     568      !! 
     569      !! ** Purpose :   "meridional" cumulated sum computation of a j-flux array 
     570      !! 
     571      !! ** Method  : - j cumulated sum of pva using the interior 2D vmask (umask_i). 
     572      !! 
     573      !! ** Action  : - p_fval: j-cumulated sum of pva 
     574      !!---------------------------------------------------------------------- 
     575      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj)  ::   pva   ! mask flux array at V-point 
     576      ! 
     577      INTEGER                  ::   ji,jj,jc       ! dummy loop arguments 
     578      INTEGER                  ::   ijpj        ! ???  
     579      REAL(wp), DIMENSION(jpi,jpj) :: p_fval ! function value 
     580      !!-------------------------------------------------------------------- 
     581      !  
     582      ijpj = jpj  ! ??? 
     583      p_fval(:,:) = 0._wp 
     584      DO jc = 1, jpnj ! looping over all processors in j axis 
     585         DO jj = 2, jpjm1 
     586            DO ji = fs_2, fs_jpim1   ! Vector opt. 
     587               p_fval(ji,jj) = p_fval(ji,jj-1) + pva(ji,jj) * tmask_i(ji,jj) 
     588            END DO 
     589         END DO 
     590         CALL lbc_lnk( 'diaptr', p_fval, 'U', -1. ) 
     591      END DO 
     592      !  
     593   END FUNCTION ptr_ci_2d 
     594 
     595 
     596 
     597   FUNCTION ptr_sjk( pta, pmsk )   RESULT ( p_fval ) 
    646598      !!---------------------------------------------------------------------- 
    647599      !!                    ***  ROUTINE ptr_sjk  *** 
     
    655607      !! 
    656608      IMPLICIT none 
    657       REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk)           ::   pfld   ! input field to be summed 
    658       REAL(wp) , INTENT(in), DIMENSION(jpi,jpj)    , OPTIONAL ::   pmsk   ! Optional 2D basin mask 
     609      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj,jpk) ::   pta    ! mask flux array at V-point 
     610      REAL(wp) , INTENT(in), DIMENSION(jpi,jpj)    ::   pmsk   ! Optional 2D basin mask 
    659611      !! 
    660612      INTEGER                           :: ji, jj, jk ! dummy loop arguments 
     
    672624      p_fval(:,:) = 0._wp 
    673625      ! 
    674       IF( PRESENT( pmsk ) ) THEN  
    675          DO jk = 1, jpkm1 
    676             DO jj = 2, jpjm1 
    677 !!gm here, use of tmask_i  ==> no need of loop over nldi, nlei.... 
    678                DO ji =  nldi, nlei   ! No vector optimisation here. Better use a mask ? 
    679                   p_fval(jj,jk) = p_fval(jj,jk) + pfld(ji,jj,jk) * pmsk(ji,jj) 
    680                END DO 
     626      DO jk = 1, jpkm1 
     627         DO jj = 2, jpjm1 
     628            DO ji = fs_2, fs_jpim1   ! Vector opt. 
     629               p_fval(jj,jk) = p_fval(jj,jk) + pta(ji,jj,jk) * pmsk(ji,jj) * tmask_i(ji,jj) 
    681630            END DO 
    682631         END DO 
    683       ELSE  
    684          DO jk = 1, jpkm1 
    685             DO jj = 2, jpjm1 
    686                DO ji =  nldi, nlei   ! No vector optimisation here. Better use a mask ? 
    687                   p_fval(jj,jk) = p_fval(jj,jk) + pfld(ji,jj,jk) * tmask_i(ji,jj) 
    688                END DO 
    689             END DO 
    690          END DO 
    691       END IF 
     632      END DO 
    692633      ! 
    693634#if defined key_mpp_mpi 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/IOM/iom.F90

    r12182 r12193  
    5555   LOGICAL, PUBLIC, PARAMETER ::   lk_iomput = .FALSE.       !: iom_put flag 
    5656#endif 
    57    PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get 
     57   PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_get_var 
    5858   PUBLIC iom_chkatt, iom_getatt, iom_putatt, iom_getszuld, iom_rstput, iom_delay_rst, iom_put 
    5959   PUBLIC iom_use, iom_context_finalize, iom_miss_val 
     
    6161   PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 
    6262   PRIVATE iom_g0d, iom_g1d, iom_g2d, iom_g3d, iom_get_123d 
    63    PRIVATE iom_p1d, iom_p2d, iom_p3d 
     63   PRIVATE iom_p1d, iom_p2d, iom_p3d, iom_p4d 
    6464#if defined key_iomput 
    6565   PRIVATE iom_set_domain_attr, iom_set_axis_attr, iom_set_field_attr, iom_set_file_attr, iom_get_file_attr, iom_set_grid_attr 
     
    8282   END INTERFACE 
    8383   INTERFACE iom_put 
    84       MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d 
     84      MODULE PROCEDURE iom_p0d, iom_p1d, iom_p2d, iom_p3d, iom_p4d 
    8585   END INTERFACE iom_put 
    8686   
     
    107107      TYPE(xios_date)     :: start_date 
    108108      CHARACTER(len=lc) :: clname 
     109      INTEGER             :: irefyear, irefmonth, irefday 
    109110      INTEGER           :: ji, jkmin 
    110111      LOGICAL :: llrst_context              ! is context related to restart 
     
    139140 
    140141      ! Calendar type is now defined in xml file  
     142      IF (.NOT.(xios_getvar('ref_year' ,irefyear ))) irefyear  = 1900 
     143      IF (.NOT.(xios_getvar('ref_month',irefmonth))) irefmonth = 01 
     144      IF (.NOT.(xios_getvar('ref_day'  ,irefday  ))) irefday   = 01 
     145 
    141146      SELECT CASE ( nleapy )        ! Choose calendar for IOIPSL 
    142       CASE ( 1)   ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date(1900,01,01,00,00,00), & 
     147      CASE ( 1)   ; CALL xios_define_calendar( TYPE = "Gregorian", time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 
    143148          &                                    start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 
    144       CASE ( 0)   ; CALL xios_define_calendar( TYPE = "NoLeap"   , time_origin = xios_date(1900,01,01,00,00,00), & 
     149      CASE ( 0)   ; CALL xios_define_calendar( TYPE = "NoLeap"   , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 
    145150          &                                    start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 
    146       CASE (30)   ; CALL xios_define_calendar( TYPE = "D360"     , time_origin = xios_date(1900,01,01,00,00,00), & 
     151      CASE (30)   ; CALL xios_define_calendar( TYPE = "D360"     , time_origin = xios_date(irefyear,irefmonth,irefday,00,00,00), & 
    147152          &                                    start_date = xios_date(nyear,nmonth,nday,0,0,0) ) 
    148153      END SELECT 
     
    241246          CALL iom_set_axis_attr( "icbcla", class_num ) 
    242247          CALL iom_set_axis_attr( "iax_20C", (/ REAL(20,wp) /) )   ! strange syntaxe and idea... 
     248          CALL iom_set_axis_attr( "iax_26C", (/ REAL(26,wp) /) )   ! strange syntaxe and idea... 
    243249          CALL iom_set_axis_attr( "iax_28C", (/ REAL(28,wp) /) )   ! strange syntaxe and idea... 
     250          CALL iom_set_axis_attr( "basin"  , (/ (REAL(ji,wp), ji=1,5) /) ) 
    244251      ENDIF 
    245252      ! 
     
    13481355   END SUBROUTINE iom_get_123d 
    13491356 
     1357   SUBROUTINE iom_get_var( cdname, z2d) 
     1358      CHARACTER(LEN=*), INTENT(in ) ::   cdname 
     1359      REAL(wp), DIMENSION(jpi,jpj) ::   z2d  
     1360#if defined key_iomput 
     1361      IF( xios_field_is_active( cdname, at_current_timestep_arg = .TRUE. ) ) THEN 
     1362         z2d(:,:) = 0._wp 
     1363         CALL xios_recv_field( cdname, z2d) 
     1364      ENDIF 
     1365#else 
     1366      IF( .FALSE. )   WRITE(numout,*) cdname, z2d ! useless test to avoid compilation warnings 
     1367#endif 
     1368   END SUBROUTINE iom_get_var 
     1369 
    13501370 
    13511371   FUNCTION iom_getszuld ( kiomid )   
     
    17171737   END SUBROUTINE iom_p3d 
    17181738 
     1739   SUBROUTINE iom_p4d( cdname, pfield4d ) 
     1740      CHARACTER(LEN=*)                , INTENT(in) ::   cdname 
     1741      REAL(wp),       DIMENSION(:,:,:,:), INTENT(in) ::   pfield4d 
     1742#if defined key_iomput 
     1743      CALL xios_send_field(cdname, pfield4d) 
     1744#else 
     1745      IF( .FALSE. )   WRITE(numout,*) cdname, pfield4d   ! useless test to avoid compilation warnings 
     1746#endif 
     1747   END SUBROUTINE iom_p4d 
     1748 
     1749 
    17191750#if defined key_iomput 
    17201751   !!---------------------------------------------------------------------- 
     
    20592090      ALLOCATE( zlon(ni*nj) )       ;       zlon(:) = 0._wp 
    20602091      ! 
    2061       CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) !  i-line that passes through Bering Strait: Reference latitude (used in plots) 
    2062 !      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  i-line that passes near the North Pole : Reference latitude (used in plots) 
     2092!      CALL dom_ngb( -168.53, 65.03, ix, iy, 'T' ) !  i-line that passes through Bering Strait: Reference latitude (used in plots) 
     2093      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  i-line that passes near the North Pole : Reference latitude (used in plots) 
    20632094      CALL iom_set_domain_attr("gznl", ni_glo=jpiglo, nj_glo=jpjglo, ibegin=nimpp+nldi-2, jbegin=njmpp+nldj-2, ni=ni, nj=nj) 
    20642095      CALL iom_set_domain_attr("gznl", data_dim=2, data_ibegin = 1-nldi, data_ni = jpi, data_jbegin = 1-nldj, data_nj = jpj) 
    20652096      CALL iom_set_domain_attr("gznl", lonvalue = zlon,   & 
    20662097         &                             latvalue = RESHAPE(plat(nldi:nlei, nldj:nlej),(/ ni*nj /)))   
    2067       CALL iom_set_zoom_domain_attr("znl_T", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 
    2068       CALL iom_set_zoom_domain_attr("znl_W", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 
     2098      CALL iom_set_zoom_domain_attr("ptr", ibegin=ix-1, jbegin=0, ni=1, nj=jpjglo) 
    20692099      ! 
    20702100      CALL iom_update_file_name('ptr') 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/LDF/ldftra.F90

    r12150 r12193  
    851851      CALL iom_put( "woce_eiv", zw3d ) 
    852852      ! 
     853      IF( iom_use('weiv_masstr') ) THEN   ! vertical mass transport & its square value 
     854         zw2d(:,:) = rau0 * e1e2t(:,:) 
     855         DO jk = 1, jpk 
     856            zw3d(:,:,jk) = zw3d(:,:,jk) * zw2d(:,:) 
     857         END DO 
     858         CALL iom_put( "weiv_masstr" , zw3d )   
     859      ENDIF 
     860      ! 
     861      IF( iom_use('ueiv_masstr') ) THEN 
     862         zw3d(:,:,:) = 0.e0 
     863         DO jk = 1, jpkm1 
     864            zw3d(:,:,jk) = rau0 * ( psi_uw(:,:,jk+1) - psi_uw(:,:,jk) )  
     865         END DO 
     866         CALL iom_put( "ueiv_masstr", zw3d )                  ! mass transport in i-direction 
     867      ENDIF 
    853868      ! 
    854869      zztmp = 0.5_wp * rau0 * rcp  
     
    870885        CALL iom_put( "ueiv_heattr3d", zztmp * zw3d )                  ! heat transport in i-direction 
    871886      ENDIF 
     887      ! 
     888      IF( iom_use('veiv_masstr') ) THEN 
     889         zw3d(:,:,:) = 0.e0 
     890         DO jk = 1, jpkm1 
     891            zw3d(:,:,jk) = rau0 * ( psi_vw(:,:,jk+1) - psi_vw(:,:,jk) )  
     892         END DO 
     893         CALL iom_put( "veiv_masstr", zw3d )                  ! mass transport in i-direction 
     894      ENDIF 
     895      ! 
    872896      zw2d(:,:)   = 0._wp  
    873897      zw3d(:,:,:) = 0._wp  
     
    885909      CALL iom_put( "veiv_heattr", zztmp * zw3d )                  !  heat transport in j-direction 
    886910      ! 
    887       IF( ln_diaptr )  CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d ) 
     911      IF( iom_use( 'sophteiv' ) )   CALL dia_ptr_hst( jp_tem, 'eiv', 0.5 * zw3d ) 
    888912      ! 
    889913      zztmp = 0.5_wp * 0.5 
     
    920944      CALL iom_put( "veiv_salttr", zztmp * zw3d )                  !  salt transport in j-direction 
    921945      ! 
    922       IF( ln_diaptr ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d ) 
     946      IF( iom_use( 'sopsteiv' ) ) CALL dia_ptr_hst( jp_sal, 'eiv', 0.5 * zw3d ) 
    923947      ! 
    924948      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcblk.F90

    r12182 r12193  
    979979      REAL(wp), DIMENSION(jpi,jpj)     ::   zevap, zsnw   ! evaporation and snw distribution after wind blowing (SI3) 
    980980      REAL(wp), DIMENSION(jpi,jpj)     ::   zqair         ! specific humidity of air at z=rn_zqt [kg/kg] !LB 
     981      REAL(wp), DIMENSION(jpi,jpj)     ::   ztmp, ztmp2 
    981982      !!--------------------------------------------------------------------- 
    982983      ! 
     
    11021103      END WHERE 
    11031104      ! 
     1105 
     1106      IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') ) THEN 
     1107         ztmp(:,:) = zevap(:,:) * ( 1._wp - at_i_b(:,:) )  
     1108         IF( iom_use('evap_ao_cea'  ) )  CALL iom_put( 'evap_ao_cea'  , ztmp(:,:) * tmask(:,:,1) )   ! ice-free oce evap (cell average) 
     1109         IF( iom_use('hflx_evap_cea') )  CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * sst_m(:,:) * rcp * tmask(:,:,1) )   ! heat flux from evap (cell average) 
     1110      ENDIF 
     1111      IF( iom_use('hflx_rain_cea') ) THEN 
     1112         ztmp(:,:) = rcp * ( SUM( (ptsu-rt0) * a_i_b, dim=3 ) + sst_m(:,:) * ( 1._wp - at_i_b(:,:) ) ) 
     1113         IF( iom_use('hflx_rain_cea') )  CALL iom_put( 'hflx_rain_cea', ( tprecip(:,:) - sprecip(:,:) ) * ztmp(:,:) )   ! heat flux from rain (cell average) 
     1114      ENDIF 
     1115      IF( iom_use('hflx_snow_cea') .OR. iom_use('hflx_snow_ao_cea') .OR. iom_use('hflx_snow_ai_cea')  )  THEN 
     1116          WHERE( SUM( a_i_b, dim=3 ) > 1.e-10 ) ;   ztmp(:,:) = rcpi * SUM( (ptsu-rt0) * a_i_b, dim=3 ) / SUM( a_i_b, dim=3 ) 
     1117          ELSEWHERE                             ;   ztmp(:,:) = rcp * sst_m(:,:)     
     1118          ENDWHERE 
     1119          ztmp2(:,:) = sprecip(:,:) * ( ztmp(:,:) - rLfus )  
     1120          IF( iom_use('hflx_snow_cea')    ) CALL iom_put('hflx_snow_cea'   , ztmp2(:,:) ) ! heat flux from snow (cell average) 
     1121          IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', ztmp2(:,:) * ( 1._wp - zsnw(:,:) ) ) ! heat flux from snow (over ocean) 
     1122          IF( iom_use('hflx_snow_ai_cea') ) CALL iom_put('hflx_snow_ai_cea', ztmp2(:,:) *           zsnw(:,:)   ) ! heat flux from snow (over ice) 
     1123      ENDIF 
     1124      ! 
    11041125      IF(ln_ctl) THEN 
    11051126         CALL prt_ctl(tab3d_1=qla_ice , clinfo1=' blk_ice: qla_ice  : ', tab3d_2=z_qsb   , clinfo2=' z_qsb    : ', kdim=jpl) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbccpl.F90

    r12182 r12193  
    17771777      IF( iom_use('snow_ao_cea') )  CALL iom_put( 'snow_ao_cea' , sprecip(:,:) * ( 1._wp - zsnw(:,:) )                  )  ! Snow over ice-free ocean  (cell average) 
    17781778      IF( iom_use('snow_ai_cea') )  CALL iom_put( 'snow_ai_cea' , sprecip(:,:) *           zsnw(:,:)                    )  ! Snow over sea-ice         (cell average) 
     1779      IF( iom_use('rain_ao_cea') )  CALL iom_put( 'rain_ao_cea' , ( tprecip(:,:) - sprecip(:,:) ) * picefr(:,:)         )  ! liquid precipitation over ocean (cell average) 
    17791780      IF( iom_use('subl_ai_cea') )  CALL iom_put( 'subl_ai_cea' , frcv(jpr_ievp)%z3(:,:,1) * picefr(:,:) * tmask(:,:,1) )  ! Sublimation over sea-ice (cell average) 
    17801781      IF( iom_use('evap_ao_cea') )  CALL iom_put( 'evap_ao_cea' , ( frcv(jpr_tevp)%z3(:,:,1)  & 
     
    19051906      IF( iom_use('hflx_evap_cea')    ) CALL iom_put('hflx_evap_cea'   , ( frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) & 
    19061907           &                                                              * picefr(:,:) ) * zcptn(:,:) * tmask(:,:,1) )            ! heat flux from evap (cell average) 
     1908      IF( iom_use('hflx_prec_cea')    ) CALL iom_put('hflx_prec_cea'   ,  sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) +  &                    ! heat flux from all precip (cell avg) 
     1909         &                                                               ( tprecip(:,:) - sprecip(:,:) ) * zcptrain(:,:) ) 
    19071910      IF( iom_use('hflx_snow_cea')    ) CALL iom_put('hflx_snow_cea'   , sprecip(:,:) * ( zcptsnw(:,:) - rLfus )  )               ! heat flux from snow (cell average) 
    19081911      IF( iom_use('hflx_snow_ao_cea') ) CALL iom_put('hflx_snow_ao_cea', sprecip(:,:) * ( zcptsnw(:,:) - rLfus ) & 
     
    23052308      !                                                      !  CO2 flux from PISCES     !  
    23062309      !                                                      ! ------------------------- ! 
    2307       IF( ssnd(jps_co2)%laction .AND. l_co2cpl )   CALL cpl_snd( jps_co2, isec, RESHAPE ( oce_co2, (/jpi,jpj,1/) ) , info ) 
     2310      IF( ssnd(jps_co2)%laction .AND. l_co2cpl )   THEN  
     2311         ztmp1(:,:) = oce_co2(:,:) * 1000.  ! conversion in molC/m2/s 
     2312         CALL cpl_snd( jps_co2, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ) , info ) 
     2313      ENDIF 
    23082314      ! 
    23092315      !                                                      ! ------------------------- ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcmod.F90

    r12182 r12193  
    246246#endif 
    247247      ! 
     248      ! 
     249      IF( sbc_ssr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_ssr arrays' ) 
     250      IF( .NOT.ln_ssr ) THEN               !* Initialize qrp and erp if no restoring  
     251         qrp(:,:) = 0._wp 
     252         erp(:,:) = 0._wp 
     253      ENDIF 
     254      ! 
     255 
    248256      IF( nn_ice == 0 ) THEN        !* No sea-ice in the domain : ice fraction is always zero 
    249257         IF( nn_components /= jp_iam_opa )   fr_i(:,:) = 0._wp    ! except for OPA in SAS-OPA coupled case 
     
    559567         CALL iom_put( "taum"  , taum       )                   ! wind stress module 
    560568         CALL iom_put( "wspd"  , wndm       )                   ! wind speed  module over free ocean or leads in presence of sea-ice 
     569         CALL iom_put( "qrp", qrp )                             ! heat flux damping 
     570         CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    561571      ENDIF 
    562572      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcrnf.F90

    r12182 r12193  
    4242   REAL(wp)                   ::      rn_dep_max        !: depth over which runoffs is spread       (ln_rnf_depth_ini =T) 
    4343   INTEGER                    ::      nn_rnf_depth_file !: create (=1) a runoff depth file or not (=0) 
     44   LOGICAL                    ::   ln_rnf_icb        !: iceberg flux is specified in a file 
    4445   LOGICAL                    ::   ln_rnf_tem        !: temperature river runoffs attribute specified in a file 
    4546   LOGICAL           , PUBLIC ::   ln_rnf_sal        !: salinity    river runoffs attribute specified in a file 
    4647   TYPE(FLD_N)       , PUBLIC ::   sn_rnf            !: information about the runoff file to be read 
    4748   TYPE(FLD_N)                ::   sn_cnf            !: information about the runoff mouth file to be read 
     49   TYPE(FLD_N)                ::   sn_i_rnf        !: information about the iceberg flux file to be read 
    4850   TYPE(FLD_N)                ::   sn_s_rnf          !: information about the salinities of runoff file to be read 
    4951   TYPE(FLD_N)                ::   sn_t_rnf          !: information about the temperatures of runoff file to be read 
     
    6466 
    6567   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_rnf       ! structure: river runoff (file information, fields read) 
     68   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_i_rnf     ! structure: iceberg flux (file information, fields read) 
    6669   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_s_rnf     ! structure: river runoff salinity (file information, fields read)   
    6770   TYPE(FLD),        ALLOCATABLE, DIMENSION(:) ::   sf_t_rnf     ! structure: river runoff temperature (file information, fields read)   
     
    111114      !                                            !-------------------! 
    112115      ! 
    113       IF( .NOT. l_rnfcpl )   CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt 
     116      ! 
     117      IF( .NOT. l_rnfcpl )  THEN 
     118                            CALL fld_read ( kt, nn_fsbc, sf_rnf   )    ! Read Runoffs data and provide it at kt ( runoffs + iceberg ) 
     119         IF( ln_rnf_icb )   CALL fld_read ( kt, nn_fsbc, sf_i_rnf )    ! idem for iceberg flux if required 
     120      ENDIF 
    114121      IF(   ln_rnf_tem   )   CALL fld_read ( kt, nn_fsbc, sf_t_rnf )    ! idem for runoffs temperature if required 
    115122      IF(   ln_rnf_sal   )   CALL fld_read ( kt, nn_fsbc, sf_s_rnf )    ! idem for runoffs salinity    if required 
     
    117124      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    118125         ! 
    119          IF( .NOT. l_rnfcpl )   rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)       ! updated runoff value at time step kt 
     126         IF( .NOT. l_rnfcpl ) THEN 
     127             rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)  ! updated runoff value at time step kt 
     128             IF( ln_rnf_icb ) THEN 
     129                fwficb(:,:) = rn_rfact * ( sf_i_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1)  ! updated runoff value at time step kt 
     130                CALL iom_put( 'iceberg_cea'  , fwficb(:,:)  )         ! output iceberg flux 
     131                CALL iom_put( 'hflx_icb_cea' , fwficb(:,:) * rLfus )   ! output Heat Flux into Sea Water due to Iceberg Thermodynamics --> 
     132             ENDIF 
     133         ENDIF 
    120134         ! 
    121135         !                                                           ! set temperature & salinity content of runoffs 
     
    128142         ELSE                                                        ! use SST as runoffs temperature 
    129143            !CEOD River is fresh water so must at least be 0 unless we consider ice 
    130             rnf_tsc(:,:,jp_tem) = MAX(sst_m(:,:),0.0_wp) * rnf(:,:) * r1_rau0 
     144            rnf_tsc(:,:,jp_tem) = MAX( sst_m(:,:), 0.0_wp ) * rnf(:,:) * r1_rau0 
    131145         ENDIF 
    132146         !                                                           ! use runoffs salinity data 
    133147         IF( ln_rnf_sal )   rnf_tsc(:,:,jp_sal) = ( sf_s_rnf(1)%fnow(:,:,1) ) * rnf(:,:) * r1_rau0 
    134148         !                                                           ! else use S=0 for runoffs (done one for all in the init) 
    135          IF( iom_use('runoffs') )        CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
     149                                         CALL iom_put( 'runoffs'     , rnf(:,:)                         )   ! output runoff mass flux 
    136150         IF( iom_use('hflx_rnf_cea') )   CALL iom_put( 'hflx_rnf_cea', rnf_tsc(:,:,jp_tem) * rau0 * rcp )   ! output runoff sensible heat (W/m2) 
    137151      ENDIF 
     
    240254      REAL(wp), DIMENSION(jpi,jpj,2) :: zrnfcl     
    241255      !! 
    242       NAMELIST/namsbc_rnf/ cn_dir            , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal,   & 
    243          &                 sn_rnf, sn_cnf    , sn_s_rnf    , sn_t_rnf  , sn_dep_rnf,   & 
     256      NAMELIST/namsbc_rnf/ cn_dir            , ln_rnf_depth, ln_rnf_tem, ln_rnf_sal, ln_rnf_icb,   & 
     257         &                 sn_rnf, sn_cnf    , sn_i_rnf, sn_s_rnf    , sn_t_rnf  , sn_dep_rnf,   & 
    244258         &                 ln_rnf_mouth      , rn_hrnf     , rn_avt_rnf, rn_rfact,     & 
    245259         &                 ln_rnf_depth_ini  , rn_dep_max  , rn_rnf_max, nn_rnf_depth_file 
     
    295309         IF( sn_rnf%ln_tint ) ALLOCATE( sf_rnf(1)%fdta(jpi,jpj,1,2) ) 
    296310         CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf', no_print ) 
     311         ! 
     312         IF( ln_rnf_icb ) THEN                      ! Create (if required) sf_i_rnf structure 
     313            IF(lwp) WRITE(numout,*) 
     314            IF(lwp) WRITE(numout,*) '          iceberg flux read in a file' 
     315            ALLOCATE( sf_i_rnf(1), STAT=ierror  ) 
     316            IF( ierror > 0 ) THEN 
     317               CALL ctl_stop( 'sbc_rnf_init: unable to allocate sf_i_rnf structure' )   ;   RETURN 
     318            ENDIF 
     319            ALLOCATE( sf_i_rnf(1)%fnow(jpi,jpj,1)   ) 
     320            IF( sn_i_rnf%ln_tint ) ALLOCATE( sf_i_rnf(1)%fdta(jpi,jpj,1,2) ) 
     321            CALL fld_fill (sf_i_rnf, (/ sn_i_rnf /), cn_dir, 'sbc_rnf_init', 'read iceberg flux data', 'namsbc_rnf' ) 
     322         ELSE 
     323            fwficb(:,:) = 0._wp 
     324         ENDIF 
     325 
    297326      ENDIF 
    298327      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcssr.F90

    r11960 r12193  
    3030   PUBLIC   sbc_ssr        ! routine called in sbcmod 
    3131   PUBLIC   sbc_ssr_init   ! routine called in sbcmod 
     32   PUBLIC   sbc_ssr_alloc  ! routine called in sbcmod 
    3233 
    3334   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   erp   !: evaporation damping   [kg/m2/s] 
    3435   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qrp   !: heat flux damping        [w/m2] 
     36   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   coefice   !: under ice relaxation coefficient 
    3537 
    3638   !                                   !!* Namelist namsbc_ssr * 
     
    4143   LOGICAL         ::   ln_sssr_bnd     ! flag to bound erp term  
    4244   REAL(wp)        ::   rn_sssr_bnd     ! ABS(Max./Min.) value of erp term [mm/day] 
     45   INTEGER         ::   nn_sssr_ice     ! Control of restoring under ice 
    4346 
    4447   REAL(wp) , ALLOCATABLE, DIMENSION(:) ::   buffer   ! Temporary buffer for exchange 
     
    97100                  END DO 
    98101               END DO 
    99                CALL iom_put( "qrp", qrp )                             ! heat flux damping 
     102            ENDIF 
     103            ! 
     104            IF( nn_sssr /= 0 .AND. nn_sssr_ice /= 1 ) THEN 
     105              ! use fraction of ice ( fr_i ) to adjust relaxation under ice if nn_sssr_ice .ne. 1 
     106              ! n.b. coefice is initialised and fixed to 1._wp if nn_sssr_ice = 1 
     107               DO jj = 1, jpj 
     108                  DO ji = 1, jpi 
     109                     SELECT CASE ( nn_sssr_ice ) 
     110                       CASE ( 0 )    ;  coefice(ji,jj) = 1._wp - fr_i(ji,jj)              ! no/reduced damping under ice 
     111                       CASE  DEFAULT ;  coefice(ji,jj) = 1._wp + ( nn_sssr_ice - 1 ) * fr_i(ji,jj) ! reinforced damping (x nn_sssr_ice) under ice ) 
     112                     END SELECT 
     113                  END DO 
     114               END DO 
    100115            ENDIF 
    101116            ! 
     
    105120                  DO ji = 1, jpi 
    106121                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
     122                        &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
    107123                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 
    108124                     sfx(ji,jj) = sfx(ji,jj) + zerp                 ! salt flux 
     
    110126                  END DO 
    111127               END DO 
    112                CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    113128               ! 
    114129            ELSEIF( nn_sssr == 2 ) THEN                               !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 
     
    118133                  DO ji = 1, jpi                             
    119134                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths 
     135                        &        *   coefice(ji,jj)            &      ! Optional control of damping under sea-ice 
    120136                        &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) )   & 
    121137                        &        / MAX(  sss_m(ji,jj), 1.e-20   ) * tmask(ji,jj,1) 
     
    126142                  END DO 
    127143               END DO 
    128                CALL iom_put( "erp", erp )                             ! freshwater flux damping 
    129144            ENDIF 
    130145            ! 
     
    154169      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    155170      TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read 
    156       NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd 
     171      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, & 
     172              & sn_sss, ln_sssr_bnd, rn_sssr_bnd, nn_sssr_ice 
    157173      INTEGER     ::  ios 
    158174      !!---------------------------------------------------------------------- 
     
    180196         WRITE(numout,*) '         flag to bound erp term                 ln_sssr_bnd = ', ln_sssr_bnd 
    181197         WRITE(numout,*) '         ABS(Max./Min.) erp threshold           rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 
    182       ENDIF 
    183       ! 
    184       !                            !* Allocate erp and qrp array 
    185       ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), STAT=ierror ) 
    186       IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_ssr: unable to allocate erp and qrp array' ) 
     198         WRITE(numout,*) '      Cntrl of surface restoration under ice nn_sssr_ice    = ', nn_sssr_ice 
     199         WRITE(numout,*) '          ( 0 = no restoration under ice)' 
     200         WRITE(numout,*) '          ( 1 = restoration everywhere  )' 
     201         WRITE(numout,*) '          (>1 = enhanced restoration under ice  )' 
     202      ENDIF 
    187203      ! 
    188204      IF( nn_sstr == 1 ) THEN      !* set sf_sst structure & allocate arrays 
     
    214230      ENDIF 
    215231      ! 
     232      coefice(:,:) = 1._wp         !  Initialise coefice to 1._wp ; will not need to be changed if nn_sssr_ice=1 
    216233      !                            !* Initialize qrp and erp if no restoring  
    217234      IF( nn_sstr /= 1                   )   qrp(:,:) = 0._wp 
     
    219236      ! 
    220237   END SUBROUTINE sbc_ssr_init 
     238          
     239   INTEGER FUNCTION sbc_ssr_alloc() 
     240      !!---------------------------------------------------------------------- 
     241      !!               ***  FUNCTION sbc_ssr_alloc  *** 
     242      !!---------------------------------------------------------------------- 
     243      sbc_ssr_alloc = 0       ! set to zero if no array to be allocated 
     244      IF( .NOT. ALLOCATED( erp ) ) THEN 
     245         ALLOCATE( qrp(jpi,jpj), erp(jpi,jpj), coefice(jpi,jpj), STAT= sbc_ssr_alloc ) 
     246         ! 
     247         IF( lk_mpp                  )   CALL mpp_sum ( 'sbcssr', sbc_ssr_alloc ) 
     248         IF( sbc_ssr_alloc /= 0 )   CALL ctl_warn('sbc_ssr_alloc: failed to allocate arrays.') 
     249         ! 
     250      ENDIF 
     251   END FUNCTION 
    221252       
    222253   !!====================================================================== 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv.F90

    r11960 r12193  
    136136      ! 
    137137!!gm ??? 
    138       IF( ln_diaptr )   CALL dia_ptr( Kmm, zvv )                               ! diagnose the effective MSF  
     138      CALL dia_ptr( kt, Kmm, zvv )                                    ! diagnose the effective MSF  
    139139!!gm ??? 
    140140      ! 
     141 
    141142      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    142143         ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) ) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_cen.F90

    r11949 r12193  
    6161      !! ** Action : - update pt(:,:,:,:,Krhs)  with the now advective tracer trends 
    6262      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    63       !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
     63      !!             - poleward advective heat and salt transport (l_diaptr=T) 
    6464      !!---------------------------------------------------------------------- 
    6565      INTEGER                                  , INTENT(in   ) ::   kt              ! ocean time-step index 
     
    8989      l_hst = .FALSE. 
    9090      l_ptr = .FALSE. 
    91       IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )        l_trd = .TRUE. 
    92       IF(   cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
     91      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )       l_trd = .TRUE. 
     92      IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )    l_ptr = .TRUE.  
    9393      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    94          &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
     94         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
    9595      ! 
    9696      !                     
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_fct.F90

    r12145 r12193  
    6868      !! ** Action : - update pt(:,:,:,:,Krhs)  with the now advective tracer trends 
    6969      !!             - send trends to trdtra module for further diagnostics (l_trdtra=T) 
    70       !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
     70      !!             - poleward advective heat and salt transport (ln_diaptr=T) 
    7171      !!---------------------------------------------------------------------- 
    7272      INTEGER                                  , INTENT(in   ) ::   kt              ! ocean time-step index 
     
    101101      l_ptr = .FALSE. 
    102102      ll_zAimp = .FALSE. 
    103       IF( ( cdtype =='TRA' .AND. l_trdtra  ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) )       l_trd = .TRUE. 
    104       IF(   cdtype =='TRA' .AND. ln_diaptr )                                                l_ptr = .TRUE.  
    105       IF(   cdtype =='TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.  & 
     103      IF( ( cdtype == 'TRA' .AND. l_trdtra  ) .OR. ( cdtype =='TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
     104      IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) )    l_ptr = .TRUE.  
     105      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR.  & 
    106106         &                         iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
    107107      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_mus.F90

    r11949 r12193  
    6868      !! ** Action : - update pt(:,:,:,:,Krhs)  with the now advective tracer trends 
    6969      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    70       !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
     70      !!             - poleward advective heat and salt transport (ln_diaptr=T) 
    7171      !! 
    7272      !! References : Estubier, A., and M. Levy, Notes Techn. Pole de Modelisation 
     
    120120      l_ptr = .FALSE. 
    121121      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    122       IF(   cdtype == 'TRA' .AND. ln_diaptr )                                               l_ptr = .TRUE.  
     122      IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )   l_ptr = .TRUE.  
    123123      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    124124         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) ) l_hst = .TRUE. 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_qck.F90

    r11949 r12193  
    2121   USE trdtra          ! trends manager: tracers  
    2222   USE diaptr          ! poleward transport diagnostics 
     23   USE iom 
    2324   ! 
    2425   USE in_out_manager  ! I/O manager 
     
    7980      !! ** Action : - update pt(:,:,:,:,Krhs)  with the now advective tracer trends 
    8081      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    81       !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
     82      !!             - poleward advective heat and salt transport (ln_diaptr=T) 
    8283      !! 
    8384      !! ** Reference : Leonard (1979, 1991) 
     
    102103      l_trd = .FALSE. 
    103104      l_ptr = .FALSE. 
    104       IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    105       IF(   cdtype == 'TRA' .AND. ln_diaptr )                                              l_ptr = .TRUE.  
     105      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )   l_trd = .TRUE. 
     106      IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) ) ) l_ptr = .TRUE.  
    106107      ! 
    107108      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv_ubs.F90

    r11949 r12193  
    7979      !! ** Action : - update pt(:,:,:,:,Krhs)  with the now advective tracer trends 
    8080      !!             - send trends to trdtra module for further diagnostcs (l_trdtra=T) 
    81       !!             - htr_adv, str_adv : poleward advective heat and salt transport (ln_diaptr=T) 
     81      !!             - poleward advective heat and salt transport (ln_diaptr=T) 
    8282      !! 
    8383      !! Reference : Shchepetkin, A. F., J. C. McWilliams, 2005, Ocean Modelling, 9, 347-404.  
     
    111111      l_ptr = .FALSE. 
    112112      IF( ( cdtype == 'TRA' .AND. l_trdtra ) .OR. ( cdtype == 'TRC' .AND. l_trdtrc ) )      l_trd = .TRUE. 
    113       IF(   cdtype == 'TRA' .AND. ln_diaptr )                                               l_ptr = .TRUE.  
     113      IF(   cdtype == 'TRA' .AND. ( iom_use( 'sophtadv' ) .OR. iom_use( 'sophtadv' ) )  )   l_ptr = .TRUE.  
    114114      IF(   cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    115115         &                          iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) ) l_hst = .TRUE. 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trabbc.F90

    r11960 r12193  
    102102      ENDIF 
    103103      ! 
     104      CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 
    104105      IF(ln_ctl)   CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc  - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 
    105106      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_iso.F90

    r11949 r12193  
    125125      l_hst = .FALSE. 
    126126      l_ptr = .FALSE. 
    127       IF( cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
     127      IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )     l_ptr = .TRUE.  
    128128      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    129129         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_lap_blp.F90

    r11949 r12193  
    9090      l_hst = .FALSE. 
    9191      l_ptr = .FALSE. 
    92       IF( cdtype == 'TRA' .AND. ln_diaptr )                                                l_ptr = .TRUE.  
     92      IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )     l_ptr = .TRUE. 
    9393      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    9494         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )  l_hst = .TRUE. 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf_triad.F90

    r11949 r12193  
    111111      l_hst = .FALSE. 
    112112      l_ptr = .FALSE. 
    113       IF( cdtype == 'TRA' .AND. ln_diaptr )                                                 l_ptr = .TRUE.  
     113      IF( cdtype == 'TRA' .AND. ( iom_use( 'sophtldf' ) .OR. iom_use( 'sopstldf' ) ) )      l_ptr = .TRUE.  
    114114      IF( cdtype == 'TRA' .AND. ( iom_use("uadv_heattr") .OR. iom_use("vadv_heattr") .OR. & 
    115115         &                        iom_use("uadv_salttr") .OR. iom_use("vadv_salttr")  ) )   l_hst = .TRUE. 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/nemogcm.F90

    r12150 r12193  
    485485                           CALL     flo_init( Nnn )    ! drifting Floats 
    486486      IF( ln_diacfl    )   CALL dia_cfl_init    ! Initialise CFL diagnostics 
    487                            CALL dia_ptr_init    ! Poleward TRansports initialization 
     487!                           CALL dia_ptr_init    ! Poleward TRansports initialization 
    488488                           CALL dia_dct_init    ! Sections tranports 
    489489                           CALL dia_hsb_init( Nnn )    ! heat content, salt content and volume budgets 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/step.F90

    r12150 r12193  
    196196         IF(.NOT.ln_linssh) CALL dom_vvl_sf_nxt( kstp, Nbb, Nnn, Naa, kcall=2 )  ! after vertical scale factors (update depth average component) 
    197197      ENDIF 
    198                          CALL dyn_zdf( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa  )      ! vertical diffusion    ==> after 
    199  
    200       IF( ln_dynspg_ts ) THEN                          
    201                             CALL wzv        ( kstp, Nbb, Nnn, ww, Naa )          ! now cross-level velocity  
    202          IF( ln_zad_Aimp )  CALL wAimp      ( kstp,      Nnn )                   ! Adaptive-implicit vertical advection partitioning 
     198                            CALL dyn_zdf    ( kstp, Nbb, Nnn, Nrhs, uu, vv, Naa  )  ! vertical diffusion 
     199      IF( ln_dynspg_ts ) THEN                                                       ! vertical scale factors and vertical velocity need to be updated 
     200                            CALL wzv        ( kstp, Nbb, Nnn, ww, Naa )             ! now cross-level velocity  
     201         IF( ln_zad_Aimp )  CALL wAimp      ( kstp,      Nnn )                      ! Adaptive-implicit vertical advection partitioning 
    203202      ENDIF 
    204203       
     
    212211      ! diagnostics and outputs 
    213212      !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    214       IF( ln_floats  )   CALL flo_stp ( kstp, Nbb, Nnn )   ! drifting Floats 
    215       IF( ln_diacfl  )   CALL dia_cfl ( kstp,      Nnn )   ! Courant number diagnostics 
    216       IF( lk_diahth  )   CALL dia_hth ( kstp,      Nnn )   ! Thermocline depth (20 degres isotherm depth) 
    217       IF( ln_diadct  )   CALL dia_dct ( kstp,      Nnn )   ! Transports 
    218                          CALL dia_ar5 ( kstp,      Nnn )   ! ar5 diag 
    219       IF( ln_diaharm )   CALL dia_harm( kstp,      Nnn )   ! Tidal harmonic analysis 
    220                          CALL dia_wri ( kstp,      Nnn )   ! ocean model: outputs 
     213      IF( ln_floats  )   CALL flo_stp ( kstp, Nbb, Nnn )        ! drifting Floats 
     214      IF( ln_diacfl  )   CALL dia_cfl ( kstp,      Nnn )        ! Courant number diagnostics 
     215                         CALL dia_hth ( kstp,      Nnn )        ! Thermocline depth (20 degres isotherm depth) 
     216      IF( ln_diadct  )   CALL dia_dct ( kstp,      Nnn )        ! Transports 
     217                         CALL dia_ar5 ( kstp,      Nnn )        ! ar5 diag 
     218                         CALL dia_ptr ( kstp,      Nnn )        ! Poleward adv/ldf TRansports diagnostics 
     219      IF( ln_diaharm )   CALL dia_harm( kstp,      Nnn )        ! Tidal harmonic analysis 
     220                         CALL dia_wri ( kstp,      Nnn )        ! ocean model: outputs 
    221221      ! 
    222222      IF( ln_crs     )   CALL crs_fld ( kstp,      Nnn )   ! ocean model: online field coarsening & output 
     
    253253                         CALL tra_ldf    ( kstp, Nbb, Nnn, ts, Nrhs )  ! lateral mixing 
    254254 
    255 !!gm : why CALL to dia_ptr has been moved here??? (use trends info?) 
    256       IF( ln_diaptr  )   CALL dia_ptr( Nnn )                           ! Poleward adv/ldf TRansports diagnostics 
    257 !!gm 
    258                          CALL tra_zdf    ( kstp, Nbb, Nnn, Nrhs, ts, Naa  )  ! vert. mixing & after tracer  ==> after 
     255                         CALL tra_zdf    ( kstp, Nbb, Nnn, Nrhs, ts, Naa  )  ! vertical mixing and after tracer fields 
    259256      IF( ln_zdfnpc  )   CALL tra_npc    ( kstp,      Nnn, Nrhs, ts, Naa  )  ! update after fields by non-penetrative convection 
    260257 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/MY_TRC/trcsms_my_trc.F90

    r11949 r12193  
    1515   USE trd_oce 
    1616   USE trdtrc 
    17    USE trcbc, only : trc_bc 
    1817 
    1918   IMPLICIT NONE 
     
    5554      IF( l_trdtrc )  ALLOCATE( ztrmyt(jpi,jpj,jpk) ) 
    5655 
    57       CALL trc_bc ( kt, Kmm, Krhs )       ! tracers: surface and lateral Boundary Conditions 
    58  
    5956      ! add here the call to BGC model 
    6057 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbc.F90

    r12182 r12193  
    5555CONTAINS 
    5656 
    57    SUBROUTINE p4z_bc( kt ) 
     57   SUBROUTINE p4z_bc( kt, Kbb, Kmm, Krhs ) 
    5858      !!---------------------------------------------------------------------- 
    5959      !!                  ***  routine p4z_bc  *** 
     
    6666      !! 
    6767      !!---------------------------------------------------------------------- 
    68       INTEGER, INTENT(in) ::   kt   ! ocean time step 
     68      INTEGER, INTENT(in) ::   kt              ! ocean time step 
     69      INTEGER, INTENT(in) ::   Kbb, Kmm, Krhs  ! time level index 
    6970      ! 
    7071      INTEGER  ::  ji, jj, jk, jl  
     
    8687         ! 
    8788         jl = n_trc_indsbc(jpfer) 
    88          zirondep(:,:,1) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t_n(:,:,1) / rn_sbc_time 
     89         zirondep(:,:,1) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 
    8990         !                                              ! Iron solubilization of particles in the water column 
    9091         !                                              ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ;  wdust in m/j 
    9192         zwdust = 0.03 / ( wdust / rday ) / ( 270. * rday ) 
    9293         DO jk = 2, jpkm1 
    93             zirondep(:,:,jk) = ( mfrac * dust(:,:) * zwdust / mMass_Fe ) * rfact * EXP( -gdept_n(:,:,jk) / 540. ) 
    94             tra(:,:,jk,jpfer) = tra(:,:,jk,jpfer) + zirondep(:,:,jk) 
    95             tra(:,:,jk,jppo4) = tra(:,:,jk,jppo4) + zirondep(:,:,jk) * 0.023 
     94            zirondep(:,:,jk) = ( mfrac * dust(:,:) * zwdust / mMass_Fe ) * rfact * EXP( -gdept(:,:,jk,Kmm) / 540. ) 
     95            tr(:,:,jk,jpfer,Krhs) = tr(:,:,jk,jpfer,Krhs) + zirondep(:,:,jk) 
     96            tr(:,:,jk,jppo4,Krhs) = tr(:,:,jk,jppo4,Krhs) + zirondep(:,:,jk) * 0.023 
    9697         ENDDO 
    9798         ! 
    9899         IF( lk_iomput ) THEN 
    99100           IF( iom_use( "Irondep" ) )   & 
    100              &  CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t_n(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 
     101             &  CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 
    101102           IF( iom_use( "pdust" ) )   & 
    102103             &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 
     
    117118                   zcoef = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
    118119                   zrivdin = rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zcoef 
    119                    tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - rno3 * zrivdin * rfact 
     120                   tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - rno3 * zrivdin * rfact 
    120121               ENDDO 
    121122             END DO 
     
    129130         IF( ln_trc_sbc(jpno3) ) THEN 
    130131            jl = n_trc_indsbc(jpno3) 
    131             zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t_n(:,:,1) / rn_sbc_time 
    132             tra(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * zndep(:,:) * rfact 
     132            zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 
     133            tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * zndep(:,:) * rfact 
    133134         ENDIF 
    134135         IF( ln_trc_sbc(jpnh4) ) THEN 
    135136            jl = n_trc_indsbc(jpnh4) 
    136             zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t_n(:,:,1) / rn_sbc_time 
    137             tra(:,:,1,jptal) = tra(:,:,1,jptal) - rno3 * zndep(:,:) * rfact 
     137            zndep(:,:) = rf_trsfac(jl) * sf_trcsbc(jl)%fnow(:,:,1) / e3t(:,:,1,Kmm) / rn_sbc_time 
     138            tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * zndep(:,:) * rfact 
    138139         ENDIF 
    139140         DEALLOCATE( zndep ) 
     
    149150         DO jj = 1, jpj 
    150151            DO ji = 1, jpi 
    151                zdep    = rfact / e3t_n(ji,jj,1) 
     152               zdep    = rfact / e3t(ji,jj,1,Kmm) 
    152153               zwflux  = fmmflx(ji,jj) / 1000._wp 
    153                zironice(ji,jj) =  MAX( -0.99 * trb(ji,jj,1,jpfer), -zwflux * icefeinput * zdep ) 
     154               zironice(ji,jj) =  MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 
    154155            END DO 
    155156         END DO 
    156157         ! 
    157          tra(:,:,1,jpfer) = tra(:,:,1,jpfer) + zironice(:,:) 
     158         tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 
    158159         ! 
    159160         IF( lk_iomput .AND. iom_use( "Ironice" ) )   & 
    160             &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t_n(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 
     161            &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 
    161162         ! 
    162163         DEALLOCATE( zironice ) 
     
    167168      ! ------------------------------------------------------ 
    168169      IF( ln_ironsed .AND. .NOT.lk_sed ) THEN 
    169           tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + ironsed(:,:,:) * rfact 
     170          tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact 
    170171          ! 
    171172          IF( lk_iomput .AND. iom_use( "Ironsed" ) )   & 
     
    179180         DO jk = 1, jpk 
    180181            hydrofe(:,:,jk) = ( MAX( rtrn, sf_hydrofe(1)%fnow(:,:,jk) ) * hratio ) & 
    181               &              / ( e1e2t(:,:) * e3t_n(:,:,jk) * ryyss + rtrn ) / 1000._wp & 
     182              &              / ( e1e2t(:,:) * e3t(:,:,jk,Kmm) * ryyss + rtrn ) / 1000._wp & 
    182183              &              * tmask(:,:,jk) 
    183184         ENDDO 
    184                          tra(:,:,:,jpfer) = tra(:,:,:,jpfer) + hydrofe(:,:,:) * rfact 
    185          IF( ln_ligand ) tra(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * lgw_rath ) * rfact 
     185                         tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + hydrofe(:,:,:) * rfact 
     186         IF( ln_ligand ) tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact 
    186187         ! 
    187188         IF( lk_iomput .AND. iom_use( "HYDR" ) )   & 
     
    193194 
    194195 
    195    SUBROUTINE p4z_bc_init 
     196   SUBROUTINE p4z_bc_init( Kmm )  
    196197      !!---------------------------------------------------------------------- 
    197198      !!                  ***  routine p4z_bc_init  *** 
     
    205206      !! 
    206207      !!---------------------------------------------------------------------- 
     208      INTEGER, INTENT( in ) ::   Kmm  ! time level index 
    207209      INTEGER  :: ji, jj, jk, jm 
    208210      INTEGER  :: ii0, ii1, ij0, ij1 
     
    229231      ENDIF 
    230232      !                            !* set file information 
    231       REWIND( numnatp_ref )              ! Namelist nampisbc in reference namelist : Pisces external sources of nutrients 
    232233      READ  ( numnatp_ref, nampisbc, IOSTAT = ios, ERR = 901) 
    233234901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'nampisbc in reference namelist' ) 
    234       REWIND( numnatp_cfg )              ! Namelist nampisbc in configuration namelist : Pisces external sources of nutrients 
    235235      READ  ( numnatp_cfg, nampisbc, IOSTAT = ios, ERR = 902 ) 
    236236902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nampisbc in configuration namelist' ) 
     
    328328            DO jj = 1, jpj 
    329329               DO ji = 1, jpi 
    330                   zexpide   = MIN( 8.,( gdept_n(ji,jj,jk) / 500. )**(-1.5) ) 
     330                  zexpide   = MIN( 8.,( gdept(ji,jj,jk,Kmm) / 500. )**(-1.5) ) 
    331331                  zdenitide = -0.9543 + 0.7662 * LOG( zexpide ) - 0.235 * LOG( zexpide )**2 
    332332                  zcmask(ji,jj,jk) = zcmask(ji,jj,jk) * MIN( 1., EXP( zdenitide ) / 0.5 ) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zfechem.F90

    r11960 r12193  
    1515   USE sms_pisces      ! PISCES Source Minus Sink variables 
    1616   USE p4zche          ! chemical model 
    17    USE p4zsbc          ! Boundary conditions from sediments 
     17   USE p4zbc           ! Boundary conditions from sediments 
    1818   USE prtctl_trc      ! print control for debugging 
    1919   USE iom             ! I/O manager 
     
    134134               ! 
    135135               ztrc   = ( tr(ji,jj,jk,jppoc,Kbb) + tr(ji,jj,jk,jpgoc,Kbb) + tr(ji,jj,jk,jpcal,Kbb) + tr(ji,jj,jk,jpgsi,Kbb) ) * 1.e6  
    136                IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 
     136               IF( ll_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 
    137137               &  * EXP( -gdept(ji,jj,jk,Kmm) / 540. ) 
    138138               IF (ln_ligand) THEN 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90

    r11960 r12193  
    161161            zfld = zfco2 * chemc(ji,jj,1) * zkgco2(ji,jj)  ! (mol/L) * (m/s) 
    162162            zflu = zh2co3(ji,jj) * zkgco2(ji,jj)                                   ! (mol/L) (m/s) ? 
    163             oce_co2(ji,jj) = ( zfld - zflu ) * rfact2 * e1e2t(ji,jj) * tmask(ji,jj,1) * 1000. 
     163            oce_co2(ji,jj) = ( zfld - zflu ) * tmask(ji,jj,1)  
    164164            ! compute the trend 
    165             tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + ( zfld - zflu ) * rfact2 / e3t(ji,jj,1,Kmm) * tmask(ji,jj,1) 
     165            tr(ji,jj,1,jpdic,Krhs) = tr(ji,jj,1,jpdic,Krhs) + oce_co2(ji,jj) * rfact2 / e3t(ji,jj,1,Kmm) 
    166166 
    167167            ! Compute O2 flux  
     
    175175      IF( iom_use("tcflx") .OR. iom_use("tcflxcum") .OR. kt == nitrst   & 
    176176         &                 .OR. (ln_check_mass .AND. kt == nitend) )    & 
    177          t_oce_co2_flx  = glob_sum( 'p4zflx', oce_co2(:,:) )                    !  Total Flux of Carbon 
     177         t_oce_co2_flx  = glob_sum( 'p4zflx', oce_co2(:,:) * e1e2t(:,:) * 1000. )                    !  Total Flux of Carbon 
    178178      t_oce_co2_flx_cum = t_oce_co2_flx_cum + t_oce_co2_flx       !  Cumulative Total Flux of Carbon 
    179179!      t_atm_co2_flx     = glob_sum( 'p4zflx', satmco2(:,:) * e1e2t(:,:) )       ! Total atmospheric pCO2 
     
    187187 
    188188      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     189         CALL iom_put( "AtmCo2" , satmco2(:,:) * tmask(:,:,1) )   ! Atmospheric CO2 concentration 
     190         !  
    189191         ALLOCATE( zw2d(jpi,jpj) )   
    190192         IF( iom_use( "Cflx"  ) )  THEN 
    191             zw2d(:,:) = oce_co2(:,:) / e1e2t(:,:) * rfact2r 
     193            zw2d(:,:) = oce_co2(:,:) * 1000.  ! conversion in molC/m2/s 
    192194            CALL iom_put( "Cflx"     , zw2d )  
    193195         ENDIF 
    194196         IF( iom_use( "Oflx"  ) )  THEN 
    195             zw2d(:,:) =  zoflx(:,:) * 1000 * tmask(:,:,1) 
     197            zw2d(:,:) =  zoflx(:,:) * 1000. 
    196198            CALL iom_put( "Oflx" , zw2d ) 
    197199         ENDIF 
     
    204206           CALL iom_put( "Dpco2" ,  zw2d ) 
    205207         ENDIF 
     208         IF( iom_use( "pCO2sea" ) ) THEN 
     209           zw2d(:,:) = ( zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
     210           CALL iom_put( "pCO2sea" ,  zw2d ) 
     211         ENDIF 
     212 
    206213         IF( iom_use( "Dpo2" ) )  THEN 
    207214           zw2d(:,:) = ( atcox * patm(:,:) - atcox * tr(:,:,1,jpoxy,Kbb) / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    208215           CALL iom_put( "Dpo2"  , zw2d ) 
    209216         ENDIF 
    210          CALL iom_put( "tcflx"    , t_oce_co2_flx * rfact2r )   ! molC/s 
    211          CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum       )   ! molC 
     217         CALL iom_put( "tcflx"    , t_oce_co2_flx     )   ! molC/s 
     218         CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum )   ! molC 
    212219         ! 
    213220         DEALLOCATE( zw2d ) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90

    r11949 r12193  
    1515   USE sms_pisces      !  PISCES Source Minus Sink variables 
    1616   USE p4zlim          !  Co-limitations of differents nutrients 
    17    USE p4zsbc          !  External source of nutrients  
    1817   USE p4zint          !  interpolation and computation of various fields 
    1918   USE sed             !  Sediment module 
     
    2524 
    2625   PUBLIC   p4z_sed   
     26   PUBLIC   p4z_sed_init 
    2727   PUBLIC   p4z_sed_alloc 
    2828  
     29   REAL(wp), PUBLIC ::   nitrfix      !: Nitrogen fixation rate 
     30   REAL(wp), PUBLIC ::   diazolight   !: Nitrogen fixation sensitivty to light 
     31   REAL(wp), PUBLIC ::   concfediaz   !: Fe half-saturation Cste for diazotrophs 
     32 
    2933   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: nitrpot    !: Nitrogen fixation  
    3034   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:  ) :: sdenit     !: Nitrate reduction in the sediments 
    31    REAL(wp) :: r1_rday                  !: inverse of rday 
    32    LOGICAL, SAVE :: lk_sed 
     35   ! 
     36   REAL(wp), SAVE :: r1_rday           
     37   REAL(wp), SAVE :: sedsilfrac, sedcalfrac 
    3338 
    3439   !!---------------------------------------------------------------------- 
     
    5459      INTEGER  ::  ji, jj, jk, ikt 
    5560      REAL(wp) ::  zrivalk, zrivsil, zrivno3 
    56       REAL(wp) ::  zwflux, zlim, zfact, zfactcal 
     61      REAL(wp) ::  zlim, zfact, zfactcal 
    5762      REAL(wp) ::  zo2, zno3, zflx, zpdenit, z1pdenit, zolimit 
    5863      REAL(wp) ::  zsiloss, zcaloss, zws3, zws4, zwsc, zdep 
     
    6772      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zsoufer, zlight 
    6873      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrpo4, ztrdop, zirondep, zpdep 
    69       REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zsidep, zironice 
    7074      !!--------------------------------------------------------------------- 
    7175      ! 
    7276      IF( ln_timing )  CALL timing_start('p4z_sed') 
    7377      ! 
    74       IF( kt == nittrc000 .AND. knt == 1 )   THEN 
    75           r1_rday  = 1. / rday 
    76           IF (ln_sediment .AND. ln_sed_2way) THEN 
    77              lk_sed = .TRUE. 
    78           ELSE 
    79              lk_sed = .FALSE. 
    80           ENDIF 
    81       ENDIF 
    82       ! 
    83       IF( kt == nittrc000 .AND. knt == 1 )   r1_rday  = 1. / rday 
    84       ! 
     78 
    8579      ! Allocate temporary workspace 
    8680      ALLOCATE( ztrpo4(jpi,jpj,jpk) ) 
     
    9488      zsedc   (:,:) = 0.e0 
    9589 
    96       ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 
    97       ! ---------------------------------------------------- 
    98       IF( ln_ironice ) THEN   
    99          !                                               
    100          ALLOCATE( zironice(jpi,jpj) ) 
    101          !                                               
     90      IF( .NOT.lk_sed ) THEN 
     91         ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
     92         ! -------------------------------------------------------------------- 
    10293         DO jj = 1, jpj 
    10394            DO ji = 1, jpi 
    104                zdep    = rfact2 / e3t(ji,jj,1,Kmm) 
    105                zwflux  = fmmflx(ji,jj) / 1000._wp 
    106                zironice(ji,jj) =  MAX( -0.99 * tr(ji,jj,1,jpfer,Kbb), -zwflux * icefeinput * zdep ) 
    107             END DO 
    108          END DO 
    109          ! 
    110          tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:)  
    111          !  
    112          IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironice" ) )   & 
    113             &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 
    114          ! 
    115          DEALLOCATE( zironice ) 
    116          !                                               
    117       ENDIF 
    118  
    119       ! Add the external input of nutrients from dust deposition 
    120       ! ---------------------------------------------------------- 
    121       IF( ln_dust ) THEN 
    122          !                                               
    123          ALLOCATE( zsidep(jpi,jpj), zpdep(jpi,jpj,jpk), zirondep(jpi,jpj,jpk) ) 
    124          !                                              ! Iron and Si deposition at the surface 
    125          IF( ln_solub ) THEN 
    126             zirondep(:,:,1) = solub(:,:) * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss  
    127          ELSE 
    128             zirondep(:,:,1) = dustsolub  * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 55.85 + 3.e-10 * r1_ryyss  
    129          ENDIF 
    130          zsidep(:,:)   = 8.8 * 0.075 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 28.1  
    131          zpdep (:,:,1) = 0.1 * 0.021 * dust(:,:) * mfrac * rfact2 / e3t(:,:,1,Kmm) / 31. / po4r  
    132          !                                              ! Iron solubilization of particles in the water column 
    133          !                                              ! dust in kg/m2/s ---> 1/55.85 to put in mol/Fe ;  wdust in m/j 
    134          zwdust = 0.03 * rday / ( wdust * 55.85 ) / ( 270. * rday ) 
    135          DO jk = 2, jpkm1 
    136             zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept(:,:,jk,Kmm) / 540. ) 
    137             zpdep   (:,:,jk) = zirondep(:,:,jk) * 0.023 
    138          END DO 
    139          !                                              ! Iron solubilization of particles in the water column 
    140          tr(:,:,1,jpsil,Krhs) = tr(:,:,1,jpsil,Krhs) + zsidep  (:,:) 
    141          DO jk = 1, jpkm1 
    142             tr(:,:,jk,jppo4,Krhs) = tr(:,:,jk,jppo4,Krhs) + zpdep   (:,:,jk) 
    143             tr(:,:,jk,jpfer,Krhs) = tr(:,:,jk,jpfer,Krhs) + zirondep(:,:,jk)  
    144          ENDDO 
    145          !  
    146          IF( lk_iomput ) THEN 
    147             IF( knt == nrdttrc ) THEN 
    148                 IF( iom_use( "Irondep" ) )   & 
    149                 &  CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 
    150                 IF( iom_use( "pdust" ) )   & 
    151                 &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday )  * tmask(:,:,1) ) ! dust concentration at surface 
    152             ENDIF 
    153          ENDIF 
    154          DEALLOCATE( zsidep, zpdep, zirondep ) 
    155          !                                               
    156       ENDIF 
    157       
    158       ! Add the external input of nutrients from river 
    159       ! ---------------------------------------------------------- 
    160       IF( ln_river ) THEN 
    161          DO jj = 1, jpj 
    162             DO ji = 1, jpi 
    163                DO jk = 1, nk_rnf(ji,jj) 
    164                   tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) +  rivdip(ji,jj) * rfact2 
    165                   tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) +  rivdin(ji,jj) * rfact2 
    166                   tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) +  rivdic(ji,jj) * 5.e-5 * rfact2 
    167                   tr(ji,jj,jk,jpsil,Krhs) = tr(ji,jj,jk,jpsil,Krhs) +  rivdsi(ji,jj) * rfact2 
    168                   tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) +  rivdic(ji,jj) * rfact2 
    169                   tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) +  ( rivalk(ji,jj) - rno3 * rivdin(ji,jj) ) * rfact2 
    170                   tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) +  rivdoc(ji,jj) * rfact2 
    171                ENDDO 
    172             ENDDO 
    173          ENDDO 
    174          IF (ln_ligand) THEN 
    175             DO jj = 1, jpj 
    176                DO ji = 1, jpi 
    177                   DO jk = 1, nk_rnf(ji,jj) 
    178                      tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs) +  rivdic(ji,jj) * 5.e-5 * rfact2 
    179                   ENDDO 
    180                ENDDO 
    181             ENDDO 
    182          ENDIF 
    183          IF( ln_p5z ) THEN 
    184             DO jj = 1, jpj 
    185                DO ji = 1, jpi 
    186                   DO jk = 1, nk_rnf(ji,jj) 
    187                      tr(ji,jj,jk,jpdop,Krhs) = tr(ji,jj,jk,jpdop,Krhs) + rivdop(ji,jj) * rfact2 
    188                      tr(ji,jj,jk,jpdon,Krhs) = tr(ji,jj,jk,jpdon,Krhs) + rivdon(ji,jj) * rfact2 
    189                   ENDDO 
    190                ENDDO 
    191             ENDDO 
    192          ENDIF 
    193       ENDIF 
    194        
    195       ! Add the external input of nutrients from nitrogen deposition 
    196       ! ---------------------------------------------------------- 
    197       IF( ln_ndepo ) THEN 
    198          tr(:,:,1,jpno3,Krhs) = tr(:,:,1,jpno3,Krhs) + nitdep(:,:) * rfact2 
    199          tr(:,:,1,jptal,Krhs) = tr(:,:,1,jptal,Krhs) - rno3 * nitdep(:,:) * rfact2 
    200       ENDIF 
    201  
    202       ! Add the external input of iron from hydrothermal vents 
    203       ! ------------------------------------------------------ 
    204       IF( ln_hydrofe ) THEN 
    205             tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + hydrofe(:,:,:) * rfact2 
    206          IF( ln_ligand ) THEN 
    207             tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact2 
    208          ENDIF 
    209          ! 
    210          IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "HYDR" ) )   & 
    211             &   CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 
    212       ENDIF 
    213  
    214       ! OA: Warning, the following part is necessary to avoid CFL problems above the sediments 
    215       ! -------------------------------------------------------------------- 
    216       DO jj = 1, jpj 
    217          DO ji = 1, jpi 
    218             ikt  = mbkt(ji,jj) 
    219             zdep = e3t(ji,jj,ikt,Kmm) / xstep 
    220             zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 
    221             zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 
    222          END DO 
    223       END DO 
    224       ! 
    225       IF( .NOT.lk_sed ) THEN 
    226 ! 
    227          ! Add the external input of iron from sediment mobilization 
    228          ! ------------------------------------------------------ 
    229          IF( ln_ironsed ) THEN 
    230                             tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact2 
    231             ! 
    232             IF( lk_iomput .AND. knt == nrdttrc .AND. iom_use( "Ironsed" ) )   & 
    233                &   CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! iron inputs from sediments 
    234          ENDIF 
     95               ikt  = mbkt(ji,jj) 
     96               zdep = e3t(ji,jj,ikt,Kmm) / xstep 
     97               zwsbio4(ji,jj) = MIN( 0.99 * zdep, wsbio4(ji,jj,ikt) ) 
     98               zwsbio3(ji,jj) = MIN( 0.99 * zdep, wsbio3(ji,jj,ikt) ) 
     99            END DO 
     100         END DO 
    235101 
    236102         ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 
     
    495361   END SUBROUTINE p4z_sed 
    496362 
     363   SUBROUTINE p4z_sed_init 
     364      !!---------------------------------------------------------------------- 
     365      !!                  ***  routine p4z_sed_init  *** 
     366      !! 
     367      !! ** purpose :   initialization of some parameters 
     368      !! 
     369      !!---------------------------------------------------------------------- 
     370      !!---------------------------------------------------------------------- 
     371      INTEGER  :: ji, jj, jk, jm 
     372      INTEGER  :: ios                 ! Local integer output status for namelist read 
     373      ! 
     374      !! 
     375      NAMELIST/nampissed/ nitrfix, diazolight, concfediaz 
     376      !!---------------------------------------------------------------------- 
     377      ! 
     378      IF(lwp) THEN 
     379         WRITE(numout,*) 
     380         WRITE(numout,*) 'p4z_sed_init : initialization of sediment mobilisation ' 
     381         WRITE(numout,*) '~~~~~~~~~~~~ ' 
     382      ENDIF 
     383      !                            !* set file information 
     384      READ  ( numnatp_ref, nampissed, IOSTAT = ios, ERR = 901) 
     385901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'nampissed in reference namelist' ) 
     386      READ  ( numnatp_cfg, nampissed, IOSTAT = ios, ERR = 902 ) 
     387902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nampissed in configuration namelist' ) 
     388      IF(lwm) WRITE ( numonp, nampissed ) 
     389 
     390      IF(lwp) THEN 
     391         WRITE(numout,*) '   Namelist : nampissed ' 
     392         WRITE(numout,*) '      nitrogen fixation rate                       nitrfix = ', nitrfix 
     393         WRITE(numout,*) '      nitrogen fixation sensitivty to light    diazolight  = ', diazolight 
     394         WRITE(numout,*) '      Fe half-saturation cste for diazotrophs  concfediaz  = ', concfediaz 
     395      ENDIF 
     396      ! 
     397      r1_rday  = 1. / rday 
     398      ! 
     399      sedsilfrac = 0.03     ! percentage of silica loss in the sediments 
     400      sedcalfrac = 0.6      ! percentage of calcite loss in the sediments 
     401      ! 
     402      lk_sed = ln_sediment .AND. ln_sed_2way  
     403      ! 
     404   END SUBROUTINE p4z_sed_init 
    497405 
    498406   INTEGER FUNCTION p4z_sed_alloc() 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsms.F90

    r11960 r12193  
    1717   USE p4zlys          ! Calcite saturation 
    1818   USE p4zflx          ! Gas exchange 
    19    USE p4zsbc          ! External source of nutrients 
     19   USE p4zbc           ! External source of nutrients 
    2020   USE p4zsed          ! Sedimentation 
    2121   USE p4zint          ! time interpolation 
     
    3535   INTEGER ::    numco2, numnut, numnit      ! logical unit for co2 budget 
    3636   REAL(wp) ::   alkbudget, no3budget, silbudget, ferbudget, po4budget 
    37    REAL(wp) ::   xfact1, xfact2, xfact3 
     37   REAL(wp) ::   xfact, xfact1, xfact2, xfact3 
    3838 
    3939   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xnegtr     ! Array used to indicate negative tracer values 
     
    6464      REAL(wp) ::  ztra 
    6565      CHARACTER (len=25) :: charout 
     66      REAL(wp), ALLOCATABLE, DIMENSION(:,:    ) :: zw2d 
     67      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:  ) :: zw3d 
     68      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrdt   ! 4D workspace 
     69 
    6670      !!--------------------------------------------------------------------- 
    6771      ! 
     
    8690      rfact = r2dttrc 
    8791      ! 
     92      ! trends computation initialisation 
     93      IF( l_trdtrc )  THEN 
     94         ALLOCATE( ztrdt(jpi,jpj,jpk,jp_pisces) )  !* store now fields before applying the Asselin filter 
     95         ztrdt(:,:,:,:)  = tr(:,:,:,:,Kmm) 
     96      ENDIF 
     97      ! 
     98 
    8899      IF( ( ln_top_euler .AND. kt == nittrc000 )  .OR. ( .NOT.ln_top_euler .AND. kt <= nittrc000 + 1 ) ) THEN 
    89100         rfactr  = 1. / rfact 
     
    91102         rfact2r = 1. / rfact2 
    92103         xstep = rfact2 / rday         ! Time step duration for biology 
     104         xfact = 1.e+3 * rfact2r 
    93105         IF(lwp) WRITE(numout,*)  
    94106         IF(lwp) WRITE(numout,*) '    Passive Tracer  time step    rfact  = ', rfact, ' rdt = ', rdt 
     
    103115      ENDIF 
    104116      ! 
    105       IF( ll_sbc ) CALL p4z_sbc( kt, Kmm )   ! external sources of nutrients  
     117      IF( ll_bc )    CALL p4z_bc( kt, Kbb, Kmm, Krhs )   ! external sources of nutrients  
    106118      ! 
    107119#if ! defined key_sed_off 
     
    135147         END DO 
    136148        ! 
     149        IF(  iom_use( 'INTdtAlk' ) .OR. iom_use( 'INTdtDIC' ) .OR. iom_use( 'INTdtFer' ) .OR.  & 
     150          &  iom_use( 'INTdtDIN' ) .OR. iom_use( 'INTdtDIP' ) .OR. iom_use( 'INTdtSil' ) )  THEN 
     151          ! 
     152          ALLOCATE( zw3d(jpi,jpj,jpk), zw2d(jpi,jpj) ) 
     153          zw3d(:,:,jpk) = 0. 
     154          DO jk = 1, jpkm1 
     155              zw3d(:,:,jk) = xnegtr(:,:,jk) * xfact * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 
     156          ENDDO 
     157          ! 
     158          zw2d(:,:) = 0. 
     159          DO jk = 1, jpkm1 
     160             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jptal,Krhs) 
     161          ENDDO 
     162          CALL iom_put( 'INTdtAlk', zw2d ) 
     163          ! 
     164          zw2d(:,:) = 0. 
     165          DO jk = 1, jpkm1 
     166             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpdic,Krhs) 
     167          ENDDO 
     168          CALL iom_put( 'INTdtDIC', zw2d ) 
     169          ! 
     170          zw2d(:,:) = 0. 
     171          DO jk = 1, jpkm1 
     172             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * rno3 * ( tr(:,:,jk,jpno3,Krhs) + tr(:,:,jk,jpnh4,Krhs) ) 
     173          ENDDO 
     174          CALL iom_put( 'INTdtDIN', zw2d ) 
     175          ! 
     176          zw2d(:,:) = 0. 
     177          DO jk = 1, jpkm1 
     178             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * po4r * tr(:,:,jk,jppo4,Krhs) 
     179          ENDDO 
     180          CALL iom_put( 'INTdtDIP', zw2d ) 
     181          ! 
     182          zw2d(:,:) = 0. 
     183          DO jk = 1, jpkm1 
     184             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpfer,Krhs) 
     185          ENDDO 
     186          CALL iom_put( 'INTdtFer', zw2d ) 
     187          ! 
     188          zw2d(:,:) = 0. 
     189          DO jk = 1, jpkm1 
     190             zw2d(:,:) = zw2d(:,:) + zw3d(:,:,jk) * tr(:,:,jk,jpsil,Krhs) 
     191          ENDDO 
     192          CALL iom_put( 'INTdtSil', zw2d ) 
     193          ! 
     194          DEALLOCATE( zw3d, zw2d ) 
     195        ENDIF 
     196        ! 
    137197         DO jn = jp_pcs0, jp_pcs1 
    138198            tr(:,:,:,jn,Krhs) = 0._wp 
     
    145205         ENDIF 
    146206      END DO 
    147  
    148207      ! 
    149208      IF( l_trdtrc ) THEN 
    150209         DO jn = jp_pcs0, jp_pcs1 
     210           ztrdt(:,:,:,jn) = ( tr(:,:,:,jn,Kbb) - ztrdt(:,:,:,jn) ) * rfact2r  
    151211           CALL trd_trc( tr(:,:,:,jn,Krhs), jn, jptra_sms, kt, Kmm )   ! save trends 
    152212         END DO 
     213         DEALLOCATE( ztrdt )  
    153214      END IF 
    154215#endif 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/SED/oce_sed.F90

    r11949 r12193  
    4949   USE p4zche, ONLY     : sulfat    =>   sulfat          !: Chemical constants   
    5050   USE p4zche, ONLY     : sio3eq    =>   sio3eq          !: Chemical constants   
    51    USE p4zsbc, ONLY     : dust      =>   dust 
    52    USE trc       , ONLY : r2dttrc   =>   r2dttrc 
     51   USE p4zbc, ONLY     : dust      =>   dust 
     52   USE trc  , ONLY : r2dttrc   =>   r2dttrc 
    5353 
    5454END MODULE oce_sed 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/par_pisces.F90

    r10416 r12193  
    66   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture 
    77   !!---------------------------------------------------------------------- 
     8   USE par_kind 
    89 
    910   IMPLICIT NONE 
     
    6061   !!   Default                                   No CFC geochemical model 
    6162   ! Starting/ending PISCES do-loop indices (N.B. no PISCES : jpl_pcs < jpf_pcs the do-loop are never done) 
    62    INTEGER, PUBLIC  ::   jp_pcs0  !: First index of PISCES tracers 
    63    INTEGER, PUBLIC  ::   jp_pcs1  !: Last  index of PISCES tracers 
     63   INTEGER, PUBLIC  ::  jp_pcs0  !: First index of PISCES tracers 
     64   INTEGER, PUBLIC  ::  jp_pcs1  !: Last  index of PISCES tracers 
     65 
     66   REAL(wp), PUBLIC ::  mMass_C  = 12.00      ! Molar mass of carbon 
     67   REAL(wp), PUBLIC ::  mMass_N  = 14.00      ! Molar mass of nitrogen 
     68   REAL(wp), PUBLIC ::  mMass_P  = 31.00      ! Molar mass of phosphorus 
     69   REAL(wp), PUBLIC ::  mMass_Fe = 55.85      ! Molar mass of iron 
     70   REAL(wp), PUBLIC ::  mMass_Si = 28.00      ! Molar mass of silver 
    6471 
    6572   !!---------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/sms_pisces.F90

    r11960 r12193  
    121121   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tgfunc2   !: Temp. dependancy of mesozooplankton rates 
    122122 
     123   LOGICAL, SAVE :: lk_sed 
     124 
    123125   !!---------------------------------------------------------------------- 
    124126   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/trcini_pisces.F90

    r11949 r12193  
    5959      USE p4zsink         !  vertical flux of particulate matter due to sinking 
    6060      USE p4zopt          !  optical model 
    61       USE p4zsbc          !  Boundary conditions 
     61      USE p4zbc          !  Boundary conditions 
    6262      USE p4zfechem       !  Iron chemistry 
    6363      USE p4zrem          !  Remineralisation of organic matter 
     
    256256         CALL p5z_prod_init      !  phytoplankton growth rate over the global ocean. 
    257257      ENDIF 
    258       CALL p4z_sbc_init( Kmm )   !  boundary conditions 
     258      CALL p4z_bc_init( Kmm )    !  boundary conditions 
    259259      CALL p4z_fechem_init       !  Iron chemistry 
    260260      CALL p4z_rem_init          !  remineralisation 
     
    277277 
    278278      ! Initialization of the sediment model 
    279       IF( ln_sediment)   CALL sed_init 
     279      IF( ln_sediment)   & 
     280        & CALL sed_init ! Initialization of the sediment model  
     281 
     282      CALL p4z_sed_init          ! loss of organic matter in the sediments  
    280283 
    281284      IF(lwp) WRITE(numout,*)  
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trctrp.F90

    r11949 r12193  
    2323   USE trcrad          ! positivity                          (trc_rad routine) 
    2424   USE trcsbc          ! surface boundary condition          (trc_sbc routine) 
     25   USE trcbc           ! Tracers boundary condtions          ( trc_bc routine) 
    2526   USE zpshde          ! partial step: hor. derivative       (zps_hde routine) 
    2627   USE bdy_oce   , ONLY: ln_bdy 
     
    6162      IF( .NOT. lk_c1d ) THEN 
    6263         ! 
    63                                 CALL trc_sbc    ( kt,      Kmm, tr, Krhs )  ! surface boundary condition 
    64          IF( ln_trabbl )        CALL trc_bbl    ( kt, Kbb, Kmm, tr, Krhs )  ! advective (and/or diffusive) bottom boundary layer scheme 
    65          IF( ln_trcdmp )        CALL trc_dmp    ( kt, Kbb, Kmm, tr, Krhs )  ! internal damping trends 
     64                                CALL trc_sbc    ( kt,      Kmm, tr, Krhs )      ! surface boundary condition 
     65         IF( ln_trcbc .AND. lltrcbc .AND. kt /= nit000 )  & 
     66                                CALL trc_bc     ( kt,      Kmm, tr, Krhs )      ! tracers: surface and lateral Boundary Conditions  
     67         IF( ln_trabbl )        CALL trc_bbl    ( kt, Kbb, Kmm, tr, Krhs )      ! advective (and/or diffusive) bottom boundary layer scheme 
     68         IF( ln_trcdmp )        CALL trc_dmp    ( kt, Kbb, Kmm, tr, Krhs )      ! internal damping trends 
    6669         IF( ln_bdy )           CALL trc_bdy_dmp( kt, Kbb,      Krhs )      ! BDY damping trends 
    67                                 CALL trc_adv    ( kt, Kbb, Kmm, tr, Krhs )  ! horizontal & vertical advection  
    68          !                                                             ! Partial top/bottom cell: GRADh( tr(Kbb) 
     70                                CALL trc_adv    ( kt, Kbb, Kmm, tr, Krhs )      ! horizontal & vertical advection  
     71         !                                                         ! Partial top/bottom cell: GRADh( trb 
    6972         IF( ln_zps ) THEN 
    7073           IF( ln_isfcav ) THEN ; CALL zps_hde_isf( kt, Kmm, jptra, tr(:,:,:,:,Kbb), pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi )  ! both top & bottom 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trc.F90

    r11960 r12193  
    6565   LOGICAL             , PUBLIC ::   ln_top_euler       !: boolean term for euler integration  
    6666   LOGICAL             , PUBLIC ::   ln_trcdta          !: Read inputs data from files 
     67   LOGICAL             , PUBLIC ::   ln_trcbc           !: Enable surface, lateral or open boundaries conditions 
    6768   LOGICAL             , PUBLIC ::   ln_trcdmp          !: internal damping flag 
    6869   LOGICAL             , PUBLIC ::   ln_trcdmp_clo      !: internal damping flag on closed seas 
     
    115116   LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ln_trc_cbc    !: Use coastal boundary condition data 
    116117   LOGICAL , PUBLIC                                  ::   ln_rnf_ctl    !: remove runoff dilution on tracers 
    117    REAL(wp), PUBLIC                                  ::   rn_bc_time    !: Time scaling factor for SBC and CBC data (seconds in a day) 
     118   REAL(wp), PUBLIC                                  ::   rn_sbc_time   !: Time scaling factor for SBC data (seconds in a day) 
     119   REAL(wp), PUBLIC                                  ::   rn_cbc_time   !: Time scaling factor for CBC data (seconds in a day) 
     120   LOGICAL , PUBLIC                                  ::   lltrcbc       !: Applying one of the boundary conditions  
    118121   ! 
    119122   CHARACTER(len=20), PUBLIC, DIMENSION(jp_bdy) :: cn_trc_dflt   ! Default OBC condition for all tracers 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcbc.F90

    r11960 r12193  
    8282      !! 
    8383      NAMELIST/namtrc_bc/ cn_dir_obc, sn_trcobc, rn_trofac, cn_dir_sbc, sn_trcsbc, rn_trsfac, &  
    84                         & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_bc_time 
     84                        & cn_dir_cbc, sn_trccbc, rn_trcfac, ln_rnf_ctl, rn_sbc_time, rn_cbc_time 
    8585      NAMELIST/namtrc_bdy/ cn_trc_dflt, cn_trc, nn_trcdmp_bdy 
    8686      !!---------------------------------------------------------------------- 
     
    336336 
    337337 
    338    SUBROUTINE trc_bc(kt, Kmm, Krhs, jit) 
     338   SUBROUTINE trc_bc(kt, Kmm, ptr, Krhs, jit) 
    339339      !!---------------------------------------------------------------------- 
    340340      !!                   ***  ROUTINE trc_bc  *** 
     
    347347      USE fldread 
    348348      !!       
    349       INTEGER, INTENT(in)           ::   kt        ! ocean time-step index 
    350       INTEGER, INTENT(in)           ::   Kmm, Krhs ! time level indices 
    351       INTEGER, INTENT(in), OPTIONAL ::   jit       ! subcycle time-step index (for timesplitting option) 
     349      INTEGER                                   , INTENT(in)           ::   kt        ! ocean time-step index 
     350      INTEGER                                   , INTENT(in)           ::   Kmm, Krhs ! time level indices 
     351      INTEGER                                   , INTENT(in), OPTIONAL ::   jit       ! subcycle time-step index (for timesplitting option) 
     352      REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr            ! passive tracers and RHS of tracer equation 
    352353      !! 
    353354      INTEGER  :: ji, jj, jk, jn, jl             ! Loop index 
     
    416417                  DO jk = 1, nk_rnf(ji,jj) 
    417418                     zrnf = (rnf(ji,jj) + rnf_b(ji,jj)) * 0.5_wp * r1_rau0 / h_rnf(ji,jj) 
    418                      tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs)  + (tr(ji,jj,jk,jn,Kmm) * zrnf) 
     419                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs)  + (ptr(ji,jj,jk,jn,Kmm) * zrnf) 
    419420                  END DO 
    420421               END DO 
     
    427428         IF( ln_trc_sbc(jn) ) THEN 
    428429            jl = n_trc_indsbc(jn) 
     430            sf_trcsbc(jl)%fnow(:,:,1) = MAX( rtrn, sf_trcsbc(jl)%fnow(:,:,1) ) ! avoid nedgative value due to interpolation 
    429431            DO jj = 2, jpj 
    430432               DO ji = fs_2, fs_jpim1   ! vector opt. 
    431                   zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_bc_time ) 
    432                   tr(ji,jj,1,jn,Krhs) = tr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 
     433                  zfact = 1. / ( e3t(ji,jj,1,Kmm) * rn_sbc_time ) 
     434                  ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + rf_trsfac(jl) * sf_trcsbc(jl)%fnow(ji,jj,1) * zfact 
    433435               END DO 
    434436            END DO 
     
    436438         ! 
    437439         ! COASTAL boundary conditions 
    438          IF( ln_rnf .AND. ln_trc_cbc(jn) ) THEN 
     440         IF( ( ln_rnf .OR. l_offline ) .AND. ln_trc_cbc(jn) ) THEN 
     441            IF( l_offline )   rn_rfact = 1._wp 
    439442            jl = n_trc_indcbc(jn) 
    440443            DO jj = 2, jpj 
    441444               DO ji = fs_2, fs_jpim1   ! vector opt. 
    442445                  DO jk = 1, nk_rnf(ji,jj) 
    443                      zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_bc_time )  
    444                      tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact 
     446                     zfact = rn_rfact / ( e1e2t(ji,jj) * h_rnf(ji,jj) * rn_cbc_time ) * tmask(ji,jj,1) 
     447                     ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + rf_trcfac(jl) * sf_trccbc(jl)%fnow(ji,jj,1) * zfact 
    445448                  END DO 
    446449               END DO 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcdta.F90

    r11960 r12193  
    177177      ! 
    178178      IF( ln_timing )   CALL timing_start('trc_dta') 
     179      ! 
     180      IF( kt == nit000 .AND. lwp) THEN 
     181         WRITE(numout,*) 
     182         WRITE(numout,*) 'trc_dta : passive tracers data for IC' 
     183         WRITE(numout,*) '~~~~~~~ ' 
     184      ENDIF 
    179185      ! 
    180186      IF( nb_trcdta > 0 ) THEN 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcini.F90

    r11949 r12193  
    2424   USE lib_mpp         ! distribued memory computing library 
    2525   USE trcice          ! tracers in sea ice 
    26    USE trcbc,   only : trc_bc_ini ! generalized Boundary Conditions 
    27    USE trcstp          ! for time level indices (to be initialised) 
     26   USE trcbc           ! generalized Boundary Conditions 
    2827  
    2928   IMPLICIT NONE 
     
    177176         ln_trc_obc(jn) =       sn_tracer(jn)%llobc 
    178177      END DO 
     178      ! 
     179      IF( .NOT.ln_trcbc ) THEN 
     180         DO jn = 1, jp_bgc 
     181            ln_trc_sbc(jn) = .FALSE. 
     182            ln_trc_cbc(jn) = .FALSE. 
     183            ln_trc_obc(jn) = .FALSE. 
     184         END DO 
     185      ENDIF 
     186      
     187      lltrcbc = ( COUNT(ln_trc_sbc) + COUNT(ln_trc_obc) + COUNT(ln_trc_cbc) ) > 0  
    179188      !     
    180189      IF( ln_pisces      )   CALL trc_ini_pisces( Kmm )     !  PISCES model 
     
    193202         END DO 
    194203      ENDIF 
     204      IF( lwp .AND. ln_trcbc .AND. lltrcbc ) THEN 
     205         WRITE(numout,*) 
     206         WRITE(numout,*) ' Applying tracer boundary conditions ' 
     207      ENDIF 
     208      
    1952099001  FORMAT(3x,i3,1x,a10,3x,l2,3x,l2,3x,l2,3x,l2) 
    196210      ! 
     
    238252      IF( ln_trcdta )   CALL trc_dta_ini( jptra )           ! set initial tracers values 
    239253      ! 
    240       IF( ln_my_trc )   CALL trc_bc_ini ( jptra, Kmm )      ! set tracers Boundary Conditions 
     254      IF( ln_trcbc .AND. lltrcbc )  THEN  
     255        CALL trc_bc_ini ( jptra, Kmm  )            ! set tracers Boundary Conditions 
     256        CALL trc_bc     ( nit000, Kmm, tr, Kaa )   ! tracers: surface and lateral Boundary Conditions 
     257      ENDIF 
    241258      ! 
    242259      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcnam.F90

    r11960 r12193  
    138138      !! 
    139139      NAMELIST/namtrc/jp_bgc, ln_pisces, ln_my_trc, ln_age, ln_cfc11, ln_cfc12, ln_sf6, ln_c14, & 
    140          &            sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo, jp_dia3d, jp_dia2d 
     140         &            sn_tracer, ln_trcdta, ln_trcbc, ln_trcdmp, ln_trcdmp_clo, jp_dia3d, jp_dia2d 
    141141      !!--------------------------------------------------------------------- 
    142142      ! Dummy settings to fill tracers data structure 
     
    210210         WRITE(numout,*) '      Simulating C14   passive tracer              ln_c14        = ', ln_c14 
    211211         WRITE(numout,*) '      Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta 
     212         WRITE(numout,*) '      Enable surface, lateral or open boundaries conditions (y/n)  ln_trcbc  = ', ln_trcbc 
    212213         WRITE(numout,*) '      Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp 
    213214         WRITE(numout,*) '      Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/CANAL/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_ADV1D/EXPREF/context_nemo.xml

    r10413 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     
    2326    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    2427    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     28 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_ADV2D/EXPREF/context_nemo.xml

    r10515 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     
    2326    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    2427    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     28 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ICE_AGRIF/EXPREF/context_nemo.xml

    r9930 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"   type="float" > 1.e20 </variable> 
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>    <!--  NEMO ocean dynamics     --> 
     
    2326    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics      --> 
    2427    <file_definition src="./file_def_nemo-ice.xml"/>     <!--  NEMO sea-ice model       --> 
    25     <!--  
    26 ============================================================================================================ 
    27 = grid definition = = DO NOT CHANGE = 
    28 ============================================================================================================ 
    29     --> 
    30      
    31     <axis_definition> 
    32       <axis id="deptht"  long_name="Vertical T levels"  unit="m" positive="down" /> 
    33       <axis id="depthu"  long_name="Vertical U levels"  unit="m" positive="down" /> 
    34       <axis id="depthv"  long_name="Vertical V levels"  unit="m" positive="down" /> 
    35       <axis id="depthw"  long_name="Vertical W levels"  unit="m" positive="down" /> 
    36       <axis id="nfloat"  long_name="Float number"       unit="-"                 /> 
    37       <axis id="icbcla"  long_name="Iceberg class"      unit="1"                 /> 
    38       <axis id="ncatice" long_name="Ice category"       unit="1"                 /> 
    39       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"              /> 
    40       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"              /> 
    41     </axis_definition> 
     28 
     29 
     30<!-- Axis definition --> 
     31    <axis_definition src="./axis_def_nemo.xml"/> 
    4232  
     33<!-- Domain definition --> 
    4334    <domain_definition src="./domain_def_nemo.xml"/> 
     35 
     36<!-- Grids definition --> 
     37    <grid_definition   src="./grid_def_nemo.xml"/> 
    4438   
    45     <grid_definition src="./grid_def_nemo.xml"/> 
    4639 
    4740</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/ISOMIP/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/LOCK_EXCHANGE/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/OVERFLOW/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/tests/WAD/EXPREF/context_nemo.xml

    r11536 r12193  
    55--> 
    66<context id="nemo"> 
    7 <!-- $id$ --> 
     7    <!-- $id$ --> 
    88    <variable_definition> 
    9     <!-- Year of time origin for NetCDF files; defaults to 1800 --> 
    10        <variable id="ref_year" type="int"   > 1800 </variable> 
    11        <variable id="rau0"     type="float" > 1026.0 </variable> 
    12        <variable id="cpocean"  type="float" > 3991.86795711963 </variable> 
    13        <variable id="convSpsu" type="float" > 0.99530670233846  </variable> 
    14        <variable id="rhoic"    type="float" > 917.0 </variable> 
    15        <variable id="rhosn"    type="float" > 330.0 </variable> 
    16        <variable id="missval"  type="float" > 1.e20 </variable> 
     9       <!-- Year/Month/Day of time origin for NetCDF files; defaults to 1800-01-01 --> 
     10       <variable id="ref_year"  type="int"> 1900 </variable> 
     11       <variable id="ref_month" type="int"> 01 </variable> 
     12       <variable id="ref_day"   type="int"> 01 </variable> 
     13       <variable id="rau0"      type="float" > 1026.0 </variable> 
     14       <variable id="cpocean"   type="float" > 3991.86795711963 </variable> 
     15       <variable id="convSpsu"  type="float" > 0.99530670233846  </variable> 
     16       <variable id="rhoic"     type="float" > 917.0 </variable> 
     17       <variable id="rhosn"     type="float" > 330.0 </variable> 
     18       <variable id="missval"  type="float" > 1.e20 </variable>           
    1719    </variable_definition> 
     20 
    1821<!-- Fields definition --> 
    1922    <field_definition src="./field_def_nemo-oce.xml"/>   <!--  NEMO ocean dynamics                     --> 
     
    2124<!-- Files definition --> 
    2225    <file_definition src="./file_def_nemo-oce.xml"/>     <!--  NEMO ocean dynamics                     --> 
    23     <!--  
    24 ============================================================================================================ 
    25 = grid definition = = DO NOT CHANGE = 
    26 ============================================================================================================ 
    27     --> 
    28      
    29     <axis_definition> 
    30       <axis id="deptht"  long_name="Vertical T levels" unit="m" positive="down" /> 
    31       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    32       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    33       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    34       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    35       <axis id="icbcla"  long_name="Iceberg class"     unit="1"                 /> 
    36       <axis id="ncatice" long_name="Ice category"      unit="1"                 /> 
    37       <axis id="iax_20C" long_name="20 degC isotherm"  unit="degC"              /> 
    38       <axis id="iax_28C" long_name="28 degC isotherm"  unit="degC"              /> 
    39     </axis_definition> 
     26 
     27<!-- Axis definition --> 
     28    <axis_definition src="./axis_def_nemo.xml"/> 
    4029  
     30<!-- Domain definition --> 
    4131    <domain_definition src="./domain_def_nemo.xml"/> 
     32 
     33<!-- Grids definition --> 
     34    <grid_definition   src="./grid_def_nemo.xml"/> 
    4235   
    43     <grid_definition src="./grid_def_nemo.xml"/> 
    4436 
    4537</context> 
Note: See TracChangeset for help on using the changeset viewer.