Changeset 14021


Ignore:
Timestamp:
2020-12-02T20:53:00+01:00 (4 months ago)
Author:
laurent
Message:

Caught up with trunk rev 14020…

Location:
NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice
Files:
50 added
63 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg

    r13558 r14021  
    9090   !                       !    =2 annual global mean of e-p-r set to zero 
    9191   ln_wave     = .false.   !  Activate coupling with wave  (T => fill namsbc_wave) 
    92    ln_cdgw     = .false.   !  Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 
    93    ln_sdw      = .false.   !  Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave)  
    94    nn_sdrift   =  0        !  Parameterization for the calculation of 3D-Stokes drift from the surface Stokes drift 
    95       !                    !   = 0 Breivik 2015 parameterization: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 
    96       !                    !   = 1 Phillips:                      v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 
    97       !                    !   = 2 Phillips as (1) but using the wave frequency from a wave model 
    98    ln_tauwoc   = .false.   !  Activate ocean stress modified by external wave induced stress (T => ln_wave=.true. & fill namsbc_wave) 
    99    ln_tauw     = .false.   !  Activate ocean stress components from wave model 
    100    ln_stcor    = .false.   !  Activate Stokes Coriolis term (T => ln_wave=.true. & ln_sdw=.true. & fill namsbc_wave) 
    10192/ 
    10293!----------------------------------------------------------------------- 
     
    167158&namsbc_wave   ! External fields from wave model                        (ln_wave=T) 
    168159!----------------------------------------------------------------------- 
     160   ln_sdw      = .false.    !  get the 2D Surf Stokes Drift & Compute the 3D stokes drift 
     161   ln_stcor    = .false.    !  add Stokes Coriolis and tracer advection terms 
     162   ln_cdgw     = .false.    !  Neutral drag coefficient read from wave model 
     163   ln_tauoc    = .false.    !  ocean stress is modified by wave induced stress 
     164   ln_wave_test= .false.    !  Test case with constant wave fields 
     165! 
     166   ln_charn    = .false.     !  Charnock coefficient read from wave model (IFS only) 
     167   ln_taw      = .false.     !  ocean stress is modified by wave induced stress (coupled mode) 
     168   ln_phioc    = .false.     !  TKE flux from wave model 
     169   ln_bern_srfc= .false.     ! wave induced pressure. Bernoulli head J term 
     170   ln_breivikFV_2016 = .false. ! breivik 2016 vertical stokes profile 
     171   ln_vortex_force = .false. 
     172! 
     173   cn_dir      = './'      !  root directory for the waves data location 
     174   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     175   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask ! 
     176   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   ! 
     177   sn_cdg      =  'sdw_ecwaves_orca2'    ,        6.         , 'drag_coeff' ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     178   sn_usd      =  'sdw_ecwaves_orca2'    ,        6.         , 'u_sd2d'     ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     179   sn_vsd      =  'sdw_ecwaves_orca2'    ,        6.         , 'v_sd2d'     ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     180   sn_hsw      =  'sdw_ecwaves_orca2'    ,        6.         , 'hs'         ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     181   sn_wmp      =  'sdw_ecwaves_orca2'    ,        6.         , 'wmp'        ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     182   sn_wnum     =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_num'   ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    169183/ 
    170184!----------------------------------------------------------------------- 
     
    378392                               !        = 2 add a tke source just at the base of the ML 
    379393                               !        = 3 as = 1 applied on HF part of the stress           (ln_cpl=T) 
     394      ln_mxhsw    = .false.   !  surface mixing length scale = F(wave height) 
    380395/ 
    381396!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/axis_def_nemo.xml

    r12377 r14021  
    11<!-- 
    2 ============================================================================================================ 
    3 = Axis definition = = DO NOT CHANGE = 
    4 ============================================================================================================ 
    5     --> 
     2    ============================================================================================================ 
     3    = Axis definition = = DO NOT CHANGE = 
     4    ============================================================================================================ 
     5--> 
    66 
    7     <axis_definition> 
    8       <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 
    9       <!--   Vertical zoom for a 31-levels ORCA2 grid for eORCA1 300m corresponds to n=35 --> 
    10       <axis id="deptht300" axis_ref="deptht" > 
    11          <zoom_axis begin="0" n="19" /> 
    12       </axis> 
    13       <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
    14       <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
    15       <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
    16       <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
    17       <axis id="icbcla"  long_name="Iceberg class"      unit="1"               /> 
    18       <axis id="ncatice" long_name="Ice category"       unit="1"               /> 
    19       <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"            /> 
    20       <axis id="iax_26C" long_name="26 degC isotherm"   unit="degC"            /> 
    21       <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"            /> 
    22       <axis id="basin"   long_name="Sub-basin mask (1=Global 2=Atlantic 3=Indo-Pacific 4=Indian, 5=Pacific)"  unit="1" /> 
    23       <axis id="nstrait" long_name="Number of straits" unit="1" /> 
    24       <!-- ABL vertical axis definition --> 
    25       <axis id="ght_abl" long_name="ABL Vertical T levels" unit="m" positive="up"   /> 
    26       <axis id="ghw_abl" long_name="ABL Vertical W levels" unit="m" positive="up"   /> 
    27       <axis id="section"     n_glo="16" /> 
    28       <axis id="section_ice" n_glo="4" /> 
    29       <axis id="gau" /> 
    30     </axis_definition> 
     7<axis_definition> 
     8  <axis id="deptht" long_name="Vertical T levels" unit="m" positive="down" /> 
     9  <!--   Vertical zoom for a 31-levels ORCA2 grid for eORCA1 300m corresponds to n=35 --> 
     10  <axis id="deptht300" axis_ref="deptht" > 
     11    <zoom_axis begin="0" n="19" /> 
     12  </axis> 
     13  <axis id="depthu"  long_name="Vertical U levels" unit="m" positive="down" /> 
     14  <axis id="depthv"  long_name="Vertical V levels" unit="m" positive="down" /> 
     15  <axis id="depthw"  long_name="Vertical W levels" unit="m" positive="down" /> 
     16  <axis id="nfloat"  long_name="Float number"      unit="-"                 /> 
     17  <axis id="icbcla"  long_name="Iceberg class"      unit="1"               /> 
     18  <axis id="ncatice" long_name="Ice category"       unit="1"               /> 
     19  <axis id="iax_20C" long_name="20 degC isotherm"   unit="degC"            /> 
     20  <axis id="iax_26C" long_name="26 degC isotherm"   unit="degC"            /> 
     21  <axis id="iax_28C" long_name="28 degC isotherm"   unit="degC"            /> 
     22  <axis id="basin"   long_name="Sub-basin mask (1=Global 2=Atlantic 3=Indo-Pacific 4=Indian, 5=Pacific)"  unit="1" /> 
     23  <axis id="nstrait" long_name="Number of straits" unit="1" /> 
     24  <!-- ABL vertical axis definition --> 
     25  <axis id="ght_abl" long_name="ABL Vertical T levels" unit="m" positive="up"   /> 
     26  <axis id="ghw_abl" long_name="ABL Vertical W levels" unit="m" positive="up"   /> 
     27  <axis id="section"     n_glo="16" /> 
     28  <axis id="section_ice" n_glo="4" /> 
     29  <axis id="gau" /> 
     30</axis_definition> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/domain_def_nemo.xml

    r12276 r14021  
    11 
    2    <domain_definition> 
     2<domain_definition> 
    33 
    4      <!--   T grid   --> 
    5      <domain id="grid_T" long_name="grid T"/> 
    6       
    7      <!--   My zoom: example of hand defined zoom   --> 
    8      <domain id="myzoomT" domain_ref="grid_T" > 
    9        <zoom_domain ibegin="1" jbegin="1" ni="2" nj="3"/> 
    10      </domain> 
     4  <!--   T grid   --> 
     5  <domain id="grid_T" long_name="grid T"/> 
    116 
    12       <domain id="1point" domain_ref="grid_T" > 
    13          <zoom_domain ibegin="139" jbegin="119" ni="1" nj="1"/> 
    14       </domain> 
     7  <!--   My zoom: example of hand defined zoom   --> 
     8  <domain id="myzoomT" domain_ref="grid_T" > 
     9    <zoom_domain ibegin="1" jbegin="1" ni="2" nj="3"/> 
     10  </domain> 
     11 
     12  <domain id="1point" domain_ref="grid_T" > 
     13    <zoom_domain ibegin="139" jbegin="119" ni="1" nj="1"/> 
     14  </domain> 
    1515 
    1616 
    17      <!--   Eq section --> 
    18      <domain id="EqT" domain_ref="grid_T" > <zoom_domain id="EqT"/> </domain> 
    19      <!--   TAO : see example above   --> 
    20      <!--   137e   --> 
    21      <domain id="2n137eT" domain_ref="grid_T" > <zoom_domain id="2n137eT"/> </domain> 
    22      <domain id="5n137eT" domain_ref="grid_T" > <zoom_domain id="5n137eT"/> </domain> 
    23      <domain id="8n137eT" domain_ref="grid_T" > <zoom_domain id="8n137eT"/> </domain> 
    24      <!-- <\!--   147e   -\-> --> 
    25      <domain id="0n147eT" domain_ref="grid_T" > <zoom_domain id="0n147eT"/> </domain> 
    26      <domain id="2n147eT" domain_ref="grid_T" > <zoom_domain id="2n147eT"/> </domain> 
    27      <domain id="5n147eT" domain_ref="grid_T" > <zoom_domain id="5n147eT"/> </domain> 
    28      <!-- <\!--   156e   -\-> --> 
    29      <domain id="5s156eT" domain_ref="grid_T" > <zoom_domain id="5s156eT"/> </domain> 
    30      <domain id="2s156eT" domain_ref="grid_T" > <zoom_domain id="2s156eT"/> </domain> 
    31      <domain id="0n156eT" domain_ref="grid_T" > <zoom_domain id="0n156eT"/> </domain> 
    32      <domain id="2n156eT" domain_ref="grid_T" > <zoom_domain id="2n156eT"/> </domain> 
    33      <domain id="5n156eT" domain_ref="grid_T" > <zoom_domain id="5n156eT"/> </domain> 
    34      <domain id="8n156eT" domain_ref="grid_T" > <zoom_domain id="8n156eT"/> </domain> 
    35      <!-- <\!--   165e   -\-> --> 
    36      <domain id="8s165eT" domain_ref="grid_T" > <zoom_domain id="8s165eT"/> </domain> 
    37      <domain id="5s165eT" domain_ref="grid_T" > <zoom_domain id="5s165eT"/> </domain> 
    38      <domain id="2s165eT" domain_ref="grid_T" > <zoom_domain id="2s165eT"/> </domain> 
    39      <domain id="0n165eT" domain_ref="grid_T" > <zoom_domain id="0n165eT"/> </domain> 
    40      <domain id="2n165eT" domain_ref="grid_T" > <zoom_domain id="2n165eT"/> </domain> 
    41      <domain id="5n165eT" domain_ref="grid_T" > <zoom_domain id="5n165eT"/> </domain> 
    42      <domain id="8n165eT" domain_ref="grid_T" > <zoom_domain id="8n165eT"/> </domain> 
    43      <!-- <\!--   180w   -\-> --> 
    44      <domain id="8s180wT" domain_ref="grid_T" > <zoom_domain id="8s180wT"/> </domain> 
    45      <domain id="5s180wT" domain_ref="grid_T" > <zoom_domain id="5s180wT"/> </domain> 
    46      <domain id="2s180wT" domain_ref="grid_T" > <zoom_domain id="2s180wT"/> </domain> 
    47      <domain id="0n180wT" domain_ref="grid_T" > <zoom_domain id="0n180wT"/> </domain> 
    48      <domain id="2n180wT" domain_ref="grid_T" > <zoom_domain id="2n180wT"/> </domain> 
    49      <domain id="5n180wT" domain_ref="grid_T" > <zoom_domain id="5n180wT"/> </domain> 
    50      <domain id="8n180wT" domain_ref="grid_T" > <zoom_domain id="8n180wT"/> </domain> 
    51      <!-- <\!--   170w   -\-> --> 
    52      <domain id="8s170wT" domain_ref="grid_T" > <zoom_domain id="8s170wT"/> </domain> 
    53      <domain id="5s170wT" domain_ref="grid_T" > <zoom_domain id="5s170wT"/> </domain> 
    54      <domain id="2s170wT" domain_ref="grid_T" > <zoom_domain id="2s170wT"/> </domain> 
    55      <domain id="0n170wT" domain_ref="grid_T" > <zoom_domain id="0n170wT"/> </domain> 
    56      <domain id="2n170wT" domain_ref="grid_T" > <zoom_domain id="2n170wT"/> </domain> 
    57      <domain id="5n170wT" domain_ref="grid_T" > <zoom_domain id="5n170wT"/> </domain> 
    58      <domain id="8n170wT" domain_ref="grid_T" > <zoom_domain id="8n170wT"/> </domain> 
    59      <!-- <\!--   155w   -\-> --> 
    60      <domain id="8s155wT" domain_ref="grid_T" > <zoom_domain id="8s155wT"/> </domain> 
    61      <domain id="5s155wT" domain_ref="grid_T" > <zoom_domain id="5s155wT"/> </domain> 
    62      <domain id="2s155wT" domain_ref="grid_T" > <zoom_domain id="2s155wT"/> </domain> 
    63      <domain id="0n155wT" domain_ref="grid_T" > <zoom_domain id="0n155wT"/> </domain> 
    64      <domain id="2n155wT" domain_ref="grid_T" > <zoom_domain id="2n155wT"/> </domain> 
    65      <domain id="5n155wT" domain_ref="grid_T" > <zoom_domain id="5n155wT"/> </domain> 
    66      <domain id="8n155wT" domain_ref="grid_T" > <zoom_domain id="8n155wT"/> </domain> 
    67      <!-- <\!--   140w   -\-> --> 
    68      <domain id="8s140wT" domain_ref="grid_T" > <zoom_domain id="8s140wT"/> </domain> 
    69      <domain id="5s140wT" domain_ref="grid_T" > <zoom_domain id="5s140wT"/> </domain> 
    70      <domain id="2s140wT" domain_ref="grid_T" > <zoom_domain id="2s140wT"/> </domain> 
    71      <domain id="0n140wT" domain_ref="grid_T" > <zoom_domain id="0n140wT"/> </domain> 
    72      <domain id="2n140wT" domain_ref="grid_T" > <zoom_domain id="2n140wT"/> </domain> 
    73      <domain id="5n140wT" domain_ref="grid_T" > <zoom_domain id="5n140wT"/> </domain> 
    74      <domain id="8n140wT" domain_ref="grid_T" > <zoom_domain id="8n140wT"/> </domain> 
    75      <!-- <\!--   125w   -\-> --> 
    76      <domain id="8s125wT" domain_ref="grid_T" > <zoom_domain id="8s125wT"/> </domain> 
    77      <domain id="5s125wT" domain_ref="grid_T" > <zoom_domain id="5s125wT"/> </domain> 
    78      <domain id="2s125wT" domain_ref="grid_T" > <zoom_domain id="2s125wT"/> </domain> 
    79      <domain id="0n125wT" domain_ref="grid_T" > <zoom_domain id="0n125wT"/> </domain> 
    80      <domain id="2n125wT" domain_ref="grid_T" > <zoom_domain id="2n125wT"/> </domain> 
    81      <domain id="5n125wT" domain_ref="grid_T" > <zoom_domain id="5n125wT"/> </domain> 
    82      <domain id="8n125wT" domain_ref="grid_T" > <zoom_domain id="8n125wT"/> </domain> 
    83      <!-- <\!--   110w   -\-> --> 
    84      <domain id="8s110wT" domain_ref="grid_T" > <zoom_domain id="8s110wT"/> </domain> 
    85      <domain id="5s110wT" domain_ref="grid_T" > <zoom_domain id="5s110wT"/> </domain> 
    86      <domain id="2s110wT" domain_ref="grid_T" > <zoom_domain id="2s110wT"/> </domain> 
    87      <domain id="0n110wT" domain_ref="grid_T" > <zoom_domain id="0n110wT"/> </domain> 
    88      <domain id="2n110wT" domain_ref="grid_T" > <zoom_domain id="2n110wT"/> </domain> 
    89      <domain id="5n110wT" domain_ref="grid_T" > <zoom_domain id="5n110wT"/> </domain> 
    90      <domain id="8n110wT" domain_ref="grid_T" > <zoom_domain id="8n110wT"/> </domain> 
    91      <!-- <\!--   95w   -\-> --> 
    92      <domain id="8s95wT" domain_ref="grid_T" > <zoom_domain id="8s95wT"/> </domain> 
    93      <domain id="5s95wT" domain_ref="grid_T" > <zoom_domain id="5s95wT"/> </domain> 
    94      <domain id="2s95wT" domain_ref="grid_T" > <zoom_domain id="2s95wT"/> </domain> 
    95      <domain id="0n95wT" domain_ref="grid_T" > <zoom_domain id="0n95wT"/> </domain> 
    96      <domain id="2n95wT" domain_ref="grid_T" > <zoom_domain id="2n95wT"/> </domain> 
    97      <domain id="5n95wT" domain_ref="grid_T" > <zoom_domain id="5n95wT"/> </domain> 
    98      <domain id="8n95wT" domain_ref="grid_T" > <zoom_domain id="8n95wT"/> </domain> 
    99      <!-- <\!--   RAMA   -\-> --> 
    100      <!-- <\!--   55e   -\-> --> 
    101      <domain id="16s55eT"    domain_ref="grid_T" > <zoom_domain id="16s55eT"   /> </domain> 
    102      <domain id="12s55eT"    domain_ref="grid_T" > <zoom_domain id="12s55eT"   /> </domain> 
    103      <domain id="8s55eT"     domain_ref="grid_T" > <zoom_domain id="8s55eT"    /> </domain> 
    104      <domain id="4s55eT"     domain_ref="grid_T" > <zoom_domain id="4s55eT"    /> </domain> 
    105      <domain id="1.5s55eT"   domain_ref="grid_T" > <zoom_domain id="1.5s55eT"  /> </domain> 
    106      <domain id="0n55eT"     domain_ref="grid_T" > <zoom_domain id="0n55eT"    /> </domain> 
    107      <domain id="1.5n55eT"   domain_ref="grid_T" > <zoom_domain id="1.5n55eT"  /> </domain> 
    108      <domain id="4n55eT"     domain_ref="grid_T" > <zoom_domain id="4n55eT"    /> </domain> 
    109      <!--    <\!--   65e   -\-> --> 
    110      <domain id="15n65eT"    domain_ref="grid_T" > <zoom_domain id="15n65eT"   /> </domain> 
    111      <!--    <\!--   67e   -\-> --> 
    112      <domain id="16s67eT"    domain_ref="grid_T" > <zoom_domain id="16s67eT"   /> </domain> 
    113      <domain id="12s67eT"    domain_ref="grid_T" > <zoom_domain id="12s67eT"   /> </domain> 
    114      <domain id="8s67eT"     domain_ref="grid_T" > <zoom_domain id="8s67eT"    /> </domain> 
    115      <domain id="4s67eT"     domain_ref="grid_T" > <zoom_domain id="4s67eT"    /> </domain> 
    116      <domain id="1.5s67eT"   domain_ref="grid_T" > <zoom_domain id="1.5s67eT"  /> </domain> 
    117      <domain id="0n67eT"     domain_ref="grid_T" > <zoom_domain id="0n67eT"    /> </domain> 
    118      <domain id="1.5n67eT"   domain_ref="grid_T" > <zoom_domain id="1.5n67eT"  /> </domain> 
    119      <domain id="4n67eT"     domain_ref="grid_T" > <zoom_domain id="4n67eT"    /> </domain> 
    120      <domain id="8n67eT"     domain_ref="grid_T" > <zoom_domain id="8n67eT"    /> </domain> 
    121      <!-- <\!--   80.5e   -\-> --> 
    122      <domain id="16s80.5eT"  domain_ref="grid_T" > <zoom_domain id="16s80.5eT" /> </domain> 
    123      <domain id="12s80.5eT"  domain_ref="grid_T" > <zoom_domain id="12s80.5eT" /> </domain> 
    124      <domain id="8s80.5eT"   domain_ref="grid_T" > <zoom_domain id="8s80.5eT"  /> </domain> 
    125      <domain id="4s80.5eT"   domain_ref="grid_T" > <zoom_domain id="4s80.5eT"  /> </domain> 
    126      <domain id="1.5s80.5eT" domain_ref="grid_T" > <zoom_domain id="1.5s80.5eT"/> </domain> 
    127      <domain id="0n80.5eT"   domain_ref="grid_T" > <zoom_domain id="0n80.5eT"  /> </domain> 
    128      <domain id="1.5n80.5eT" domain_ref="grid_T" > <zoom_domain id="1.5n80.5eT"/> </domain> 
    129      <domain id="4n80.5eT"   domain_ref="grid_T" > <zoom_domain id="4n80.5eT"  /> </domain> 
    130      <!-- <\!--   90e   -\-> --> 
    131      <domain id="1.5s90eT"   domain_ref="grid_T" > <zoom_domain id="1.5s90eT"  /> </domain> 
    132      <domain id="0n90eT"     domain_ref="grid_T" > <zoom_domain id="0n90eT"    /> </domain> 
    133      <domain id="1.5n90eT"   domain_ref="grid_T" > <zoom_domain id="1.5n90eT"  /> </domain> 
    134      <domain id="4n90eT"     domain_ref="grid_T" > <zoom_domain id="4n90eT"    /> </domain> 
    135      <domain id="8n90eT"     domain_ref="grid_T" > <zoom_domain id="8n90eT"    /> </domain> 
    136      <domain id="12n90eT"    domain_ref="grid_T" > <zoom_domain id="12n90eT"   /> </domain> 
    137      <domain id="15n90eT"    domain_ref="grid_T" > <zoom_domain id="15n90eT"   /> </domain> 
    138      <!-- <\!--   95e   -\-> --> 
    139      <domain id="16s95eT"    domain_ref="grid_T" > <zoom_domain id="16s95eT"   /> </domain> 
    140      <domain id="12s95eT"    domain_ref="grid_T" > <zoom_domain id="12s95eT"   /> </domain> 
    141      <domain id="8s95eT"     domain_ref="grid_T" > <zoom_domain id="8s95eT"    /> </domain> 
    142      <domain id="5s95eT"     domain_ref="grid_T" > <zoom_domain id="5s95eT"    /> </domain> 
    143      <!-- <\!--   PIRATA   -\-> --> 
    144      <!-- <\!--   38w-30w   -\-> --> 
    145      <domain id="19s34wT" domain_ref="grid_T" > <zoom_domain id="19s34wT"/> </domain> 
    146      <domain id="14s32wT" domain_ref="grid_T" > <zoom_domain id="14s32wT"/> </domain> 
    147      <domain id="8s30wT"  domain_ref="grid_T" > <zoom_domain id="8s30wT" /> </domain> 
    148      <domain id="0n35wT"  domain_ref="grid_T" > <zoom_domain id="0n35wT" /> </domain> 
    149      <domain id="4n38wT"  domain_ref="grid_T" > <zoom_domain id="4n38wT" /> </domain> 
    150      <domain id="8n38wT"  domain_ref="grid_T" > <zoom_domain id="8n38wT" /> </domain> 
    151      <domain id="12n38wT" domain_ref="grid_T" > <zoom_domain id="12n38wT"/> </domain> 
    152      <domain id="15n38wT" domain_ref="grid_T" > <zoom_domain id="15n38wT"/> </domain> 
    153      <domain id="20n38wT" domain_ref="grid_T" > <zoom_domain id="20n38wT"/> </domain> 
    154      <!-- <\!--   23w   -\-> --> 
    155      <domain id="0n23wT"  domain_ref="grid_T" > <zoom_domain id="0n23wT" /> </domain> 
    156      <domain id="4n23wT"  domain_ref="grid_T" > <zoom_domain id="4n23wT" /> </domain> 
    157      <domain id="12n23wT" domain_ref="grid_T" > <zoom_domain id="12n23wT"/> </domain> 
    158      <domain id="21n23wT" domain_ref="grid_T" > <zoom_domain id="21n23wT"/> </domain> 
    159      <!-- <\!--   10w   -\-> --> 
    160      <domain id="10s10wT" domain_ref="grid_T" > <zoom_domain id="10s10wT"/> </domain> 
    161      <domain id="6s10wT"  domain_ref="grid_T" > <zoom_domain id="6s10wT" /> </domain> 
    162      <domain id="0n10wT"  domain_ref="grid_T" > <zoom_domain id="0n10wT" /> </domain> 
    163      <!-- <\!--   0e   -\-> --> 
    164      <domain id="0n0eT"   domain_ref="grid_T" > <zoom_domain id="0n0eT"  /> </domain> 
     17  <!--   Eq section --> 
     18  <domain id="EqT" domain_ref="grid_T" > <zoom_domain id="EqT"/> </domain> 
     19  <!--   TAO : see example above   --> 
     20  <!--   137e   --> 
     21  <domain id="2n137eT" domain_ref="grid_T" > <zoom_domain id="2n137eT"/> </domain> 
     22  <domain id="5n137eT" domain_ref="grid_T" > <zoom_domain id="5n137eT"/> </domain> 
     23  <domain id="8n137eT" domain_ref="grid_T" > <zoom_domain id="8n137eT"/> </domain> 
     24  <!-- <\!--   147e   -\-> --> 
     25  <domain id="0n147eT" domain_ref="grid_T" > <zoom_domain id="0n147eT"/> </domain> 
     26  <domain id="2n147eT" domain_ref="grid_T" > <zoom_domain id="2n147eT"/> </domain> 
     27  <domain id="5n147eT" domain_ref="grid_T" > <zoom_domain id="5n147eT"/> </domain> 
     28  <!-- <\!--   156e   -\-> --> 
     29  <domain id="5s156eT" domain_ref="grid_T" > <zoom_domain id="5s156eT"/> </domain> 
     30  <domain id="2s156eT" domain_ref="grid_T" > <zoom_domain id="2s156eT"/> </domain> 
     31  <domain id="0n156eT" domain_ref="grid_T" > <zoom_domain id="0n156eT"/> </domain> 
     32  <domain id="2n156eT" domain_ref="grid_T" > <zoom_domain id="2n156eT"/> </domain> 
     33  <domain id="5n156eT" domain_ref="grid_T" > <zoom_domain id="5n156eT"/> </domain> 
     34  <domain id="8n156eT" domain_ref="grid_T" > <zoom_domain id="8n156eT"/> </domain> 
     35  <!-- <\!--   165e   -\-> --> 
     36  <domain id="8s165eT" domain_ref="grid_T" > <zoom_domain id="8s165eT"/> </domain> 
     37  <domain id="5s165eT" domain_ref="grid_T" > <zoom_domain id="5s165eT"/> </domain> 
     38  <domain id="2s165eT" domain_ref="grid_T" > <zoom_domain id="2s165eT"/> </domain> 
     39  <domain id="0n165eT" domain_ref="grid_T" > <zoom_domain id="0n165eT"/> </domain> 
     40  <domain id="2n165eT" domain_ref="grid_T" > <zoom_domain id="2n165eT"/> </domain> 
     41  <domain id="5n165eT" domain_ref="grid_T" > <zoom_domain id="5n165eT"/> </domain> 
     42  <domain id="8n165eT" domain_ref="grid_T" > <zoom_domain id="8n165eT"/> </domain> 
     43  <!-- <\!--   180w   -\-> --> 
     44  <domain id="8s180wT" domain_ref="grid_T" > <zoom_domain id="8s180wT"/> </domain> 
     45  <domain id="5s180wT" domain_ref="grid_T" > <zoom_domain id="5s180wT"/> </domain> 
     46  <domain id="2s180wT" domain_ref="grid_T" > <zoom_domain id="2s180wT"/> </domain> 
     47  <domain id="0n180wT" domain_ref="grid_T" > <zoom_domain id="0n180wT"/> </domain> 
     48  <domain id="2n180wT" domain_ref="grid_T" > <zoom_domain id="2n180wT"/> </domain> 
     49  <domain id="5n180wT" domain_ref="grid_T" > <zoom_domain id="5n180wT"/> </domain> 
     50  <domain id="8n180wT" domain_ref="grid_T" > <zoom_domain id="8n180wT"/> </domain> 
     51  <!-- <\!--   170w   -\-> --> 
     52  <domain id="8s170wT" domain_ref="grid_T" > <zoom_domain id="8s170wT"/> </domain> 
     53  <domain id="5s170wT" domain_ref="grid_T" > <zoom_domain id="5s170wT"/> </domain> 
     54  <domain id="2s170wT" domain_ref="grid_T" > <zoom_domain id="2s170wT"/> </domain> 
     55  <domain id="0n170wT" domain_ref="grid_T" > <zoom_domain id="0n170wT"/> </domain> 
     56  <domain id="2n170wT" domain_ref="grid_T" > <zoom_domain id="2n170wT"/> </domain> 
     57  <domain id="5n170wT" domain_ref="grid_T" > <zoom_domain id="5n170wT"/> </domain> 
     58  <domain id="8n170wT" domain_ref="grid_T" > <zoom_domain id="8n170wT"/> </domain> 
     59  <!-- <\!--   155w   -\-> --> 
     60  <domain id="8s155wT" domain_ref="grid_T" > <zoom_domain id="8s155wT"/> </domain> 
     61  <domain id="5s155wT" domain_ref="grid_T" > <zoom_domain id="5s155wT"/> </domain> 
     62  <domain id="2s155wT" domain_ref="grid_T" > <zoom_domain id="2s155wT"/> </domain> 
     63  <domain id="0n155wT" domain_ref="grid_T" > <zoom_domain id="0n155wT"/> </domain> 
     64  <domain id="2n155wT" domain_ref="grid_T" > <zoom_domain id="2n155wT"/> </domain> 
     65  <domain id="5n155wT" domain_ref="grid_T" > <zoom_domain id="5n155wT"/> </domain> 
     66  <domain id="8n155wT" domain_ref="grid_T" > <zoom_domain id="8n155wT"/> </domain> 
     67  <!-- <\!--   140w   -\-> --> 
     68  <domain id="8s140wT" domain_ref="grid_T" > <zoom_domain id="8s140wT"/> </domain> 
     69  <domain id="5s140wT" domain_ref="grid_T" > <zoom_domain id="5s140wT"/> </domain> 
     70  <domain id="2s140wT" domain_ref="grid_T" > <zoom_domain id="2s140wT"/> </domain> 
     71  <domain id="0n140wT" domain_ref="grid_T" > <zoom_domain id="0n140wT"/> </domain> 
     72  <domain id="2n140wT" domain_ref="grid_T" > <zoom_domain id="2n140wT"/> </domain> 
     73  <domain id="5n140wT" domain_ref="grid_T" > <zoom_domain id="5n140wT"/> </domain> 
     74  <domain id="8n140wT" domain_ref="grid_T" > <zoom_domain id="8n140wT"/> </domain> 
     75  <!-- <\!--   125w   -\-> --> 
     76  <domain id="8s125wT" domain_ref="grid_T" > <zoom_domain id="8s125wT"/> </domain> 
     77  <domain id="5s125wT" domain_ref="grid_T" > <zoom_domain id="5s125wT"/> </domain> 
     78  <domain id="2s125wT" domain_ref="grid_T" > <zoom_domain id="2s125wT"/> </domain> 
     79  <domain id="0n125wT" domain_ref="grid_T" > <zoom_domain id="0n125wT"/> </domain> 
     80  <domain id="2n125wT" domain_ref="grid_T" > <zoom_domain id="2n125wT"/> </domain> 
     81  <domain id="5n125wT" domain_ref="grid_T" > <zoom_domain id="5n125wT"/> </domain> 
     82  <domain id="8n125wT" domain_ref="grid_T" > <zoom_domain id="8n125wT"/> </domain> 
     83  <!-- <\!--   110w   -\-> --> 
     84  <domain id="8s110wT" domain_ref="grid_T" > <zoom_domain id="8s110wT"/> </domain> 
     85  <domain id="5s110wT" domain_ref="grid_T" > <zoom_domain id="5s110wT"/> </domain> 
     86  <domain id="2s110wT" domain_ref="grid_T" > <zoom_domain id="2s110wT"/> </domain> 
     87  <domain id="0n110wT" domain_ref="grid_T" > <zoom_domain id="0n110wT"/> </domain> 
     88  <domain id="2n110wT" domain_ref="grid_T" > <zoom_domain id="2n110wT"/> </domain> 
     89  <domain id="5n110wT" domain_ref="grid_T" > <zoom_domain id="5n110wT"/> </domain> 
     90  <domain id="8n110wT" domain_ref="grid_T" > <zoom_domain id="8n110wT"/> </domain> 
     91  <!-- <\!--   95w   -\-> --> 
     92  <domain id="8s95wT" domain_ref="grid_T" > <zoom_domain id="8s95wT"/> </domain> 
     93  <domain id="5s95wT" domain_ref="grid_T" > <zoom_domain id="5s95wT"/> </domain> 
     94  <domain id="2s95wT" domain_ref="grid_T" > <zoom_domain id="2s95wT"/> </domain> 
     95  <domain id="0n95wT" domain_ref="grid_T" > <zoom_domain id="0n95wT"/> </domain> 
     96  <domain id="2n95wT" domain_ref="grid_T" > <zoom_domain id="2n95wT"/> </domain> 
     97  <domain id="5n95wT" domain_ref="grid_T" > <zoom_domain id="5n95wT"/> </domain> 
     98  <domain id="8n95wT" domain_ref="grid_T" > <zoom_domain id="8n95wT"/> </domain> 
     99  <!-- <\!--   RAMA   -\-> --> 
     100  <!-- <\!--   55e   -\-> --> 
     101  <domain id="16s55eT"    domain_ref="grid_T" > <zoom_domain id="16s55eT"   /> </domain> 
     102  <domain id="12s55eT"    domain_ref="grid_T" > <zoom_domain id="12s55eT"   /> </domain> 
     103  <domain id="8s55eT"     domain_ref="grid_T" > <zoom_domain id="8s55eT"    /> </domain> 
     104  <domain id="4s55eT"     domain_ref="grid_T" > <zoom_domain id="4s55eT"    /> </domain> 
     105  <domain id="1.5s55eT"   domain_ref="grid_T" > <zoom_domain id="1.5s55eT"  /> </domain> 
     106  <domain id="0n55eT"     domain_ref="grid_T" > <zoom_domain id="0n55eT"    /> </domain> 
     107  <domain id="1.5n55eT"   domain_ref="grid_T" > <zoom_domain id="1.5n55eT"  /> </domain> 
     108  <domain id="4n55eT"     domain_ref="grid_T" > <zoom_domain id="4n55eT"    /> </domain> 
     109  <!--    <\!--   65e   -\-> --> 
     110  <domain id="15n65eT"    domain_ref="grid_T" > <zoom_domain id="15n65eT"   /> </domain> 
     111  <!--    <\!--   67e   -\-> --> 
     112  <domain id="16s67eT"    domain_ref="grid_T" > <zoom_domain id="16s67eT"   /> </domain> 
     113  <domain id="12s67eT"    domain_ref="grid_T" > <zoom_domain id="12s67eT"   /> </domain> 
     114  <domain id="8s67eT"     domain_ref="grid_T" > <zoom_domain id="8s67eT"    /> </domain> 
     115  <domain id="4s67eT"     domain_ref="grid_T" > <zoom_domain id="4s67eT"    /> </domain> 
     116  <domain id="1.5s67eT"   domain_ref="grid_T" > <zoom_domain id="1.5s67eT"  /> </domain> 
     117  <domain id="0n67eT"     domain_ref="grid_T" > <zoom_domain id="0n67eT"    /> </domain> 
     118  <domain id="1.5n67eT"   domain_ref="grid_T" > <zoom_domain id="1.5n67eT"  /> </domain> 
     119  <domain id="4n67eT"     domain_ref="grid_T" > <zoom_domain id="4n67eT"    /> </domain> 
     120  <domain id="8n67eT"     domain_ref="grid_T" > <zoom_domain id="8n67eT"    /> </domain> 
     121  <!-- <\!--   80.5e   -\-> --> 
     122  <domain id="16s80.5eT"  domain_ref="grid_T" > <zoom_domain id="16s80.5eT" /> </domain> 
     123  <domain id="12s80.5eT"  domain_ref="grid_T" > <zoom_domain id="12s80.5eT" /> </domain> 
     124  <domain id="8s80.5eT"   domain_ref="grid_T" > <zoom_domain id="8s80.5eT"  /> </domain> 
     125  <domain id="4s80.5eT"   domain_ref="grid_T" > <zoom_domain id="4s80.5eT"  /> </domain> 
     126  <domain id="1.5s80.5eT" domain_ref="grid_T" > <zoom_domain id="1.5s80.5eT"/> </domain> 
     127  <domain id="0n80.5eT"   domain_ref="grid_T" > <zoom_domain id="0n80.5eT"  /> </domain> 
     128  <domain id="1.5n80.5eT" domain_ref="grid_T" > <zoom_domain id="1.5n80.5eT"/> </domain> 
     129  <domain id="4n80.5eT"   domain_ref="grid_T" > <zoom_domain id="4n80.5eT"  /> </domain> 
     130  <!-- <\!--   90e   -\-> --> 
     131  <domain id="1.5s90eT"   domain_ref="grid_T" > <zoom_domain id="1.5s90eT"  /> </domain> 
     132  <domain id="0n90eT"     domain_ref="grid_T" > <zoom_domain id="0n90eT"    /> </domain> 
     133  <domain id="1.5n90eT"   domain_ref="grid_T" > <zoom_domain id="1.5n90eT"  /> </domain> 
     134  <domain id="4n90eT"     domain_ref="grid_T" > <zoom_domain id="4n90eT"    /> </domain> 
     135  <domain id="8n90eT"     domain_ref="grid_T" > <zoom_domain id="8n90eT"    /> </domain> 
     136  <domain id="12n90eT"    domain_ref="grid_T" > <zoom_domain id="12n90eT"   /> </domain> 
     137  <domain id="15n90eT"    domain_ref="grid_T" > <zoom_domain id="15n90eT"   /> </domain> 
     138  <!-- <\!--   95e   -\-> --> 
     139  <domain id="16s95eT"    domain_ref="grid_T" > <zoom_domain id="16s95eT"   /> </domain> 
     140  <domain id="12s95eT"    domain_ref="grid_T" > <zoom_domain id="12s95eT"   /> </domain> 
     141  <domain id="8s95eT"     domain_ref="grid_T" > <zoom_domain id="8s95eT"    /> </domain> 
     142  <domain id="5s95eT"     domain_ref="grid_T" > <zoom_domain id="5s95eT"    /> </domain> 
     143  <!-- <\!--   PIRATA   -\-> --> 
     144  <!-- <\!--   38w-30w   -\-> --> 
     145  <domain id="19s34wT" domain_ref="grid_T" > <zoom_domain id="19s34wT"/> </domain> 
     146  <domain id="14s32wT" domain_ref="grid_T" > <zoom_domain id="14s32wT"/> </domain> 
     147  <domain id="8s30wT"  domain_ref="grid_T" > <zoom_domain id="8s30wT" /> </domain> 
     148  <domain id="0n35wT"  domain_ref="grid_T" > <zoom_domain id="0n35wT" /> </domain> 
     149  <domain id="4n38wT"  domain_ref="grid_T" > <zoom_domain id="4n38wT" /> </domain> 
     150  <domain id="8n38wT"  domain_ref="grid_T" > <zoom_domain id="8n38wT" /> </domain> 
     151  <domain id="12n38wT" domain_ref="grid_T" > <zoom_domain id="12n38wT"/> </domain> 
     152  <domain id="15n38wT" domain_ref="grid_T" > <zoom_domain id="15n38wT"/> </domain> 
     153  <domain id="20n38wT" domain_ref="grid_T" > <zoom_domain id="20n38wT"/> </domain> 
     154  <!-- <\!--   23w   -\-> --> 
     155  <domain id="0n23wT"  domain_ref="grid_T" > <zoom_domain id="0n23wT" /> </domain> 
     156  <domain id="4n23wT"  domain_ref="grid_T" > <zoom_domain id="4n23wT" /> </domain> 
     157  <domain id="12n23wT" domain_ref="grid_T" > <zoom_domain id="12n23wT"/> </domain> 
     158  <domain id="21n23wT" domain_ref="grid_T" > <zoom_domain id="21n23wT"/> </domain> 
     159  <!-- <\!--   10w   -\-> --> 
     160  <domain id="10s10wT" domain_ref="grid_T" > <zoom_domain id="10s10wT"/> </domain> 
     161  <domain id="6s10wT"  domain_ref="grid_T" > <zoom_domain id="6s10wT" /> </domain> 
     162  <domain id="0n10wT"  domain_ref="grid_T" > <zoom_domain id="0n10wT" /> </domain> 
     163  <!-- <\!--   0e   -\-> --> 
     164  <domain id="0n0eT"   domain_ref="grid_T" > <zoom_domain id="0n0eT"  /> </domain> 
    165165 
    166       
    167      <!--   U grid   --> 
    168      <domain id="grid_U" long_name="grid U"/> 
    169      <!--   Eq section   --> 
    170      <domain id="EqU" domain_ref="grid_U" > <zoom_domain id="EqU"/> </domain> 
    171166 
    172        
    173      <!--   V grid   --> 
    174      <domain id="grid_V" long_name="grid V"/> 
    175      <!--   Eq section : no V point on the Equator...   --> 
     167  <!--   U grid   --> 
     168  <domain id="grid_U" long_name="grid U"/> 
     169  <!--   Eq section   --> 
     170  <domain id="EqU" domain_ref="grid_U" > <zoom_domain id="EqU"/> </domain> 
    176171 
    177       
    178      <!--   W grid   --> 
    179      <domain id="grid_W" long_name="grid W"/> 
    180      <!--   Eq section   --> 
    181      <domain id="EqW" domain_ref="grid_W" > <zoom_domain id="EqW"/> </domain> 
    182172 
    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> 
     173  <!--   V grid   --> 
     174  <domain id="grid_V" long_name="grid V"/> 
     175  <!--   Eq section : no V point on the Equator...   --> 
    190176 
    191       
    192      <!--   other grids   --> 
    193      <domain id="scalarpoint" long_name="scalar"/> 
    194        
    195177 
    196    </domain_definition>     
    197   
     178  <!--   W grid   --> 
     179  <domain id="grid_W" long_name="grid W"/> 
     180  <!--   Eq section   --> 
     181  <domain id="EqW" domain_ref="grid_W" > <zoom_domain id="EqW"/> </domain> 
     182 
     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> 
     190 
     191 
     192  <!--   other grids   --> 
     193  <domain id="scalarpoint" long_name="scalar"/> 
     194 
     195 
     196</domain_definition> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/field_def_nemo-ice.xml

    r14017 r14021  
    5151      <field id="icehlid"      long_name="melt pond lid depth"                                     standard_name="sea_ice_meltpondlid_depth"                 unit="m" /> 
    5252      <field id="icevlid"      long_name="melt pond lid volume"                                    standard_name="sea_ice_meltpondlid_volume"                unit="m" /> 
     53      <field id="dvpn_mlt"     long_name="pond volume tendency due to surface melt"                standard_name="sea_ice_pondvolume_tendency_melt"          unit="kg/m2/s" /> 
     54      <field id="dvpn_lid"     long_name="pond volume tendency due to exchanges with lid"          standard_name="sea_ice_pondvolume_tendency_lids"          unit="kg/m2/s" /> 
     55      <field id="dvpn_rnf"     long_name="pond volume tendency due to runoff"                      standard_name="sea_ice_pondvolume_tendency_runoff"        unit="kg/m2/s" /> 
     56      <field id="dvpn_drn"     long_name="pond volume tendency due to drainage"                    standard_name="sea_ice_pondvolume_tendency_drainage"      unit="kg/m2/s" /> 
    5357 
    5458      <!-- heat --> 
     
    309313      <field id="snwtemp_cat"  long_name="Snow temperature per category"                     unit="degC"    detect_missing_value="true" /> 
    310314      <field id="icettop_cat"  long_name="Ice/snow surface temperature per category"         unit="degC"    detect_missing_value="true" /> 
    311       <field id="iceapnd_cat"  long_name="Ice melt pond concentration per category"          unit=""        /> 
     315      <field id="iceapnd_cat"  long_name="Ice melt pond grid fraction per category"          unit=""        /> 
     316      <field id="icevpnd_cat"  long_name="Ice melt pond volume per grid area per category"   unit="m"       /> 
    312317      <field id="icehpnd_cat"  long_name="Ice melt pond thickness per category"              unit="m"       detect_missing_value="true" /> 
    313318      <field id="icehlid_cat"  long_name="Ice melt pond lid thickness per category"          unit="m"       detect_missing_value="true" /> 
    314       <field id="iceafpnd_cat" long_name="Ice melt pond fraction per category"               unit=""        /> 
     319      <field id="iceafpnd_cat" long_name="Ice melt pond ice fraction per category"           unit=""        /> 
    315320      <field id="iceaepnd_cat" long_name="Ice melt pond effective fraction per category"     unit=""        /> 
    316321      <field id="icemask_cat"  long_name="Fraction of time step with sea ice (per category)" unit=""        /> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/field_def_nemo-innerttrc.xml

    r9539 r14021  
    1 <?xml version="1.0"?>  
    2     <!-- $id$ --> 
    3      
    4     <!--  
     1<?xml version="1.0"?> 
     2<!-- $id$ --> 
     3 
     4<!-- 
    55============================================================================================================ 
    66=                                  definition of all existing variables                                    = 
    77=                                            DO NOT CHANGE                                                 = 
    88============================================================================================================ 
    9     --> 
    10    <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" > <!-- time step automaticaly defined --> 
     9--> 
     10<field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" > <!-- time step automaticaly defined --> 
    1111 
    12     <!--  
    13 ============================================================================================================ 
    14                                      Inert tracers variables 
    15 ============================================================================================================ 
    16     --> 
     12  <!-- 
     13      ============================================================================================================ 
     14      Inert tracers variables 
     15      ============================================================================================================ 
     16  --> 
    1717 
    1818 
    19      <field_group id="inerttrc" grid_ref="grid_T_2D"> 
     19  <field_group id="inerttrc" grid_ref="grid_T_2D"> 
    2020 
    21        <!-- CFC11 : variables available with ln_cfc11 --> 
    22        <field id="CFC11"        long_name="Chlorofluoro carbon11 Concentration"      unit="umol/m3"   grid_ref="grid_T_3D" /> 
    23        <field id="CFC11_e3t"    long_name="CFC11 * e3t"                              unit="umol/m2"   grid_ref="grid_T_3D"  > CFC11 * e3t </field > 
    24        <field id="qtr_CFC11"    long_name="Air-sea flux of CFC-11"                   unit="mol/m2/s"   /> 
    25        <field id="qint_CFC11"   long_name="Cumulative air-sea flux of CFC-11"        unit="mol/m2"     /> 
     21    <!-- CFC11 : variables available with ln_cfc11 --> 
     22    <field id="CFC11"        long_name="Chlorofluoro carbon11 Concentration"      unit="umol/m3"   grid_ref="grid_T_3D" /> 
     23    <field id="CFC11_e3t"    long_name="CFC11 * e3t"                              unit="umol/m2"   grid_ref="grid_T_3D"  > CFC11 * e3t </field > 
     24    <field id="qtr_CFC11"    long_name="Air-sea flux of CFC-11"                   unit="mol/m2/s"   /> 
     25    <field id="qint_CFC11"   long_name="Cumulative air-sea flux of CFC-11"        unit="mol/m2"     /> 
    2626 
    27        <!-- CFC12 : variables available with ln_cfc12 --> 
    28        <field id="CFC12"        long_name="Chlorofluoro carbon12 Concentration"      unit="umol/m3"   grid_ref="grid_T_3D" /> 
    29        <field id="CFC12_e3t"    long_name="CFC12 * e3t"                              unit="umol/m2"   grid_ref="grid_T_3D"  > CFC12 * e3t </field > 
    30        <field id="qtr_CFC12"    long_name="Air-sea flux of CFC12"                    unit="mol/m2/s"   /> 
    31        <field id="qint_CFC12"   long_name="Cumulative air-sea flux of CFC12"         unit="mol/m2"     /> 
     27    <!-- CFC12 : variables available with ln_cfc12 --> 
     28    <field id="CFC12"        long_name="Chlorofluoro carbon12 Concentration"      unit="umol/m3"   grid_ref="grid_T_3D" /> 
     29    <field id="CFC12_e3t"    long_name="CFC12 * e3t"                              unit="umol/m2"   grid_ref="grid_T_3D"  > CFC12 * e3t </field > 
     30    <field id="qtr_CFC12"    long_name="Air-sea flux of CFC12"                    unit="mol/m2/s"   /> 
     31    <field id="qint_CFC12"   long_name="Cumulative air-sea flux of CFC12"         unit="mol/m2"     /> 
    3232 
    33        <!-- SF6 : variables available with ln_sf6 --> 
    34        <field id="SF6"          long_name="Sulfur hexafluoride Concentration"        unit="umol/m3"   grid_ref="grid_T_3D" /> 
    35        <field id="SF6_e3t"      long_name="SF6 * e3t"                                unit="umol/m2"   grid_ref="grid_T_3D"  > SF6 * e3t </field > 
    36        <field id="qtr_SF6"      long_name="Air-sea flux of SF6"                      unit="mol/m2/s"   /> 
    37        <field id="qint_SF6"     long_name="Cumulative air-sea flux of SF6"           unit="mol/m2"     /> 
     33    <!-- SF6 : variables available with ln_sf6 --> 
     34    <field id="SF6"          long_name="Sulfur hexafluoride Concentration"        unit="umol/m3"   grid_ref="grid_T_3D" /> 
     35    <field id="SF6_e3t"      long_name="SF6 * e3t"                                unit="umol/m2"   grid_ref="grid_T_3D"  > SF6 * e3t </field > 
     36    <field id="qtr_SF6"      long_name="Air-sea flux of SF6"                      unit="mol/m2/s"   /> 
     37    <field id="qint_SF6"     long_name="Cumulative air-sea flux of SF6"           unit="mol/m2"     /> 
    3838 
    39        <!-- C14 : variables available with ln_c14 --> 
    40        <field id="RC14"         long_name="Radiocarbon ratio"                        unit="-"         grid_ref="grid_T_3D"  /> 
    41        <field id="RC14_e3t"     long_name="RC14 * e3t"                               unit="m"         grid_ref="grid_T_3D"   > RC14 * e3t </field > 
    42        <field id="DeltaC14"     long_name="Delta C14"                                unit="permil"    grid_ref="grid_T_3D"  /> 
    43        <field id="C14Age"       long_name="Radiocarbon age"                          unit="yr"        grid_ref="grid_T_3D"  /> 
    44        <field id="RAge"         long_name="Reservoir Age"                            unit="yr"       /> 
    45        <field id="qtr_C14"      long_name="Air-sea flux of C14"                      unit="1/m2/s"   /> 
    46        <field id="qint_C14"     long_name="Cumulative air-sea flux of C14"           unit="1/m2"     /> 
    47        <field id="AtmCO2"       long_name="Global atmospheric CO2"                   unit="ppm"      /> 
    48        <field id="AtmC14"       long_name="Global atmospheric DeltaC14"              unit="permil"   /> 
    49        <field id="K_C14"        long_name="Global 14C/C exchange velocity"           unit="m/yr"     /> 
    50        <field id="K_CO2"        long_name="Global CO2 piston velocity"               unit="cm/h"     /> 
    51        <field id="C14Inv"       long_name="global Radiocarbon ocean inventory"       unit="10^26 atoms"   /> 
     39    <!-- C14 : variables available with ln_c14 --> 
     40    <field id="RC14"         long_name="Radiocarbon ratio"                        unit="-"         grid_ref="grid_T_3D"  /> 
     41    <field id="RC14_e3t"     long_name="RC14 * e3t"                               unit="m"         grid_ref="grid_T_3D"   > RC14 * e3t </field > 
     42    <field id="DeltaC14"     long_name="Delta C14"                                unit="permil"    grid_ref="grid_T_3D"  /> 
     43    <field id="C14Age"       long_name="Radiocarbon age"                          unit="yr"        grid_ref="grid_T_3D"  /> 
     44    <field id="RAge"         long_name="Reservoir Age"                            unit="yr"       /> 
     45    <field id="qtr_C14"      long_name="Air-sea flux of C14"                      unit="1/m2/s"   /> 
     46    <field id="qint_C14"     long_name="Cumulative air-sea flux of C14"           unit="1/m2"     /> 
     47    <field id="AtmCO2"       long_name="Global atmospheric CO2"                   unit="ppm"      /> 
     48    <field id="AtmC14"       long_name="Global atmospheric DeltaC14"              unit="permil"   /> 
     49    <field id="K_C14"        long_name="Global 14C/C exchange velocity"           unit="m/yr"     /> 
     50    <field id="K_CO2"        long_name="Global CO2 piston velocity"               unit="cm/h"     /> 
     51    <field id="C14Inv"       long_name="global Radiocarbon ocean inventory"       unit="10^26 atoms"   /> 
    5252 
    53        <!-- AGE : variables available with ln_age --> 
    54        <field id="Age"          long_name="Sea water age since surface contact"      unit="yr"        grid_ref="grid_T_3D"  /> 
    55        <field id="Age_e3t"      long_name="Age * e3t"                                unit="yr * m"   grid_ref="grid_T_3D"    > Age * e3t </field > 
     53    <!-- AGE : variables available with ln_age --> 
     54    <field id="Age"          long_name="Sea water age since surface contact"      unit="yr"        grid_ref="grid_T_3D"  /> 
     55    <field id="Age_e3t"      long_name="Age * e3t"                                unit="yr * m"   grid_ref="grid_T_3D"    > Age * e3t </field > 
    5656 
    57      </field_group> 
     57  </field_group> 
    5858 
    59    </field_definition> 
     59</field_definition> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/field_def_nemo-oce.xml

    r13981 r14021  
    234234    <field id="cfl_cw"       long_name="w-courant number"   unit="#" /> 
    235235 
     236    <!-- variables available with ln_zdfmfc=.true. --> 
     237    <field id="mf_Tp"       long_name="plume_temperature"      standard_name="plume_temperature"     unit="degC"   grid_ref="grid_T_3D" /> 
     238    <field id="mf_Sp"       long_name="plume_salinity"         standard_name="plume_salinity"        unit="1e-3"   grid_ref="grid_T_3D" /> 
     239    <field id="mf_mf"       long_name="mass flux"              standard_name="mf_mass_flux"          unit="m"      grid_ref="grid_T_3D" /> 
     240 
    236241  </field_group> <!-- grid_T --> 
    237242 
     
    651656    <field id="avm_evd"      long_name="convective enhancement of vertical viscosity"   standard_name="ocean_vertical_momentum_diffusivity_due_to_convection"   unit="m2/s" /> 
    652657 
     658    <!-- mf_app and mf_wp: available with ln_zdfmfc --> 
     659    <field id="mf_app"      long_name="convective area"        standard_name="mf_convective_area"    unit="%"      grid_ref="grid_W_3D" /> 
     660    <field id="mf_wp"       long_name="convective velocity"    standard_name="mf_convective_velo"    unit="m/s"    grid_ref="grid_W_3D" /> 
     661 
     662 
    653663    <!-- avt_tide: available with ln_zdfiwm=T --> 
    654664    <field id="av_ratio"     long_name="S over T diffusivity ratio"                     standard_name="salinity_over_temperature_diffusivity_ratio"                     unit="1"    /> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/field_def_nemo-pisces.xml

    r12377 r14021  
    1 <?xml version="1.0"?>  
    2     <!-- $id$ --> 
    3      
    4     <!--  
     1<?xml version="1.0"?> 
     2<!-- $id$ --> 
     3 
     4<!-- 
    55============================================================================================================ 
    66=                                  definition of all existing variables                                    = 
    77=                                            DO NOT CHANGE                                                 = 
    88============================================================================================================ 
    9     --> 
    10    <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" > <!-- time step automaticaly defined --> 
    11  
    12     <!--  
    13 ============================================================================================================ 
    14                                      Biogeochemistry model variables 
    15 ============================================================================================================ 
    16     --> 
    17  
    18       <!-- ptrc on T grid --> 
    19  
    20      <field_group id="ptrc_T" grid_ref="grid_T_3D"> 
    21        <!-- PISCES standard : variables available with ln_p4z  --> 
    22        <field id="DIC"          long_name="Dissolved inorganic Concentration"        unit="mmol/m3" /> 
    23        <field id="DIC_e3t"      long_name="DIC * e3t"                                unit="mmol/m2" > DIC * e3t </field > 
    24        <field id="Alkalini"     long_name="Total Alkalinity Concentration"           unit="mmol/m3" /> 
    25        <field id="Alkalini_e3t" long_name="Alkalini * e3t"                           unit="mmol/m2"  > Alkalini * e3t </field > 
    26        <field id="O2"           long_name="Oxygen Concentration"                     unit="mmol/m3" /> 
    27        <field id="O2_e3t"       long_name="O2 * e3t"                                 unit="mmol/m2"  > O2 * e3t </field > 
    28        <field id="CaCO3"        long_name="Calcite Concentration"                    unit="mmol/m3" /> 
    29        <field id="CaCO3_e3t"    long_name="CaCO3 * e3t"                              unit="mmol/m2"  > CaCO3 * e3t </field > 
    30        <field id="PO4"          long_name="Phosphate Concentration"                  unit="mmol/m3" /> 
    31        <field id="PO4_e3t"      long_name="PO4 * e3t"                                unit="mmol/m2"  > PO4 * e3t </field > 
    32        <field id="POC"          long_name="Small organic carbon Concentration"       unit="mmol/m3" /> 
    33        <field id="POC_e3t"      long_name="POC * e3t"                                unit="mmol/m2"  > POC * e3t </field > 
    34        <field id="Si"           long_name="Silicate Concentration"                   unit="mmol/m3" /> 
    35        <field id="Si_e3t"       long_name="Si * e3t"                                 unit="mmol/m2"  > Si * e3t </field > 
    36        <field id="PHY"          long_name="(Nano)Phytoplankton Concentration"        unit="mmol/m3" /> 
    37        <field id="PHY_e3t"      long_name="PHY * e3t"                                unit="mmol/m2"  > PHY * e3t </field > 
    38        <field id="ZOO"          long_name="(Micro)Zooplankton Concentration"         unit="mmol/m3" /> 
    39        <field id="ZOO_e3t"      long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO * e3t </field > 
    40        <field id="DOC"          long_name="Dissolved organic Concentration"          unit="mmol/m3" /> 
    41        <field id="DOC_e3t"      long_name="DOC * e3t"                                unit="mmol/m2"  > DOC * e3t </field > 
    42        <field id="PHY2"         long_name="Diatoms Concentration"                    unit="mmol/m3" /> 
    43        <field id="PHY2_e3t"     long_name="PHY2 * e3t"                               unit="mmol/m2"  > PHY2 * e3t </field > 
    44        <field id="ZOO2"         long_name="Mesozooplankton Concentration"            unit="mmol/m3" /> 
    45        <field id="ZOO2_e3t"     long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO2 * e3t </field > 
    46        <field id="DSi"          long_name="Diatoms Silicate Concentration"           unit="mmol/m3" /> 
    47        <field id="DSi_e3t"      long_name="Dsi * e3t"                                unit="mmol/m2"  > DSi * e3t </field > 
    48        <field id="Fer"          long_name="Dissolved Iron Concentration"             unit="mmol/m3" /> 
    49        <field id="Fer_e3t"      long_name="Fer * e3t"                                unit="mmol/m2"  > Fer * e3t </field > 
    50        <field id="BFe"          long_name="Big iron particles Concentration"         unit="mmol/m3" /> 
    51        <field id="BFe_e3t"      long_name="BFe * e3t"                                unit="mmol/m2"  > BFe * e3t </field > 
    52        <field id="GOC"          long_name="Big organic carbon Concentration"         unit="mmol/m3" /> 
    53        <field id="GOC_e3t"      long_name="GOC * e3t"                                unit="mmol/m2"  > GOC * e3t </field > 
    54        <field id="SFe"          long_name="Small iron particles Concentration"       unit="mmol/m3" /> 
    55        <field id="SFe_e3t"      long_name="SFe * e3t"                                unit="mmol/m2"  > SFe * e3t </field > 
    56        <field id="DFe"          long_name="Diatoms iron  Concentration"              unit="mmol/m3" /> 
    57        <field id="DFe_e3t"      long_name="DFe * e3t"                                unit="mmol/m2"  > DFe * e3t </field > 
    58        <field id="GSi"          long_name="Sinking biogenic Silicate Concentration"  unit="mmol/m3" /> 
    59        <field id="GSi_e3t"      long_name="GSi * e3t"                                unit="mmol/m2"  > GSi * e3t </field > 
    60        <field id="NFe"          long_name="Nano iron Concentration"                  unit="mmol/m3" /> 
    61        <field id="NFe_e3t"      long_name="NFe * e3t"                                unit="mmol/m2"  > NFe * e3t </field > 
    62        <field id="NCHL"         long_name="Nano chlorophyl Concentration"            unit="gChl/m3"   /> 
    63        <field id="NCHL_e3t"     long_name="NCHL * e3t"                               unit="mmol/m2"  > NCHL * e3t </field > 
    64        <field id="DCHL"         long_name="Diatoms chlorophyl Concentration"         unit="gChl/m3"   /> 
    65        <field id="DCHL_e3t"     long_name="DCHL * e3t"                               unit="mmol/m2"  > DCHL * e3t </field > 
    66        <field id="NO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" /> 
    67        <field id="NO3_e3t"      long_name="NO3 * e3t"                                unit="mmol/m2"  > NO3 * e3t </field > 
    68        <field id="NH4"          long_name="Ammonium Concentration"                   unit="mmol/m3" /> 
    69        <field id="NH4_e3t"      long_name="NH4 * e3t"                                unit="mmol/m2"  > NH4 * e3t </field > 
    70  
    71        <!-- PISCES quota : variables available with ln_p5z  --> 
    72  
    73        <field id="DON"          long_name="Dissolved organic N Concentration"        unit="mmol/m3" /> 
    74        <field id="DON_e3t"      long_name="DON * e3t"                                unit="mmol/m2"  > DON * e3t </field > 
    75        <field id="DOP"          long_name="Dissolved organic P Concentration"        unit="mmol/m3" /> 
    76        <field id="DOP_e3t"      long_name="DOP * e3t"                                unit="mmol/m2"  > DOP * e3t </field > 
    77        <field id="PON"          long_name="Small PON Concentration"                  unit="mmol/m3" /> 
    78        <field id="PON_e3t"      long_name="PON * e3t"                                unit="mmol/m2"  > PON * e3t </field > 
    79        <field id="POP"          long_name="Small POP Concentration"                  unit="mmol/m3" /> 
    80        <field id="POP_e3t"      long_name="POP * e3t"                                unit="mmol/m2"  > POP * e3t </field > 
    81        <field id="GON"          long_name="Big PON Concentration"                    unit="mmol/m3" /> 
    82        <field id="GON_e3t"      long_name="GON * e3t"                                unit="mmol/m2"  > GON * e3t </field > 
    83        <field id="GOP"          long_name="Big POP Concentration"                    unit="mmol/m3" /> 
    84        <field id="GOP_e3t"      long_name="GOP * e3t"                                unit="mmol/m2"  > GOP * e3t </field > 
    85        <field id="PHYN"         long_name="Nanophytoplankton N biomass"              unit="mmol/m3" /> 
    86        <field id="PHYN_e3t"     long_name="PHYN * e3t"                               unit="mmol/m2"  > PHYN * e3t </field > 
    87        <field id="PHYP"         long_name="Nanophytoplankton P biomass"              unit="mmol/m3" /> 
    88        <field id="PHYP_e3t"     long_name="PHYP * e3t"                               unit="mmol/m2"  > PHYP * e3t </field > 
    89        <field id="DIAN"         long_name="Diatoms N biomass"                        unit="mmol/m3" /> 
    90        <field id="DIAN_e3t"     long_name="DIAN * e3t"                               unit="mmol/m2"  > DIAN * e3t </field > 
    91        <field id="DIAP"         long_name="Diatoms P biomass"                        unit="mmol/m3" /> 
    92        <field id="DIAP_e3t"     long_name="DIAP * e3t"                               unit="mmol/m2"  > DIAP * e3t </field > 
    93        <field id="PIC"          long_name="Picophytoplankton C biomass"              unit="mmol/m3" /> 
    94        <field id="PIC_e3t"      long_name="PIC * e3t"                                unit="mmol/m2"  > PIC * e3t </field > 
    95        <field id="PICN"         long_name="Picophytoplankton N biomass"              unit="mmol/m3" /> 
    96        <field id="PICN_e3t"     long_name="PICN * e3t"                               unit="mmol/m2"  > PICN * e3t </field > 
    97        <field id="PICP"         long_name="Picophytoplankton P biomass"              unit="mmol/m3" /> 
    98        <field id="PICP_e3t"     long_name="PICP * e3t"                               unit="mmol/m2"  > PICP * e3t </field > 
    99        <field id="PFe"          long_name="Picophytoplankton Fe biomass"             unit="mmol/m3" /> 
    100        <field id="PFe_e3t"      long_name="PFe * e3t"                                unit="mmol/m2"  > PFe * e3t </field > 
    101        <field id="PCHL"         long_name="Picophytoplankton Chl biomass"            unit="gChl/m3" /> 
    102        <field id="PCHL_e3t"     long_name="PCHL * e3t"                               unit="mmol/m2"  > PCHL * e3t </field > 
    103  
    104       <!-- PISCES with ligand parametisation : variables available namelist paramter ln_ligand --> 
    105        <field id="LGW"         long_name="Weak ligands concentration"                unit="mmol/m3" /> 
    106        <field id="LGW_e3t"     long_name="LGW * e3t"                                 unit="mmol/m2"  > LGW * e3t </field > 
    107  
    108        <!-- PISCES light : variables available with ln_p2z  --> 
    109        <field id="DET"         long_name="Detritus"                                 unit="mmol-N/m3" /> 
    110        <field id="DET_e3t"     long_name="DET * e3t"                                unit="mmol-N/m2"  > DET * e3t </field > 
    111        <field id="DOM"         long_name="Dissolved Organic Matter"                 unit="mmol-N/m3" /> 
    112        <field id="DOM_e3t"     long_name="DOM * e3t"                                unit="mmol-N/m2"  > DOM * e3t </field > 
    113  
    114      </field_group> 
    115  
    116      <!-- SEDIMENT variables on T sediment grid  --> 
    117      <field_group id="sed_T" grid_ref="grid_T_3DS"> 
    118        <field id="SedDIC"          long_name="Dissolved inorganic Concentration"        unit="mmol/m3" /> 
    119        <field id="SedAlkalini"     long_name="Total Alkalinity Concentration"           unit="mmol/m3" /> 
    120        <field id="SedO2"           long_name="Oxygen Concentration"                     unit="mmol/m3" /> 
    121        <field id="SedCaCO3"        long_name="Calcite Concentration"                    unit="%" /> 
    122        <field id="SedPOS"          long_name="Semi-ref POC Concentration"               unit="%" /> 
    123        <field id="SedPOR"          long_name="Refractory POC Concentration"             unit="%" /> 
    124        <field id="SedPO4"          long_name="Phosphate Concentration"                  unit="mmol/m3" /> 
    125        <field id="SedPOC"          long_name="Labile POC Concentration"                 unit="%" /> 
    126        <field id="SedSil"          long_name="Silicate Concentration"                   unit="mmol/m3" /> 
    127        <field id="SedFe2"          long_name="Fe2+ Concentration"                       unit="mmol/m3" /> 
    128        <field id="SedBSi"          long_name="Biogenic Silicate Concentration"          unit="%" /> 
    129        <field id="SedNO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" /> 
    130        <field id="SedNH4"          long_name="Ammonium Concentration"                   unit="mmol/m3" /> 
    131        <field id="SedH2S"          long_name="H2S Concentration"                        unit="mmol/m3" /> 
    132        <field id="SedSO4"          long_name="SO4 Concentration"                        unit="mmol/m3" /> 
    133        <field id="SedClay"         long_name="Clay Concentration"                       unit="%" /> 
    134        <field id="SedFeO"          long_name="Fe(OH)3 Concentration"                    unit="%" /> 
    135        <field id="SedFeS"          long_name="FeS Concentration"                        unit="%" /> 
    136        <field id="SedpH"           long_name="PH"                                       unit="1"          /> 
    137        <field id="SedCO3por"       long_name="Bicarbonates"                             unit="mol/m3" /> 
    138      </field_group> 
    139  
    140      <!-- SEDIMENT additional variables on T sediment grid  --> 
    141      <field_group id="Diag_S" grid_ref="grid_T_2D"> 
    142        <field id="FlxSi"       long_name="Si sediment flux"                        unit="mol/cm2/s"     /> 
    143        <field id="FlxO2"       long_name="O2 sediment flux"                        unit="mol/cm2/s"     /> 
    144        <field id="FlxDIC"      long_name="DIC sediment flux"                       unit="mol/cm2/s"     /> 
    145        <field id="FlxNO3"      long_name="NO3 sediment flux"                       unit="mol/cm2/s"     /> 
    146        <field id="FlxPO4"      long_name="PO4 sediment flux"                       unit="mol/cm2/s"     /> 
    147        <field id="FlxAlkalini" long_name="Alkalinity sediment flux"                unit="mol/cm2/s"     /> 
    148        <field id="FlxNH4"      long_name="Ammonium sediment flux"                  unit="mol/cm2/s"     /> 
    149        <field id="FlxH2S"      long_name="H2S sediment flux"                       unit="mol/cm2/s"     /> 
    150        <field id="FlxSO4"      long_name="SO4 sediment flux"                       unit="mol/cm2/s"     /> 
    151        <field id="FlxFe2"      long_name="Fe2+ sediment flux"                      unit="mol/cm2/s"     /> 
    152        <field id="Flxtot"      long_name="Sediment net burial rate"                unit="cm/s"     /> 
    153        <field id="dzdep"       long_name="Sedimentation rate"                      unit="cm/s"     /> 
    154        <field id="sflxclay"    long_name="Clay sedimentation rate"                 unit="g/m2/s"     /> 
    155        <field id="sflxcal"     long_name="Calcite sedimentation rate"              unit="mol/m2/s"     /> 
    156        <field id="sflxbsi"     long_name="BSi Sedimentation rate"                  unit="mol/m2/s"     /> 
    157        <field id="sflxpoc"     long_name="POC Sedimentation rate"                  unit="mol/m2/s"     /> 
    158        <field id="sflxfeo"     long_name="Fe(OH)3 Sedimentation rate"              unit="mol/m2/s"     /> 
    159 </field_group> 
    160  
    161      <!-- PISCES additional diagnostics on T grid  --> 
    162  
    163      <field_group id="diad_T" grid_ref="grid_T_2D"> 
    164        <field id="PH"          long_name="PH"                                      unit="1"          grid_ref="grid_T_3D" /> 
    165        <field id="CO3"         long_name="Bicarbonates"                            unit="mol/m3"     grid_ref="grid_T_3D" /> 
    166        <field id="CO3sat"      long_name="CO3 saturation"                          unit="mol/m3"     grid_ref="grid_T_3D" /> 
    167        <field id="PAR"         long_name="Photosynthetically Available Radiation"  unit="W/m2"       grid_ref="grid_T_3D" /> 
    168        <field id="PARDM"       long_name="Daily mean PAR"                          unit="W/m2"       grid_ref="grid_T_3D" /> 
    169        <field id="PPPHYN"      long_name="Primary production of nanophyto"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    170        <field id="PPPHYP"      long_name="Primary production of picophyto"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    171        <field id="PPPHYD"      long_name="Primary production of diatoms"           unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    172        <field id="PPNEWN"      long_name="New Primary production of nanophyto"     unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    173        <field id="PPNEWP"      long_name="New Primary production of picophyto"     unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    174        <field id="PPNEWD"      long_name="New Primary production of diatoms"       unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    175        <field id="PBSi"        long_name="Primary production of Si diatoms"        unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    176        <field id="PFeN"        long_name="Primary production of nano iron"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    177        <field id="PFeP"        long_name="Primary production of pico iron"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
    178        <field id="PFeD"        long_name="Primary production of diatoms iron"      unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    179        <field id="xfracal"     long_name="Calcifying fraction"                     unit="1"          grid_ref="grid_T_3D" /> 
    180        <field id="PCAL"        long_name="Calcite production"                      unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    181        <field id="DCAL"        long_name="Calcite dissolution"                     unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    182        <field id="GRAZ1"       long_name="Grazing by microzooplankton"             unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    183        <field id="GRAZ2"       long_name="Grazing by mesozooplankton"              unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    184        <field id="REMIN"       long_name="Oxic remineralization of OM"             unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    185        <field id="DENIT"       long_name="Anoxic remineralization of OM"           unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    186        <field id="REMINP"       long_name="Oxic remineralization rate of POC"      unit="d-1"        grid_ref="grid_T_3D" /> 
    187        <field id="REMING"       long_name="Oxic remineralization rate of GOC"      unit="d-1"        grid_ref="grid_T_3D" /> 
    188        <field id="Nfix"        long_name="Nitrogen fixation"                       unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
    189        <field id="Mumax"       long_name="Maximum growth rate"                     unit="s-1"        grid_ref="grid_T_3D" /> 
    190        <field id="MuN"         long_name="Realized growth rate for nanophyto"      unit="s-1"        grid_ref="grid_T_3D" /> 
    191        <field id="MuP"         long_name="Realized growth rate for picophyto"      unit="s-1"        grid_ref="grid_T_3D" /> 
    192        <field id="MuD"         long_name="Realized growth rate for diatomes"       unit="s-1"        grid_ref="grid_T_3D" /> 
    193        <field id="MunetN"      long_name="Net growth rate for nanophyto"           unit="s-1"        grid_ref="grid_T_3D" /> 
    194        <field id="MunetP"      long_name="Net growth rate for picophyto"           unit="s-1"        grid_ref="grid_T_3D" /> 
    195        <field id="MunetD"      long_name="Net growth rate for diatomes"            unit="s-1"        grid_ref="grid_T_3D" /> 
    196        <field id="LNnut"       long_name="Nutrient limitation term in Nanophyto"   unit=""           grid_ref="grid_T_3D" /> 
    197        <field id="LPnut"       long_name="Nutrient limitation term in Picophyto"   unit="-"          grid_ref="grid_T_3D" /> 
    198        <field id="LDnut"       long_name="Nutrient limitation term in Diatoms"     unit=""           grid_ref="grid_T_3D" /> 
    199        <field id="LNFe"        long_name="Iron limitation term in Nanophyto"       unit=""           grid_ref="grid_T_3D" /> 
    200        <field id="LPFe"        long_name="Iron limitation term in Picophyto"       unit="-"          grid_ref="grid_T_3D" /> 
    201        <field id="LDFe"        long_name="Iron limitation term in Diatoms"         unit=""           grid_ref="grid_T_3D" /> 
    202        <field id="LNlight"     long_name="Light limitation term in Nanophyto"      unit=""           grid_ref="grid_T_3D" /> 
    203        <field id="LPlight"     long_name="Light limitation term in Picophyto"      unit="-"          grid_ref="grid_T_3D" /> 
    204        <field id="LDlight"     long_name="Light limitation term in Diatoms"        unit=""           grid_ref="grid_T_3D" /> 
    205        <field id="SIZEN"       long_name="Mean relative size of nanophyto."        unit="-"          grid_ref="grid_T_3D" /> 
    206        <field id="SIZEP"       long_name="Mean relative size of picophyto."        unit="-"          grid_ref="grid_T_3D" /> 
    207        <field id="SIZED"       long_name="Mean relative size of diatoms"           unit="-"          grid_ref="grid_T_3D" /> 
    208        <field id="Fe3"         long_name="Iron III concentration"                  unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    209        <field id="FeL1"        long_name="Complexed Iron concentration with L1"    unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    210        <field id="TL1"         long_name="Total L1 concentration"                  unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    211        <field id="pdust"       long_name="dust concentration"                      unit="g/m3"                            /> 
    212        <field id="Totlig"      long_name="Total ligand concentation"               unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    213        <field id="Biron"       long_name="Bioavailable iron"                       unit="nmol/m3"    grid_ref="grid_T_3D" /> 
    214        <field id="Sdenit"      long_name="Nitrate reduction in the sediments"      unit="mol/m2/s"                        /> 
    215        <field id="Ironice"     long_name="Iron input/uptake due to sea ice"        unit="mol/m2/s"                        /> 
    216        <field id="SedCal"      long_name="Calcite burial in the sediments"         unit="molC/m2/s"                       /> 
    217        <field id="SedSi"       long_name="Silicon burial in the sediments"         unit="molSi/m2/s"                      /> 
    218        <field id="SedC"        long_name="Organic C burial in the sediments"       unit="molC/m2/s"                       /> 
    219        <field id="HYDR"        long_name="Iron input from hydrothemal vents"       unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    220        <field id="EPC100"      long_name="Export of carbon particles at 100 m"     unit="mol/m2/s"                        /> 
    221        <field id="EPFE100"     long_name="Export of biogenic iron at 100 m"        unit="mol/m2/s"                        /> 
    222        <field id="EPSI100"     long_name="Export of Silicate at 100 m"             unit="mol/m2/s"                        /> 
    223        <field id="EPCAL100"    long_name="Export of Calcite at 100 m"              unit="mol/m2/s"                        /> 
    224        <field id="EXPC"        long_name="Export of carbon"                        unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    225        <field id="EXPFE"       long_name="Export of biogenic iron"                 unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    226        <field id="EXPSI"       long_name="Export of Silicate"                      unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    227        <field id="EXPCAL"      long_name="Export of Calcite"                       unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
    228        <field id="Cflx"        long_name="DIC flux"                                unit="mol/m2/s"                        /> 
    229        <field id="Oflx"        long_name="Oxygen flux"                             unit="mol/m2/s"                        /> 
    230        <field id="Kg"          long_name="Gas transfer"                            unit="mol/m2/s/uatm"                   /> 
    231        <field id="Dpco2"       long_name="Delta CO2"                               unit="uatm"                            /> 
    232        <field id="pCO2sea"     long_name="surface ocean pCO2"                      unit="uatm"                            /> 
    233        <field id="Dpo2"        long_name="Delta O2"                                unit="uatm"                            /> 
    234        <field id="Heup"        long_name="Euphotic layer depth"                    unit="m"                               /> 
    235        <field id="AtmCo2"      long_name="Atmospheric CO2 concentration"           unit="ppm"                               /> 
    236        <field id="Irondep"     long_name="Iron deposition from dust"               unit="mol/m2/s"                        /> 
    237        <field id="Ironsed"     long_name="Iron deposition from sediment"           unit="mol/m2/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" /> 
    239        <field id="FECOLL"      long_name="Colloidal Pumping of FeL"                unit="mmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
    240        <field id="LGWCOLL"     long_name="Coagulation loss of ligands"             unit="mmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    241        <field id="REMINF"      long_name="Oxic remineralization suppy of Fe"       unit="mmol-Fe/m3/s"  grid_ref="grid_T_3D" /> 
    242        <field id="BACT"        long_name="Bacterial Biomass"                       unit="mmol/m3"  grid_ref="grid_T_3D" /> 
    243        <field id="FEBACT"      long_name="Bacterial uptake of Fe"                  unit="molFe/m3/s"  grid_ref="grid_T_3D" /> 
    244        <field id="LPRODR"      long_name="OM remineralisation ligand production rate" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    245        <field id="LPRODP"      long_name="phytoplankton ligand production rate"    unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    246        <field id="LIGREM"      long_name="Remineralisation loss of ligands"        unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    247        <field id="LIGPR"       long_name="Photochemical loss of ligands"           unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    248        <field id="LDETP"       long_name="Ligand destruction during phytoplankton uptake" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    249        <field id="LPRODZ2"     long_name="mesozooplankton ligand production rate"  unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    250        <field id="LPRODZ"      long_name="microzooplankton ligand production rate" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
    251        <field id="FEZOO"       long_name="microzooplankton iron recycling rate"    unit="nmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
    252        <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  
    262  
    263        <!-- dbio_T on T grid : variables available with diaar5 --> 
    264        <field id="TPP"         long_name="Total Primary production of phyto"                   unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
    265        <field id="TPNEW"       long_name="New Primary production of phyto"                     unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
    266        <field id="TPBFE"       long_name="Total biogenic iron production"                      unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
    267        <field id="INTDIC"      long_name="DIC content"                                         unit="kg/m2"                          /> 
    268        <field id="O2MIN"       long_name="Oxygen minimum concentration"                        unit="mol/m3"                          /> 
    269        <field id="ZO2MIN"      long_name="Depth of oxygen minimum concentration"               unit="m"                              /> 
    270        <field id="INTNFIX"     long_name="Nitrogen fixation rate : vert. integrated"           unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > Nfix * e3t </field > 
    271        <field id="INTPPPHYN"   long_name="Vertically integrated primary production by nanophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYN * e3t </field > 
    272        <field id="INTPPPHYD"   long_name="Vertically integrated primary production by diatom"  unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYD * e3t </field >                     
    273        <field id="INTPPPHYP"   long_name="Vertically integrated primary production by picophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYP * e3t </field >                     
    274        <field id="INTPP"       long_name="Vertically integrated primary production by phyto"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPP * e3t </field >                             
    275        <field id="INTPNEW"     long_name="Vertically integrated new primary production"        unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPNEW * e3t </field >                 
    276        <field id="INTPBFE"     long_name="Vertically integrated of biogenic iron production"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPBFE * e3t </field >                            
    277        <field id="INTPBSI"     long_name="Vertically integrated of biogenic Si production"     unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PBSi * e3t </field >                            
    278  
    279        <!-- PISCES light : variables available with key_pisces_reduced --> 
    280        <field id="FNO3PHY"     long_name="FNO3PHY"                                 unit=""          grid_ref="grid_T_3D" />  
    281        <field id="FNH4PHY"     long_name="FNH4PHY"                                 unit=""          grid_ref="grid_T_3D" />  
    282        <field id="FNH4NO3"     long_name="FNH4NO3"                                 unit=""          grid_ref="grid_T_3D" />  
    283        <field id="TNO3PHY"     long_name="TNO3PHY"                                 unit=""  />  
    284        <field id="TNH4PHY"     long_name="TNH4PHY"                                 unit=""  />  
    285        <field id="TPHYDOM"     long_name="TPHYDOM"                                 unit=""  />  
    286        <field id="TPHYNH4"     long_name="TPHYNH4"                                 unit=""  />  
    287        <field id="TPHYZOO"     long_name="TPHYZOO"                                 unit=""  />  
    288        <field id="TPHYDET"     long_name="TPHYDET"                                 unit=""  />  
    289        <field id="TDETZOO"     long_name="TDETZOO"                                 unit=""  />  
    290        <field id="TZOODET"     long_name="TZOODET"                                 unit=""  />  
    291        <field id="TZOOBOD"     long_name="TZOOBOD"                                 unit=""  />  
    292        <field id="TZOONH4"     long_name="TZOONH4"                                 unit=""  />  
    293        <field id="TZOODOM"     long_name="TZOODOM"                                 unit=""  />  
    294        <field id="TNH4NO3"     long_name="TNH4NO3"                                 unit=""  />  
    295        <field id="TDOMNH4"     long_name="TDOMNH4"                                 unit=""  />  
    296        <field id="TDETNH4"     long_name="TDETNH4"                                 unit=""  />  
    297        <field id="TPHYTOT"     long_name="TPHYTOT"                                 unit=""  />  
    298        <field id="TZOOTOT"     long_name="TZOOTOT"                                 unit=""  />  
    299        <field id="SEDPOC"      long_name="SEDPOC"                                  unit=""  />  
    300        <field id="TDETSED"     long_name="TDETSED"                                 unit=""  />  
    301      </field_group> 
    302  
    303      <field_group id="tracer_scalar"  grid_ref="grid_scalar"  > 
    304      <!-- PISCES scalar  --> 
    305        <field id="pno3tot"         long_name="Global mean nitrate concentration"                  unit="mol/m3"   /> 
    306        <field id="ppo4tot"         long_name="global mean phosphorus concentration"               unit="mol/m3"   /> 
    307        <field id="psiltot"         long_name="Global mean silicate concentration"                 unit="mol/m3"   /> 
    308        <field id="palktot"         long_name="Global mean alkalinity concentration"               unit="mol/m3"   /> 
    309        <field id="pfertot"         long_name="Global mean iron concentration"                     unit="mol/m3"   /> 
    310        <field id="tcflx"           long_name="Total Flux of Carbon out of the ocean"              unit="mol/s"   /> 
    311        <field id="tcflxcum"        long_name="Cumulative total Flux of Carbon out of the ocean"   unit="mol/s"   /> 
    312        <field id="tcexp"           long_name="Total Carbon export at 100m"                        unit="mol/s"   /> 
    313        <field id="tintpp"          long_name="Global total integrated primary production"         unit="mol/s"   /> 
    314        <field id="tnfix"           long_name="Global total nitrogen fixation"                     unit="mol/s"   /> 
    315        <field id="tdenit"          long_name="Total denitrification"                              unit="mol/s"   /> 
    316      </field_group> 
    317  
    318    </field_definition> 
     9--> 
     10<field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" > <!-- time step automaticaly defined --> 
     11 
     12  <!-- 
     13      ============================================================================================================ 
     14      Biogeochemistry model variables 
     15      ============================================================================================================ 
     16  --> 
     17 
     18  <!-- ptrc on T grid --> 
     19 
     20  <field_group id="ptrc_T" grid_ref="grid_T_3D"> 
     21    <!-- PISCES standard : variables available with ln_p4z  --> 
     22    <field id="DIC"          long_name="Dissolved inorganic Concentration"        unit="mmol/m3" /> 
     23    <field id="DIC_e3t"      long_name="DIC * e3t"                                unit="mmol/m2" > DIC * e3t </field > 
     24    <field id="Alkalini"     long_name="Total Alkalinity Concentration"           unit="mmol/m3" /> 
     25    <field id="Alkalini_e3t" long_name="Alkalini * e3t"                           unit="mmol/m2"  > Alkalini * e3t </field > 
     26    <field id="O2"           long_name="Oxygen Concentration"                     unit="mmol/m3" /> 
     27    <field id="O2_e3t"       long_name="O2 * e3t"                                 unit="mmol/m2"  > O2 * e3t </field > 
     28    <field id="CaCO3"        long_name="Calcite Concentration"                    unit="mmol/m3" /> 
     29    <field id="CaCO3_e3t"    long_name="CaCO3 * e3t"                              unit="mmol/m2"  > CaCO3 * e3t </field > 
     30    <field id="PO4"          long_name="Phosphate Concentration"                  unit="mmol/m3" /> 
     31    <field id="PO4_e3t"      long_name="PO4 * e3t"                                unit="mmol/m2"  > PO4 * e3t </field > 
     32    <field id="POC"          long_name="Small organic carbon Concentration"       unit="mmol/m3" /> 
     33    <field id="POC_e3t"      long_name="POC * e3t"                                unit="mmol/m2"  > POC * e3t </field > 
     34    <field id="Si"           long_name="Silicate Concentration"                   unit="mmol/m3" /> 
     35    <field id="Si_e3t"       long_name="Si * e3t"                                 unit="mmol/m2"  > Si * e3t </field > 
     36    <field id="PHY"          long_name="(Nano)Phytoplankton Concentration"        unit="mmol/m3" /> 
     37    <field id="PHY_e3t"      long_name="PHY * e3t"                                unit="mmol/m2"  > PHY * e3t </field > 
     38    <field id="ZOO"          long_name="(Micro)Zooplankton Concentration"         unit="mmol/m3" /> 
     39    <field id="ZOO_e3t"      long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO * e3t </field > 
     40    <field id="DOC"          long_name="Dissolved organic Concentration"          unit="mmol/m3" /> 
     41    <field id="DOC_e3t"      long_name="DOC * e3t"                                unit="mmol/m2"  > DOC * e3t </field > 
     42    <field id="PHY2"         long_name="Diatoms Concentration"                    unit="mmol/m3" /> 
     43    <field id="PHY2_e3t"     long_name="PHY2 * e3t"                               unit="mmol/m2"  > PHY2 * e3t </field > 
     44    <field id="ZOO2"         long_name="Mesozooplankton Concentration"            unit="mmol/m3" /> 
     45    <field id="ZOO2_e3t"     long_name="ZOO2 * e3t"                               unit="mmol/m2"  > ZOO2 * e3t </field > 
     46    <field id="DSi"          long_name="Diatoms Silicate Concentration"           unit="mmol/m3" /> 
     47    <field id="DSi_e3t"      long_name="Dsi * e3t"                                unit="mmol/m2"  > DSi * e3t </field > 
     48    <field id="Fer"          long_name="Dissolved Iron Concentration"             unit="mmol/m3" /> 
     49    <field id="Fer_e3t"      long_name="Fer * e3t"                                unit="mmol/m2"  > Fer * e3t </field > 
     50    <field id="BFe"          long_name="Big iron particles Concentration"         unit="mmol/m3" /> 
     51    <field id="BFe_e3t"      long_name="BFe * e3t"                                unit="mmol/m2"  > BFe * e3t </field > 
     52    <field id="GOC"          long_name="Big organic carbon Concentration"         unit="mmol/m3" /> 
     53    <field id="GOC_e3t"      long_name="GOC * e3t"                                unit="mmol/m2"  > GOC * e3t </field > 
     54    <field id="SFe"          long_name="Small iron particles Concentration"       unit="mmol/m3" /> 
     55    <field id="SFe_e3t"      long_name="SFe * e3t"                                unit="mmol/m2"  > SFe * e3t </field > 
     56    <field id="DFe"          long_name="Diatoms iron  Concentration"              unit="mmol/m3" /> 
     57    <field id="DFe_e3t"      long_name="DFe * e3t"                                unit="mmol/m2"  > DFe * e3t </field > 
     58    <field id="GSi"          long_name="Sinking biogenic Silicate Concentration"  unit="mmol/m3" /> 
     59    <field id="GSi_e3t"      long_name="GSi * e3t"                                unit="mmol/m2"  > GSi * e3t </field > 
     60    <field id="NFe"          long_name="Nano iron Concentration"                  unit="mmol/m3" /> 
     61    <field id="NFe_e3t"      long_name="NFe * e3t"                                unit="mmol/m2"  > NFe * e3t </field > 
     62    <field id="NCHL"         long_name="Nano chlorophyl Concentration"            unit="gChl/m3"   /> 
     63    <field id="NCHL_e3t"     long_name="NCHL * e3t"                               unit="mmol/m2"  > NCHL * e3t </field > 
     64    <field id="DCHL"         long_name="Diatoms chlorophyl Concentration"         unit="gChl/m3"   /> 
     65    <field id="DCHL_e3t"     long_name="DCHL * e3t"                               unit="mmol/m2"  > DCHL * e3t </field > 
     66    <field id="NO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" /> 
     67    <field id="NO3_e3t"      long_name="NO3 * e3t"                                unit="mmol/m2"  > NO3 * e3t </field > 
     68    <field id="NH4"          long_name="Ammonium Concentration"                   unit="mmol/m3" /> 
     69    <field id="NH4_e3t"      long_name="NH4 * e3t"                                unit="mmol/m2"  > NH4 * e3t </field > 
     70 
     71    <!-- PISCES quota : variables available with ln_p5z  --> 
     72 
     73    <field id="DON"          long_name="Dissolved organic N Concentration"        unit="mmol/m3" /> 
     74    <field id="DON_e3t"      long_name="DON * e3t"                                unit="mmol/m2"  > DON * e3t </field > 
     75    <field id="DOP"          long_name="Dissolved organic P Concentration"        unit="mmol/m3" /> 
     76    <field id="DOP_e3t"      long_name="DOP * e3t"                                unit="mmol/m2"  > DOP * e3t </field > 
     77    <field id="PON"          long_name="Small PON Concentration"                  unit="mmol/m3" /> 
     78    <field id="PON_e3t"      long_name="PON * e3t"                                unit="mmol/m2"  > PON * e3t </field > 
     79    <field id="POP"          long_name="Small POP Concentration"                  unit="mmol/m3" /> 
     80    <field id="POP_e3t"      long_name="POP * e3t"                                unit="mmol/m2"  > POP * e3t </field > 
     81    <field id="GON"          long_name="Big PON Concentration"                    unit="mmol/m3" /> 
     82    <field id="GON_e3t"      long_name="GON * e3t"                                unit="mmol/m2"  > GON * e3t </field > 
     83    <field id="GOP"          long_name="Big POP Concentration"                    unit="mmol/m3" /> 
     84    <field id="GOP_e3t"      long_name="GOP * e3t"                                unit="mmol/m2"  > GOP * e3t </field > 
     85    <field id="PHYN"         long_name="Nanophytoplankton N biomass"              unit="mmol/m3" /> 
     86    <field id="PHYN_e3t"     long_name="PHYN * e3t"                               unit="mmol/m2"  > PHYN * e3t </field > 
     87    <field id="PHYP"         long_name="Nanophytoplankton P biomass"              unit="mmol/m3" /> 
     88    <field id="PHYP_e3t"     long_name="PHYP * e3t"                               unit="mmol/m2"  > PHYP * e3t </field > 
     89    <field id="DIAN"         long_name="Diatoms N biomass"                        unit="mmol/m3" /> 
     90    <field id="DIAN_e3t"     long_name="DIAN * e3t"                               unit="mmol/m2"  > DIAN * e3t </field > 
     91    <field id="DIAP"         long_name="Diatoms P biomass"                        unit="mmol/m3" /> 
     92    <field id="DIAP_e3t"     long_name="DIAP * e3t"                               unit="mmol/m2"  > DIAP * e3t </field > 
     93    <field id="PIC"          long_name="Picophytoplankton C biomass"              unit="mmol/m3" /> 
     94    <field id="PIC_e3t"      long_name="PIC * e3t"                                unit="mmol/m2"  > PIC * e3t </field > 
     95    <field id="PICN"         long_name="Picophytoplankton N biomass"              unit="mmol/m3" /> 
     96    <field id="PICN_e3t"     long_name="PICN * e3t"                               unit="mmol/m2"  > PICN * e3t </field > 
     97    <field id="PICP"         long_name="Picophytoplankton P biomass"              unit="mmol/m3" /> 
     98    <field id="PICP_e3t"     long_name="PICP * e3t"                               unit="mmol/m2"  > PICP * e3t </field > 
     99    <field id="PFe"          long_name="Picophytoplankton Fe biomass"             unit="mmol/m3" /> 
     100    <field id="PFe_e3t"      long_name="PFe * e3t"                                unit="mmol/m2"  > PFe * e3t </field > 
     101    <field id="PCHL"         long_name="Picophytoplankton Chl biomass"            unit="gChl/m3" /> 
     102    <field id="PCHL_e3t"     long_name="PCHL * e3t"                               unit="mmol/m2"  > PCHL * e3t </field > 
     103 
     104    <!-- PISCES with ligand parametisation : variables available namelist paramter ln_ligand --> 
     105    <field id="LGW"         long_name="Weak ligands concentration"                unit="mmol/m3" /> 
     106    <field id="LGW_e3t"     long_name="LGW * e3t"                                 unit="mmol/m2"  > LGW * e3t </field > 
     107 
     108    <!-- PISCES light : variables available with ln_p2z  --> 
     109    <field id="DET"         long_name="Detritus"                                 unit="mmol-N/m3" /> 
     110    <field id="DET_e3t"     long_name="DET * e3t"                                unit="mmol-N/m2"  > DET * e3t </field > 
     111    <field id="DOM"         long_name="Dissolved Organic Matter"                 unit="mmol-N/m3" /> 
     112    <field id="DOM_e3t"     long_name="DOM * e3t"                                unit="mmol-N/m2"  > DOM * e3t </field > 
     113 
     114  </field_group> 
     115 
     116  <!-- SEDIMENT variables on T sediment grid  --> 
     117  <field_group id="sed_T" grid_ref="grid_T_3DS"> 
     118    <field id="SedDIC"          long_name="Dissolved inorganic Concentration"        unit="mmol/m3" /> 
     119    <field id="SedAlkalini"     long_name="Total Alkalinity Concentration"           unit="mmol/m3" /> 
     120    <field id="SedO2"           long_name="Oxygen Concentration"                     unit="mmol/m3" /> 
     121    <field id="SedCaCO3"        long_name="Calcite Concentration"                    unit="%" /> 
     122    <field id="SedPOS"          long_name="Semi-ref POC Concentration"               unit="%" /> 
     123    <field id="SedPOR"          long_name="Refractory POC Concentration"             unit="%" /> 
     124    <field id="SedPO4"          long_name="Phosphate Concentration"                  unit="mmol/m3" /> 
     125    <field id="SedPOC"          long_name="Labile POC Concentration"                 unit="%" /> 
     126    <field id="SedSil"          long_name="Silicate Concentration"                   unit="mmol/m3" /> 
     127    <field id="SedFe2"          long_name="Fe2+ Concentration"                       unit="mmol/m3" /> 
     128    <field id="SedBSi"          long_name="Biogenic Silicate Concentration"          unit="%" /> 
     129    <field id="SedNO3"          long_name="Nitrate Concentration"                    unit="mmol/m3" /> 
     130    <field id="SedNH4"          long_name="Ammonium Concentration"                   unit="mmol/m3" /> 
     131    <field id="SedH2S"          long_name="H2S Concentration"                        unit="mmol/m3" /> 
     132    <field id="SedSO4"          long_name="SO4 Concentration"                        unit="mmol/m3" /> 
     133    <field id="SedClay"         long_name="Clay Concentration"                       unit="%" /> 
     134    <field id="SedFeO"          long_name="Fe(OH)3 Concentration"                    unit="%" /> 
     135    <field id="SedFeS"          long_name="FeS Concentration"                        unit="%" /> 
     136    <field id="SedpH"           long_name="PH"                                       unit="1"          /> 
     137    <field id="SedCO3por"       long_name="Bicarbonates"                             unit="mol/m3" /> 
     138  </field_group> 
     139 
     140  <!-- SEDIMENT additional variables on T sediment grid  --> 
     141  <field_group id="Diag_S" grid_ref="grid_T_2D"> 
     142    <field id="FlxSi"       long_name="Si sediment flux"                        unit="mol/cm2/s"     /> 
     143    <field id="FlxO2"       long_name="O2 sediment flux"                        unit="mol/cm2/s"     /> 
     144    <field id="FlxDIC"      long_name="DIC sediment flux"                       unit="mol/cm2/s"     /> 
     145    <field id="FlxNO3"      long_name="NO3 sediment flux"                       unit="mol/cm2/s"     /> 
     146    <field id="FlxPO4"      long_name="PO4 sediment flux"                       unit="mol/cm2/s"     /> 
     147    <field id="FlxAlkalini" long_name="Alkalinity sediment flux"                unit="mol/cm2/s"     /> 
     148    <field id="FlxNH4"      long_name="Ammonium sediment flux"                  unit="mol/cm2/s"     /> 
     149    <field id="FlxH2S"      long_name="H2S sediment flux"                       unit="mol/cm2/s"     /> 
     150    <field id="FlxSO4"      long_name="SO4 sediment flux"                       unit="mol/cm2/s"     /> 
     151    <field id="FlxFe2"      long_name="Fe2+ sediment flux"                      unit="mol/cm2/s"     /> 
     152    <field id="Flxtot"      long_name="Sediment net burial rate"                unit="cm/s"     /> 
     153    <field id="dzdep"       long_name="Sedimentation rate"                      unit="cm/s"     /> 
     154    <field id="sflxclay"    long_name="Clay sedimentation rate"                 unit="g/m2/s"     /> 
     155    <field id="sflxcal"     long_name="Calcite sedimentation rate"              unit="mol/m2/s"     /> 
     156    <field id="sflxbsi"     long_name="BSi Sedimentation rate"                  unit="mol/m2/s"     /> 
     157    <field id="sflxpoc"     long_name="POC Sedimentation rate"                  unit="mol/m2/s"     /> 
     158    <field id="sflxfeo"     long_name="Fe(OH)3 Sedimentation rate"              unit="mol/m2/s"     /> 
     159  </field_group> 
     160 
     161  <!-- PISCES additional diagnostics on T grid  --> 
     162 
     163  <field_group id="diad_T" grid_ref="grid_T_2D"> 
     164    <field id="PH"          long_name="PH"                                      unit="1"          grid_ref="grid_T_3D" /> 
     165    <field id="CO3"         long_name="Bicarbonates"                            unit="mol/m3"     grid_ref="grid_T_3D" /> 
     166    <field id="CO3sat"      long_name="CO3 saturation"                          unit="mol/m3"     grid_ref="grid_T_3D" /> 
     167    <field id="PAR"         long_name="Photosynthetically Available Radiation"  unit="W/m2"       grid_ref="grid_T_3D" /> 
     168    <field id="PARDM"       long_name="Daily mean PAR"                          unit="W/m2"       grid_ref="grid_T_3D" /> 
     169    <field id="PPPHYN"      long_name="Primary production of nanophyto"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     170    <field id="PPPHYP"      long_name="Primary production of picophyto"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     171    <field id="PPPHYD"      long_name="Primary production of diatoms"           unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     172    <field id="PPNEWN"      long_name="New Primary production of nanophyto"     unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     173    <field id="PPNEWP"      long_name="New Primary production of picophyto"     unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     174    <field id="PPNEWD"      long_name="New Primary production of diatoms"       unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     175    <field id="PBSi"        long_name="Primary production of Si diatoms"        unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     176    <field id="PFeN"        long_name="Primary production of nano iron"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     177    <field id="PFeP"        long_name="Primary production of pico iron"         unit="molC/m3/s"  grid_ref="grid_T_3D" /> 
     178    <field id="PFeD"        long_name="Primary production of diatoms iron"      unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     179    <field id="xfracal"     long_name="Calcifying fraction"                     unit="1"          grid_ref="grid_T_3D" /> 
     180    <field id="PCAL"        long_name="Calcite production"                      unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     181    <field id="DCAL"        long_name="Calcite dissolution"                     unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     182    <field id="GRAZ1"       long_name="Grazing by microzooplankton"             unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     183    <field id="GRAZ2"       long_name="Grazing by mesozooplankton"              unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     184    <field id="REMIN"       long_name="Oxic remineralization of OM"             unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     185    <field id="DENIT"       long_name="Anoxic remineralization of OM"           unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     186    <field id="REMINP"       long_name="Oxic remineralization rate of POC"      unit="d-1"        grid_ref="grid_T_3D" /> 
     187    <field id="REMING"       long_name="Oxic remineralization rate of GOC"      unit="d-1"        grid_ref="grid_T_3D" /> 
     188    <field id="Nfix"        long_name="Nitrogen fixation"                       unit="mol/m3/s"   grid_ref="grid_T_3D" /> 
     189    <field id="Mumax"       long_name="Maximum growth rate"                     unit="s-1"        grid_ref="grid_T_3D" /> 
     190    <field id="MuN"         long_name="Realized growth rate for nanophyto"      unit="s-1"        grid_ref="grid_T_3D" /> 
     191    <field id="MuP"         long_name="Realized growth rate for picophyto"      unit="s-1"        grid_ref="grid_T_3D" /> 
     192    <field id="MuD"         long_name="Realized growth rate for diatomes"       unit="s-1"        grid_ref="grid_T_3D" /> 
     193    <field id="MunetN"      long_name="Net growth rate for nanophyto"           unit="s-1"        grid_ref="grid_T_3D" /> 
     194    <field id="MunetP"      long_name="Net growth rate for picophyto"           unit="s-1"        grid_ref="grid_T_3D" /> 
     195    <field id="MunetD"      long_name="Net growth rate for diatomes"            unit="s-1"        grid_ref="grid_T_3D" /> 
     196    <field id="LNnut"       long_name="Nutrient limitation term in Nanophyto"   unit=""           grid_ref="grid_T_3D" /> 
     197    <field id="LPnut"       long_name="Nutrient limitation term in Picophyto"   unit="-"          grid_ref="grid_T_3D" /> 
     198    <field id="LDnut"       long_name="Nutrient limitation term in Diatoms"     unit=""           grid_ref="grid_T_3D" /> 
     199    <field id="LNFe"        long_name="Iron limitation term in Nanophyto"       unit=""           grid_ref="grid_T_3D" /> 
     200    <field id="LPFe"        long_name="Iron limitation term in Picophyto"       unit="-"          grid_ref="grid_T_3D" /> 
     201    <field id="LDFe"        long_name="Iron limitation term in Diatoms"         unit=""           grid_ref="grid_T_3D" /> 
     202    <field id="LNlight"     long_name="Light limitation term in Nanophyto"      unit=""           grid_ref="grid_T_3D" /> 
     203    <field id="LPlight"     long_name="Light limitation term in Picophyto"      unit="-"          grid_ref="grid_T_3D" /> 
     204    <field id="LDlight"     long_name="Light limitation term in Diatoms"        unit=""           grid_ref="grid_T_3D" /> 
     205    <field id="SIZEN"       long_name="Mean relative size of nanophyto."        unit="-"          grid_ref="grid_T_3D" /> 
     206    <field id="SIZEP"       long_name="Mean relative size of picophyto."        unit="-"          grid_ref="grid_T_3D" /> 
     207    <field id="SIZED"       long_name="Mean relative size of diatoms"           unit="-"          grid_ref="grid_T_3D" /> 
     208    <field id="Fe3"         long_name="Iron III concentration"                  unit="nmol/m3"    grid_ref="grid_T_3D" /> 
     209    <field id="FeL1"        long_name="Complexed Iron concentration with L1"    unit="nmol/m3"    grid_ref="grid_T_3D" /> 
     210    <field id="TL1"         long_name="Total L1 concentration"                  unit="nmol/m3"    grid_ref="grid_T_3D" /> 
     211    <field id="pdust"       long_name="dust concentration"                      unit="g/m3"                            /> 
     212    <field id="Totlig"      long_name="Total ligand concentation"               unit="nmol/m3"    grid_ref="grid_T_3D" /> 
     213    <field id="Biron"       long_name="Bioavailable iron"                       unit="nmol/m3"    grid_ref="grid_T_3D" /> 
     214    <field id="Sdenit"      long_name="Nitrate reduction in the sediments"      unit="mol/m2/s"                        /> 
     215    <field id="Ironice"     long_name="Iron input/uptake due to sea ice"        unit="mol/m2/s"                        /> 
     216    <field id="SedCal"      long_name="Calcite burial in the sediments"         unit="molC/m2/s"                       /> 
     217    <field id="SedSi"       long_name="Silicon burial in the sediments"         unit="molSi/m2/s"                      /> 
     218    <field id="SedC"        long_name="Organic C burial in the sediments"       unit="molC/m2/s"                       /> 
     219    <field id="HYDR"        long_name="Iron input from hydrothemal vents"       unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
     220    <field id="EPC100"      long_name="Export of carbon particles at 100 m"     unit="mol/m2/s"                        /> 
     221    <field id="EPFE100"     long_name="Export of biogenic iron at 100 m"        unit="mol/m2/s"                        /> 
     222    <field id="EPSI100"     long_name="Export of Silicate at 100 m"             unit="mol/m2/s"                        /> 
     223    <field id="EPCAL100"    long_name="Export of Calcite at 100 m"              unit="mol/m2/s"                        /> 
     224    <field id="EXPC"        long_name="Export of carbon"                        unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
     225    <field id="EXPFE"       long_name="Export of biogenic iron"                 unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
     226    <field id="EXPSI"       long_name="Export of Silicate"                      unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
     227    <field id="EXPCAL"      long_name="Export of Calcite"                       unit="mol/m2/s"   grid_ref="grid_T_3D" /> 
     228    <field id="Cflx"        long_name="DIC flux"                                unit="mol/m2/s"                        /> 
     229    <field id="Oflx"        long_name="Oxygen flux"                             unit="mol/m2/s"                        /> 
     230    <field id="Kg"          long_name="Gas transfer"                            unit="mol/m2/s/uatm"                   /> 
     231    <field id="Dpco2"       long_name="Delta CO2"                               unit="uatm"                            /> 
     232    <field id="pCO2sea"     long_name="surface ocean pCO2"                      unit="uatm"                            /> 
     233    <field id="Dpo2"        long_name="Delta O2"                                unit="uatm"                            /> 
     234    <field id="Heup"        long_name="Euphotic layer depth"                    unit="m"                               /> 
     235    <field id="AtmCo2"      long_name="Atmospheric CO2 concentration"           unit="ppm"                               /> 
     236    <field id="Irondep"     long_name="Iron deposition from dust"               unit="mol/m2/s"                        /> 
     237    <field id="Ironsed"     long_name="Iron deposition from sediment"           unit="mol/m2/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" /> 
     239    <field id="FECOLL"      long_name="Colloidal Pumping of FeL"                unit="mmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
     240    <field id="LGWCOLL"     long_name="Coagulation loss of ligands"             unit="mmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     241    <field id="REMINF"      long_name="Oxic remineralization suppy of Fe"       unit="mmol-Fe/m3/s"  grid_ref="grid_T_3D" /> 
     242    <field id="BACT"        long_name="Bacterial Biomass"                       unit="mmol/m3"  grid_ref="grid_T_3D" /> 
     243    <field id="FEBACT"      long_name="Bacterial uptake of Fe"                  unit="molFe/m3/s"  grid_ref="grid_T_3D" /> 
     244    <field id="LPRODR"      long_name="OM remineralisation ligand production rate" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     245    <field id="LPRODP"      long_name="phytoplankton ligand production rate"    unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     246    <field id="LIGREM"      long_name="Remineralisation loss of ligands"        unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     247    <field id="LIGPR"       long_name="Photochemical loss of ligands"           unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     248    <field id="LDETP"       long_name="Ligand destruction during phytoplankton uptake" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     249    <field id="LPRODZ2"     long_name="mesozooplankton ligand production rate"  unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     250    <field id="LPRODZ"      long_name="microzooplankton ligand production rate" unit="nmol-L/m3/s"  grid_ref="grid_T_3D" /> 
     251    <field id="FEZOO"       long_name="microzooplankton iron recycling rate"    unit="nmol-FeL/m3/s"  grid_ref="grid_T_3D" /> 
     252    <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 
     262 
     263    <!-- dbio_T on T grid : variables available with diaar5 --> 
     264    <field id="TPP"         long_name="Total Primary production of phyto"                   unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
     265    <field id="TPNEW"       long_name="New Primary production of phyto"                     unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
     266    <field id="TPBFE"       long_name="Total biogenic iron production"                      unit="mol/m3/s"  grid_ref="grid_T_3D" /> 
     267    <field id="INTDIC"      long_name="DIC content"                                         unit="kg/m2"                          /> 
     268    <field id="O2MIN"       long_name="Oxygen minimum concentration"                        unit="mol/m3"                          /> 
     269    <field id="ZO2MIN"      long_name="Depth of oxygen minimum concentration"               unit="m"                              /> 
     270    <field id="INTNFIX"     long_name="Nitrogen fixation rate : vert. integrated"           unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > Nfix * e3t </field > 
     271    <field id="INTPPPHYN"   long_name="Vertically integrated primary production by nanophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYN * e3t </field > 
     272    <field id="INTPPPHYD"   long_name="Vertically integrated primary production by diatom"  unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYD * e3t </field > 
     273    <field id="INTPPPHYP"   long_name="Vertically integrated primary production by picophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYP * e3t </field > 
     274    <field id="INTPP"       long_name="Vertically integrated primary production by phyto"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPP * e3t </field > 
     275    <field id="INTPNEW"     long_name="Vertically integrated new primary production"        unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPNEW * e3t </field > 
     276    <field id="INTPBFE"     long_name="Vertically integrated of biogenic iron production"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPBFE * e3t </field > 
     277    <field id="INTPBSI"     long_name="Vertically integrated of biogenic Si production"     unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PBSi * e3t </field > 
     278 
     279    <!-- PISCES light : variables available with key_pisces_reduced --> 
     280    <field id="FNO3PHY"     long_name="FNO3PHY"                                 unit=""          grid_ref="grid_T_3D" /> 
     281    <field id="FNH4PHY"     long_name="FNH4PHY"                                 unit=""          grid_ref="grid_T_3D" /> 
     282    <field id="FNH4NO3"     long_name="FNH4NO3"                                 unit=""          grid_ref="grid_T_3D" /> 
     283    <field id="TNO3PHY"     long_name="TNO3PHY"                                 unit=""  /> 
     284    <field id="TNH4PHY"     long_name="TNH4PHY"                                 unit=""  /> 
     285    <field id="TPHYDOM"     long_name="TPHYDOM"                                 unit=""  /> 
     286    <field id="TPHYNH4"     long_name="TPHYNH4"                                 unit=""  /> 
     287    <field id="TPHYZOO"     long_name="TPHYZOO"                                 unit=""  /> 
     288    <field id="TPHYDET"     long_name="TPHYDET"                                 unit=""  /> 
     289    <field id="TDETZOO"     long_name="TDETZOO"                                 unit=""  /> 
     290    <field id="TZOODET"     long_name="TZOODET"                                 unit=""  /> 
     291    <field id="TZOOBOD"     long_name="TZOOBOD"                                 unit=""  /> 
     292    <field id="TZOONH4"     long_name="TZOONH4"                                 unit=""  /> 
     293    <field id="TZOODOM"     long_name="TZOODOM"                                 unit=""  /> 
     294    <field id="TNH4NO3"     long_name="TNH4NO3"                                 unit=""  /> 
     295    <field id="TDOMNH4"     long_name="TDOMNH4"                                 unit=""  /> 
     296    <field id="TDETNH4"     long_name="TDETNH4"                                 unit=""  /> 
     297    <field id="TPHYTOT"     long_name="TPHYTOT"                                 unit=""  /> 
     298    <field id="TZOOTOT"     long_name="TZOOTOT"                                 unit=""  /> 
     299    <field id="SEDPOC"      long_name="SEDPOC"                                  unit=""  /> 
     300    <field id="TDETSED"     long_name="TDETSED"                                 unit=""  /> 
     301  </field_group> 
     302 
     303  <field_group id="tracer_scalar"  grid_ref="grid_scalar"  > 
     304    <!-- PISCES scalar  --> 
     305    <field id="pno3tot"         long_name="Global mean nitrate concentration"                  unit="mol/m3"   /> 
     306    <field id="ppo4tot"         long_name="global mean phosphorus concentration"               unit="mol/m3"   /> 
     307    <field id="psiltot"         long_name="Global mean silicate concentration"                 unit="mol/m3"   /> 
     308    <field id="palktot"         long_name="Global mean alkalinity concentration"               unit="mol/m3"   /> 
     309    <field id="pfertot"         long_name="Global mean iron concentration"                     unit="mol/m3"   /> 
     310    <field id="tcflx"           long_name="Total Flux of Carbon out of the ocean"              unit="mol/s"   /> 
     311    <field id="tcflxcum"        long_name="Cumulative total Flux of Carbon out of the ocean"   unit="mol/s"   /> 
     312    <field id="tcexp"           long_name="Total Carbon export at 100m"                        unit="mol/s"   /> 
     313    <field id="tintpp"          long_name="Global total integrated primary production"         unit="mol/s"   /> 
     314    <field id="tnfix"           long_name="Global total nitrogen fixation"                     unit="mol/s"   /> 
     315    <field id="tdenit"          long_name="Total denitrification"                              unit="mol/s"   /> 
     316  </field_group> 
     317 
     318</field_definition> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/grid_def_nemo.xml

    r12377 r14021  
    44= grid definition = = DO NOT CHANGE = 
    55============================================================================================================ 
    6     --> 
    7  
    8     <grid_definition>     
    9  
    10         <!--  --> 
    11        <grid id="grid_T_2D" > 
    12          <domain domain_ref="grid_T" /> 
    13        </grid> 
    14         <!--  --> 
    15        <grid id="grid_T_ncatice" > 
    16          <domain domain_ref="grid_T" /> 
    17          <axis axis_ref="ncatice" /> 
    18        </grid> 
    19         <!--  --> 
    20        <grid id="grid_T_3D" > 
    21          <domain domain_ref="grid_T" /> 
    22          <axis axis_ref="deptht" /> 
    23        </grid> 
    24         <!--  --> 
    25        <grid id="grid_T_3DS" > 
    26          <domain domain_ref="grid_T" /> 
    27          <axis axis_ref="profsed" /> 
    28        </grid> 
    29         <!--  --> 
    30        <grid id="grid_U_2D" > 
    31          <domain domain_ref="grid_U" /> 
    32        </grid> 
    33         <!--  --> 
    34        <grid id="grid_U_3D" > 
    35          <domain domain_ref="grid_U" /> 
    36          <axis axis_ref="depthu" /> 
    37        </grid> 
    38         <!--  --> 
    39        <grid id="grid_V_2D" > 
    40          <domain domain_ref="grid_V" /> 
    41        </grid> 
    42         <!--  --> 
    43        <grid id="grid_V_3D" > 
    44          <domain domain_ref="grid_V" /> 
    45          <axis axis_ref="depthv" /> 
    46        </grid> 
    47         <!--  --> 
    48        <grid id="grid_W_2D" > 
    49          <domain domain_ref="grid_W" /> 
    50        </grid> 
    51         <!--  --> 
    52        <grid id="grid_W_3D" > 
    53          <domain domain_ref="grid_W" /> 
    54          <axis axis_ref="depthw" /> 
    55        </grid> 
    56         <!--  --> 
    57        <grid id="grid_1point" > 
    58          <domain domain_ref="1point"/> 
    59        </grid> 
    60         <!--  --> 
    61        <grid id="grid_T_nfloat" > 
    62          <domain domain_ref="grid_T" /> 
    63          <axis axis_ref="nfloat" /> 
    64        </grid> 
    65         <!--  --> 
    66        <grid id="grid_EqT" > 
    67          <domain domain_ref="EqT" /> 
    68        </grid> 
    69         <!--  --> 
    70  
    71  
    72        <grid id="grid_znl_T_2D"> 
    73          <domain domain_ref="gznl" /> 
    74          <axis axis_ref="basin" /> 
    75        </grid> 
    76  
    77        <grid id="grid_znl_T_3D"> 
    78          <domain domain_ref="gznl" /> 
    79          <axis axis_ref="deptht"  /> 
    80          <axis axis_ref="basin" /> 
    81        </grid> 
    82  
    83        <grid id="grid_znl_W_3D"> 
    84          <domain domain_ref="gznl" /> 
    85          <axis axis_ref="depthw"  /> 
    86          <axis axis_ref="basin" /> 
    87        </grid> 
    88  
    89       <grid id="grid_ptr_T_2D"> 
    90          <domain domain_ref="ptr" /> 
    91          <axis axis_ref="basin" /> 
    92        </grid> 
    93  
    94        <grid id="grid_ptr_T_3D"> 
    95          <domain  domain_ref="ptr" /> 
    96          <axis axis_ref="deptht"  /> 
    97          <axis axis_ref="basin" /> 
    98        </grid> 
    99  
    100        <grid id="grid_ptr_W_3D"> 
    101          <domain  domain_ref="ptr" /> 
    102          <axis axis_ref="depthw"  /> 
    103          <axis axis_ref="basin" /> 
    104        </grid> 
    105  
    106        <grid id="grid_ptr_W_GLO"> 
    107          <domain  domain_ref="ptr" /> 
    108          <axis axis_ref="depthw"  /> 
    109          <scalar> 
    110            <extract_axis position="0" /> 
    111          </scalar> 
    112        </grid> 
    113  
    114        <grid id="grid_ptr_W_ATL"> 
    115          <domain  domain_ref="ptr" /> 
    116          <axis axis_ref="depthw"  /> 
    117          <scalar> 
    118            <extract_axis position="1" /> 
    119          </scalar> 
    120        </grid> 
    121  
    122        <grid id="grid_ptr_W_IND"> 
    123          <domain  domain_ref="ptr" /> 
    124          <axis axis_ref="depthw"  /> 
    125          <scalar> 
    126            <extract_axis position="2" /> 
    127          </scalar> 
    128        </grid> 
    129  
    130        <grid id="grid_T_SFC"> 
    131          <domain domain_ref="grid_T" /> 
    132          <scalar> 
    133            <extract_axis position="0" /> 
    134          </scalar> 
    135        </grid> 
    136  
    137        <grid id="grid_T_vsum"> 
    138          <domain domain_ref="grid_T"/> 
    139          <scalar> 
    140             <reduce_axis operation="sum" /> 
    141          </scalar> 
    142        </grid> 
    143  
    144        <grid id="grid_U_vsum"> 
    145          <domain domain_ref="grid_U"/> 
    146          <scalar> 
    147             <reduce_axis operation="sum" /> 
    148          </scalar> 
    149        </grid> 
    150  
    151        <grid id="grid_V_vsum"> 
    152          <domain domain_ref="grid_V"/> 
    153          <scalar> 
    154             <reduce_axis operation="sum" /> 
    155          </scalar> 
    156        </grid> 
    157  
    158        <!-- for ORCA2 grid  --> 
    159        <grid id="cumul_U"> 
    160          <axis axis_ref="cumul_U" n_glo="182" > 
    161            <reduce_domain local="true" operation="sum" direction="jDir" /> 
    162            <reduce_axis operation="sum" /> 
    163          </axis> 
    164          <axis axis_ref="depthu" /> 
    165        </grid> 
    166  
    167        <!-- for eORCA1 grid 
    168  
    169        <grid id="cumul_U"> 
    170          <axis axis_ref="cumul_U" n_glo="362" > 
    171            <reduce_domain local="true" operation="sum" direction="jDir" /> 
    172            <reduce_axis operation="sum" /> 
    173          </axis> 
    174          <axis axis_ref="depthu" /> 
    175        </grid> 
    176  
    177       --> 
    178  
    179  
    180        <grid id="grid_T_zoom_300"> 
    181          <domain domain_ref="grid_T" /> 
    182          <axis axis_ref="deptht300" /> 
    183        </grid> 
    184  
    185        <grid id="grid_U_scalar" > 
    186          <domain domain_ref="grid_U" /> 
    187          <scalar/> 
    188        </grid> 
    189  
    190        <grid id="grid_V_scalar" > 
    191          <domain domain_ref="grid_V" /> 
    192          <scalar/> 
    193        </grid> 
    194   
    195        <grid id="grid_U_4strait"> 
    196          <domain domain_ref="grid_U" /> 
    197          <axis axis_ref="section"> 
    198            <duplicate_scalar/> 
    199          </axis> 
    200        </grid> 
    201   
    202        <grid id="grid_V_4strait"> 
    203          <domain domain_ref="grid_V" /> 
    204          <axis axis_ref="section"> 
    205            <duplicate_scalar/> 
    206          </axis> 
    207        </grid> 
    208   
    209        <grid id="grid_U_4strait_hsum"> 
    210          <scalar > 
    211            <reduce_domain operation="sum" local="true"/> 
    212            <reduce_scalar operation="sum" /> 
    213          </scalar> 
    214          <axis axis_ref="section"/> 
    215        </grid> 
    216   
    217        <grid id="grid_V_4strait_hsum"> 
    218          <scalar > 
    219            <reduce_domain operation="sum" local="true"/> 
    220            <reduce_scalar operation="sum" /> 
    221          </scalar> 
    222          <axis axis_ref="section"/> 
    223        </grid> 
    224   
    225        <grid id="grid_4strait"> 
    226          <axis axis_ref="section"/> 
    227        </grid> 
    228  
    229       <grid id="grid_U_4strait_ice"> 
    230         <domain domain_ref="grid_U" /> 
    231         <axis axis_ref="section_ice"> 
    232           <duplicate_scalar/> 
    233         </axis> 
    234       </grid> 
    235  
    236       <grid id="grid_V_4strait_ice"> 
    237         <domain domain_ref="grid_V" /> 
    238         <axis axis_ref="section_ice"> 
    239          <duplicate_scalar/> 
    240         </axis> 
    241       </grid> 
    242  
    243       <grid id="grid_U_4strait_ice_hsum"> 
    244         <scalar > 
    245          <reduce_domain operation="sum" local="true"/> 
    246          <reduce_scalar operation="sum" /> 
    247         </scalar> 
    248         <axis axis_ref="section_ice"/> 
    249       </grid> 
    250  
    251       <grid id="grid_V_4strait_ice_hsum"> 
    252          <scalar > 
    253           <reduce_domain operation="sum" local="true"/> 
    254           <reduce_scalar operation="sum" /> 
    255          </scalar> 
    256          <axis axis_ref="section_ice"/> 
    257       </grid> 
    258  
    259       <grid id="grid_4strait_ice"> 
    260         <axis axis_ref="section_ice"/> 
    261       </grid> 
    262   
    263       <!-- scalars --> 
    264       <grid id="grid_scalar" > 
    265         <scalar/> 
    266       </grid> 
    267  
    268       <!-- ABL grid definition --> 
    269       <grid id="grid_TA_2D"> 
    270         <domain domain_ref="grid_T" /> 
    271       </grid> 
    272       <grid id="grid_TA_3D"> 
    273         <domain domain_ref="grid_T" /> 
    274         <axis  id="ght_abl" /> 
    275       </grid> 
    276       <grid id="grid_WA_3D"> 
    277         <domain domain_ref="grid_T" /> 
    278         <axis  id="ghw_abl" /> 
    279       </grid> 
    280       <!--  --> 
    281  
    282       <!-- grid definitions for multiple-linear-regression analysis (diamlr) --> 
    283       <grid id="diamlr_grid_scalar" > 
    284    <scalar /> 
    285    <scalar /> 
    286       </grid> 
    287       <grid id="diamlr_grid_T_2D" > 
    288    <domain domain_ref="grid_T" /> 
    289    <scalar /> 
    290       </grid> 
    291       <grid id="diamlr_grid_U_2D" > 
    292    <domain domain_ref="grid_U" /> 
    293    <scalar /> 
    294       </grid> 
    295       <grid id="diamlr_grid_V_2D" > 
    296    <domain domain_ref="grid_V" /> 
    297    <scalar /> 
    298       </grid> 
    299       <grid id="diamlr_grid_W_2D" > 
    300    <domain domain_ref="grid_W" /> 
    301    <scalar /> 
    302       </grid> 
    303       <grid id="diamlr_grid_2D_to_grid_T_3D" > 
    304    <domain domain_ref="grid_T" /> 
    305         <axis axis_ref="deptht"> 
    306           <duplicate_scalar /> 
    307         </axis> 
    308       </grid> 
    309       <grid id="diamlr_grid_2D_to_grid_U_3D" > 
    310    <domain domain_ref="grid_U" /> 
    311         <axis axis_ref="depthu"> 
    312           <duplicate_scalar /> 
    313         </axis> 
    314       </grid> 
    315       <grid id="diamlr_grid_2D_to_grid_V_3D" > 
    316    <domain domain_ref="grid_V" /> 
    317         <axis axis_ref="depthv"> 
    318           <duplicate_scalar /> 
    319         </axis> 
    320       </grid> 
    321       <grid id="diamlr_grid_2D_to_grid_W_3D" > 
    322    <domain domain_ref="grid_W" /> 
    323         <axis axis_ref="depthw"> 
    324           <duplicate_scalar /> 
    325         </axis> 
    326       </grid> 
    327       <grid id="diamlr_grid_2D_to_scalar" > 
    328         <scalar> 
    329           <reduce_domain operation="average" /> 
    330         </scalar> 
    331    <scalar /> 
    332       </grid> 
    333       <!-- grid definitions for the computation of daily detided model diagnostics (diadetide) --> 
    334       <grid id="diadetide_grid_T_2D" > 
    335    <domain domain_ref="grid_T" /> 
    336    <scalar /> 
    337       </grid> 
    338       <grid id="diadetide_grid_U_2D" > 
    339    <domain domain_ref="grid_U" /> 
    340    <scalar /> 
    341       </grid> 
    342       <grid id="diadetide_grid_V_2D" > 
    343    <domain domain_ref="grid_V" /> 
    344    <scalar /> 
    345       </grid> 
    346       <grid id="diadetide_grid_2D_to_grid_T_3D" > 
    347    <domain domain_ref="grid_T" /> 
    348         <axis axis_ref="deptht"> 
    349           <duplicate_scalar /> 
    350         </axis> 
    351       </grid> 
    352       <grid id="diadetide_grid_2D_to_grid_U_3D" > 
    353    <domain domain_ref="grid_U" /> 
    354         <axis axis_ref="depthu"> 
    355           <duplicate_scalar /> 
    356         </axis> 
    357       </grid> 
    358       <grid id="diadetide_grid_2D_to_grid_V_3D" > 
    359    <domain domain_ref="grid_V" /> 
    360         <axis axis_ref="depthv"> 
    361           <duplicate_scalar /> 
    362         </axis> 
    363       </grid> 
    364       <grid id="diadetide_grid_2D_to_grid_W_3D" > 
    365    <domain domain_ref="grid_W" /> 
    366         <axis axis_ref="depthw"> 
    367           <duplicate_scalar /> 
    368         </axis> 
    369       </grid> 
    370  
    371     </grid_definition> 
     6--> 
     7 
     8<grid_definition> 
     9 
     10  <!--  --> 
     11  <grid id="grid_T_2D" > 
     12    <domain domain_ref="grid_T" /> 
     13  </grid> 
     14  <!--  --> 
     15  <grid id="grid_T_ncatice" > 
     16    <domain domain_ref="grid_T" /> 
     17    <axis axis_ref="ncatice" /> 
     18  </grid> 
     19  <!--  --> 
     20  <grid id="grid_T_3D" > 
     21    <domain domain_ref="grid_T" /> 
     22    <axis axis_ref="deptht" /> 
     23  </grid> 
     24  <!--  --> 
     25  <grid id="grid_T_3DS" > 
     26    <domain domain_ref="grid_T" /> 
     27    <axis axis_ref="profsed" /> 
     28  </grid> 
     29  <!--  --> 
     30  <grid id="grid_U_2D" > 
     31    <domain domain_ref="grid_U" /> 
     32  </grid> 
     33  <!--  --> 
     34  <grid id="grid_U_3D" > 
     35    <domain domain_ref="grid_U" /> 
     36    <axis axis_ref="depthu" /> 
     37  </grid> 
     38  <!--  --> 
     39  <grid id="grid_V_2D" > 
     40    <domain domain_ref="grid_V" /> 
     41  </grid> 
     42  <!--  --> 
     43  <grid id="grid_V_3D" > 
     44    <domain domain_ref="grid_V" /> 
     45    <axis axis_ref="depthv" /> 
     46  </grid> 
     47  <!--  --> 
     48  <grid id="grid_W_2D" > 
     49    <domain domain_ref="grid_W" /> 
     50  </grid> 
     51  <!--  --> 
     52  <grid id="grid_W_3D" > 
     53    <domain domain_ref="grid_W" /> 
     54    <axis axis_ref="depthw" /> 
     55  </grid> 
     56  <!--  --> 
     57  <grid id="grid_1point" > 
     58    <domain domain_ref="1point"/> 
     59  </grid> 
     60  <!--  --> 
     61  <grid id="grid_T_nfloat" > 
     62    <domain domain_ref="grid_T" /> 
     63    <axis axis_ref="nfloat" /> 
     64  </grid> 
     65  <!--  --> 
     66  <grid id="grid_EqT" > 
     67    <domain domain_ref="EqT" /> 
     68  </grid> 
     69  <!--  --> 
     70 
     71 
     72  <grid id="grid_znl_T_2D"> 
     73    <domain domain_ref="gznl" /> 
     74    <axis axis_ref="basin" /> 
     75  </grid> 
     76 
     77  <grid id="grid_znl_T_3D"> 
     78    <domain domain_ref="gznl" /> 
     79    <axis axis_ref="deptht"  /> 
     80    <axis axis_ref="basin" /> 
     81  </grid> 
     82 
     83  <grid id="grid_znl_W_3D"> 
     84    <domain domain_ref="gznl" /> 
     85    <axis axis_ref="depthw"  /> 
     86    <axis axis_ref="basin" /> 
     87  </grid> 
     88 
     89  <grid id="grid_ptr_T_2D"> 
     90    <domain domain_ref="ptr" /> 
     91    <axis axis_ref="basin" /> 
     92  </grid> 
     93 
     94  <grid id="grid_ptr_T_3D"> 
     95    <domain  domain_ref="ptr" /> 
     96    <axis axis_ref="deptht"  /> 
     97    <axis axis_ref="basin" /> 
     98  </grid> 
     99 
     100  <grid id="grid_ptr_W_3D"> 
     101    <domain  domain_ref="ptr" /> 
     102    <axis axis_ref="depthw"  /> 
     103    <axis axis_ref="basin" /> 
     104  </grid> 
     105 
     106  <grid id="grid_ptr_W_GLO"> 
     107    <domain  domain_ref="ptr" /> 
     108    <axis axis_ref="depthw"  /> 
     109    <scalar> 
     110      <extract_axis position="0" /> 
     111    </scalar> 
     112  </grid> 
     113 
     114  <grid id="grid_ptr_W_ATL"> 
     115    <domain  domain_ref="ptr" /> 
     116    <axis axis_ref="depthw"  /> 
     117    <scalar> 
     118      <extract_axis position="1" /> 
     119    </scalar> 
     120  </grid> 
     121 
     122  <grid id="grid_ptr_W_IND"> 
     123    <domain  domain_ref="ptr" /> 
     124    <axis axis_ref="depthw"  /> 
     125    <scalar> 
     126      <extract_axis position="2" /> 
     127    </scalar> 
     128  </grid> 
     129 
     130  <grid id="grid_T_SFC"> 
     131    <domain domain_ref="grid_T" /> 
     132    <scalar> 
     133      <extract_axis position="0" /> 
     134    </scalar> 
     135  </grid> 
     136 
     137  <grid id="grid_T_vsum"> 
     138    <domain domain_ref="grid_T"/> 
     139    <scalar> 
     140      <reduce_axis operation="sum" /> 
     141    </scalar> 
     142  </grid> 
     143 
     144  <grid id="grid_U_vsum"> 
     145    <domain domain_ref="grid_U"/> 
     146    <scalar> 
     147      <reduce_axis operation="sum" /> 
     148    </scalar> 
     149  </grid> 
     150 
     151  <grid id="grid_V_vsum"> 
     152    <domain domain_ref="grid_V"/> 
     153    <scalar> 
     154      <reduce_axis operation="sum" /> 
     155    </scalar> 
     156  </grid> 
     157 
     158  <!-- for ORCA2 grid  --> 
     159  <grid id="cumul_U"> 
     160    <axis axis_ref="cumul_U" n_glo="182" > 
     161      <reduce_domain local="true" operation="sum" direction="jDir" /> 
     162      <reduce_axis operation="sum" /> 
     163    </axis> 
     164    <axis axis_ref="depthu" /> 
     165  </grid> 
     166 
     167  <!-- for eORCA1 grid 
     168 
     169<grid id="cumul_U"> 
     170<axis axis_ref="cumul_U" n_glo="362" > 
     171<reduce_domain local="true" operation="sum" direction="jDir" /> 
     172<reduce_axis operation="sum" /> 
     173</axis> 
     174<axis axis_ref="depthu" /> 
     175</grid> 
     176 
     177  --> 
     178 
     179 
     180  <grid id="grid_T_zoom_300"> 
     181    <domain domain_ref="grid_T" /> 
     182    <axis axis_ref="deptht300" /> 
     183  </grid> 
     184 
     185  <grid id="grid_U_scalar" > 
     186    <domain domain_ref="grid_U" /> 
     187    <scalar/> 
     188  </grid> 
     189 
     190  <grid id="grid_V_scalar" > 
     191    <domain domain_ref="grid_V" /> 
     192    <scalar/> 
     193  </grid> 
     194 
     195  <grid id="grid_U_4strait"> 
     196    <domain domain_ref="grid_U" /> 
     197    <axis axis_ref="section"> 
     198      <duplicate_scalar/> 
     199    </axis> 
     200  </grid> 
     201 
     202  <grid id="grid_V_4strait"> 
     203    <domain domain_ref="grid_V" /> 
     204    <axis axis_ref="section"> 
     205      <duplicate_scalar/> 
     206    </axis> 
     207  </grid> 
     208 
     209  <grid id="grid_U_4strait_hsum"> 
     210    <scalar > 
     211      <reduce_domain operation="sum" local="true"/> 
     212      <reduce_scalar operation="sum" /> 
     213    </scalar> 
     214    <axis axis_ref="section"/> 
     215  </grid> 
     216 
     217  <grid id="grid_V_4strait_hsum"> 
     218    <scalar > 
     219      <reduce_domain operation="sum" local="true"/> 
     220      <reduce_scalar operation="sum" /> 
     221    </scalar> 
     222    <axis axis_ref="section"/> 
     223  </grid> 
     224 
     225  <grid id="grid_4strait"> 
     226    <axis axis_ref="section"/> 
     227  </grid> 
     228 
     229  <grid id="grid_U_4strait_ice"> 
     230    <domain domain_ref="grid_U" /> 
     231    <axis axis_ref="section_ice"> 
     232      <duplicate_scalar/> 
     233    </axis> 
     234  </grid> 
     235 
     236  <grid id="grid_V_4strait_ice"> 
     237    <domain domain_ref="grid_V" /> 
     238    <axis axis_ref="section_ice"> 
     239      <duplicate_scalar/> 
     240    </axis> 
     241  </grid> 
     242 
     243  <grid id="grid_U_4strait_ice_hsum"> 
     244    <scalar > 
     245      <reduce_domain operation="sum" local="true"/> 
     246      <reduce_scalar operation="sum" /> 
     247    </scalar> 
     248    <axis axis_ref="section_ice"/> 
     249  </grid> 
     250 
     251  <grid id="grid_V_4strait_ice_hsum"> 
     252    <scalar > 
     253      <reduce_domain operation="sum" local="true"/> 
     254      <reduce_scalar operation="sum" /> 
     255    </scalar> 
     256    <axis axis_ref="section_ice"/> 
     257  </grid> 
     258 
     259  <grid id="grid_4strait_ice"> 
     260    <axis axis_ref="section_ice"/> 
     261  </grid> 
     262 
     263  <!-- scalars --> 
     264  <grid id="grid_scalar" > 
     265    <scalar/> 
     266  </grid> 
     267 
     268  <!-- ABL grid definition --> 
     269  <grid id="grid_TA_2D"> 
     270    <domain domain_ref="grid_T" /> 
     271  </grid> 
     272  <grid id="grid_TA_3D"> 
     273    <domain domain_ref="grid_T" /> 
     274    <axis  id="ght_abl" /> 
     275  </grid> 
     276  <grid id="grid_WA_3D"> 
     277    <domain domain_ref="grid_T" /> 
     278    <axis  id="ghw_abl" /> 
     279  </grid> 
     280  <!--  --> 
     281 
     282  <!-- grid definitions for multiple-linear-regression analysis (diamlr) --> 
     283  <grid id="diamlr_grid_scalar" > 
     284    <scalar /> 
     285    <scalar /> 
     286  </grid> 
     287  <grid id="diamlr_grid_T_2D" > 
     288    <domain domain_ref="grid_T" /> 
     289    <scalar /> 
     290  </grid> 
     291  <grid id="diamlr_grid_U_2D" > 
     292    <domain domain_ref="grid_U" /> 
     293    <scalar /> 
     294  </grid> 
     295  <grid id="diamlr_grid_V_2D" > 
     296    <domain domain_ref="grid_V" /> 
     297    <scalar /> 
     298  </grid> 
     299  <grid id="diamlr_grid_W_2D" > 
     300    <domain domain_ref="grid_W" /> 
     301    <scalar /> 
     302  </grid> 
     303  <grid id="diamlr_grid_2D_to_grid_T_3D" > 
     304    <domain domain_ref="grid_T" /> 
     305    <axis axis_ref="deptht"> 
     306      <duplicate_scalar /> 
     307    </axis> 
     308  </grid> 
     309  <grid id="diamlr_grid_2D_to_grid_U_3D" > 
     310    <domain domain_ref="grid_U" /> 
     311    <axis axis_ref="depthu"> 
     312      <duplicate_scalar /> 
     313    </axis> 
     314  </grid> 
     315  <grid id="diamlr_grid_2D_to_grid_V_3D" > 
     316    <domain domain_ref="grid_V" /> 
     317    <axis axis_ref="depthv"> 
     318      <duplicate_scalar /> 
     319    </axis> 
     320  </grid> 
     321  <grid id="diamlr_grid_2D_to_grid_W_3D" > 
     322    <domain domain_ref="grid_W" /> 
     323    <axis axis_ref="depthw"> 
     324      <duplicate_scalar /> 
     325    </axis> 
     326  </grid> 
     327  <grid id="diamlr_grid_2D_to_scalar" > 
     328    <scalar> 
     329      <reduce_domain operation="average" /> 
     330    </scalar> 
     331    <scalar /> 
     332  </grid> 
     333  <!-- grid definitions for the computation of daily detided model diagnostics (diadetide) --> 
     334  <grid id="diadetide_grid_T_2D" > 
     335    <domain domain_ref="grid_T" /> 
     336    <scalar /> 
     337  </grid> 
     338  <grid id="diadetide_grid_U_2D" > 
     339    <domain domain_ref="grid_U" /> 
     340    <scalar /> 
     341  </grid> 
     342  <grid id="diadetide_grid_V_2D" > 
     343    <domain domain_ref="grid_V" /> 
     344    <scalar /> 
     345  </grid> 
     346  <grid id="diadetide_grid_2D_to_grid_T_3D" > 
     347    <domain domain_ref="grid_T" /> 
     348    <axis axis_ref="deptht"> 
     349      <duplicate_scalar /> 
     350    </axis> 
     351  </grid> 
     352  <grid id="diadetide_grid_2D_to_grid_U_3D" > 
     353    <domain domain_ref="grid_U" /> 
     354    <axis axis_ref="depthu"> 
     355      <duplicate_scalar /> 
     356    </axis> 
     357  </grid> 
     358  <grid id="diadetide_grid_2D_to_grid_V_3D" > 
     359    <domain domain_ref="grid_V" /> 
     360    <axis axis_ref="depthv"> 
     361      <duplicate_scalar /> 
     362    </axis> 
     363  </grid> 
     364  <grid id="diadetide_grid_2D_to_grid_W_3D" > 
     365    <domain domain_ref="grid_W" /> 
     366    <axis axis_ref="depthw"> 
     367      <duplicate_scalar /> 
     368    </axis> 
     369  </grid> 
     370 
     371</grid_definition> 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/cfgs/SHARED/namelist_ref

    r14017 r14021  
    237237   ln_apr_dyn  = .false.   !  Patm gradient added in ocean & ice Eqs.   (T => fill namsbc_apr ) 
    238238   ln_wave     = .false.   !  Activate coupling with wave  (T => fill namsbc_wave) 
    239    ln_cdgw     = .false.   !  Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 
    240    ln_sdw      = .false.   !  Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave) 
    241    nn_sdrift   =  0        !  Parameterization for the calculation of 3D-Stokes drift from the surface Stokes drift 
    242       !                    !   = 0 Breivik 2015 parameterization: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 
    243       !                    !   = 1 Phillips:                      v_z=v_o*[exp(2*k*z)-beta*sqrt(-2*k*pi*z)*erfc(sqrt(-2*k*z))] 
    244       !                    !   = 2 Phillips as (1) but using the wave frequency from a wave model 
    245    ln_tauwoc   = .false.   !  Activate ocean stress modified by external wave induced stress (T => ln_wave=.true. & fill namsbc_wave) 
    246    ln_tauw     = .false.   !  Activate ocean stress components from wave model 
    247    ln_stcor    = .false.   !  Activate Stokes Coriolis term (T => ln_wave=.true. & ln_sdw=.true. & fill namsbc_wave) 
    248239   nn_lsm      = 0         !  =0 land/sea mask for input fields is not applied (keep empty land/sea mask filename field) , 
    249240                           !  =1:n number of iterations of land/sea mask application for input fields (fill land/sea mask filename field) 
     
    386377   sn_rcv_cal    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    387378   sn_rcv_co2    =   'coupled'              ,    'no'    ,     ''      ,         ''           ,   '' 
    388    sn_rcv_hsig   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    389379   sn_rcv_iceflx =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    390380   sn_rcv_mslp   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    391    sn_rcv_phioc  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    392    sn_rcv_sdrfx  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    393    sn_rcv_sdrfy  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    394    sn_rcv_wper   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    395    sn_rcv_wnum   =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    396    sn_rcv_wfreq  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    397    sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    398381   sn_rcv_ts_ice =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    399382   sn_rcv_isf    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    400383   sn_rcv_icb    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   '' 
    401    sn_rcv_tauwoc =   'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
    402    sn_rcv_tauw   =   'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
    403    sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      ,         ''          ,   '' 
     384   sn_rcv_hsig   =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     385   sn_rcv_phioc  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   'T' 
     386   sn_rcv_sdrfx  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   'T' 
     387   sn_rcv_sdrfy  =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     388   sn_rcv_wper   =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     389   sn_rcv_wnum   =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     390   sn_rcv_wstrf  =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     391   sn_rcv_wdrag  =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     392   sn_rcv_charn  =   'none'                 ,    'no'    ,     ''      ,         ''           ,   'T' 
     393   sn_rcv_taw    =   'none'                 ,    'no'    ,     ''      ,         ''           ,   'U,V' 
     394   sn_rcv_bhd    =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     395   sn_rcv_tusd   =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
     396   sn_rcv_tvsd   =   'none'                 ,    'no'    ,     ''      '         ''           ,   'T' 
    404397/ 
    405398!----------------------------------------------------------------------- 
     
    586579&namsbc_wave   ! External fields from wave model                        (ln_wave=T) 
    587580!----------------------------------------------------------------------- 
     581   ln_sdw      = .false.       !  get the 2D Surf Stokes Drift & Compute the 3D stokes drift 
     582   ln_stcor    = .false.       !  add Stokes Coriolis and tracer advection terms 
     583   ln_cdgw     = .false.       !  Neutral drag coefficient read from wave model 
     584   ln_tauoc    = .false.       !  ocean stress is modified by wave induced stress 
     585   ln_wave_test= .false.       !  Test case with constant wave fields 
     586! 
     587   ln_charn    = .false.       !  Charnock coefficient read from wave model (IFS only) 
     588   ln_taw      = .false.       !  ocean stress is modified by wave induced stress (coupled mode) 
     589   ln_phioc    = .false.       !  TKE flux from wave model 
     590   ln_bern_srfc= .false.       !  wave induced pressure. Bernoulli head J term 
     591   ln_breivikFV_2016 = .false. !  breivik 2016 vertical stokes profile 
     592   ln_vortex_force = .false.   !  Vortex Force term  
     593   ln_stshear  = .false.       !  include stokes shear in EKE computation 
     594! 
    588595   cn_dir      = './'      !  root directory for the waves data location 
    589596   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     
    595602   sn_hsw      =  'sdw_ecwaves_orca2'    ,        6.         , 'hs'         ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    596603   sn_wmp      =  'sdw_ecwaves_orca2'    ,        6.         , 'wmp'        ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    597    sn_wfr      =  'sdw_ecwaves_orca2'    ,        6.         , 'wfr'        ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    598604   sn_wnum     =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_num'   ,  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    599    sn_tauwoc   =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_stress',  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    600    sn_tauwx    =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_stress',  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    601    sn_tauwy    =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_stress',  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
     605   sn_tauoc    =  'sdw_ecwaves_orca2'    ,        6.         , 'wave_stress',  .true.  , .true. , 'yearly'  ,  ''              , ''       , '' 
    602606/ 
    603607!----------------------------------------------------------------------- 
     
    11261130      nn_npc      =    1         ! frequency of application of npc 
    11271131      nn_npcp     =  365         ! npc control print frequency 
     1132   ln_zdfmfc   = .false.      !  Mass Flux Convection 
    11281133   ! 
    11291134   ln_zdfddm   = .false.   ! double diffusive mixing 
     
    11761181      rn_mxlice   = 10.       ! max constant ice thickness value when scaling under sea-ice ( nn_mxlice=1) 
    11771182   rn_mxl0     =   0.04    !  surface  buoyancy lenght scale minimum value 
     1183   ln_mxhsw    = .false.   !  surface mixing length scale = F(wave height) 
    11781184   ln_lc       = .true.    !  Langmuir cell parameterisation (Axell 2002) 
    11791185      rn_lc       =   0.15    !  coef. associated to Langmuir cells 
     
    11911197   !                       !           = 2 weighted by 1-fr_i 
    11921198   !                       !           = 3 weighted by 1-MIN(1,4*fr_i)    
     1199   nn_bc_surf   =     1    !  surface condition (0/1=Dir/Neum) ! Only applicable for wave coupling (ln_cplwave=1) 
     1200   nn_bc_bot    =     1    !  bottom condition (0/1=Dir/Neum) ! Only applicable for wave coupling (ln_cplwave=1) 
    11931201/ 
    11941202!----------------------------------------------------------------------- 
     
    12351243      !                        !  = 1: Pierson Moskowitz wave spectrum 
    12361244      !                        !  = 0: Constant La# = 0.3 
     1245/ 
     1246!----------------------------------------------------------------------- 
     1247&namzdf_mfc     !   Mass Flux Convection 
     1248!----------------------------------------------------------------------- 
     1249   ln_edmfuv  = .false.        ! Activate on velocity fields (Not available yet) 
     1250   rn_cemf    =  1.            ! entrain/detrain coef. (<0 => cte; >0 % depending on dW/dz 
     1251   rn_cwmf    = -0.            ! entrain/detrain coef. (<0 => cte; >0 % depending on dW/dz 
     1252   rn_cent    = 2.e-5          ! entrain of convective area 
     1253   rn_cdet    = 3.e-5          ! detrain of convective area  
     1254   rn_cap     = 0.9            ! Coef. for CAP estimation 
     1255   App_max    = 0.1            ! Maximum convection area (% of the cell) 
    12371256/ 
    12381257!----------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/ice.F90

    r14017 r14021  
    150150   ! 
    151151   !                                     !!** ice-rheology namelist (namdyn_rhg) ** 
     152   ! -- evp 
    152153   LOGICAL , PUBLIC ::   ln_rhg_EVP       ! EVP rheology switch, used for rdgrft and rheology 
    153154   LOGICAL , PUBLIC ::   ln_rhg_EAP       ! EAP rheology switch, used for rdgrft and rheology 
    154155   LOGICAL , PUBLIC ::   ln_aEVP          !: using adaptive EVP (T or F) 
    155    REAL(wp), PUBLIC ::   rn_creepl        !: creep limit : has to be under 1.0e-9 
     156   REAL(wp), PUBLIC ::   rn_creepl        !: creep limit (has to be low enough, circa 10-9 m/s, depending on rheology) 
    156157   REAL(wp), PUBLIC ::   rn_ecc           !: eccentricity of the elliptical yield curve 
    157158   INTEGER , PUBLIC ::   nn_nevp          !: number of iterations for subcycling 
    158159   REAL(wp), PUBLIC ::   rn_relast        !: ratio => telast/rDt_ice (1/3 or 1/9 depending on nb of subcycling nevp) 
    159160   INTEGER , PUBLIC ::   nn_rhg_chkcvg    !: check ice rheology convergence 
     161   ! -- vp 
     162   LOGICAL , PUBLIC ::   ln_rhg_VP        !: VP rheology 
     163   INTEGER , PUBLIC ::   nn_vp_nout       !: Number of outer iterations 
     164   INTEGER , PUBLIC ::   nn_vp_ninn       !: Number of inner iterations (linear system solver) 
     165   INTEGER , PUBLIC ::   nn_vp_chkcvg     !: Number of iterations every each convergence is checked 
    160166   ! 
    161167   !                                     !!** ice-advection namelist (namdyn_adv) ** 
     
    210216   !                                     !!** ice-ponds namelist (namthd_pnd) 
    211217   LOGICAL , PUBLIC ::   ln_pnd           !: Melt ponds (T) or not (F) 
    212    LOGICAL , PUBLIC ::   ln_pnd_LEV       !: Melt ponds scheme from Holland et al (2012), Flocco et al (2007, 2010) 
    213    REAL(wp), PUBLIC ::   rn_apnd_min      !: Minimum ice fraction that contributes to melt ponds 
    214    REAL(wp), PUBLIC ::   rn_apnd_max      !: Maximum ice fraction that contributes to melt ponds 
     218   LOGICAL , PUBLIC ::   ln_pnd_TOPO      !: Topographic Melt ponds scheme (Flocco et al 2007, 2010) 
     219   LOGICAL , PUBLIC ::   ln_pnd_LEV       !: Simple melt pond scheme 
     220   REAL(wp), PUBLIC ::   rn_apnd_min      !: Minimum fraction of melt water contributing to ponds 
     221   REAL(wp), PUBLIC ::   rn_apnd_max      !: Maximum fraction of melt water contributing to ponds 
     222   REAL(wp), PUBLIC ::   rn_pnd_flush     !: Pond flushing efficiency (tuning parameter) 
    215223   LOGICAL , PUBLIC ::   ln_pnd_CST       !: Melt ponds scheme with constant fraction and depth 
    216224   REAL(wp), PUBLIC ::   rn_apnd          !: prescribed pond fraction (0<rn_apnd<1) 
     
    345353   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   om_i          !: mean ice age over all categories                        (s) 
    346354   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   tau_icebfr    !: ice friction on ocean bottom (landfast param activated) 
     355   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   icb_mask      !: mask of grounded icebergs if landfast [0-1] 
    347356 
    348357   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   t_s           !: Snow temperatures     [K] 
     
    366375   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::   vt_il         !: total melt pond lid volume per gridcell area [m] 
    367376 
     377   ! meltwater arrays to save for melt ponds (mv - could be grouped in a single meltwater volume array) 
     378   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   dh_i_sum_2d   !: surface melt (2d arrays for ponds)       [m] 
     379   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   dh_s_mlt_2d   !: snow surf melt (2d arrays for ponds)     [m] 
     380 
    368381   !!---------------------------------------------------------------------- 
    369382   !! * Global variables at before time step 
    370383   !!---------------------------------------------------------------------- 
    371384   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   v_s_b, v_i_b, h_s_b, h_i_b !: snow and ice volumes/thickness 
     385   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   v_ip_b, v_il_b             !: ponds and lids volumes 
    372386   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::   a_i_b, sv_i_b              !: 
    373387   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::   e_s_b                      !: snow heat content 
     
    396410   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   diag_vsnw         !: snw volume variation   [m/s] 
    397411   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   diag_aice         !: ice conc.  variation   [s-1] 
     412   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   diag_vpnd         !: pond volume variation  [m/s] 
    398413   ! 
    399414   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   diag_adv_mass     !: advection of mass (kg/m2/s) 
     
    473488         &      et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i(jpi,jpj) , tm_s(jpi,jpj) ,  & 
    474489         &      sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s(jpi,jpj) ,  & 
    475          &      om_i (jpi,jpj) , bvm_i(jpi,jpj) , tau_icebfr(jpi,jpj)            , STAT=ierr(ii) ) 
     490         &      om_i (jpi,jpj) , bvm_i(jpi,jpj) , tau_icebfr(jpi,jpj), icb_mask(jpi,jpj), STAT=ierr(ii) ) 
    476491 
    477492      ii = ii + 1 
     
    483498      ii = ii + 1 
    484499      ALLOCATE( a_ip(jpi,jpj,jpl) , v_ip(jpi,jpj,jpl) , a_ip_frac(jpi,jpj,jpl) , h_ip(jpi,jpj,jpl),  & 
    485          &      v_il(jpi,jpj,jpl) , h_il(jpi,jpj,jpl) , a_ip_eff (jpi,jpj,jpl) , STAT = ierr(ii) ) 
     500         &      v_il(jpi,jpj,jpl) , h_il(jpi,jpj,jpl) , a_ip_eff (jpi,jpj,jpl) ,                     & 
     501         &      dh_i_sum_2d(jpi,jpj,jpl) , dh_s_mlt_2d(jpi,jpj,jpl) , STAT = ierr(ii) ) 
    486502 
    487503      ii = ii + 1 
     
    491507      ii = ii + 1 
    492508      ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl)        , h_i_b(jpi,jpj,jpl),         & 
     509         &      v_ip_b(jpi,jpj,jpl) , v_il_b(jpi,jpj,jpl) ,                                                         & 
    493510         &      a_i_b (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 
    494511         &      STAT=ierr(ii) ) 
     
    505522      ALLOCATE( diag_trp_vi(jpi,jpj) , diag_trp_vs (jpi,jpj) , diag_trp_ei(jpi,jpj),                      & 
    506523         &      diag_trp_es(jpi,jpj) , diag_trp_sv (jpi,jpj) , diag_heat  (jpi,jpj),                      & 
    507          &      diag_sice  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), diag_aice(jpi,jpj), & 
     524         &      diag_sice  (jpi,jpj) , diag_vice   (jpi,jpj) , diag_vsnw  (jpi,jpj), diag_aice(jpi,jpj), diag_vpnd(jpi,jpj), & 
    508525         &      diag_adv_mass(jpi,jpj), diag_adv_salt(jpi,jpj), diag_adv_heat(jpi,jpj), STAT=ierr(ii) ) 
    509526 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icectl.F90

    r13601 r14021  
    1212   !!   'key_si3'                                       SI3 sea-ice model 
    1313   !!---------------------------------------------------------------------- 
    14    !!    ice_cons_hsm     : conservation tests on heat, salt and mass during a  time step (global)  
     14   !!    ice_cons_hsm     : conservation tests on heat, salt and mass during a  time step (global) 
    1515   !!    ice_cons_final   : conservation tests on heat, salt and mass at end of time step (global) 
    1616   !!    ice_cons2D       : conservation tests on heat, salt and mass at each gridcell 
     
    5555   CHARACTER(LEN=50)   ::   clname="icedrift_diagnostics.ascii"   ! ascii filename 
    5656   INTEGER             ::   numicedrift                           ! outfile unit 
    57    REAL(wp)            ::   rdiag_icemass, rdiag_icesalt, rdiag_iceheat  
    58    REAL(wp)            ::   rdiag_adv_icemass, rdiag_adv_icesalt, rdiag_adv_iceheat  
    59     
     57   REAL(wp)            ::   rdiag_icemass, rdiag_icesalt, rdiag_iceheat 
     58   REAL(wp)            ::   rdiag_adv_icemass, rdiag_adv_icesalt, rdiag_adv_iceheat 
     59 
    6060   !! * Substitutions 
    6161#  include "do_loop_substitute.h90" 
     
    7777      !!              It prints in ocean.output if there is a violation of conservation at each time-step 
    7878      !!              The thresholds (zchk_m, zchk_s, zchk_t) determine violations 
    79       !!              For salt and heat thresholds, ice is considered to have a salinity of 10  
    80       !!              and a heat content of 3e5 J/kg (=latent heat of fusion)  
     79      !!              For salt and heat thresholds, ice is considered to have a salinity of 10 
     80      !!              and a heat content of 3e5 J/kg (=latent heat of fusion) 
    8181      !!------------------------------------------------------------------- 
    8282      INTEGER         , INTENT(in)    ::   icount        ! called at: =0 the begining of the routine, =1  the end 
     
    8585      !! 
    8686      REAL(wp) ::   zdiag_mass, zdiag_salt, zdiag_heat, & 
    87          &          zdiag_vmin, zdiag_amin, zdiag_amax, zdiag_eimin, zdiag_esmin, zdiag_smin 
     87         &          zdiag_vimin, zdiag_vsmin, zdiag_vpmin, zdiag_vlmin, zdiag_aimin, zdiag_aimax, & 
     88         &          zdiag_eimin, zdiag_esmin, zdiag_simin 
    8889      REAL(wp) ::   zvtrp, zetrp 
    8990      REAL(wp) ::   zarea 
     
    9293      IF( icount == 0 ) THEN 
    9394 
    94          pdiag_v = glob_sum( 'icectl',   SUM( v_i * rhoi + v_s * rhos, dim=3 ) * e1e2t ) 
     95         pdiag_v = glob_sum( 'icectl',   SUM( v_i * rhoi + v_s * rhos + ( v_ip + v_il ) * rhow, dim=3 ) * e1e2t ) 
    9596         pdiag_s = glob_sum( 'icectl',   SUM( sv_i * rhoi            , dim=3 ) * e1e2t ) 
    9697         pdiag_t = glob_sum( 'icectl', ( SUM( SUM( e_i, dim=4 ), dim=3 ) + SUM( SUM( e_s, dim=4 ), dim=3 ) ) * e1e2t ) 
     
    112113 
    113114         ! -- mass diag -- ! 
    114          zdiag_mass = ( glob_sum( 'icectl', SUM( v_i * rhoi + v_s * rhos, dim=3 ) * e1e2t ) - pdiag_v ) * r1_Dt_ice       & 
     115         zdiag_mass = ( glob_sum( 'icectl', SUM( v_i * rhoi + v_s * rhos + ( v_ip + v_il ) * rhow, dim=3 ) * e1e2t )      & 
     116            &            - pdiag_v ) * r1_Dt_ice                                                                          & 
    115117            &         + glob_sum( 'icectl', ( wfx_bog + wfx_bom + wfx_sum + wfx_sni + wfx_opw + wfx_res + wfx_dyn +       & 
    116118            &                                 wfx_lam + wfx_pnd + wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + & 
     
    132134 
    133135         ! -- min/max diag -- ! 
    134          zdiag_amax  = glob_max( 'icectl', SUM( a_i, dim=3 ) ) 
    135          zdiag_vmin  = glob_min( 'icectl', v_i ) 
    136          zdiag_amin  = glob_min( 'icectl', a_i ) 
    137          zdiag_smin  = glob_min( 'icectl', sv_i ) 
     136         zdiag_aimax = glob_max( 'icectl', SUM( a_i, dim=3 ) ) 
     137         zdiag_vimin = glob_min( 'icectl', v_i  ) 
     138         zdiag_vsmin = glob_min( 'icectl', v_s  ) 
     139         zdiag_vpmin = glob_min( 'icectl', v_ip ) 
     140         zdiag_vlmin = glob_min( 'icectl', v_il ) 
     141         zdiag_aimin = glob_min( 'icectl', a_i  ) 
     142         zdiag_simin = glob_min( 'icectl', sv_i ) 
    138143         zdiag_eimin = glob_min( 'icectl', SUM( e_i, dim=3 ) ) 
    139144         zdiag_esmin = glob_min( 'icectl', SUM( e_s, dim=3 ) ) 
     
    143148         zetrp = glob_sum( 'icectl', diag_adv_heat * e1e2t ) 
    144149 
    145          ! ice area (+epsi10 to set a threshold > 0 when there is no ice)  
     150         ! ice area (+epsi10 to set a threshold > 0 when there is no ice) 
    146151         zarea = glob_sum( 'icectl', SUM( a_i + epsi10, dim=3 ) * e1e2t ) 
    147152 
     
    155160               &                   WRITE(numout,*)   cd_routine,' : violation heat cons. [J]  = ',zdiag_heat * rDt_ice 
    156161            ! check negative values 
    157             IF( zdiag_vmin  < 0. ) WRITE(numout,*)   cd_routine,' : violation v_i < 0         = ',zdiag_vmin 
    158             IF( zdiag_amin  < 0. ) WRITE(numout,*)   cd_routine,' : violation a_i < 0         = ',zdiag_amin 
    159             IF( zdiag_smin  < 0. ) WRITE(numout,*)   cd_routine,' : violation s_i < 0         = ',zdiag_smin 
    160             IF( zdiag_eimin < 0. ) WRITE(numout,*)   cd_routine,' : violation e_i < 0         = ',zdiag_eimin 
    161             IF( zdiag_esmin < 0. ) WRITE(numout,*)   cd_routine,' : violation e_s < 0         = ',zdiag_esmin 
     162            IF( zdiag_vimin < 0. ) WRITE(numout,*)   cd_routine,' : violation v_i  < 0        = ',zdiag_vimin 
     163            IF( zdiag_vsmin < 0. ) WRITE(numout,*)   cd_routine,' : violation v_s  < 0        = ',zdiag_vsmin 
     164            IF( zdiag_vpmin < 0. ) WRITE(numout,*)   cd_routine,' : violation v_ip < 0        = ',zdiag_vpmin 
     165            IF( zdiag_vlmin < 0. ) WRITE(numout,*)   cd_routine,' : violation v_il < 0        = ',zdiag_vlmin 
     166            IF( zdiag_aimin < 0. ) WRITE(numout,*)   cd_routine,' : violation a_i  < 0        = ',zdiag_aimin 
     167            IF( zdiag_simin < 0. ) WRITE(numout,*)   cd_routine,' : violation s_i  < 0        = ',zdiag_simin 
     168            IF( zdiag_eimin < 0. ) WRITE(numout,*)   cd_routine,' : violation e_i  < 0        = ',zdiag_eimin 
     169            IF( zdiag_esmin < 0. ) WRITE(numout,*)   cd_routine,' : violation e_s  < 0        = ',zdiag_esmin 
    162170            ! check maximum ice concentration 
    163             IF( zdiag_amax > MAX(rn_amax_n,rn_amax_s)+epsi10 .AND. cd_routine /= 'icedyn_adv' .AND. cd_routine /= 'icedyn_rdgrft' ) & 
    164                &                   WRITE(numout,*)   cd_routine,' : violation a_i > amax      = ',zdiag_amax 
     171            IF( zdiag_aimax>MAX(rn_amax_n,rn_amax_s)+epsi10 .AND. cd_routine /= 'icedyn_adv' .AND. cd_routine /= 'icedyn_rdgrft' ) & 
     172               &                   WRITE(numout,*)   cd_routine,' : violation a_i > amax      = ',zdiag_aimax 
    165173            ! check if advection scheme is conservative 
    166174            IF( ABS(zvtrp) > zchk_m * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 
    167                &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [kg] = ',zvtrp * rdt_ice 
     175               &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [kg] = ',zvtrp * rDt_ice 
    168176            IF( ABS(zetrp) > zchk_t * rn_icechk_glo * zarea .AND. cd_routine == 'icedyn_adv' ) & 
    169                &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [J]  = ',zetrp * rdt_ice 
     177               &                   WRITE(numout,*)   cd_routine,' : violation adv scheme [J]  = ',zetrp * rDt_ice 
    170178         ENDIF 
    171179         ! 
     
    183191      !!              It prints in ocean.output if there is a violation of conservation at each time-step 
    184192      !!              The thresholds (zchk_m, zchk_s, zchk_t) determine the violations 
    185       !!              For salt and heat thresholds, ice is considered to have a salinity of 10  
    186       !!              and a heat content of 3e5 J/kg (=latent heat of fusion)  
     193      !!              For salt and heat thresholds, ice is considered to have a salinity of 10 
     194      !!              and a heat content of 3e5 J/kg (=latent heat of fusion) 
    187195      !!------------------------------------------------------------------- 
    188196      CHARACTER(len=*), INTENT(in) ::   cd_routine    ! name of the routine 
     
    193201      ! water flux 
    194202      ! -- mass diag -- ! 
    195       zdiag_mass = glob_sum( 'icectl', (  wfx_ice   + wfx_snw   + wfx_spr + wfx_sub & 
    196          &                              + diag_vice + diag_vsnw - diag_adv_mass ) * e1e2t ) 
     203      zdiag_mass = glob_sum( 'icectl', (  wfx_ice   + wfx_snw   + wfx_spr   + wfx_sub + wfx_pnd & 
     204         &                              + diag_vice + diag_vsnw + diag_vpnd - diag_adv_mass ) * e1e2t ) 
    197205 
    198206      ! -- salt diag -- ! 
     
    200208 
    201209      ! -- heat diag -- ! 
    202       zdiag_heat  = glob_sum( 'icectl', ( qt_oce_ai - qt_atm_oi + diag_heat - diag_adv_heat ) * e1e2t ) 
     210      zdiag_heat = glob_sum( 'icectl', ( qt_oce_ai - qt_atm_oi + diag_heat - diag_adv_heat ) * e1e2t ) 
    203211      ! equivalent to this: 
    204212      !!zdiag_heat = glob_sum( 'icectl', ( -diag_heat + hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw & 
     
    206214      !!   &                                          ) * e1e2t ) 
    207215 
    208       ! ice area (+epsi10 to set a threshold > 0 when there is no ice)  
     216      ! ice area (+epsi10 to set a threshold > 0 when there is no ice) 
    209217      zarea = glob_sum( 'icectl', SUM( a_i + epsi10, dim=3 ) * e1e2t ) 
    210218 
     
    235243      !! 
    236244      REAL(wp), DIMENSION(jpi,jpj) ::   zdiag_mass, zdiag_salt, zdiag_heat, & 
    237          &                              zdiag_amin, zdiag_vmin, zdiag_smin, zdiag_emin !!, zdiag_amax   
     245         &                              zdiag_amin, zdiag_vmin, zdiag_smin, zdiag_emin !!, zdiag_amax 
    238246      INTEGER ::   jl, jk 
    239247      LOGICAL ::   ll_stop_m = .FALSE. 
     
    245253      IF( icount == 0 ) THEN 
    246254 
    247          pdiag_v = SUM( v_i  * rhoi + v_s * rhos, dim=3 ) 
    248          pdiag_s = SUM( sv_i * rhoi             , dim=3 ) 
     255         pdiag_v = SUM( v_i  * rhoi + v_s * rhos + ( v_ip + v_il ) * rhow, dim=3 ) 
     256         pdiag_s = SUM( sv_i * rhoi , dim=3 ) 
    249257         pdiag_t = SUM( SUM( e_i, dim=4 ), dim=3 ) + SUM( SUM( e_s, dim=4 ), dim=3 ) 
    250258 
     
    253261            &       wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + wfx_ice_sub + wfx_spr 
    254262         ! salt flux 
    255          pdiag_fs = sfx_bri + sfx_bog + sfx_bom + sfx_sum + sfx_sni + sfx_opw + sfx_res + sfx_dyn + sfx_sub + sfx_lam  
     263         pdiag_fs = sfx_bri + sfx_bog + sfx_bom + sfx_sum + sfx_sni + sfx_opw + sfx_res + sfx_dyn + sfx_sub + sfx_lam 
    256264         ! heat flux 
    257          pdiag_ft =   hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw  &  
     265         pdiag_ft =   hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw  & 
    258266            &       - hfx_thd - hfx_dyn - hfx_res - hfx_sub - hfx_spr 
    259267 
     
    261269 
    262270         ! -- mass diag -- ! 
    263          zdiag_mass =   ( SUM( v_i * rhoi + v_s * rhos, dim=3 ) - pdiag_v ) * r1_Dt_ice                             & 
     271         zdiag_mass =   ( SUM( v_i * rhoi + v_s * rhos + ( v_ip + v_il ) * rhow, dim=3 ) - pdiag_v ) * r1_Dt_ice    & 
    264272            &         + ( wfx_bog + wfx_bom + wfx_sum + wfx_sni + wfx_opw + wfx_res + wfx_dyn + wfx_lam + wfx_pnd + & 
    265273            &             wfx_snw_sni + wfx_snw_sum + wfx_snw_dyn + wfx_snw_sub + wfx_ice_sub + wfx_spr )           & 
     
    275283         ! -- heat diag -- ! 
    276284         zdiag_heat =   ( SUM( SUM( e_i, dim=4 ), dim=3 ) + SUM( SUM( e_s, dim=4 ), dim=3 ) - pdiag_t ) * r1_Dt_ice & 
    277             &         + (  hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw                                &  
     285            &         + (  hfx_sum + hfx_bom + hfx_bog + hfx_dif + hfx_opw + hfx_snw                                & 
    278286            &            - hfx_thd - hfx_dyn - hfx_res - hfx_sub - hfx_spr )                                        & 
    279287            &         - pdiag_ft 
     
    316324         IF( ll_stop_s )   CALL ctl_stop( 'STOP', cd_routine//': ice salt conservation issue' ) 
    317325         IF( ll_stop_t )   CALL ctl_stop( 'STOP', cd_routine//': ice heat conservation issue' ) 
    318           
     326 
    319327      ENDIF 
    320328 
     
    324332      !!--------------------------------------------------------------------- 
    325333      !!                 ***  ROUTINE ice_cons_wri  *** 
    326       !!         
    327       !! ** Purpose :   create a NetCDF file named cdfile_name which contains  
     334      !! 
     335      !! ** Purpose :   create a NetCDF file named cdfile_name which contains 
    328336      !!                the instantaneous fields when conservation issue occurs 
    329337      !! 
     
    332340      CHARACTER(len=*), INTENT( in ) ::   cdfile_name      ! name of the file created 
    333341      REAL(wp), DIMENSION(:,:), INTENT( in ) ::   pdiag_mass, pdiag_salt, pdiag_heat, & 
    334          &                                        pdiag_amin, pdiag_vmin, pdiag_smin, pdiag_emin !!, pdiag_amax   
     342         &                                        pdiag_amin, pdiag_vmin, pdiag_smin, pdiag_emin !!, pdiag_amax 
    335343      !! 
    336344      INTEGER ::   inum 
    337345      !!---------------------------------------------------------------------- 
    338       !  
     346      ! 
    339347      IF(lwp) WRITE(numout,*) 
    340348      IF(lwp) WRITE(numout,*) 'ice_cons_wri : single instantaneous ice state' 
    341349      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~  named :', cdfile_name, '...nc' 
    342       IF(lwp) WRITE(numout,*)                 
     350      IF(lwp) WRITE(numout,*) 
    343351 
    344352      CALL iom_open( TRIM(cdfile_name), inum, ldwrt = .TRUE., kdlev = jpl, cdcomp = 'ICE' ) 
    345        
     353 
    346354      CALL iom_rstput( 0, 0, inum, 'cons_mass', pdiag_mass(:,:) , ktype = jp_r8 )    ! ice mass spurious lost/gain 
    347355      CALL iom_rstput( 0, 0, inum, 'cons_salt', pdiag_salt(:,:) , ktype = jp_r8 )    ! ice salt spurious lost/gain 
    348356      CALL iom_rstput( 0, 0, inum, 'cons_heat', pdiag_heat(:,:) , ktype = jp_r8 )    ! ice heat spurious lost/gain 
    349357      ! other diags 
    350       CALL iom_rstput( 0, 0, inum, 'aneg_count', pdiag_amin(:,:) , ktype = jp_r8 )    !  
    351       CALL iom_rstput( 0, 0, inum, 'vneg_count', pdiag_vmin(:,:) , ktype = jp_r8 )    !  
    352       CALL iom_rstput( 0, 0, inum, 'sneg_count', pdiag_smin(:,:) , ktype = jp_r8 )    !  
    353       CALL iom_rstput( 0, 0, inum, 'eneg_count', pdiag_emin(:,:) , ktype = jp_r8 )    !  
    354        
     358      CALL iom_rstput( 0, 0, inum, 'aneg_count', pdiag_amin(:,:) , ktype = jp_r8 )    ! 
     359      CALL iom_rstput( 0, 0, inum, 'vneg_count', pdiag_vmin(:,:) , ktype = jp_r8 )    ! 
     360      CALL iom_rstput( 0, 0, inum, 'sneg_count', pdiag_smin(:,:) , ktype = jp_r8 )    ! 
     361      CALL iom_rstput( 0, 0, inum, 'eneg_count', pdiag_emin(:,:) , ktype = jp_r8 )    ! 
     362      ! mean state 
     363      CALL iom_rstput( 0, 0, inum, 'icecon'    , SUM(a_i ,dim=3) , ktype = jp_r8 )    ! 
     364      CALL iom_rstput( 0, 0, inum, 'icevol'    , SUM(v_i ,dim=3) , ktype = jp_r8 )    ! 
     365      CALL iom_rstput( 0, 0, inum, 'snwvol'    , SUM(v_s ,dim=3) , ktype = jp_r8 )    ! 
     366      CALL iom_rstput( 0, 0, inum, 'pndvol'    , SUM(v_ip,dim=3) , ktype = jp_r8 )    ! 
     367      CALL iom_rstput( 0, 0, inum, 'lidvol'    , SUM(v_il,dim=3) , ktype = jp_r8 )    ! 
     368 
    355369      CALL iom_close( inum ) 
    356370 
    357371   END SUBROUTINE ice_cons_wri 
    358     
     372 
    359373   SUBROUTINE ice_ctl( kt ) 
    360374      !!------------------------------------------------------------------- 
    361       !!                   ***  ROUTINE ice_ctl ***  
    362       !!                  
     375      !!                   ***  ROUTINE ice_ctl *** 
     376      !! 
    363377      !! ** Purpose :   control checks 
    364378      !!------------------------------------------------------------------- 
     
    372386      inb_alp(:) = 0 
    373387      ialert_id = 0 
    374        
     388 
    375389      ! Alert if very high salinity 
    376390      ialert_id = ialert_id + 1 ! reference number of this alert 
     
    416430         END_3D 
    417431      END DO 
    418    
     432 
    419433      ! Alert if very warm ice 
    420434      ialert_id = ialert_id + 1 ! reference number of this alert 
     
    430444         END_3D 
    431445      END DO 
    432        
     446 
    433447      ! Alerte if very thick ice 
    434448      ialert_id = ialert_id + 1 ! reference number of this alert 
    435449      cl_alname(ialert_id) = ' Very thick ice ' ! name of the alert 
    436       jl = jpl  
     450      jl = jpl 
    437451      DO_2D( 1, 1, 1, 1 ) 
    438452         IF( h_i(ji,jj,jl) > 50._wp ) THEN 
     
    446460      ialert_id = ialert_id + 1 ! reference number of this alert 
    447461      cl_alname(ialert_id) = ' Very thin ice ' ! name of the alert 
    448       jl = 1  
     462      jl = 1 
    449463      DO_2D( 1, 1, 1, 1 ) 
    450464         IF( h_i(ji,jj,jl) < rn_himin ) THEN 
     
    470484      cl_alname(ialert_id) = ' Ice on continents ' ! name of the alert 
    471485      DO_2D( 1, 1, 1, 1 ) 
    472          IF( tmask(ji,jj,1) == 0._wp .AND. ( at_i(ji,jj) > 0._wp .OR. vt_i(ji,jj) > 0._wp ) ) THEN  
     486         IF( tmask(ji,jj,1) == 0._wp .AND. ( at_i(ji,jj) > 0._wp .OR. vt_i(ji,jj) > 0._wp ) ) THEN 
    473487            WRITE(numout,*) ' ALERTE :   Ice on continents ',at_i(ji,jj),vt_i(ji,jj) 
    474488            WRITE(numout,*) ' at i,j = ',ji,jj 
     
    482496      DO_2D( 1, 1, 1, 1 ) 
    483497         IF(  ( vt_i(ji,jj) == 0._wp .AND. at_i(ji,jj) >  0._wp ) .OR. & 
    484             & ( vt_i(ji,jj) >  0._wp .AND. at_i(ji,jj) == 0._wp ) ) THEN  
     498            & ( vt_i(ji,jj) >  0._wp .AND. at_i(ji,jj) == 0._wp ) ) THEN 
    485499            WRITE(numout,*) ' ALERTE :   Incompatible ice conc and vol ',at_i(ji,jj),vt_i(ji,jj) 
    486500            WRITE(numout,*) ' at i,j = ',ji,jj 
     
    506520     ! 
    507521   END SUBROUTINE ice_ctl 
    508   
     522 
    509523   SUBROUTINE ice_prt( kt, ki, kj, kn, cd1 ) 
    510524      !!------------------------------------------------------------------- 
    511       !!                   ***  ROUTINE ice_prt ***  
    512       !!                  
    513       !! ** Purpose :   Writes global ice state on the (i,j) point  
    514       !!                in ocean.ouput  
    515       !!                3 possibilities exist  
     525      !!                   ***  ROUTINE ice_prt *** 
     526      !! 
     527      !! ** Purpose :   Writes global ice state on the (i,j) point 
     528      !!                in ocean.ouput 
     529      !!                3 possibilities exist 
    516530      !!                n = 1/-1 -> simple ice state 
    517531      !!                n = 2    -> exhaustive state 
    518532      !!                n = 3    -> ice/ocean salt fluxes 
    519533      !! 
    520       !! ** input   :   point coordinates (i,j)  
     534      !! ** input   :   point coordinates (i,j) 
    521535      !!                n : number of the option 
    522536      !!------------------------------------------------------------------- 
     
    536550            !  Simple state 
    537551            !---------------- 
    538              
     552 
    539553            IF ( kn == 1 .OR. kn == -1 ) THEN 
    540554               WRITE(numout,*) ' ice_prt - Point : ',ji,jj 
     
    552566               WRITE(numout,*) ' - Cell values ' 
    553567               WRITE(numout,*) '   ~~~~~~~~~~~ ' 
    554                WRITE(numout,*) ' at_i          : ', at_i(ji,jj)        
    555                WRITE(numout,*) ' ato_i         : ', ato_i(ji,jj)        
    556                WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj)        
    557                WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj)        
     568               WRITE(numout,*) ' at_i          : ', at_i(ji,jj) 
     569               WRITE(numout,*) ' ato_i         : ', ato_i(ji,jj) 
     570               WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj) 
     571               WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj) 
    558572               DO jl = 1, jpl 
    559573                  WRITE(numout,*) ' - Category (', jl,')' 
     
    578592            !  Exhaustive state 
    579593            !-------------------- 
    580              
     594 
    581595            IF ( kn .EQ. 2 ) THEN 
    582596               WRITE(numout,*) ' ice_prt - Point : ',ji,jj 
     
    584598               WRITE(numout,*) ' Exhaustive state ' 
    585599               WRITE(numout,*) ' lat - long ', gphit(ji,jj), glamt(ji,jj) 
    586                WRITE(numout,*)  
     600               WRITE(numout,*) 
    587601               WRITE(numout,*) ' - Cell values ' 
    588602               WRITE(numout,*) '   ~~~~~~~~~~~ ' 
    589                WRITE(numout,*) ' at_i          : ', at_i(ji,jj)        
    590                WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj)        
    591                WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj)        
     603               WRITE(numout,*) ' at_i          : ', at_i(ji,jj) 
     604               WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj) 
     605               WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj) 
    592606               WRITE(numout,*) ' u_ice(i-1,j)  : ', u_ice(ji-1,jj) 
    593607               WRITE(numout,*) ' u_ice(i  ,j)  : ', u_ice(ji,jj) 
     
    596610               WRITE(numout,*) ' strength      : ', strength(ji,jj) 
    597611               WRITE(numout,*) 
    598                 
     612 
    599613               DO jl = 1, jpl 
    600614                  WRITE(numout,*) ' - Category (',jl,')' 
    601                   WRITE(numout,*) '   ~~~~~~~~         '  
     615                  WRITE(numout,*) '   ~~~~~~~~         ' 
    602616                  WRITE(numout,*) ' h_i        : ', h_i(ji,jj,jl)              , ' h_s        : ', h_s(ji,jj,jl) 
    603617                  WRITE(numout,*) ' t_i        : ', t_i(ji,jj,1:nlay_i,jl) 
    604618                  WRITE(numout,*) ' t_su       : ', t_su(ji,jj,jl)             , ' t_s        : ', t_s(ji,jj,1:nlay_s,jl) 
    605619                  WRITE(numout,*) ' s_i        : ', s_i(ji,jj,jl)              , ' o_i        : ', o_i(ji,jj,jl) 
    606                   WRITE(numout,*) ' a_i        : ', a_i(ji,jj,jl)              , ' a_i_b      : ', a_i_b(ji,jj,jl)    
    607                   WRITE(numout,*) ' v_i        : ', v_i(ji,jj,jl)              , ' v_i_b      : ', v_i_b(ji,jj,jl)    
    608                   WRITE(numout,*) ' v_s        : ', v_s(ji,jj,jl)              , ' v_s_b      : ', v_s_b(ji,jj,jl)   
    609                   WRITE(numout,*) ' e_i1       : ', e_i(ji,jj,1,jl)            , ' ei1        : ', e_i_b(ji,jj,1,jl)  
    610                   WRITE(numout,*) ' e_i2       : ', e_i(ji,jj,2,jl)            , ' ei2_b      : ', e_i_b(ji,jj,2,jl)   
    611                   WRITE(numout,*) ' e_snow     : ', e_s(ji,jj,1,jl)            , ' e_snow_b   : ', e_s_b(ji,jj,1,jl)  
    612                   WRITE(numout,*) ' sv_i       : ', sv_i(ji,jj,jl)             , ' sv_i_b     : ', sv_i_b(ji,jj,jl)    
     620                  WRITE(numout,*) ' a_i        : ', a_i(ji,jj,jl)              , ' a_i_b      : ', a_i_b(ji,jj,jl) 
     621                  WRITE(numout,*) ' v_i        : ', v_i(ji,jj,jl)              , ' v_i_b      : ', v_i_b(ji,jj,jl) 
     622                  WRITE(numout,*) ' v_s        : ', v_s(ji,jj,jl)              , ' v_s_b      : ', v_s_b(ji,jj,jl) 
     623                  WRITE(numout,*) ' e_i1       : ', e_i(ji,jj,1,jl)            , ' ei1        : ', e_i_b(ji,jj,1,jl) 
     624                  WRITE(numout,*) ' e_i2       : ', e_i(ji,jj,2,jl)            , ' ei2_b      : ', e_i_b(ji,jj,2,jl) 
     625                  WRITE(numout,*) ' e_snow     : ', e_s(ji,jj,1,jl)            , ' e_snow_b   : ', e_s_b(ji,jj,1,jl) 
     626                  WRITE(numout,*) ' sv_i       : ', sv_i(ji,jj,jl)             , ' sv_i_b     : ', sv_i_b(ji,jj,jl) 
    613627               END DO !jl 
    614                 
     628 
    615629               WRITE(numout,*) 
    616630               WRITE(numout,*) ' - Heat / FW fluxes ' 
     
    620634               WRITE(numout,*) ' qns_ini       : ', (1._wp-at_i_b(ji,jj)) * qns(ji,jj) + SUM( a_i_b(ji,jj,:) * qns_ice(ji,jj,:) ) 
    621635               WRITE(numout,*) 
    622                WRITE(numout,*)  
    623                WRITE(numout,*) ' sst        : ', sst_m(ji,jj)   
    624                WRITE(numout,*) ' sss        : ', sss_m(ji,jj)   
    625                WRITE(numout,*)  
     636               WRITE(numout,*) 
     637               WRITE(numout,*) ' sst        : ', sst_m(ji,jj) 
     638               WRITE(numout,*) ' sss        : ', sss_m(ji,jj) 
     639               WRITE(numout,*) 
    626640               WRITE(numout,*) ' - Stresses ' 
    627641               WRITE(numout,*) '   ~~~~~~~~ ' 
    628                WRITE(numout,*) ' utau_ice   : ', utau_ice(ji,jj)  
     642               WRITE(numout,*) ' utau_ice   : ', utau_ice(ji,jj) 
    629643               WRITE(numout,*) ' vtau_ice   : ', vtau_ice(ji,jj) 
    630                WRITE(numout,*) ' utau       : ', utau    (ji,jj)  
     644               WRITE(numout,*) ' utau       : ', utau    (ji,jj) 
    631645               WRITE(numout,*) ' vtau       : ', vtau    (ji,jj) 
    632646            ENDIF 
    633              
     647 
    634648            !--------------------- 
    635649            ! Salt / heat fluxes 
    636650            !--------------------- 
    637              
     651 
    638652            IF ( kn .EQ. 3 ) THEN 
    639653               WRITE(numout,*) ' ice_prt - Point : ',ji,jj 
     
    650664               WRITE(numout,*) ' qt_atm_oi    : ', qt_atm_oi(ji,jj) 
    651665               WRITE(numout,*) ' qt_oce_ai    : ', qt_oce_ai(ji,jj) 
    652                WRITE(numout,*) ' dhc          : ', diag_heat(ji,jj)               
     666               WRITE(numout,*) ' dhc          : ', diag_heat(ji,jj) 
    653667               WRITE(numout,*) 
    654668               WRITE(numout,*) ' hfx_dyn      : ', hfx_dyn(ji,jj) 
    655669               WRITE(numout,*) ' hfx_thd      : ', hfx_thd(ji,jj) 
    656670               WRITE(numout,*) ' hfx_res      : ', hfx_res(ji,jj) 
    657                WRITE(numout,*) ' qsb_ice_bot  : ', qsb_ice_bot(ji,jj)  
     671               WRITE(numout,*) ' qsb_ice_bot  : ', qsb_ice_bot(ji,jj) 
    658672               WRITE(numout,*) ' qlead        : ', qlead(ji,jj) * r1_Dt_ice 
    659673               WRITE(numout,*) 
     
    666680               WRITE(numout,*) 
    667681               WRITE(numout,*) ' - Momentum fluxes ' 
    668                WRITE(numout,*) ' utau      : ', utau(ji,jj)  
     682               WRITE(numout,*) ' utau      : ', utau(ji,jj) 
    669683               WRITE(numout,*) ' vtau      : ', vtau(ji,jj) 
    670             ENDIF  
     684            ENDIF 
    671685            WRITE(numout,*) ' ' 
    672686            ! 
     
    680694      !!                  ***  ROUTINE ice_prt3D *** 
    681695      !! 
    682       !! ** Purpose : CTL prints of ice arrays in case sn_cfctl%prtctl is activated  
     696      !! ** Purpose : CTL prints of ice arrays in case sn_cfctl%prtctl is activated 
    683697      !! 
    684698      !!------------------------------------------------------------------- 
    685699      CHARACTER(len=*), INTENT(in) ::   cd_routine    ! name of the routine 
    686700      INTEGER                      ::   jk, jl        ! dummy loop indices 
    687        
     701 
    688702      CALL prt_ctl_info(' ========== ') 
    689703      CALL prt_ctl_info( cd_routine ) 
     
    704718      CALL prt_ctl(tab2d_1=delta_i    , clinfo1=' delta_i     :') 
    705719      CALL prt_ctl(tab2d_1=u_ice      , clinfo1=' u_ice       :', tab2d_2=v_ice      , clinfo2=' v_ice       :') 
    706         
     720 
    707721      DO jl = 1, jpl 
    708722         CALL prt_ctl_info(' ') 
     
    721735         CALL prt_ctl(tab2d_1=sv_i       (:,:,jl)        , clinfo1= ' sv_i        : ') 
    722736         CALL prt_ctl(tab2d_1=oa_i       (:,:,jl)        , clinfo1= ' oa_i        : ') 
    723           
     737 
    724738         DO jk = 1, nlay_i 
    725739            CALL prt_ctl_info(' - Layer : ', ivar=jk) 
     
    728742         END DO 
    729743      END DO 
    730        
     744 
    731745      CALL prt_ctl_info(' ') 
    732746      CALL prt_ctl_info(' - Stresses : ') 
     
    734748      CALL prt_ctl(tab2d_1=utau       , clinfo1= ' utau      : ', tab2d_2=vtau       , clinfo2= ' vtau      : ') 
    735749      CALL prt_ctl(tab2d_1=utau_ice   , clinfo1= ' utau_ice  : ', tab2d_2=vtau_ice   , clinfo2= ' vtau_ice  : ') 
    736        
     750 
    737751   END SUBROUTINE ice_prt3D 
    738752 
     
    776790      ! -- mass diag -- ! 
    777791      zdiag_mass     = glob_sum( 'icectl', (  wfx_ice   + wfx_snw   + wfx_spr + wfx_sub & 
    778          &                                  + diag_vice + diag_vsnw - diag_adv_mass ) * e1e2t ) * rdt_ice 
     792         &                                  + diag_vice + diag_vsnw - diag_adv_mass ) * e1e2t ) * rDt_ice 
    779793      zdiag_adv_mass = glob_sum( 'icectl', diag_adv_mass * e1e2t ) * rDt_ice 
    780794 
    781795      ! -- salt diag -- ! 
    782       zdiag_salt     = glob_sum( 'icectl', ( sfx + diag_sice - diag_adv_salt ) * e1e2t ) * rdt_ice * 1.e-3 
     796      zdiag_salt     = glob_sum( 'icectl', ( sfx + diag_sice - diag_adv_salt ) * e1e2t ) * rDt_ice * 1.e-3 
    783797      zdiag_adv_salt = glob_sum( 'icectl', diag_adv_salt * e1e2t ) * rDt_ice * 1.e-3 
    784798 
     
    839853      !!---------------------------------------------------------------------- 
    840854      !!                  ***  ROUTINE ice_drift_init  *** 
    841       !!                    
     855      !! 
    842856      !! ** Purpose :   create output file, initialise arrays 
    843857      !!---------------------------------------------------------------------- 
     
    865879      ! 
    866880   END SUBROUTINE ice_drift_init 
    867        
     881 
    868882#else 
    869883   !!---------------------------------------------------------------------- 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn.F90

    r13472 r14021  
    22   !!====================================================================== 
    33   !!                     ***  MODULE  icedyn  *** 
    4    !!   Sea-Ice dynamics : master routine for sea ice dynamics  
     4   !!   Sea-Ice dynamics : master routine for sea ice dynamics 
    55   !!====================================================================== 
    66   !! history :  4.0  ! 2018  (C. Rousset)  original code SI3 [aka Sea Ice cube] 
     
    2929   USE lbclnk         ! lateral boundary conditions (or mpp links) 
    3030   USE timing         ! Timing 
     31   USE fldread        ! read input fields 
    3132 
    3233   IMPLICIT NONE 
     
    3536   PUBLIC   ice_dyn        ! called by icestp.F90 
    3637   PUBLIC   ice_dyn_init   ! called by icestp.F90 
    37     
     38 
    3839   INTEGER ::              nice_dyn   ! choice of the type of dynamics 
    3940   !                                        ! associated indices: 
    4041   INTEGER, PARAMETER ::   np_dynALL     = 1   ! full ice dynamics               (rheology + advection + ridging/rafting + correction) 
    41    INTEGER, PARAMETER ::   np_dynRHGADV  = 2   ! pure dynamics                   (rheology + advection)  
     42   INTEGER, PARAMETER ::   np_dynRHGADV  = 2   ! pure dynamics                   (rheology + advection) 
    4243   INTEGER, PARAMETER ::   np_dynADV1D   = 3   ! only advection 1D - test case from Schar & Smolarkiewicz 1996 
    4344   INTEGER, PARAMETER ::   np_dynADV2D   = 4   ! only advection 2D w prescribed vel.(rn_uvice + advection) 
     
    5051   REAL(wp) ::   rn_uice          !    prescribed u-vel (case np_dynADV1D & np_dynADV2D) 
    5152   REAL(wp) ::   rn_vice          !    prescribed v-vel (case np_dynADV1D & np_dynADV2D) 
    52     
     53 
     54   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_icbmsk   ! structure of input grounded icebergs mask (file informations, fields read) 
     55 
    5356   !! * Substitutions 
    5457#  include "do_loop_substitute.h90" 
     
    6366      !!------------------------------------------------------------------- 
    6467      !!               ***  ROUTINE ice_dyn  *** 
    65       !!                
     68      !! 
    6669      !! ** Purpose :   this routine manages sea ice dynamics 
    6770      !! 
     
    8184      ! 
    8285      ! controls 
    83       IF( ln_timing )   CALL timing_start('icedyn') 
     86      IF( ln_timing )   CALL timing_start('ice_dyn') 
    8487      ! 
    8588      IF( kt == nit000 .AND. lwp ) THEN 
     
    8891         WRITE(numout,*)'~~~~~~~' 
    8992      ENDIF 
    90       !                       
     93      ! 
    9194      ! retrieve thickness from volume for landfast param. and UMx advection scheme 
    9295      WHERE( a_i(:,:,:) >= epsi20 ) 
     
    106109      END WHERE 
    107110      ! 
     111      IF( ln_landfast_L16 ) THEN 
     112         CALL fld_read( kt, 1, sf_icbmsk ) 
     113         icb_mask(:,:) = sf_icbmsk(1)%fnow(:,:,1) 
     114      ENDIF 
    108115      ! 
    109116      SELECT CASE( nice_dyn )          !-- Set which dynamics is running 
     
    111118      CASE ( np_dynALL )           !==  all dynamical processes  ==! 
    112119         ! 
    113          CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology   
     120         CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology 
    114121         CALL ice_dyn_adv   ( kt )                                          ! -- advection of ice 
    115          CALL ice_dyn_rdgrft( kt )                                          ! -- ridging/rafting  
     122         CALL ice_dyn_rdgrft( kt )                                          ! -- ridging/rafting 
    116123         CALL ice_cor       ( kt , 1 )                                      ! -- Corrections 
    117124         ! 
    118125      CASE ( np_dynRHGADV  )       !==  no ridge/raft & no corrections ==! 
    119126         ! 
    120          CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology   
     127         CALL ice_dyn_rhg   ( kt, Kmm )                                     ! -- rheology 
    121128         CALL ice_dyn_adv   ( kt )                                          ! -- advection of ice 
    122129         CALL Hpiling                                                       ! -- simple pile-up (replaces ridging/rafting) 
     
    127134         ! --- monotonicity test from Schar & Smolarkiewicz 1996 --- ! 
    128135         ! CFL = 0.5 at a distance from the bound of 1/6 of the basin length 
    129          ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s  
     136         ! Then for dx = 2m and dt = 1s => rn_uice = u (1/6th) = 1m/s 
    130137         DO_2D( 1, 1, 1, 1 ) 
    131138            zcoefu = ( REAL(jpiglo+1)*0.5_wp - REAL(ji+nimpp-1) ) / ( REAL(jpiglo+1)*0.5_wp - 1._wp ) 
     
    149156      ! 
    150157      ! 
    151       ! diagnostics: divergence at T points  
     158      ! diagnostics: divergence at T points 
    152159      IF( iom_use('icediv') ) THEN 
    153160         ! 
     
    172179      ! 
    173180      ! controls 
    174       IF( ln_timing )   CALL timing_stop ('icedyn') 
     181      IF( ln_timing )   CALL timing_stop ('ice_dyn') 
    175182      ! 
    176183   END SUBROUTINE ice_dyn 
     
    216223      !! ** input   :   Namelist namdyn 
    217224      !!------------------------------------------------------------------- 
    218       INTEGER ::   ios, ioptio   ! Local integer output status for namelist read 
     225      INTEGER ::   ios, ioptio, ierror   ! Local integer output status for namelist read 
     226      ! 
     227      CHARACTER(len=256) ::   cn_dir     ! Root directory for location of ice files 
     228      TYPE(FLD_N)        ::   sn_icbmsk  ! informations about the grounded icebergs field to be read 
    219229      !! 
    220230      NAMELIST/namdyn/ ln_dynALL, ln_dynRHGADV, ln_dynADV1D, ln_dynADV2D, rn_uice, rn_vice,  & 
    221231         &             rn_ishlat ,                                                           & 
    222          &             ln_landfast_L16, rn_lf_depfra, rn_lf_bfr, rn_lf_relax, rn_lf_tensile 
     232         &             ln_landfast_L16, rn_lf_depfra, rn_lf_bfr, rn_lf_relax, rn_lf_tensile, & 
     233         &             sn_icbmsk, cn_dir 
    223234      !!------------------------------------------------------------------- 
    224235      ! 
     
    248259      ENDIF 
    249260      !                             !== set the choice of ice dynamics ==! 
    250       ioptio = 0  
     261      ioptio = 0 
    251262      !      !--- full dynamics                               (rheology + advection + ridging/rafting + correction) 
    252263      IF( ln_dynALL    ) THEN   ;   ioptio = ioptio + 1   ;   nice_dyn = np_dynALL       ;   ENDIF 
     
    269280      IF( .NOT.ln_landfast_L16 )   tau_icebfr(:,:) = 0._wp 
    270281      ! 
     282      !                                      !--- allocate and fill structure for grounded icebergs mask 
     283      IF( ln_landfast_L16 ) THEN 
     284         ALLOCATE( sf_icbmsk(1), STAT=ierror ) 
     285         IF( ierror > 0 ) THEN 
     286            CALL ctl_stop( 'ice_dyn_init: unable to allocate sf_icbmsk structure' ) ; RETURN 
     287         ENDIF 
     288         ! 
     289         CALL fld_fill( sf_icbmsk, (/ sn_icbmsk /), cn_dir, 'ice_dyn_init',   & 
     290            &                                               'landfast ice is a function of read grounded icebergs', 'icedyn' ) 
     291         ! 
     292         ALLOCATE( sf_icbmsk(1)%fnow(jpi,jpj,1) ) 
     293         IF( sf_icbmsk(1)%ln_tint )   ALLOCATE( sf_icbmsk(1)%fdta(jpi,jpj,1,2) ) 
     294         IF( TRIM(sf_icbmsk(1)%clrootname) == 'NOT USED' ) sf_icbmsk(1)%fnow(:,:,1) = 0._wp   ! not used field  (set to 0) 
     295      ELSE 
     296         icb_mask(:,:) = 0._wp 
     297      ENDIF 
     298      !                                      !--- other init 
    271299      CALL ice_dyn_rdgrft_init          ! set ice ridging/rafting parameters 
    272300      CALL ice_dyn_rhg_init             ! set ice rheology parameters 
     
    279307   !!   Default option         Empty module           NO SI3 sea-ice model 
    280308   !!---------------------------------------------------------------------- 
    281 #endif  
     309#endif 
    282310 
    283311   !!====================================================================== 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn_adv_pra.F90

    r14017 r14021  
    156156 
    157157         ! diagnostics 
    158          zdiag_adv_mass(:,:) =   SUM(  pv_i(:,:,:) , dim=3 ) * rhoi + SUM(  pv_s(:,:,:) , dim=3 ) * rhos 
     158         zdiag_adv_mass(:,:) =   SUM( pv_i (:,:,:) , dim=3 ) * rhoi + SUM( pv_s (:,:,:) , dim=3 ) * rhos & 
     159            &                  + SUM( pv_ip(:,:,:) , dim=3 ) * rhow + SUM( pv_il(:,:,:) , dim=3 ) * rhow 
    159160         zdiag_adv_salt(:,:) =   SUM( psv_i(:,:,:) , dim=3 ) * rhoi 
    160161         zdiag_adv_heat(:,:) = - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 
     
    178179               z0ei(:,:,jk,jl) = pe_i(:,:,jk,jl) * e1e2t(:,:) ! Ice  heat content 
    179180            END DO 
    180             IF ( ln_pnd_LEV ) THEN 
     181            IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    181182               z0ap(:,:,jl) = pa_ip(:,:,jl) * e1e2t(:,:)      ! Melt pond fraction 
    182183               z0vp(:,:,jl) = pv_ip(:,:,jl) * e1e2t(:,:)      ! Melt pond volume 
     
    214215            END DO 
    215216            ! 
    216             IF ( ln_pnd_LEV ) THEN 
     217            IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    217218               CALL adv_x( zdt , zudy , 1._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap )    !--- melt pond fraction 
    218219               CALL adv_y( zdt , zvdx , 0._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) 
     
    249250                  &                                 sxxe(:,:,jk,:), sye(:,:,jk,:), syye(:,:,jk,:), sxye(:,:,jk,:) ) 
    250251            END DO 
    251             IF ( ln_pnd_LEV ) THEN 
     252            IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    252253               CALL adv_y( zdt , zvdx , 1._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap )    !--- melt pond fraction 
    253254               CALL adv_x( zdt , zudy , 0._wp , zarea , z0ap , sxap , sxxap , syap , syyap , sxyap ) 
     
    278279         CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ei  , 'T', 1._wp, sxe   , 'T', -1._wp, sye   , 'T', -1._wp  & ! ice enthalpy 
    279280            &                                , sxxe  , 'T', 1._wp, syye  , 'T',  1._wp, sxye  , 'T',  1._wp  ) 
    280          IF ( ln_pnd_LEV ) THEN 
     281         IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    281282            CALL lbc_lnk_multi( 'icedyn_adv_pra', z0ap , 'T', 1._wp, sxap , 'T', -1._wp, syap , 'T', -1._wp  & ! melt pond fraction 
    282283               &                                , sxxap, 'T', 1._wp, syyap, 'T',  1._wp, sxyap, 'T',  1._wp  & 
     
    302303               pe_i(:,:,jk,jl) = z0ei(:,:,jk,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
    303304            END DO 
    304             IF ( ln_pnd_LEV ) THEN 
     305            IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    305306               pa_ip(:,:,jl) = z0ap(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
    306307               pv_ip(:,:,jl) = z0vp(:,:,jl) * r1_e1e2t(:,:) * tmask(:,:,1) 
     
    320321         ! 
    321322         ! --- diagnostics --- ! 
    322          diag_adv_mass(:,:) = diag_adv_mass(:,:) + (   SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos & 
     323         diag_adv_mass(:,:) = diag_adv_mass(:,:) + (   SUM( pv_i (:,:,:) , dim=3 ) * rhoi + SUM( pv_s (:,:,:) , dim=3 ) * rhos & 
     324            &                                        + SUM( pv_ip(:,:,:) , dim=3 ) * rhow + SUM( pv_il(:,:,:) , dim=3 ) * rhow & 
    323325            &                                        - zdiag_adv_mass(:,:) ) * z1_dt 
    324326         diag_adv_salt(:,:) = diag_adv_salt(:,:) + (   SUM( psv_i(:,:,:) , dim=3 ) * rhoi & 
     
    769771               !                               ! -- check h_ip -- ! 
    770772               ! if h_ip is larger than the surrounding 9 pts => reduce h_ip and increase a_ip 
    771                IF( ln_pnd_LEV .AND. pv_ip(ji,jj,jl) > 0._wp ) THEN 
     773               IF( ln_pnd_LEV .OR. ln_pnd_TOPO .AND. pv_ip(ji,jj,jl) > 0._wp ) THEN 
    772774                  zhip = pv_ip(ji,jj,jl) / MAX( epsi20, pa_ip(ji,jj,jl) ) 
    773775                  IF( zhip > phip_max(ji,jj,jl) .AND. pa_ip(ji,jj,jl) < 0.15 ) THEN 
     
    10151017            END DO 
    10161018            ! 
    1017             IF( ln_pnd_LEV ) THEN                                    ! melt pond fraction 
     1019            IF( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN                                    ! melt pond fraction 
    10181020               IF( iom_varid( numrir, 'sxap', ldstop = .FALSE. ) > 0 ) THEN 
    10191021                  CALL iom_get( numrir, jpdom_auto, 'sxap' , sxap , psgn = -1._wp ) 
     
    10571059            sxc0  = 0._wp   ;   syc0  = 0._wp   ;   sxxc0  = 0._wp   ;   syyc0  = 0._wp   ;   sxyc0  = 0._wp      ! snow layers heat content 
    10581060            sxe   = 0._wp   ;   sye   = 0._wp   ;   sxxe   = 0._wp   ;   syye   = 0._wp   ;   sxye   = 0._wp      ! ice layers heat content 
    1059             IF( ln_pnd_LEV ) THEN 
     1061            IF( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    10601062               sxap = 0._wp ;   syap = 0._wp    ;   sxxap = 0._wp    ;   syyap = 0._wp    ;   sxyap = 0._wp       ! melt pond fraction 
    10611063               sxvp = 0._wp ;   syvp = 0._wp    ;   sxxvp = 0._wp    ;   syyvp = 0._wp    ;   sxyvp = 0._wp       ! melt pond volume 
     
    11351137         END DO 
    11361138         ! 
    1137          IF( ln_pnd_LEV ) THEN                                       ! melt pond fraction 
     1139         IF( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN                                       ! melt pond fraction 
    11381140            CALL iom_rstput( iter, nitrst, numriw, 'sxap' , sxap  ) 
    11391141            CALL iom_rstput( iter, nitrst, numriw, 'syap' , syap  ) 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn_adv_umx.F90

    r13633 r14021  
    1414   !!   ultimate_x(_y)    : compute a tracer value at velocity points using ULTIMATE scheme at various orders 
    1515   !!   macho             : compute the fluxes 
    16    !!   nonosc_ice        : limit the fluxes using a non-oscillatory algorithm  
     16   !!   nonosc_ice        : limit the fluxes using a non-oscillatory algorithm 
    1717   !!---------------------------------------------------------------------- 
    1818   USE phycst         ! physical constant 
     
    6363      !!---------------------------------------------------------------------- 
    6464      !!                  ***  ROUTINE ice_dyn_adv_umx  *** 
    65       !!  
    66       !! **  Purpose :   Compute the now trend due to total advection of  
     65      !! 
     66      !! **  Purpose :   Compute the now trend due to total advection of 
    6767      !!                 tracers and add it to the general trend of tracer equations 
    6868      !!                 using an "Ultimate-Macho" scheme 
    6969      !! 
    70       !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74.  
     70      !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74. 
    7171      !!---------------------------------------------------------------------- 
    7272      INTEGER                     , INTENT(in   ) ::   kn_umx     ! order of the scheme (1-5=UM or 20=CEN2) 
     
    103103      REAL(wp), DIMENSION(jpi,jpj,nlay_s,jpl) ::   ze_s, zes_max 
    104104      ! 
    105       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zuv_ho, zvv_ho, zuv_ups, zvv_ups, z1_vi, z1_vs  
     105      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zuv_ho, zvv_ho, zuv_ups, zvv_ups, z1_vi, z1_vs 
    106106      !! diagnostics 
    107       REAL(wp), DIMENSION(jpi,jpj)            ::   zdiag_adv_mass, zdiag_adv_salt, zdiag_adv_heat       
     107      REAL(wp), DIMENSION(jpi,jpj)            ::   zdiag_adv_mass, zdiag_adv_salt, zdiag_adv_heat 
    108108      !!---------------------------------------------------------------------- 
    109109      ! 
     
    131131         ELSEWHERE                      ; ze_s(:,:,jk,:) = 0._wp 
    132132         END WHERE 
    133       END DO    
     133      END DO 
    134134      CALL icemax4D( ze_i , zei_max ) 
    135135      CALL icemax4D( ze_s , zes_max ) 
     
    143143      zcflnow(1) =                  MAXVAL( ABS( pu_ice(:,:) ) * rDt_ice * r1_e1u(:,:) ) 
    144144      zcflnow(1) = MAX( zcflnow(1), MAXVAL( ABS( pv_ice(:,:) ) * rDt_ice * r1_e2v(:,:) ) ) 
    145        
     145 
    146146      ! non-blocking global communication send zcflnow and receive zcflprv 
    147147      CALL mpp_delay_max( 'icedyn_adv_umx', 'cflice', zcflnow(:), zcflprv(:), kt == nitend - nn_fsbc + 1 ) 
     
    157157      zvdx(:,:) = pv_ice(:,:) * e1v(:,:) 
    158158      ! 
    159       ! setup transport for each ice cat  
     159      ! setup transport for each ice cat 
    160160      DO jl = 1, jpl 
    161161         zu_cat(:,:,jl) = zudy(:,:) 
     
    182182 
    183183         ! diagnostics 
    184          zdiag_adv_mass(:,:) =   SUM(  pv_i(:,:,:) , dim=3 ) * rhoi + SUM(  pv_s(:,:,:) , dim=3 ) * rhos 
     184         zdiag_adv_mass(:,:) =   SUM( pv_i (:,:,:) , dim=3 ) * rhoi + SUM( pv_s (:,:,:) , dim=3 ) * rhos & 
     185            &                  + SUM( pv_ip(:,:,:) , dim=3 ) * rhow + SUM( pv_il(:,:,:) , dim=3 ) * rhow 
    185186         zdiag_adv_salt(:,:) =   SUM( psv_i(:,:,:) , dim=3 ) * rhoi 
    186187         zdiag_adv_heat(:,:) = - SUM(SUM( pe_i(:,:,1:nlay_i,:) , dim=4 ), dim=3 ) & 
     
    189190         ! record at_i before advection (for open water) 
    190191         zati1(:,:) = SUM( pa_i(:,:,:), dim=3 ) 
    191           
     192 
    192193         ! inverse of A and Ap 
    193194         WHERE( pa_i(:,:,:) >= epsi20 )   ;   z1_ai(:,:,:) = 1._wp / pa_i(:,:,:) 
     
    200201         ! setup a mask where advection will be upstream 
    201202         IF( ll_neg ) THEN 
    202             IF( .NOT. ALLOCATED(imsk_small) )   ALLOCATE( imsk_small(jpi,jpj,jpl) )  
    203             IF( .NOT. ALLOCATED(jmsk_small) )   ALLOCATE( jmsk_small(jpi,jpj,jpl) )  
     203            IF( .NOT. ALLOCATED(imsk_small) )   ALLOCATE( imsk_small(jpi,jpj,jpl) ) 
     204            IF( .NOT. ALLOCATED(jmsk_small) )   ALLOCATE( jmsk_small(jpi,jpj,jpl) ) 
    204205            DO jl = 1, jpl 
    205206               DO_2D( 1, 0, 1, 0 ) 
     
    231232            CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx, zua_ho , zva_ho , zcu_box, zcv_box, & 
    232233               &                                      zhvar, pv_i, zua_ups, zva_ups ) 
    233             !== Snw volume ==!          
     234            !== Snw volume ==! 
    234235            zhvar(:,:,:) = pv_s(:,:,:) * z1_ai(:,:,:) 
    235236            CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx, zua_ho , zva_ho , zcu_box, zcv_box, & 
     
    259260            CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx, zua_ho , zva_ho , zcu_box, zcv_box, & 
    260261               &                                      zhvar, pv_i, zua_ups, zva_ups ) 
    261             !== Snw volume ==!          
     262            !== Snw volume ==! 
    262263            zhvar(:,:,:) = pv_s(:,:,:) * z1_ai(:,:,:) 
    263264            CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx, zua_ho , zva_ho , zcu_box, zcv_box, & 
     
    315316                  &                                      zhvar, pe_i(:,:,jk,:), zuv_ups, zvv_ups ) 
    316317            END DO 
    317             !== Snow volume ==!          
     318            !== Snow volume ==! 
    318319            zuv_ups = zua_ups 
    319320            zvv_ups = zva_ups 
     
    338339         ! 
    339340         !== melt ponds ==! 
    340          IF ( ln_pnd_LEV ) THEN 
     341         IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    341342            ! concentration 
    342343            zamsk = 1._wp 
     
    358359 
    359360         ! --- Lateral boundary conditions --- ! 
    360          IF    ( ln_pnd_LEV .AND. ln_pnd_lids ) THEN 
     361         IF    ( ( ln_pnd_LEV .OR. ln_pnd_TOPO ) .AND. ln_pnd_lids ) THEN 
    361362            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    362363               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp, pv_il,'T',1._wp ) 
    363          ELSEIF( ln_pnd_LEV .AND. .NOT.ln_pnd_lids ) THEN 
     364         ELSEIF( ( ln_pnd_LEV .OR. ln_pnd_TOPO ) .AND. .NOT.ln_pnd_lids ) THEN 
    364365            CALL lbc_lnk_multi( 'icedyn_adv_umx', pa_i,'T',1._wp, pv_i,'T',1._wp, pv_s,'T',1._wp, psv_i,'T',1._wp, poa_i,'T',1._wp & 
    365366               &                                , pa_ip,'T',1._wp, pv_ip,'T',1._wp ) 
     
    373374         zati2(:,:) = SUM( pa_i(:,:,:), dim=3 ) 
    374375         DO_2D( 0, 0, 0, 0 ) 
    375             pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) &  
     376            pato_i(ji,jj) = pato_i(ji,jj) - ( zati2(ji,jj) - zati1(ji,jj) ) & 
    376377               &                          - ( zudy(ji,jj) - zudy(ji-1,jj) + zvdx(ji,jj) - zvdx(ji,jj-1) ) * r1_e1e2t(ji,jj) * zdt 
    377378         END_2D 
     
    379380         ! 
    380381         ! --- diagnostics --- ! 
    381          diag_adv_mass(:,:) = diag_adv_mass(:,:) + (   SUM( pv_i(:,:,:) , dim=3 ) * rhoi + SUM( pv_s(:,:,:) , dim=3 ) * rhos & 
     382         diag_adv_mass(:,:) = diag_adv_mass(:,:) + (   SUM( pv_i (:,:,:) , dim=3 ) * rhoi + SUM( pv_s (:,:,:) , dim=3 ) * rhos & 
     383            &                                        + SUM( pv_ip(:,:,:) , dim=3 ) * rhow + SUM( pv_il(:,:,:) , dim=3 ) * rhow & 
    382384            &                                        - zdiag_adv_mass(:,:) ) * z1_dt 
    383385         diag_adv_salt(:,:) = diag_adv_salt(:,:) + (   SUM( psv_i(:,:,:) , dim=3 ) * rhoi & 
     
    404406   END SUBROUTINE ice_dyn_adv_umx 
    405407 
    406     
     408 
    407409   SUBROUTINE adv_umx( pamsk, kn_umx, jt, kt, pdt, pu, pv, puc, pvc, pubox, pvbox,  & 
    408410      &                                            pt, ptc, pua_ups, pva_ups, pua_ho, pva_ho ) 
    409411      !!---------------------------------------------------------------------- 
    410412      !!                  ***  ROUTINE adv_umx  *** 
    411       !!  
    412       !! **  Purpose :   Compute the now trend due to total advection of  
     413      !! 
     414      !! **  Purpose :   Compute the now trend due to total advection of 
    413415      !!                 tracers and add it to the general trend of tracer equations 
    414416      !! 
     
    432434      !! 
    433435      !!             in eq. c), one can solve the equation for  S (ln_advS=T), then dVS/dt = -div(uV * uS  / u) 
    434       !!                                                or for HS (ln_advS=F), then dVS/dt = -div(uA * uHS / u)  
     436      !!                                                or for HS (ln_advS=F), then dVS/dt = -div(uA * uHS / u) 
    435437      !! 
    436438      !! ** Note : - this method can lead to tiny negative V (-1.e-20) => set it to 0 while conserving mass etc. 
     
    460462      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out), OPTIONAL ::   pua_ho, pva_ho   ! high order u*a fluxes 
    461463      ! 
    462       INTEGER  ::   ji, jj, jl       ! dummy loop indices   
     464      INTEGER  ::   ji, jj, jl       ! dummy loop indices 
    463465      REAL(wp) ::   ztra             ! local scalar 
    464466      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zfu_ho , zfv_ho , zpt 
     
    466468      !!---------------------------------------------------------------------- 
    467469      ! 
    468       ! Upstream (_ups) fluxes  
     470      ! Upstream (_ups) fluxes 
    469471      ! ----------------------- 
    470472      CALL upstream( pamsk, jt, kt, pdt, pt, pu, pv, zt_ups, zfu_ups, zfv_ups ) 
    471        
    472       ! High order (_ho) fluxes  
     473 
     474      ! High order (_ho) fluxes 
    473475      ! ----------------------- 
    474476      SELECT CASE( kn_umx ) 
     
    504506                  zfv_ups(ji,jj,jl) = zfv_ups(ji,jj,jl) * pva_ups(ji,jj,jl) / pv(ji,jj) 
    505507               ELSE 
    506                   zfv_ho (ji,jj,jl) = 0._wp   
    507                   zfv_ups(ji,jj,jl) = 0._wp   
     508                  zfv_ho (ji,jj,jl) = 0._wp 
     509                  zfv_ups(ji,jj,jl) = 0._wp 
    508510               ENDIF 
    509511            END_2D 
     
    549551      DO jl = 1, jpl 
    550552         DO_2D( 0, 0, 0, 0 ) 
    551             ztra = - ( zfu_ho(ji,jj,jl) - zfu_ho(ji-1,jj,jl) + zfv_ho(ji,jj,jl) - zfv_ho(ji,jj-1,jl) )   
    552             ! 
    553             ptc(ji,jj,jl) = ( ptc(ji,jj,jl) + ztra * r1_e1e2t(ji,jj) * pdt ) * tmask(ji,jj,1)                
     553            ztra = - ( zfu_ho(ji,jj,jl) - zfu_ho(ji-1,jj,jl) + zfv_ho(ji,jj,jl) - zfv_ho(ji,jj-1,jl) ) 
     554            ! 
     555            ptc(ji,jj,jl) = ( ptc(ji,jj,jl) + ztra * r1_e1e2t(ji,jj) * pdt ) * tmask(ji,jj,1) 
    554556         END_2D 
    555557      END DO 
     
    561563      !!--------------------------------------------------------------------- 
    562564      !!                    ***  ROUTINE upstream  *** 
    563       !!      
     565      !! 
    564566      !! **  Purpose :   compute the upstream fluxes and upstream guess of tracer 
    565567      !!---------------------------------------------------------------------- 
     
    570572      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt               ! tracer fields 
    571573      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pu, pv           ! 2 ice velocity components 
    572       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_ups           ! upstream guess of tracer  
    573       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ups, pfv_ups ! upstream fluxes  
     574      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_ups           ! upstream guess of tracer 
     575      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ups, pfv_ups ! upstream fluxes 
    574576      ! 
    575577      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
     
    636638            ! 
    637639         ENDIF 
    638           
     640 
    639641      ENDIF 
    640642      ! 
     
    653655   END SUBROUTINE upstream 
    654656 
    655     
     657 
    656658   SUBROUTINE cen2( pamsk, jt, kt, pdt, pt, pu, pv, pt_ups, pfu_ups, pfv_ups, pfu_ho, pfv_ho ) 
    657659      !!--------------------------------------------------------------------- 
    658660      !!                    ***  ROUTINE cen2  *** 
    659       !!      
     661      !! 
    660662      !! **  Purpose :   compute the high order fluxes using a centered 
    661       !!                 second order scheme  
     663      !!                 second order scheme 
    662664      !!---------------------------------------------------------------------- 
    663665      REAL(wp)                        , INTENT(in   ) ::   pamsk            ! advection of concentration (1) or other tracers (0) 
     
    667669      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt               ! tracer fields 
    668670      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pu, pv           ! 2 ice velocity components 
    669       REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt_ups           ! upstream guess of tracer  
    670       REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pfu_ups, pfv_ups ! upstream fluxes  
    671       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho, pfv_ho   ! high order fluxes  
     671      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt_ups           ! upstream guess of tracer 
     672      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pfu_ups, pfv_ups ! upstream fluxes 
     673      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho, pfv_ho   ! high order fluxes 
    672674      ! 
    673675      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
     
    748750         ENDIF 
    749751         IF( np_limiter == 1 )   CALL nonosc_ice( pamsk, pdt, pu, pv, pt, pt_ups, pfu_ups, pfv_ups, pfu_ho, pfv_ho ) 
    750           
     752 
    751753      ENDIF 
    752     
     754 
    753755   END SUBROUTINE cen2 
    754756 
    755     
     757 
    756758   SUBROUTINE macho( pamsk, kn_umx, jt, kt, pdt, pt, pu, pv, pubox, pvbox, pt_ups, pfu_ups, pfv_ups, pfu_ho, pfv_ho ) 
    757759      !!--------------------------------------------------------------------- 
    758760      !!                    ***  ROUTINE macho  *** 
    759       !!      
    760       !! **  Purpose :   compute the high order fluxes using Ultimate-Macho scheme   
     761      !! 
     762      !! **  Purpose :   compute the high order fluxes using Ultimate-Macho scheme 
    761763      !! 
    762764      !! **  Method  :   ... 
    763765      !! 
    764       !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74.  
     766      !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74. 
    765767      !!---------------------------------------------------------------------- 
    766768      REAL(wp)                        , INTENT(in   ) ::   pamsk            ! advection of concentration (1) or other tracers (0) 
     
    772774      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pu, pv           ! 2 ice velocity components 
    773775      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pubox, pvbox     ! upstream velocity 
    774       REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt_ups           ! upstream guess of tracer  
    775       REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pfu_ups, pfv_ups ! upstream fluxes  
    776       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho, pfv_ho   ! high order fluxes  
     776      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt_ups           ! upstream guess of tracer 
     777      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pfu_ups, pfv_ups ! upstream fluxes 
     778      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho, pfv_ho   ! high order fluxes 
    777779      ! 
    778780      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
     
    805807         !                                                        !--  limiter in y --! 
    806808         IF( np_limiter == 2 .OR. np_limiter == 3 )   CALL limiter_y( pdt, pv, pt, pfv_ups, pfv_ho ) 
    807          !          
     809         ! 
    808810         ! 
    809811      ELSE                                                               !==  even ice time step:  adv_y then adv_x  ==! 
     
    819821                  &                              + pt   (ji,jj,jl) * ( pv  (ji,jj   ) - pv  (ji,jj-1   ) ) * r1_e1e2t(ji,jj) & 
    820822                  &                                                                                        * pamsk           & 
    821                   &                             ) * pdt ) * tmask(ji,jj,1)  
     823                  &                             ) * pdt ) * tmask(ji,jj,1) 
    822824            END_2D 
    823825         END DO 
     
    843845      !!--------------------------------------------------------------------- 
    844846      !!                    ***  ROUTINE ultimate_x  *** 
    845       !!      
    846       !! **  Purpose :   compute tracer at u-points  
     847      !! 
     848      !! **  Purpose :   compute tracer at u-points 
    847849      !! 
    848850      !! **  Method  :   ... 
    849851      !! 
    850       !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74.  
     852      !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74. 
    851853      !!---------------------------------------------------------------------- 
    852854      REAL(wp)                        , INTENT(in   ) ::   pamsk     ! advection of concentration (1) or other tracers (0) 
     
    855857      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pu        ! ice i-velocity component 
    856858      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt        ! tracer fields 
    857       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_u      ! tracer at u-point  
    858       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho    ! high order flux  
     859      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_u      ! tracer at u-point 
     860      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfu_ho    ! high order flux 
    859861      ! 
    860862      INTEGER  ::   ji, jj, jl             ! dummy loop indices 
     
    895897      ! 
    896898      CASE( 1 )                                                   !==  1st order central TIM  ==! (Eq. 21) 
    897          !         
     899         ! 
    898900         DO jl = 1, jpl 
    899901            DO_2D( 0, 0, 1, 0 ) 
     
    909911               zcu  = pu(ji,jj) * r1_e2u(ji,jj) * pdt * r1_e1u(ji,jj) 
    910912               pt_u(ji,jj,jl) = 0.5_wp * umask(ji,jj,1) * (                                pt(ji+1,jj,jl) + pt(ji,jj,jl)   & 
    911                   &                                                            - zcu   * ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) )  
    912             END_2D 
    913          END DO 
    914          !   
     913                  &                                                            - zcu   * ( pt(ji+1,jj,jl) - pt(ji,jj,jl) ) ) 
     914            END_2D 
     915         END DO 
     916         ! 
    915917      CASE( 3 )                                                   !==  3rd order central TIM  ==! (Eq. 24) 
    916918         ! 
     
    981983      ! 
    982984   END SUBROUTINE ultimate_x 
    983     
    984   
     985 
     986 
    985987   SUBROUTINE ultimate_y( pamsk, kn_umx, pdt, pt, pv, pt_v, pfv_ho ) 
    986988      !!--------------------------------------------------------------------- 
    987989      !!                    ***  ROUTINE ultimate_y  *** 
    988       !!      
    989       !! **  Purpose :   compute tracer at v-points  
     990      !! 
     991      !! **  Purpose :   compute tracer at v-points 
    990992      !! 
    991993      !! **  Method  :   ... 
    992994      !! 
    993       !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74.  
     995      !! Reference : Leonard, B.P., 1991, Comput. Methods Appl. Mech. Eng., 88, 17-74. 
    994996      !!---------------------------------------------------------------------- 
    995997      REAL(wp)                        , INTENT(in   ) ::   pamsk     ! advection of concentration (1) or other tracers (0) 
     
    9981000      REAL(wp), DIMENSION(:,:  )      , INTENT(in   ) ::   pv        ! ice j-velocity component 
    9991001      REAL(wp), DIMENSION(:,:,:)      , INTENT(in   ) ::   pt        ! tracer fields 
    1000       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_v      ! tracer at v-point  
    1001       REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfv_ho    ! high order flux  
     1002      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pt_v      ! tracer at v-point 
     1003      REAL(wp), DIMENSION(jpi,jpj,jpl), INTENT(  out) ::   pfv_ho    ! high order flux 
    10021004      ! 
    10031005      INTEGER  ::   ji, jj, jl         ! dummy loop indices 
     
    11131115      ! 
    11141116   END SUBROUTINE ultimate_y 
    1115       
     1117 
    11161118 
    11171119   SUBROUTINE nonosc_ice( pamsk, pdt, pu, pv, pt, pt_ups, pfu_ups, pfv_ups, pfu_ho, pfv_ho ) 
    11181120      !!--------------------------------------------------------------------- 
    11191121      !!                    ***  ROUTINE nonosc_ice  *** 
    1120       !!      
    1121       !! **  Purpose :   compute monotonic tracer fluxes from the upstream  
    1122       !!       scheme and the before field by a non-oscillatory algorithm  
     1122      !! 
     1123      !! **  Purpose :   compute monotonic tracer fluxes from the upstream 
     1124      !!       scheme and the before field by a non-oscillatory algorithm 
    11231125      !! 
    11241126      !! **  Method  :   ... 
     
    11391141      !!---------------------------------------------------------------------- 
    11401142      zbig = 1.e+40_wp 
    1141        
     1143 
    11421144      ! antidiffusive flux : high order minus low order 
    11431145      ! -------------------------------------------------- 
     
    11551157      !                                    pfu_ho 
    11561158      !                           *         ---> 
    1157       !                        |      |  *   |        |  
    1158       !                        |      |      |    *   |     
     1159      !                        |      |  *   |        | 
     1160      !                        |      |      |    *   | 
    11591161      !                        |      |      |        |    * 
    1160       !            t_ups :       i-1     i       i+1       i+2    
     1162      !            t_ups :       i-1     i       i+1       i+2 
    11611163      IF( ll_prelim ) THEN 
    1162           
     1164 
    11631165         DO jl = 1, jpl 
    11641166            DO_2D( 0, 0, 0, 0 ) 
     
    11981200      z1_dt = 1._wp / pdt 
    11991201      DO jl = 1, jpl 
    1200           
     1202 
    12011203         DO_2D( 1, 1, 1, 1 ) 
    12021204            IF    ( pt(ji,jj,jl) <= 0._wp .AND. pt_ups(ji,jj,jl) <= 0._wp ) THEN 
     
    12421244            ! if all the points are outside ice cover 
    12431245            IF( zup == -zbig )   zbetup(ji,jj,jl) = 0._wp ! zbig 
    1244             IF( zdo ==  zbig )   zbetdo(ji,jj,jl) = 0._wp ! zbig             
     1246            IF( zdo ==  zbig )   zbetdo(ji,jj,jl) = 0._wp ! zbig 
    12451247            ! 
    12461248         END_2D 
     
    12481250      CALL lbc_lnk_multi( 'icedyn_adv_umx', zbetup, 'T', 1.0_wp, zbetdo, 'T', 1.0_wp )   ! lateral boundary cond. (unchanged sign) 
    12491251 
    1250        
     1252 
    12511253      ! monotonic flux in the y direction 
    12521254      ! --------------------------------- 
     
    12781280   END SUBROUTINE nonosc_ice 
    12791281 
    1280     
     1282 
    12811283   SUBROUTINE limiter_x( pdt, pu, pt, pfu_ups, pfu_ho ) 
    12821284      !!--------------------------------------------------------------------- 
    12831285      !!                    ***  ROUTINE limiter_x  *** 
    1284       !!      
    1285       !! **  Purpose :   compute flux limiter  
     1286      !! 
     1287      !! **  Purpose :   compute flux limiter 
    12861288      !!---------------------------------------------------------------------- 
    12871289      REAL(wp)                  , INTENT(in   ) ::   pdt          ! tracer time-step 
     
    12931295      REAL(wp) ::   Cr, Rjm, Rj, Rjp, uCFL, zpsi, zh3, zlimiter, Rr 
    12941296      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
    1295       REAL(wp), DIMENSION (jpi,jpj,jpl) ::   zslpx       ! tracer slopes  
     1297      REAL(wp), DIMENSION (jpi,jpj,jpl) ::   zslpx       ! tracer slopes 
    12961298      !!---------------------------------------------------------------------- 
    12971299      ! 
     
    13021304      END DO 
    13031305      CALL lbc_lnk( 'icedyn_adv_umx', zslpx, 'U', -1.0_wp)   ! lateral boundary cond. 
    1304        
     1306 
    13051307      DO jl = 1, jpl 
    13061308         DO_2D( 0, 0, 0, 0 ) 
    13071309            uCFL = pdt * ABS( pu(ji,jj) ) * r1_e1e2t(ji,jj) 
    1308              
     1310 
    13091311            Rjm = zslpx(ji-1,jj,jl) 
    13101312            Rj  = zslpx(ji  ,jj,jl) 
     
    13171319               ENDIF 
    13181320 
    1319                zh3 = pfu_ho(ji,jj,jl) - pfu_ups(ji,jj,jl)      
     1321               zh3 = pfu_ho(ji,jj,jl) - pfu_ups(ji,jj,jl) 
    13201322               IF( Rj > 0. ) THEN 
    13211323                  zlimiter =  MAX( 0., MIN( zh3, MAX(-Rr * 0.5 * ABS(pu(ji,jj)),  & 
     
    13691371   END SUBROUTINE limiter_x 
    13701372 
    1371     
     1373 
    13721374   SUBROUTINE limiter_y( pdt, pv, pt, pfv_ups, pfv_ho ) 
    13731375      !!--------------------------------------------------------------------- 
    13741376      !!                    ***  ROUTINE limiter_y  *** 
    1375       !!      
    1376       !! **  Purpose :   compute flux limiter  
     1377      !! 
     1378      !! **  Purpose :   compute flux limiter 
    13771379      !!---------------------------------------------------------------------- 
    13781380      REAL(wp)                   , INTENT(in   ) ::   pdt          ! tracer time-step 
     
    13841386      REAL(wp) ::   Cr, Rjm, Rj, Rjp, vCFL, zpsi, zh3, zlimiter, Rr 
    13851387      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
    1386       REAL(wp), DIMENSION (jpi,jpj,jpl) ::   zslpy       ! tracer slopes  
     1388      REAL(wp), DIMENSION (jpi,jpj,jpl) ::   zslpy       ! tracer slopes 
    13871389      !!---------------------------------------------------------------------- 
    13881390      ! 
     
    14081410               ENDIF 
    14091411 
    1410                zh3 = pfv_ho(ji,jj,jl) - pfv_ups(ji,jj,jl)      
     1412               zh3 = pfv_ho(ji,jj,jl) - pfv_ups(ji,jj,jl) 
    14111413               IF( Rj > 0. ) THEN 
    14121414                  zlimiter =  MAX( 0., MIN( zh3, MAX(-Rr * 0.5 * ABS(pv(ji,jj)),  & 
     
    14971499               !                               ! -- check h_ip -- ! 
    14981500               ! if h_ip is larger than the surrounding 9 pts => reduce h_ip and increase a_ip 
    1499                IF( ln_pnd_LEV .AND. pv_ip(ji,jj,jl) > 0._wp ) THEN 
     1501               IF( ( ln_pnd_LEV .OR. ln_pnd_TOPO ) .AND. pv_ip(ji,jj,jl) > 0._wp ) THEN 
    15001502                  zhip = pv_ip(ji,jj,jl) / MAX( epsi20, pa_ip(ji,jj,jl) ) 
    15011503                  IF( zhip > phip_max(ji,jj,jl) .AND. pa_ip(ji,jj,jl) < 0.15 ) THEN 
     
    15221524                  pe_s(ji,jj,1:nlay_s,jl) = pe_s(ji,jj,1:nlay_s,jl) * zfra 
    15231525                  pv_s(ji,jj,jl)          = pa_i(ji,jj,jl) * phs_max(ji,jj,jl) 
    1524                ENDIF            
    1525                !                   
     1526               ENDIF 
     1527               ! 
    15261528               !                               ! -- check s_i -- ! 
    15271529               ! if s_i is larger than the surrounding 9 pts => put salt excess in the ocean 
     
    15351537            ENDIF 
    15361538         END_2D 
    1537       END DO  
     1539      END DO 
    15381540      ! 
    15391541      !                                           ! -- check e_i/v_i -- ! 
     
    16221624   SUBROUTINE icemax3D( pice , pmax ) 
    16231625      !!--------------------------------------------------------------------- 
    1624       !!                   ***  ROUTINE icemax3D ***                      
     1626      !!                   ***  ROUTINE icemax3D *** 
    16251627      !! ** Purpose :  compute the max of the 9 points around 
    16261628      !!---------------------------------------------------------------------- 
     
    16311633      !!---------------------------------------------------------------------- 
    16321634      DO jl = 1, jpl 
    1633          DO jj = Njs0-1, Nje0+1     
     1635         DO jj = Njs0-1, Nje0+1 
    16341636            DO ji = Nis0, Nie0 
    16351637               zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jl), pice(ji-1,jj,jl), pice(ji+1,jj,jl) ) 
    16361638            END DO 
    16371639         END DO 
    1638          DO jj = Njs0, Nje0     
     1640         DO jj = Njs0, Nje0 
    16391641            DO ji = Nis0, Nie0 
    16401642               pmax(ji,jj,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
     
    16461648   SUBROUTINE icemax4D( pice , pmax ) 
    16471649      !!--------------------------------------------------------------------- 
    1648       !!                   ***  ROUTINE icemax4D ***                      
     1650      !!                   ***  ROUTINE icemax4D *** 
    16491651      !! ** Purpose :  compute the max of the 9 points around 
    16501652      !!---------------------------------------------------------------------- 
     
    16571659      DO jl = 1, jpl 
    16581660         DO jk = 1, jlay 
    1659             DO jj = Njs0-1, Nje0+1     
     1661            DO jj = Njs0-1, Nje0+1 
    16601662               DO ji = Nis0, Nie0 
    16611663                  zmax(ji,jj) = MAX( epsi20, pice(ji,jj,jk,jl), pice(ji-1,jj,jk,jl), pice(ji+1,jj,jk,jl) ) 
    16621664               END DO 
    16631665            END DO 
    1664             DO jj = Njs0, Nje0     
     1666            DO jj = Njs0, Nje0 
    16651667               DO ji = Nis0, Nie0 
    16661668                  pmax(ji,jj,jk,jl) = MAX( epsi20, zmax(ji,jj), zmax(ji,jj-1), zmax(ji,jj+1) ) 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn_rdgrft.F90

    r14017 r14021  
    186186            ! closing_net = rate at which open water area is removed + ice area removed by ridging 
    187187            !                                                        - ice area added in new ridges 
    188             IF( ln_rhg_EVP )  closing_net(ji) = rn_csrdg * 0.5_wp * ( zdelt(ji) - ABS( zdivu(ji) ) ) - MIN( zdivu(ji), 0._wp ) 
    189             IF( ln_rhg_EAP )  closing_net(ji) = zconv(ji) 
     188            IF( ln_rhg_EVP .OR. ln_rhg_VP ) & 
     189               &               closing_net(ji) = rn_csrdg * 0.5_wp * ( zdelt(ji) - ABS( zdivu(ji) ) ) - MIN( zdivu(ji), 0._wp ) 
     190            IF( ln_rhg_EAP )   closing_net(ji) = zconv(ji) 
    190191            ! 
    191192            IF( zdivu(ji) < 0._wp )   closing_net(ji) = MAX( closing_net(ji), -zdivu(ji) )   ! make sure the closing rate is large enough 
     
    578579               oirft2(ji) = oa_i_2d(ji,jl1)   * afrft * hi_hrft 
    579580 
    580                IF ( ln_pnd_LEV ) THEN 
     581               IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    581582                  aprdg1     = a_ip_2d(ji,jl1) * afrdg 
    582583                  aprdg2(ji) = a_ip_2d(ji,jl1) * afrdg * hi_hrdg(ji,jl1) 
     
    615616               sv_i_2d(ji,jl1) = sv_i_2d(ji,jl1) - sirdg1    - sirft(ji) 
    616617               oa_i_2d(ji,jl1) = oa_i_2d(ji,jl1) - oirdg1    - oirft1 
    617                IF ( ln_pnd_LEV ) THEN 
     618               IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    618619                  a_ip_2d(ji,jl1) = a_ip_2d(ji,jl1) - aprdg1    - aprft1 
    619620                  v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - vprdg(ji) - vprft(ji) 
     
    712713                  v_s_2d (ji,jl2) = v_s_2d (ji,jl2) + ( vsrdg (ji) * rn_fsnwrdg * fvol(ji)  +  & 
    713714                     &                                  vsrft (ji) * rn_fsnwrft * zswitch(ji) ) 
    714                   IF ( ln_pnd_LEV ) THEN 
     715                  IF ( ln_pnd_LEV .OR. ln_pnd_TOPO ) THEN 
    715716                     v_ip_2d (ji,jl2) = v_ip_2d(ji,jl2) + (   vprdg (ji) * rn_fpndrdg * fvol   (ji)   & 
    716717                        &                                   + vprft (ji) * rn_fpndrft * zswitch(ji)   ) 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn_rhg.F90

    r14017 r14021  
    1818   USE icedyn_rhg_evp ! sea-ice: EVP rheology 
    1919   USE icedyn_rhg_eap ! sea-ice: EAP rheology 
     20   USE icedyn_rhg_vp  ! sea-ice: VP  rheology 
    2021   USE icectl         ! sea-ice: control prints 
    2122   ! 
     
    3536   INTEGER, PARAMETER ::   np_rhgEVP = 1   ! EVP rheology 
    3637   INTEGER, PARAMETER ::   np_rhgEAP = 2   ! EAP rheology 
     38   INTEGER, PARAMETER ::   np_rhgVP  = 3   ! VP rheology 
    3739 
    38    ! ** namelist (namrhg) ** 
    3940   ! 
    4041   !!---------------------------------------------------------------------- 
     
    7879         CALL ice_dyn_rhg_evp( kt, Kmm, stress1_i, stress2_i, stress12_i, shear_i, divu_i, delta_i ) 
    7980         ! 
     81         !                             !------------------------! 
     82      CASE( np_rhgVP  )                ! Viscous-Plastic        ! 
     83         !                             !------------------------! 
     84         CALL ice_dyn_rhg_vp ( kt, shear_i, divu_i, delta_i ) 
     85         ! 
    8086         !                             !----------------------------! 
    8187      CASE( np_rhgEAP )                ! Elasto-Anisotropic-Plastic ! 
     
    8490      END SELECT 
    8591      ! 
    86       IF( lrst_ice ) THEN                       !* write EVP fields in the restart file 
    87          IF( ln_rhg_EVP )   CALL rhg_evp_rst( 'WRITE', kt ) 
     92      IF( lrst_ice ) THEN 
     93         IF( ln_rhg_EVP )   CALL rhg_evp_rst( 'WRITE', kt ) !* write EVP fields in the restart file 
    8894         IF( ln_rhg_EAP )   CALL rhg_eap_rst( 'WRITE', kt ) !* write EAP fields in the restart file 
     95         ! MV note: no restart needed for VP as there is no time equation for stress tensor 
    8996      ENDIF 
    9097      ! 
     
    113120      INTEGER ::   ios, ioptio   ! Local integer output status for namelist read 
    114121      !! 
    115       NAMELIST/namdyn_rhg/  ln_rhg_EVP, ln_aEVP, ln_rhg_EAP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg 
     122      NAMELIST/namdyn_rhg/  ln_rhg_EVP, ln_aEVP, ln_rhg_EAP, rn_creepl, rn_ecc , nn_nevp, rn_relast, nn_rhg_chkcvg, &  !-- evp 
     123         &                  ln_rhg_VP, nn_vp_nout, nn_vp_ninn, nn_vp_chkcvg                                            !-- vp 
    116124      !!------------------------------------------------------------------- 
    117125      ! 
     
    129137         WRITE(numout,*) '      rheology EVP (icedyn_rhg_evp)                        ln_rhg_EVP    = ', ln_rhg_EVP 
    130138         WRITE(numout,*) '         use adaptive EVP (aEVP)                           ln_aEVP       = ', ln_aEVP 
    131          WRITE(numout,*) '         creep limit                                       rn_creepl     = ', rn_creepl 
    132          WRITE(numout,*) '         eccentricity of the elliptical yield curve        rn_ecc        = ', rn_ecc 
     139         WRITE(numout,*) '         creep limit                                       rn_creepl     = ', rn_creepl ! also used by vp 
     140         WRITE(numout,*) '         eccentricity of the elliptical yield curve        rn_ecc        = ', rn_ecc    ! also used by vp 
    133141         WRITE(numout,*) '         number of iterations for subcycling               nn_nevp       = ', nn_nevp 
    134142         WRITE(numout,*) '         ratio of elastic timescale over ice time step     rn_relast     = ', rn_relast 
    135          WRITE(numout,*) '      check convergence of rheology                        nn_rhg_chkcvg = ', nn_rhg_chkcvg 
    136          IF    ( nn_rhg_chkcvg == 0 ) THEN   ;   WRITE(numout,*) '         no check' 
    137          ELSEIF( nn_rhg_chkcvg == 1 ) THEN   ;   WRITE(numout,*) '         check cvg at the main time step' 
    138          ELSEIF( nn_rhg_chkcvg == 2 ) THEN   ;   WRITE(numout,*) '         check cvg at both main and rheology time steps' 
     143         WRITE(numout,*) '         check convergence of rheology                     nn_rhg_chkcvg = ', nn_rhg_chkcvg 
     144         WRITE(numout,*) '      rheology VP   (icedyn_rhg_VP)                        ln_rhg_VP     = ', ln_rhg_VP 
     145         WRITE(numout,*) '         number of outer iterations                        nn_vp_nout    = ', nn_vp_nout 
     146         WRITE(numout,*) '         number of inner iterations                        nn_vp_ninn    = ', nn_vp_ninn 
     147         WRITE(numout,*) '         iteration step for convergence check              nn_vp_chkcvg  = ', nn_vp_chkcvg 
     148         IF( ln_rhg_EVP ) THEN 
     149            IF    ( nn_rhg_chkcvg == 0 ) THEN   ;   WRITE(numout,*) '         no check cvg' 
     150            ELSEIF( nn_rhg_chkcvg == 1 ) THEN   ;   WRITE(numout,*) '         check cvg at the main time step' 
     151            ELSEIF( nn_rhg_chkcvg == 2 ) THEN   ;   WRITE(numout,*) '         check cvg at both main and rheology time steps' 
     152            ENDIF 
    139153         ENDIF 
    140154         WRITE(numout,*) '      rheology EAP (icedyn_rhg_eap)                        ln_rhg_EAP = ', ln_rhg_EAP 
     
    145159      IF( ln_rhg_EVP ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgEVP    ;   ENDIF 
    146160      IF( ln_rhg_EAP ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgEAP    ;   ENDIF 
     161      IF( ln_rhg_VP  ) THEN   ;   ioptio = ioptio + 1   ;   nice_rhg = np_rhgVP     ;   ENDIF 
    147162      IF( ioptio /= 1 )   CALL ctl_stop( 'ice_dyn_rhg_init: choose one and only one ice rheology' ) 
    148163      ! 
    149164      IF( ln_rhg_EVP  )   CALL rhg_evp_rst( 'READ' )  !* read or initialize all required files 
    150165      IF( ln_rhg_EAP  )   CALL rhg_eap_rst( 'READ' )  !* read or initialize all required files 
     166      ! no restart for VP as there is no explicit time dependency in the equation 
    151167      ! 
    152168   END SUBROUTINE ice_dyn_rhg_init 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/icedyn_rhg_evp.F90

    r14017 r14021  
    326326            zvV = 0.5_wp * ( vt_i(ji,jj) * e1e2t(ji,jj) + vt_i(ji,jj+1) * e1e2t(ji,jj+1) ) * r1_e1e2v(ji,jj) * vmask(ji,jj,1) 
    327327            ! ice-bottom stress at U points 
    328             zvCr = zaU(ji,jj) * rn_lf_depfra * hu(ji,jj,Kmm) 
     328            zvCr = zaU(ji,jj) * rn_lf_depfra * hu(ji,jj,Kmm) * ( 1._wp - icb_mask(ji,jj) ) ! if grounded icebergs are read: ocean depth = 0 
    329329            ztaux_base(ji,jj) = - rn_lf_bfr * MAX( 0._wp, zvU - zvCr ) * EXP( -rn_crhg * ( 1._wp - zaU(ji,jj) ) ) 
    330330            ! ice-bottom stress at V points 
    331             zvCr = zaV(ji,jj) * rn_lf_depfra * hv(ji,jj,Kmm) 
     331            zvCr = zaV(ji,jj) * rn_lf_depfra * hv(ji,jj,Kmm) * ( 1._wp - icb_mask(ji,jj) ) ! if grounded icebergs are read: ocean depth = 0 
    332332            ztauy_base(ji,jj) = - rn_lf_bfr * MAX( 0._wp, zvV - zvCr ) * EXP( -rn_crhg * ( 1._wp - zaV(ji,jj) ) ) 
    333333            ! ice_bottom stress at T points 
    334             zvCr = at_i(ji,jj) * rn_lf_depfra * ht(ji,jj) 
     334            zvCr = at_i(ji,jj) * rn_lf_depfra * ht(ji,jj) * ( 1._wp - icb_mask(ji,jj) )    ! if grounded icebergs are read: ocean depth = 0 
    335335            tau_icebfr(ji,jj) = - rn_lf_bfr * MAX( 0._wp, vt_i(ji,jj) - zvCr ) * EXP( -rn_crhg * ( 1._wp - at_i(ji,jj) ) ) 
    336336         END_2D 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/iceistate.F90

    r13472 r14021  
    1818   USE oce            ! dynamics and tracers variables 
    1919   USE dom_oce        ! ocean domain 
    20    USE sbc_oce , ONLY : sst_m, sss_m, ln_ice_embd  
     20   USE sbc_oce , ONLY : sst_m, sss_m, ln_ice_embd 
    2121   USE sbc_ice , ONLY : tn_ice, snwice_mass, snwice_mass_b 
    2222   USE eosbn2         ! equation of state 
     
    3636   USE agrif_oce 
    3737   USE agrif_ice 
    38    USE agrif_ice_interp  
    39 # endif    
     38   USE agrif_ice_interp 
     39# endif 
    4040 
    4141   IMPLICIT NONE 
     
    8787      !! 
    8888      !! ** Method  :   This routine will put some ice where ocean 
    89       !!                is at the freezing point, then fill in ice  
    90       !!                state variables using prescribed initial  
    91       !!                values in the namelist             
     89      !!                is at the freezing point, then fill in ice 
     90      !!                state variables using prescribed initial 
     91      !!                values in the namelist 
    9292      !! 
    9393      !! ** Steps   :   1) Set initial surface and basal temperatures 
     
    9999      !!              where there is no ice 
    100100      !!-------------------------------------------------------------------- 
    101       INTEGER, INTENT(in) :: kt            ! time step  
     101      INTEGER, INTENT(in) :: kt            ! time step 
    102102      INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 
    103103      ! 
     
    125125      ! basal temperature (considered at freezing point)   [Kelvin] 
    126126      CALL eos_fzp( sss_m(:,:), t_bo(:,:) ) 
    127       t_bo(:,:) = ( t_bo(:,:) + rt0 ) * tmask(:,:,1)  
     127      t_bo(:,:) = ( t_bo(:,:) + rt0 ) * tmask(:,:,1) 
    128128      ! 
    129129      ! surface temperature and conductivity 
     
    150150      e_i (:,:,:,:) = 0._wp 
    151151      e_s (:,:,:,:) = 0._wp 
    152        
     152 
    153153      ! general fields 
    154154      a_i (:,:,:) = 0._wp 
     
    225225               IF( TRIM(si(jp_apd)%clrootname) == 'NOT USED' ) & 
    226226                  &     si(jp_apd)%fnow(:,:,1) = ( rn_apd_ini_n * zswitch + rn_apd_ini_s * (1._wp - zswitch) ) * tmask(:,:,1) & ! rn_apd = pond fraction => rn_apnd * a_i = pond conc. 
    227                   &                              * si(jp_ati)%fnow(:,:,1)  
     227                  &                              * si(jp_ati)%fnow(:,:,1) 
    228228               ! 
    229229               ! pond depth 
     
    244244               ! 
    245245               ! change the switch for the following 
    246                WHERE( zat_i_ini(:,:) > 0._wp )   ;   zswitch(:,:) = tmask(:,:,1)  
     246               WHERE( zat_i_ini(:,:) > 0._wp )   ;   zswitch(:,:) = tmask(:,:,1) 
    247247               ELSEWHERE                         ;   zswitch(:,:) = 0._wp 
    248248               END WHERE 
     
    252252               !                          !---------------! 
    253253               ! no ice if (sst - Tfreez) >= thresold 
    254                WHERE( ( sst_m(:,:) - (t_bo(:,:) - rt0) ) * tmask(:,:,1) >= rn_thres_sst )   ;   zswitch(:,:) = 0._wp  
     254               WHERE( ( sst_m(:,:) - (t_bo(:,:) - rt0) ) * tmask(:,:,1) >= rn_thres_sst )   ;   zswitch(:,:) = 0._wp 
    255255               ELSEWHERE                                                                    ;   zswitch(:,:) = tmask(:,:,1) 
    256256               END WHERE 
     
    265265                  zt_su_ini(:,:) = rn_tsu_ini_n * zswitch(:,:) 
    266266                  ztm_s_ini(:,:) = rn_tms_ini_n * zswitch(:,:) 
    267                   zapnd_ini(:,:) = rn_apd_ini_n * zswitch(:,:) * zat_i_ini(:,:) ! rn_apd = pond fraction => rn_apd * a_i = pond conc.  
     267                  zapnd_ini(:,:) = rn_apd_ini_n * zswitch(:,:) * zat_i_ini(:,:) ! rn_apd = pond fraction => rn_apd * a_i = pond conc. 
    268268                  zhpnd_ini(:,:) = rn_hpd_ini_n * zswitch(:,:) 
    269269                  zhlid_ini(:,:) = rn_hld_ini_n * zswitch(:,:) 
     
    291291               zhlid_ini(:,:) = 0._wp 
    292292            ENDIF 
    293              
     293 
    294294            IF ( .NOT.ln_pnd_lids ) THEN 
    295295               zhlid_ini(:,:) = 0._wp 
    296296            ENDIF 
    297              
     297 
    298298            !----------------! 
    299299            ! 3) fill fields ! 
     
    319319            CALL tab_2d_1d( npti, nptidx(1:npti), h_ip_1d(1:npti)  , zhpnd_ini ) 
    320320            CALL tab_2d_1d( npti, nptidx(1:npti), h_il_1d(1:npti)  , zhlid_ini ) 
    321              
     321 
    322322            ! allocate temporary arrays 
    323323            ALLOCATE( zhi_2d (npti,jpl), zhs_2d (npti,jpl), zai_2d (npti,jpl), & 
     
    373373            DO jl = 1, jpl 
    374374               DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    375                   t_i (ji,jj,jk,jl) = zti_3d(ji,jj,jl)  
     375                  t_i (ji,jj,jk,jl) = zti_3d(ji,jj,jl) 
    376376                  ztmelts          = - rTmlt * sz_i(ji,jj,jk,jl) + rt0 ! melting temperature in K 
    377377                  e_i(ji,jj,jk,jl) = zswitch(ji,jj) * v_i(ji,jj,jl) * r1_nlay_i * & 
     
    381381               END_3D 
    382382            END DO 
    383              
     383 
    384384#if  defined key_agrif 
    385385         ELSE 
    386   
     386 
    387387            Agrif_SpecialValue    = -9999. 
    388388            Agrif_UseSpecialValue = .TRUE. 
     
    395395            use_sign_north = .FALSE. 
    396396            Agrif_UseSpecialValue = .FALSE. 
    397         ! lbc ????  
     397        ! lbc ???? 
    398398   ! Here we know : a_i, v_i, v_s, sv_i, oa_i, a_ip, v_ip, v_il, t_su, e_s, e_i 
    399399            CALL ice_var_glo2eqv 
     
    409409         v_ip(:,:,:) = h_ip(:,:,:) * a_ip(:,:,:) 
    410410         v_il(:,:,:) = h_il(:,:,:) * a_ip(:,:,:) 
    411           
     411 
    412412         ! specific temperatures for coupled runs 
    413413         tn_ice(:,:,:) = t_su(:,:,:) 
     
    426426      ! 4) Snow-ice mass (case ice is fully embedded) 
    427427      !---------------------------------------------- 
    428       snwice_mass  (:,:) = tmask(:,:,1) * SUM( rhos * v_s(:,:,:) + rhoi * v_i(:,:,:), dim=3  )   ! snow+ice mass 
     428      snwice_mass  (:,:) = tmask(:,:,1) * SUM( rhos * v_s + rhoi * v_i + rhow * ( v_ip + v_il ), dim=3  )   ! snow+ice mass 
    429429      snwice_mass_b(:,:) = snwice_mass(:,:) 
    430430      ! 
     
    487487      !!------------------------------------------------------------------- 
    488488      !!                   ***  ROUTINE ice_istate_init  *** 
    489       !!         
    490       !! ** Purpose :   Definition of initial state of the ice  
    491       !! 
    492       !! ** Method  :   Read the namini namelist and check the parameter  
     489      !! 
     490      !! ** Purpose :   Definition of initial state of the ice 
     491      !! 
     492      !! ** Method  :   Read the namini namelist and check the parameter 
    493493      !!              values called at the first timestep (nit000) 
    494494      !! 
     
    531531         WRITE(numout,*) '      max ocean temp. above Tfreeze with initial ice   rn_thres_sst   = ', rn_thres_sst 
    532532         IF( ln_iceini .AND. nn_iceini_file == 0 ) THEN 
    533             WRITE(numout,*) '      initial snw thickness in the north-south         rn_hts_ini     = ', rn_hts_ini_n,rn_hts_ini_s  
     533            WRITE(numout,*) '      initial snw thickness in the north-south         rn_hts_ini     = ', rn_hts_ini_n,rn_hts_ini_s 
    534534            WRITE(numout,*) '      initial ice thickness in the north-south         rn_hti_ini     = ', rn_hti_ini_n,rn_hti_ini_s 
    535535            WRITE(numout,*) '      initial ice concentr  in the north-south         rn_ati_ini     = ', rn_ati_ini_n,rn_ati_ini_s 
  • NEMO/branches/2020/dev_r13648_ASINTER-04_laurent_bulk_ice/src/ICE/iceitd.F90

    r13618 r14021  
    1818   !!---------------------------------------------------------------------- 
    1919   USE dom_oce        ! ocean domain 
    20    USE phycst         ! physical constants  
     20   USE phycst         ! physical constants 
    2121   USE ice1D          ! sea-ice: thermodynamic variables 
    2222   USE ice            ! sea-ice: variables 
     
    2929   USE lib_fortran    ! fortran utilities (glob_sum + no signed zero) 
    3030   USE prtctl         ! Print control 
     31   USE timing         ! Timing 
    3132 
    3233   IMPLICIT NONE 
     
    6566      !!                after thermodynamic growth of ice thickness 
    6667      !! 
    67       !! ** Method  :   Linear remapping  
     68      !! ** Method  :   Linear remapping 
    6869      !! 
    6970      !! References :   W.H. Lipscomb, JGR 2001 
    7071      !!------------------------------------------------------------------ 
    71       INTEGER , INTENT (in) ::   kt      ! Ocean time step  
     72      INTEGER , INTENT (in) ::   kt      ! Ocean time step 
    7273      ! 
    7374      INTEGER  ::   ji, jj, jl, jcat     ! dummy loop index 
     
    7576      REAL(wp) ::   zx1, zwk1, zdh0, zetamin, zdamax   ! local scalars 
    7677      REAL(wp) ::   zx2, zwk2, zda0, zetamax           !   -      - 
    77       REAL(wp) ::   zx3         
     78      REAL(wp) ::   zx3 
    7879      REAL(wp) ::   zslope          ! used to compute local thermodynamic "speeds" 
    7980      ! 
     
    8788      REAL(wp), DIMENSION(jpij,0:jpl) ::   zhbnew          ! new boundaries of ice categories 
    8889      !!------------------------------------------------------------------ 
    89  
    90       IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_itd_rem: remapping ice thickness distribution'  
     90      IF( ln_timing )   CALL timing_start('iceitd_rem') 
     91 
     92      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_itd_rem: remapping ice thickness distribution' 
    9193 
    9294      IF( ln_icediachk )   CALL ice_cons_hsm(0, 'iceitd_rem', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) 
     
    105107         ENDIF 
    106108      END_2D 
    107        
     109 
    108110      !----------------------------------------------------------------------------------------------- 
    109111      !  2) Compute new category boundaries 
     
    141143               ELSEIF( a_ib_2d(ji,jl) <= epsi10 .AND. a_ib_2d(ji,jl+1) >  epsi10 ) THEN   ! a(jl)=0 => Hn* = Hn + fn+1*dt 
    142144                  zhbnew(ji,jl) = hi_max(jl) + zdhice(ji,jl+1) 
    143                ELSE                                                                       ! a(jl+1) & a(jl) = 0  
     145               ELSE                                                                       ! a(jl+1) & a(jl) = 0 
    144146                  zhbnew(ji,jl) = hi_max(jl) 
    145147               ENDIF 
    146148               ! 
    147149               ! --- 2 conditions for remapping --- ! 
    148                ! 1) hn(t+1)+espi < Hn* < hn+1(t+1)-epsi                
    149                !    Note: hn(t+1) must not be too close to either HR or HL otherwise a division by nearly 0 is possible  
     150               ! 1) hn(t+1)+espi < Hn* < hn+1(t+1)-epsi 
     151               !    Note: hn(t+1) must not be too close to either HR or HL otherwise a division by nearly 0 is possible 
    150152               !          in itd_glinear in the case (HR-HL) = 3(Hice - HL) or = 3(HR - Hice) 
    151153# if defined key_single 
     
    157159# endif 
    158160               ! 
    159                ! 2) Hn-1 < Hn* < Hn+1   
     161               ! 2) Hn-1 < Hn* < Hn+1 
    160162               IF( zhbnew(ji,jl) < hi_max(jl-1) )   nptidx(ji) = 0 
    161163               IF( zhbnew(ji,jl) > hi_max(jl+1) )   nptidx(ji) = 0 
     
    169171               zhbnew(ji,jpl) = MAX( hi_max(jpl-1), 3._wp * h_i_2d(ji,jpl) - 2._wp * zhbnew(ji,jpl-1) ) 
    170172            ELSE 
    171                zhbnew(ji,jpl) = hi_max(jpl)   
     173               zhbnew(ji,jpl) = hi_max(jpl) 
    172174            ENDIF 
    173175            ! 
    174176            ! --- 1 additional condition for remapping (1st category) --- ! 
    175             ! H0+epsi < h1(t) < H1-epsi  
    176             !    h1(t) must not be too close to either HR or HL otherwise a division by nearly 0 is possible  
     177            ! H0+epsi < h1(t) < H1-epsi 
     178            !  &n