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

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

Changeset 7068


Ignore:
Timestamp:
2016-10-21T17:38:13+02:00 (8 years ago)
Author:
cetlod
Message:

ROBUST5_CNRS : implementation of part I of new TOP interface - 1st step -, see ticket #1782

Location:
branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM
Files:
2 deleted
67 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_pisces_cfg

    r4147 r7068  
    11!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    2 !! GYRE_PISCES: Configuration namelist used to overwrite SHARED/namelist_pisces_ref 
     2!! PISCES  (key_pisces) reference namelist (see below for key_pisces_reduced) 
     3!!              1  - air-sea exchange                         (nampisext) 
     4!!              2  - biological parameters                    (nampisbio) 
     5!!              3  - parameters for nutrient limitations      (nampislim)     
     6!!              4  - parameters for phytoplankton             (nampisprod,nampismort) 
     7!!              5  - parameters for zooplankton               (nampismes,nampiszoo) 
     8!!              6  - parameters for remineralization          (nampisrem) 
     9!!              7  - parameters for calcite chemistry         (nampiscal) 
     10!!              8  - parameters for inputs deposition         (nampissed) 
     11!!              11 - Damping                                  (nampisdmp) 
     12!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     13!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     14&nampismod     !  Model used  
     15!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     16    ln_p4z = .false. 
     17    ln_p2z = .true. 
     18/ 
     19!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     20&nampisext     !   air-sea exchange 
     21!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     22/ 
     23!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     24&nampisatm     !  Atmospheric prrssure  
     25!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     26/ 
     27!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     28&nampisbio     !   biological parameters 
     29!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     30/ 
     31!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     32&nampislim     !   parameters for nutrient limitations 
     33!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     34/ 
     35!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     36&nampisopt     !   parameters for optics 
     37!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     38/  
     39!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     40&nampisprod     !   parameters for phytoplankton growth 
     41!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     42/ 
     43!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     44&nampismort     !   parameters for phytoplankton sinks 
     45!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     46/ 
     47!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     48&nampismes     !   parameters for mesozooplankton 
     49!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     50/ 
     51!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     52&nampiszoo     !   parameters for microzooplankton 
     53!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     54/ 
     55!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     56&nampisfer     !   parameters for iron chemistry 
     57!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     58 
     59!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     60&nampisrem     !   parameters for remineralization 
     61!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     62/ 
     63!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     64&nampiscal     !   parameters for Calcite chemistry 
     65!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     66/ 
     67!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     68&nampissbc     !   parameters for inputs deposition 
     69!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     70/ 
     71!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     72&nampisice      !  Prescribed sea ice tracers 
     73!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     74/ 
     75!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     76&nampisdmp     !  Damping  
     77!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     78/ 
     79!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
     80&nampismass     !  Mass conservation 
     81!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
     82/ 
     83!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     84!! PISCES reduced (key_pisces_reduced, ex LOBSTER) : namelists 
     85!!              1  - biological parameters for phytoplankton    (namlobphy) 
     86!!              2  - biological parameters for nutrients        (namlobnut) 
     87!!              3  - biological parameters for zooplankton      (namlobzoo)     
     88!!              4  - biological parameters for detritus         (namlobdet) 
     89!!              5  - biological parameters for DOM              (namlobdom) 
     90!!              6  - parameters from aphotic layers to sediment (namlobsed) 
     91!!              7  - general coefficients                       (namlobrat) 
     92!!              8  - optical parameters                         (namlobopt) 
     93!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    394!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    495&namlobphy     !   biological parameters for phytoplankton 
     
    15106!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    16107&namlobdet     !   biological parameters for detritus 
    17 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,        
     108!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    18109/ 
    19110!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_top_cfg

    r5836 r7068  
    11!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    2 !! NEMO-TOP Configuration namelist for GYRE_PISCES configuration used to overwrite SHARED/namelist_top_ref 
     2!! NEMO/TOP1 :  Configuration namelist : used to overwrite defaults values defined in SHARED/namelist_top_ref 
     3!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    34!----------------------------------------------------------------------- 
    45&namtrc_run     !   run information 
    56!----------------------------------------------------------------------- 
    6    nn_writetrc   =  60     !  time step frequency for sn_tracer outputs 
    77/ 
    88!----------------------------------------------------------------------- 
    99&namtrc     !   tracers definition 
    1010!----------------------------------------------------------------------- 
    11    ln_trcdta     =   .false.    !  Initialisation from data input file (T) or not (F) 
     11   jptra        =  6 
    1212! 
    13 !                ! name  !     title of the field          !   units       ! initial data ! save   ! 
    14 !                !       !                                 !               ! from file    ! or not ! 
    15 !                !       !                                 !               ! or not       !        ! 
    16    sn_tracer(1)   = 'DET'   , 'Detritus                   ',  'mmole-N/m3' ,  .false.     ,  .false. 
    17    sn_tracer(2)   = 'ZOO'   , 'Zooplankton concentration  ',  'mmole-N/m3' ,  .false.     ,  .false. 
    18    sn_tracer(3)   = 'PHY'   , 'Phytoplankton concentration',  'mmole-N/m3' ,  .false.     ,  .false. 
    19    sn_tracer(4)   = 'NO3'   , 'Nitrate concentration      ',  'mmole-N/m3' ,  .false.     ,  .true. 
    20    sn_tracer(5)   = 'NH4'   , 'Ammonium concentration     ',  'mmole-N/m3' ,  .false.     ,  .false. 
    21    sn_tracer(6)   = 'DOM'   , 'Dissolved organic matter   ',  'mmole-N/m3' ,  .false.     ,  .false. 
     13   ln_pisces     =  .true. 
     14   ln_age        =  .false. 
     15   ln_cfc11      =  .false. 
     16   ln_cfc12      =  .false. 
     17   ln_c14        =  .false. 
     18   ln_my_trc     =  .false. 
     19! 
     20!                 !           !                             !               ! 
     21!                 !    name   !   title of the field        !   units       ! initial data from file or not ! 
     22!                 !           !                                             !                               ! 
     23   sn_tracer(1)   = 'DET'     , 'Detritus                   ',  'mmole-N/m3' ,  .false.     
     24   sn_tracer(2)   = 'ZOO'     , 'Zooplankton concentration  ',  'mmole-N/m3' ,  .false.    
     25   sn_tracer(3)   = 'PHY'     , 'Phytoplankton concentration',  'mmole-N/m3' ,  .false.   
     26   sn_tracer(4)   = 'NO3'     , 'Nitrate concentration      ',  'mmole-N/m3' ,  .false.  
     27   sn_tracer(5)   = 'NH4'     , 'Ammonium concentration     ',  'mmole-N/m3' ,  .false.    
     28   sn_tracer(6)   = 'DOM'     , 'Dissolved organic matter   ',  'mmole-N/m3' ,  .false.   
    2229/ 
    2330!----------------------------------------------------------------------- 
    24 &namtrc_adv    !   advection scheme for passive tracer  
    25 !-----------------------------------------------------------------------    
     31&namtrc_dta      !    Initialisation from data input file 
     32!----------------------------------------------------------------------- 
     33/ 
    2634   ln_trcadv_fct =  .true.   !  FCT scheme 
    27       nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order  
    28       nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order  
     35      nn_fct_h   =  2               !  =2/4, horizontal 2nd / 4th order 
     36      nn_fct_v   =  2               !  =2/4, vertical   2nd / COMPACT 4th order 
    2937      nn_fct_zts =  0               !  >=1,  2nd order FCT scheme with vertical sub-timestepping 
    3038      !                             !        (number of sub-timestep = nn_fct_zts) 
    3139/ 
    3240!----------------------------------------------------------------------- 
    33 &namtrc_ldf    !   lateral diffusion scheme for passive tracer  
     41&namtrc_ldf    !   lateral diffusion scheme for passive tracer 
    3442!----------------------------------------------------------------------- 
    3543   rn_ahtrc_0       =  1000.    !  horizontal eddy diffusivity for tracers [m2/s] 
     
    4048/ 
    4149!----------------------------------------------------------------------- 
    42 &namtrc_rad        !  treatment of negative concentrations  
     50&namtrc_rad        !  treatment of negative concentrations 
    4351!----------------------------------------------------------------------- 
    4452   ln_trcrad   =  .false.  !  artificially correct negative concentrations (T) or not (F) 
    4553/ 
    4654!----------------------------------------------------------------------- 
    47 &namtrc_dia       !   parameters for passive tracer additional diagnostics 
     55&namtrc_dmp      !   passive tracer newtonian damping 
     56!----------------------------------------------------------------------- 
     57/ 
     58!----------------------------------------------------------------------- 
     59&namtrc_ice      !    Representation of sea ice growth & melt effects 
     60!----------------------------------------------------------------------- 
     61/ 
     62!----------------------------------------------------------------------- 
     63&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc') 
     64!                          or mixed-layer trends                        ('key_trdmld_trc') 
    4865!---------------------------------------------------------------------- 
    49    nn_writedia   =  60     !  time step frequency for diagnostics 
    5066/ 
    5167!---------------------------------------------------------------------- 
    52 &namtrc_bc        !   data for boundary conditions 
     68&namtrc_bc       !   data for boundary conditions 
    5369!----------------------------------------------------------------------- 
    5470/ 
     71!---------------------------------------------------------------------- 
     72&namtrc_bdy      !   Setup of tracer boundary conditions 
     73!----------------------------------------------------------------------- 
     74/ 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/GYRE_PISCES/cpp_GYRE_PISCES.fcm

    r5930 r7068  
    1 bld::tool::fppkeys key_zdftke key_top key_pisces_reduced key_mpp_mpi 
     1bld::tool::fppkeys key_zdftke key_top key_mpp_mpi 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/iodef.xml

    r7041 r7068  
    3535      <file_group id="6h" output_freq="6h"  output_level="10" enabled=".TRUE."/> <!-- 6h files -->      
    3636 
    37       <file_group id="1d" output_freq="1d"  output_level="10" enabled=".TRUE."> <!-- 1d files --> 
     37      <file_group id="1d" output_freq="1d"  output_level="10" enabled=".TRUE."/> <!-- 1d files --> 
     38       
     39      <file_group id="3d" output_freq="3d"  output_level="10" enabled=".TRUE."/> <!-- 3d files --> 
     40       
     41      <file_group id="5d" output_freq="5d"  output_level="10" enabled=".TRUE.">  <!-- 5d files -->    
     42    
    3843   <file id="file1" name_suffix="_grid_T" description="ocean T grid variables" > 
     44     <field field_ref="e3t"      /> 
     45     <field field_ref="toce"         name="thetao"                                                                      operation="instant" freq_op="5d" > @toce_e3t / @e3t </field> 
     46     <field field_ref="soce"         name="so"                                                                          operation="instant" freq_op="5d" > @soce_e3t / @e3t </field> 
    3947     <field field_ref="sst"          name="tos"   /> 
    4048     <field field_ref="sss"          name="sos"   /> 
    4149     <field field_ref="ssh"          name="zos"   /> 
    42    </file> 
    43  
    44         <file id="file2" name_suffix="_ptrc_T" description="passive tracers variables" > 
     50     <field field_ref="sst"          name="tosstd"       long_name="sea surface temperature standard deviation"         operation="instant" freq_op="5d" > sqrt( @sst2 - @sst * @sst ) </field> 
     51     <field field_ref="ssh"          name="zosstd"       long_name="sea surface height above geoid standard deviation"  operation="instant" freq_op="5d" > sqrt( @ssh2 - @ssh * @ssh ) </field> 
     52     <field field_ref="sst"          name="sstdcy"       long_name="amplitude of sst diurnal cycle"                     operation="average" freq_op="1d" > @sstmax - @sstmin </field> 
     53     <field field_ref="mldkz5"   /> 
     54     <field field_ref="mldr10_1" /> 
     55     <field field_ref="mldr10_1"     name="mldr10_1dcy"  long_name="amplitude of mldr10_1 diurnal cycle"                operation="average" freq_op="1d" > @mldr10_1max - @mldr10_1min </field> 
     56     <field field_ref="sbt"      /> 
     57     <field field_ref="heatc"        name="heatc" /> 
     58     <field field_ref="saltc"        name="saltc" /> 
     59   </file> 
     60 
     61   <file id="file2" name_suffix="_SBC" description="surface fluxes variables" > <!-- time step automaticaly defined based on nn_fsbc --> 
     62     <field field_ref="empmr"        name="wfo"      /> 
     63     <field field_ref="qsr_oce"      name="qsr_oce"  /> 
     64     <field field_ref="qns_oce"      name="qns_oce"  /> 
     65     <field field_ref="qt_oce"       name="qt_oce"   /> 
     66     <field field_ref="qsr_ice"      name="qsr_ice"  /> 
     67     <field field_ref="qns_ice"      name="qns_ice"  /> 
     68     <field field_ref="qtr_ice"      name="qtr_ice"  /> 
     69     <field field_ref="qt_ice"       name="qt_ice"   /> 
     70     <field field_ref="saltflx"      name="sfx"      /> 
     71     <field field_ref="taum"         name="taum"     /> 
     72     <field field_ref="wspd"         name="windsp"   /> 
     73     <field field_ref="precip"       name="precip"   /> 
     74     <!-- ice and snow --> 
     75     <field field_ref="snowpre" /> 
     76     <field field_ref="utau_ice"     name="utau_ice" /> 
     77     <field field_ref="vtau_ice"     name="vtau_ice" /> 
     78   </file> 
     79 
     80   <file id="file3" name_suffix="_grid_U" description="ocean U grid variables" > 
     81     <field field_ref="e3u" /> 
     82     <field field_ref="ssu"          name="uos"      /> 
     83     <field field_ref="uoce"         name="uo"       operation="instant" freq_op="5d" > @uoce_e3u / @e3u </field> 
     84     <field field_ref="utau"         name="tauuo"    /> 
     85          <!-- available with key_diaar5 --> 
     86     <field field_ref="u_masstr"     name="vozomatr" /> 
     87     <field field_ref="u_heattr"     name="sozohetr" /> 
     88      <field field_ref="u_salttr"     name="sozosatr" /> 
     89   </file> 
     90    
     91   <file id="file4" name_suffix="_grid_V" description="ocean V grid variables" > 
     92     <field field_ref="e3v" /> 
     93     <field field_ref="ssv"          name="vos"      /> 
     94     <field field_ref="voce"         name="vo"       operation="instant" freq_op="5d" > @voce_e3v / @e3v </field> 
     95     <field field_ref="vtau"         name="tauvo"    /> 
     96          <!-- available with key_diaar5 --> 
     97     <field field_ref="v_masstr"     name="vomematr" /> 
     98     <field field_ref="v_heattr"     name="somehetr" /> 
     99      <field field_ref="v_salttr"     name="somesatr" /> 
     100   </file> 
     101    
     102   <file id="file5" name_suffix="_grid_W" description="ocean W grid variables" > 
     103     <field field_ref="e3w" /> 
     104     <field field_ref="woce"         name="wo"       /> 
     105     <field field_ref="avt"          name="difvho"   /> 
     106     <field field_ref="w_masstr"     name="vovematr" /> 
     107   </file> 
     108 
     109   <file id="file6" name_suffix="_icemod" description="ice variables" enabled=".true." > 
     110          <field field_ref="snowthic_cea"    name="snthic" /> 
     111          <field field_ref="icethic_cea"     name="sithic" /> 
     112          <field field_ref="icevolu"         name="sivolu" /> 
     113          <field field_ref="snowvol"         name="snvolu" /> 
     114          <field field_ref="iceconc"         name="siconc" /> 
     115 
     116          <field field_ref="isst"            name="sst"    /> 
     117          <field field_ref="isss"            name="sss"    /> 
     118          <field field_ref="micesalt"        name="sisali" /> 
     119          <field field_ref="micet"           name="sitemp" /> 
     120          <field field_ref="icest"           name="sistem" /> 
     121          <field field_ref="icehc"           name="siheco" /> 
     122          <field field_ref="isnowhc"         name="snheco" /> 
     123          <field field_ref="miceage"         name="siages" /> 
     124 
     125          <field field_ref="uice_ipa"        name="sivelu" /> 
     126          <field field_ref="vice_ipa"        name="sivelv" /> 
     127          <field field_ref="icevel"          name="sivelo" /> 
     128          <field field_ref="idive"           name="sidive" /> 
     129          <field field_ref="ishear"          name="sishea" /> 
     130          <field field_ref="icestr"          name="sistre" /> 
     131 
     132          <field field_ref="ibrinv"          name="sibrin" /> 
     133          <field field_ref="icecolf"         name="sicolf" /> 
     134 
     135          <field field_ref="iceage_cat"      name="siagecat" /> 
     136          <field field_ref="iceconc_cat"     name="siconcat" /> 
     137          <field field_ref="icethic_cat"     name="sithicat" /> 
     138          <field field_ref="snowthic_cat"    name="snthicat" /> 
     139          <field field_ref="salinity_cat"    name="salincat" /> 
     140          <field field_ref="brinevol_cat"    name="sibricat" /> 
     141     <field field_ref="icetemp_cat"     name="sitemcat" /> 
     142     <field field_ref="snwtemp_cat"     name="sntemcat" /> 
     143 
     144   </file> 
     145 
     146        <file id="file9" name_suffix="_ptrc_T" description="passive tracers variables" > 
    45147           <field field_ref="Age"    operation="average" freq_op="1d" > @Age_e3t / @e3t </field> 
    46148           <field field_ref="CFC11"  operation="average" freq_op="1d" > @CFC11_e3t / @e3t </field> 
    47149           <field field_ref="RC14"   operation="average" freq_op="1d" > @RC14_e3t / @e3t </field> 
    48150         </file> 
    49       </file_group> 
    50        
    51       <file_group id="3d" output_freq="3d"  output_level="10" enabled=".TRUE."/> <!-- 3d files --> 
    52        
    53       <file_group id="5d" output_freq="5d"  output_level="10" enabled=".TRUE.">  <!-- 5d files -->    
     151 
    54152      </file_group> 
    55153 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/EXP00/namelist_trc_cfg

    r7041 r7068  
    1010/ 
    1111!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    12 &namcfcdate     !   CFC  
     12&namcfc     !   CFC  
    1313!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    1414/ 
     
    2525! 
    2626!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    27 &namc14_dia     !  additional diagnostics 
    28 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    29       ln_c14dia=.true.                                   !                !  
    30       c14dia3d(1)  = 'DeltaC14'            ! Delta C14 (permil) 
    31       c14dia3d(2)  = 'C14Age'              ! Radioage (yr) 
    32       c14dia2d(1)  = 'qtr_c14'             ! Air-sea flux  (1/m2/s) 
    33       c14dia2d(2)  = 'qint_c14'            ! Cumulative air-sea flux (1/m2) 
    34       c14dia2d(3)  = 'RAge'                ! Reservoir Age (yr) 
    35       c14dia0d(1)  = 'AtmCO2'              ! Global atmospheric CO2 (ppm) 
    36       c14dia0d(2)  = 'AtmC14'              ! Global atmospheric Delta-C14 (permil) 
    37       c14dia0d(3)  = 'K_C14'               ! Global 14C/C exchange velocity (m/yr) 
    38       c14dia0d(4)  = 'K_CO2'               ! Global CO2 piston velocity (cm/h) 
    39       c14dia0d(5)  = 'C14Inv'              ! Radiocarbon ocean inventory (10^26 atoms) 
    40 / 
    41 ! 
    42 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    4327&namc14_fcg     !  files & dates 
    4428!               !  For Paleo-historical: specify tyrc14_beg in yr BP 
    4529!               !  For Bomb: tyrc14_beg=0 
    4630!,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 
    47    cfileco2    = 'splco2.dat'  !  atmospheric co2 - Bomb 
    48    cfilec14    = 'atmc14.dat'  !  atmospheric c14 - Bomb 
    49    tyrc14_beg  = 0.00          !  starting year of experiment - Bomb 
    50 !   cfileco2    = 'ByrdEdcCO2.txt' !  atmospheric co2 - Paleo 
    51 !   cfilec14    = 'intcal13.14c'   !  atmospheric c14 - Paleo 
    52 !   tyrc14_beg  =  35000.00        !  starting year of experiment - Paleo (yr BP) 
    5331/ 
    5432! 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM3_TRC/cpp_ORCA2_LIM3_TRC.fcm

    r7041 r7068  
    1 bld::tool::fppkeys key_trabbl key_lim3 key_zdftke key_zdfddm key_zdftmx key_top key_iomput key_mpp_mpi key_nosignedzero 
     1bld::tool::fppkeys key_trabbl key_lim3 key_zdftke key_zdfddm key_zdftmx key_top key_iomput key_mpp_mpi 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_top_cfg

    r7050 r7068  
    55&namtrc_run     !   run information 
    66!----------------------------------------------------------------------- 
    7    jptra         =  24        ! Total number of tracers 
    87   ln_top_euler  = .true. 
    98/ 
     
    1110&namtrc     !   tracers definition 
    1211!----------------------------------------------------------------------- 
     12   jptra        =  24 
     13! 
     14   ln_pisces     =  .true. 
    1315   ln_age        =  .false. 
    1416   ln_cfc11      =  .false. 
    1517   ln_cfc12      =  .false. 
    1618   ln_c14        =  .false. 
     19   ln_my_trc     =  .false. 
     20! 
    1721   ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F) 
    1822!                 !           !                                          !             ! 
     
    8589/ 
    8690!----------------------------------------------------------------------- 
    87 &namtrc_dia       !   parameters for passive tracer additional diagnostics 
     91&namtrc_dmp      !   passive tracer newtonian damping 
     92!----------------------------------------------------------------------- 
     93/ 
     94!----------------------------------------------------------------------- 
     95&namtrc_ice      !    Representation of sea ice growth & melt effects 
     96!----------------------------------------------------------------------- 
     97/ 
     98!----------------------------------------------------------------------- 
     99&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc') 
     100!                          or mixed-layer trends                        ('key_trdmld_trc') 
    88101!---------------------------------------------------------------------- 
    89102/ 
    90103!---------------------------------------------------------------------- 
    91 &namtrc_bc        !   data for boundary conditions 
     104&namtrc_bc       !   data for boundary conditions 
    92105!----------------------------------------------------------------------- 
    93106/ 
     107!---------------------------------------------------------------------- 
     108&namtrc_bdy      !   Setup of tracer boundary conditions 
     109!----------------------------------------------------------------------- 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/cpp_ORCA2_LIM_PISCES.fcm

    r5930 r7068  
    1 bld::tool::fppkeys key_trabbl key_lim2 key_zdftke key_zdfddm key_zdftmx key_top key_pisces key_mpp_mpi key_iomput 
     1bld::tool::fppkeys key_trabbl key_lim2 key_zdftke key_zdfddm key_zdftmx key_top key_mpp_mpi key_iomput 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist_top_cfg

    r7050 r7068  
    55&namtrc_run     !   run information 
    66!----------------------------------------------------------------------- 
    7    jptra         =  24        ! Total number of tracers 
    87   ln_top_euler  = .true. 
    98/ 
     
    1110&namtrc     !   tracers definition 
    1211!----------------------------------------------------------------------- 
     12   jptra        =  24 
     13! 
     14   ln_pisces     =  .true. 
    1315   ln_age        =  .false. 
    1416   ln_cfc11      =  .false. 
    1517   ln_cfc12      =  .false. 
    1618   ln_c14        =  .false. 
     19   ln_my_trc     =  .false. 
     20! 
    1721   ln_trcdta     =  .true.  !  Initialisation from data input file (T) or not (F) 
    1822!                 !           !                                          !             ! 
     
    8589/ 
    8690!----------------------------------------------------------------------- 
    87 &namtrc_dia       !   parameters for passive tracer additional diagnostics 
     91&namtrc_dmp      !   passive tracer newtonian damping 
     92!----------------------------------------------------------------------- 
     93/ 
     94!----------------------------------------------------------------------- 
     95&namtrc_ice      !    Representation of sea ice growth & melt effects 
     96!----------------------------------------------------------------------- 
     97/ 
     98!----------------------------------------------------------------------- 
     99&namtrc_trd      !   diagnostics on tracer trends                       ('key_trdtrc') 
     100!                          or mixed-layer trends                        ('key_trdmld_trc') 
    88101!---------------------------------------------------------------------- 
    89102/ 
    90103!---------------------------------------------------------------------- 
    91 &namtrc_bc        !   data for boundary conditions 
     104&namtrc_bc       !   data for boundary conditions 
    92105!----------------------------------------------------------------------- 
    93106/ 
     107!---------------------------------------------------------------------- 
     108&namtrc_bdy      !   Setup of tracer boundary conditions 
     109!----------------------------------------------------------------------- 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/cpp_ORCA2_OFF_PISCES.fcm

    r5836 r7068  
    1 bld::tool::fppkeys key_trabbl key_top key_offline key_pisces key_iomput key_mpp_mpi 
     1bld::tool::fppkeys key_trabbl key_top key_offline key_iomput key_mpp_mpi 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/SHARED/namelist_top_ref

    r7041 r7068  
    1212&namtrc_run      !   run information 
    1313!----------------------------------------------------------------------- 
    14    jptra         =  3        ! Total number of tracers 
    1514   nn_dttrc      =  1        !  time step frequency for passive sn_tracers 
    1615   ln_top_euler  = .false.   !  use Euler time-stepping for TOP 
     
    2726&namtrc          !   tracers definition 
    2827!----------------------------------------------------------------------- 
    29    ln_age        =  .true. 
    30    ln_cfc11      =  .true. 
    31    ln_cfc12      =  .false. 
    32    ln_c14        =  .true. 
     28   jptra         =  1           !  Number of passive tracers of the BGC model 
     29! 
     30   ln_pisces     =  .false.     !  Run PISCES BGC model  
     31   ln_age        =  .true.      !  Run the sea water age tracer 
     32   ln_cfc11      =  .true.      !  Run the CFC11 passive tracer 
     33   ln_cfc12      =  .false.     !  Run the CFC12 passive tracer 
     34   ln_c14        =  .true.      !  Run the Radiocarbon passive tracer 
     35   ln_my_trc     =  .false.     !  Run MY_TRC BGC model 
     36! 
    3337   ln_trcdta     =  .false.  !  Initialisation from data input file (T) or not (F) 
    3438   ln_trcdmp     =  .false.  !  add a damping termn (T) or not (F) 
    3539   ln_trcdmp_clo =  .false.  !  damping term (T) or not (F) on closed seas 
    36 ! 
    37 !              !    name   !           title of the field              !   units    ! initial data from file or not ! 
    38    sn_tracer(1)  = 'Age   ' , 'Sea water age since surface contact     ',  'yr'     ,      .false.  
    39    sn_tracer(2)  = 'CFC11 ' , 'CFC11 Concentration                     ',  'umolC/L',      .false. 
    40    sn_tracer(3)  = 'RC14  ' , 'Radiocarbon ratio                       ',  '-'      ,      .false.  
     40!                !           !                                         !            !                               ! 
     41!                !    name   !           title of the field            !   units    ! initial data from file or not !  
     42   sn_tracer(1)  = 'tracer  ' , 'Tracer  Concentration                 ',   ' - '    ,           .false. 
    4143/ 
    4244!----------------------------------------------------------------------- 
     
    4446!----------------------------------------------------------------------- 
    4547   cn_dir        =  './'     !  root directory for the location of the data files 
     48!          !  file name  ! frequency (hours) ! variable  ! time interp. !  clim  ! 'yearly'/ ! weights  ! rotation ! land/sea mask ! 
     49!          !             !  (if <0  months)  !   name    !   (logical)  !  (T/F) ! 'monthly' ! filename ! pairing  ! filename      ! 
     50   sn_trcdta(1)  = 'data_TRC_nomask'        ,        -12        ,  'TRC'     ,    .false.   , .true. , 'yearly'  , ''       , ''   , '' 
    4651/ 
    4752!----------------------------------------------------------------------- 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/CONFIG/cfg.txt

    r7050 r7068  
    1111GYRE OPA_SRC 
    1212ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
     13ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 
     14ORCA2_LIM3_TRC_N OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 
    1315ORCA2_LIM3_TRC OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 
    14 ORCA2_LIM3_PISCES OPA_SRC LIM_SRC_3 NST_SRC TOP_SRC 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r6140 r7068  
    120120   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sprecip           !: solid precipitation                          [Kg/m2/s] 
    121121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fr_i              !: ice fraction = 1 - lead fraction      (between 0 to 1) 
    122 #if defined key_cpl_carbon_cycle 
    123122   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   atm_co2           !: atmospheric pCO2                             [ppm] 
    124 #endif 
    125123   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xcplmask          !: coupling mask for ln_mixcpl (warning: allocated in sbccpl) 
    126124 
     
    166164         ! 
    167165      ALLOCATE( tprecip(jpi,jpj) , sprecip(jpi,jpj) , fr_i(jpi,jpj) ,     & 
    168 #if defined key_cpl_carbon_cycle 
    169166         &      atm_co2(jpi,jpj) ,                                        & 
    170 #endif 
    171167         &      ssu_m  (jpi,jpj) , sst_m(jpi,jpj) , frq_m(jpi,jpj) ,      & 
    172168         &      ssv_m  (jpi,jpj) , sss_m(jpi,jpj) , ssh_m(jpi,jpj) , STAT=ierr(4) ) 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90

    r7041 r7068  
    1313 
    1414   INTEGER, PUBLIC  :: jp_age    !: number of passive tracers in PISCES 
    15    INTEGER, PUBLIC  :: jp_age0   !: index of AGE passive tracers 
    16  
    17    LOGICAL, PUBLIC  :: ln_age 
    1815 
    1916   !!====================================================================== 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcini_age.F90

    r7041 r7068  
    3939      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    4040 
    41       jp_age   = 1 
    42       DO jn = 1, jptra 
    43         cltra = ctrcnm(jn)  
    44         IF( cltra == 'AGE' .OR. cltra == 'Age' .OR. cltra == 'age' )   jp_age0 = jn      
    45       ENDDO 
    46  
    47       IF( lwp ) THEN 
    48         WRITE(numout,*) '' 
    49         WRITE(numout,*) ' Index of age tracer in the passive tracer array   jp_age0 = ', jp_age0 
    50         WRITE(numout,*)  
    51       ENDIF 
    52  
    53  
    5441      rryear  = 1._wp / ( nyear_len(1) * rday )    ! recip number of seconds in one year 
    5542 
     
    6653 
    6754       
    68       IF( .NOT. ln_rsttr ) trn(:,:,:,jp_age0) = 0. 
     55      IF( .NOT. ln_rsttr ) trn(:,:,:,jp_age) = 0. 
    6956      ! 
    7057   END SUBROUTINE trc_ini_age 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90

    r7041 r7068  
    3838      !!---------------------------------------------------------------------- 
    3939 
     40      ctrcnm    (jp_age) = 'Age' 
     41      ctrcln    (jp_age) = 'Sea water age since surface contact' 
     42      ctrcun    (jp_age) = 'year' 
     43      ln_trc_ini(jp_age) = .false.  
     44      ! 
     45      ln_trc_sbc(jp_age) =  '' 
     46      ln_trc_cbc(jp_age) =  '' 
     47      ln_trc_obc(jp_age) =  '' 
     48      ! 
     49 
    4050      REWIND( numtrc_ref )              ! Namelist namagedate in reference namelist : AGE parameters 
    4151      READ  ( numtrc_ref, namage, IOSTAT = ios, ERR = 901) 
     
    4858 
    4959      IF(lwp) THEN                  ! control print 
     60         WRITE(numout,*) ' ' 
     61         WRITE(numout,*) ' Sea Age Tracer' 
     62         WRITE(numout,*) '  tracer nb : ', jp_age, '    short name : ', TRIM( ctrcnm(jp_age) ) 
    5063         WRITE(numout,*) 
    5164         WRITE(numout,*) ' trc_nam_age: Read namage, namelist for Age passive tracer' 
     
    5366         WRITE(numout,*) '  depth over which age tracer reset to zero                              rn_age_depth      = ', rn_age_depth  
    5467         WRITE(numout,*) '  recip of relax. timescale (s) for age tracer shallower than age_depth  rn_age_kill_rate  = ', rn_age_kill_rate  
     68         WRITE(numout,*) '' 
    5569      ENDIF 
    5670 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcsms_age.F90

    r7041 r7068  
    5858 
    5959      DO jk = 1, nla_age 
    60          tra(:,:,jk,jp_age0) = rn_age_kill_rate * trb(:,:,jk,jp_age0) 
     60         tra(:,:,jk,jp_age) = rn_age_kill_rate * trb(:,:,jk,jp_age) 
    6161      ENDDO 
    6262      ! 
    63       tra(:,:,nl_age,jp_age0) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age0)  & 
     63      tra(:,:,nl_age,jp_age) = frac_kill_age * rn_age_kill_rate * trb(:,:,nl_age,jp_age)  & 
    6464          &                   + frac_add_age  * rryear * tmask(:,:,nl_age) 
    6565      ! 
    6666      DO jk = nlb_age, jpk 
    67          tra(:,:,jk,jp_age0) = tmask(:,:,jk) * rryear 
     67         tra(:,:,jk,jp_age) = tmask(:,:,jk) * rryear 
    6868      ENDDO 
    6969      ! 
    70       IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age0), jn, jptra_sms, kt )   ! save trends 
     70      IF( l_trdtrc ) CALL trd_trc( tra(:,:,:,jp_age), jn, jptra_sms, kt )   ! save trends 
    7171      ! 
    7272      IF( nn_timing == 1 )  CALL timing_stop('trc_sms_age') 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/AGE/trcwri_age.F90

    r7041 r7068  
    3333      ! write the tracer concentrations in the file 
    3434 
    35       cltra = TRIM( ctrcnm(jp_age0) )                  ! short title for tracer 
    36       CALL iom_put( cltra, trn(:,:,:,jp_age0) ) 
     35      cltra = TRIM( ctrcnm(jp_age) )                  ! short title for tracer 
     36      CALL iom_put( cltra, trn(:,:,:,jp_age) ) 
    3737 
    3838      ! 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/par_c14.F90

    r7041 r7068  
    99 
    1010   IMPLICIT NONE 
    11  
    1211   INTEGER, PUBLIC ::  jp_c14    !: number of c14 tracer 
    13    INTEGER, PUBLIC ::  jp_c140   !: First index of C14 tracer 
    14  
    15    LOGICAL, PUBLIC ::  ln_c14 
    1612 
    1713END MODULE par_c14 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcini_c14.F90

    r7041 r7068  
    5151      IF(lwp) WRITE(numout,*) ' trc_ini_c14: initialisation of C14 model' 
    5252      ! 
    53       jp_c14  = 1 
    54       DO jn = 1, jptra 
    55         cltra = ctrcnm(jn)  
    56         IF( cltra == 'C14' .OR. cltra == 'RC14' .OR. cltra == 'C14b' )   jp_c140 = jn      
    57       ENDDO 
    58  
    59       IF( lwp ) THEN 
    60         WRITE(numout,*) '' 
    61         WRITE(numout,*) ' Index of c14 tracer in the passive tracer array   jp_c140 = ', jp_c140 
    62         WRITE(numout,*)  
    63       ENDIF 
    64  
    65       ! 
    6653      IF( .NOT. ln_rsttr )  THEN 
    6754         ! 
     
    6956         IF(lwp) WRITE(numout,*) '                      ==>    Ocean C14/C :', rc14init  
    7057         ! 
    71          trn(:,:,:,jp_c140) = rc14init * tmask(:,:,:) 
     58         trn(:,:,:,jp_c14) = rc14init * tmask(:,:,:) 
    7259         ! 
    7360         qtr_c14(:,:) = 0._wp           ! Init of air-sea BC 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcnam_c14.F90

    r7041 r7068  
    4343      NAMELIST/namc14_fcg/ cfileco2, cfilec14, tyrc14_beg  ! for transient exps; atm forcing 
    4444      !!------------------------------------------------------------------- 
     45      ! 
     46      ctrcnm    (jp_c14) = 'RC14' 
     47      ctrcln    (jp_c14) = 'Radiocarbon ratio' 
     48      ctrcun    (jp_c14) = '-' 
     49      ln_trc_ini(jp_c14) = .false. 
     50      ! 
    4551 
    4652      REWIND( numtrc_ref )              ! Namelist namc14_typ in reference namelist : 
     
    5460 
    5561      IF(lwp) THEN                  ! control print 
     62         WRITE(numout,*) ' ' 
     63         WRITE(numout,*) ' Radiocarbon C14' 
     64         WRITE(numout,*) '  tracer nb : ', jp_c14, '    short name : ', TRIM( ctrcnm(jp_c14) ) 
     65         WRITE(numout,*) ' ' 
    5666         WRITE(numout,*) ' Namelist namc14_typ' 
    5767         WRITE(numout,*) 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcsms_c14.F90

    r7041 r7068  
    4646      !            freshwater fluxes which should not impact the C14/C ratio 
    4747      ! 
    48       !        =>   Delta-C14= ( trn(...jp_c140) -1)*1000. 
     48      !        =>   Delta-C14= ( trn(...jp_c14) -1)*1000. 
    4949      !! 
    5050      !!---------------------------------------------------------------------- 
     
    121121      ! Flux of C-14 from air-to-sea; units: (C14/C ratio) x m/s 
    122122      !                               already masked 
    123       qtr_c14(:,:) = exch_c14(:,:) * ( c14sbc(:,:) - trb(:,:,1,jp_c140) ) 
     123      qtr_c14(:,:) = exch_c14(:,:) * ( c14sbc(:,:) - trb(:,:,1,jp_c14) ) 
    124124             
    125125      ! cumulation of air-to-sea flux at each time step 
    126126      qint_c14(:,:) = qint_c14(:,:) + qtr_c14(:,:) * rdttrc 
    127127      ! 
    128       ! Add the surface flux to the trend of jp_c140 
     128      ! Add the surface flux to the trend of jp_c14 
    129129      DO jj = 1, jpj 
    130130         DO ji = 1, jpi 
    131             tra(ji,jj,1,jp_c140) = tra(ji,jj,1,jp_c140) + qtr_c14(ji,jj) / e3t_n(ji,jj,1)  
     131            tra(ji,jj,1,jp_c14) = tra(ji,jj,1,jp_c14) + qtr_c14(ji,jj) / e3t_n(ji,jj,1)  
    132132         END DO 
    133133      END DO 
    134134      ! 
    135       ! Computation of decay effects on jp_c140 
     135      ! Computation of decay effects on jp_c14 
    136136      DO jk = 1, jpk 
    137137         DO jj = 1, jpj 
    138138            DO ji = 1, jpi 
    139139               ! 
    140                tra(ji,jj,jk,jp_c140) = tra(ji,jj,jk,jp_c140) - rlam14 * trb(ji,jj,jk,jp_c140) * tmask(ji,jj,jk)  
     140               tra(ji,jj,jk,jp_c14) = tra(ji,jj,jk,jp_c14) - rlam14 * trb(ji,jj,jk,jp_c14) * tmask(ji,jj,jk)  
    141141               ! 
    142142            END DO 
     
    159159      ENDIF 
    160160 
    161       IF( l_trdtrc )  CALL trd_trc( tra(:,:,:,jp_c140), jp_c14, jptra_sms, kt )   ! save trends 
     161      IF( l_trdtrc )  CALL trd_trc( tra(:,:,:,jp_c14), 1, jptra_sms, kt )   ! save trends 
    162162      ! 
    163163      IF( nn_timing == 1 )  CALL timing_stop('trc_sms_c14') 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/C14/trcwri_c14.F90

    r7041 r7068  
    4242      ! write the tracer concentrations in the file 
    4343      ! --------------------------------------- 
    44       cltra = TRIM( ctrcnm(jp_c140) )                  ! short title for tracer 
    45       CALL iom_put( cltra, trn(:,:,:,jp_c140) ) 
     44      cltra = TRIM( ctrcnm(jp_c14) )                  ! short title for tracer 
     45      CALL iom_put( cltra, trn(:,:,:,jp_c14) ) 
    4646 
    4747      ! compute and write the tracer diagnostic in the file 
     
    6161               DO ji = 1, jpi 
    6262                  IF( tmask(ji,jj,jk) > 0._wp) THEN 
    63                      z3d (ji,jj,jk) = trn(ji,jj,jk,jp_c140) 
     63                     z3d (ji,jj,jk) = trn(ji,jj,jk,jp_c14) 
    6464                     zz3d(ji,jj,jk) = LOG( z3d(ji,jj,jk) ) 
    6565                  ENDIF 
     
    114114      ENDIF 
    115115      IF( iom_use("C14Inv") ) THEN 
    116          ztemp = glob_sum( trn(:,:,:,jp_c140) * cvol(:,:,:) ) 
     116         ztemp = glob_sum( trn(:,:,:,jp_c14) * cvol(:,:,:) ) 
    117117         ztemp = atomc14 * xdicsur * ztemp 
    118118         CALL iom_put( "C14Inv", ztemp )  !  Radiocarbon ocean inventory [10^26 atoms] 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90

    r7041 r7068  
    1212 
    1313   IMPLICIT NONE 
    14  
    15    INTEGER, PUBLIC  :: jp_cfc            !:  number of CFC passive tracers 
    16    INTEGER, PUBLIC  :: jpc11, jpc12      !:  index of CFC tracers 
    1714   INTEGER, PUBLIC  :: jp_cfc0, jp_cfc1  !:  First/last index of CFC tracers 
    18  
    19    LOGICAL, PUBLIC  :: ln_cfc11, ln_cfc12, ll_cfc 
    2015 
    2116   !!====================================================================== 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90

    r7041 r7068  
    4949      IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 
    5050      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 
    51  
    52        
    53       ! assign an index in trc arrays for each CFC prognostic variables 
    54       jp_cfc = 1  
    55       IF( ln_cfc11 .AND. ln_cfc12 )  jp_cfc = 2 
    56  
    57       ! assign an index in trc arrays for each prognostic variables 
    58       DO jn = 1, jptra 
    59         cltra = ctrcnm(jn)  
    60         IF( cltra == 'CFC11'  .OR. cltra == 'cfc11' )   jpc11 = jn  
    61         IF( cltra == 'CFC12'  .OR. cltra == 'cfc12' )   jpc12 = jn  
    62       ENDDO 
    63     
    64       IF( jp_cfc == 1 ) THEN 
    65         IF( ln_cfc11 )  jp_cfc0  = jpc11 
    66         IF( ln_cfc12 )  jp_cfc0  = jpc12 
    67       ELSE 
    68         jp_cfc0 = MIN( jpc11, jpc12 )  
    69       ENDIF 
    70       jp_cfc1 = jp_cfc0 + jp_cfc - 1 
    71  
    72       IF( lwp ) THEN 
    73         WRITE(numout,*) '' 
    74         WRITE(numout,*) ' First index of CFC tracer in the passive tracer array   jp_cfc0 = ', jp_cfc0 
    75         WRITE(numout,*) ' Last  index of CFC tracer in the passive tracer array   jp_cfc1 = ', jp_cfc1 
    76         WRITE(numout,*)  
    77       ENDIF 
    7851 
    7952      IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 
     
    142115      p_cfc(38,1:2,1) = 8.e-3 
    143116      p_cfc(39,1:2,1) = 1.e-2 
    144        
    145117      IF(lwp) THEN        ! Control print 
    146118         WRITE(numout,*) 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90

    r7041 r7068  
    4242      !!---------------------------------------------------------------------- 
    4343 
     44      IF( ln_cfc11 ) THEN 
     45         ctrcnm    (jp_cfc0) = 'CFC11' 
     46         ctrcln    (jp_cfc0) = 'Chlorofluoro carbon 11 Concentration' 
     47         ctrcun    (jp_cfc0) = 'umolC/L' 
     48         ln_trc_ini(jp_cfc0) = .false. 
     49      ENDIF 
     50      ! 
     51      IF( ln_cfc12 ) THEN 
     52         ctrcnm    (jp_cfc1) = 'CFC12' 
     53         ctrcln    (jp_cfc1) = 'Chlorofluoro carbon 12 Concentration' 
     54         ctrcun    (jp_cfc1) = 'umolC/L' 
     55         ln_trc_ini(jp_cfc1) = .false. 
     56      ENDIF 
     57      ! 
     58      IF(lwp) THEN                   ! control print 
     59      ENDIF 
     60 
    4461      REWIND( numtrc_ref )              ! Namelist namcfcdate in reference namelist : CFC parameters 
    4562      READ  ( numtrc_ref, namcfc, IOSTAT = ios, ERR = 901) 
     
    5269 
    5370      IF(lwp) THEN                  ! control print 
    54          WRITE(numout,*) 
     71         WRITE(numout,*) ' ' 
     72         WRITE(numout,*) ' CFCs' 
     73         IF( ln_cfc11 )  WRITE(numout,*) '  tracer nb : ', jp_cfc0, '    short name : ', TRIM( ctrcnm(jp_cfc0) ) 
     74         IF( ln_cfc12 )  WRITE(numout,*) '  tracer nb : ', jp_cfc1, '    short name : ', TRIM( ctrcnm(jp_cfc1) ) 
     75         WRITE(numout,*) ' ' 
    5576         WRITE(numout,*) ' trc_nam: Read namdates, namelist for CFC chemical model' 
    5677         WRITE(numout,*) ' ~~~~~~~' 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90

    r7041 r7068  
    88   !!              -   !  2001-03  (M. Levy)  LNO3 + dia2d  
    99   !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90 
    10    !!---------------------------------------------------------------------- 
    11 #if defined key_pisces 
    12    !!---------------------------------------------------------------------- 
    13    !!   'key_pisces'                                     LOBSTER bio-model 
    1410   !!---------------------------------------------------------------------- 
    1511   !!   p2z_bio        :   
     
    506502   END SUBROUTINE p2z_bio_init 
    507503 
    508 #else 
    509    !!====================================================================== 
    510    !!  Dummy module :                                   No PISCES bio-model 
    511    !!====================================================================== 
    512 CONTAINS 
    513    SUBROUTINE p2z_bio( kt )                   ! Empty routine 
    514       INTEGER, INTENT( in ) ::   kt 
    515       WRITE(*,*) 'p2z_bio: You should not have seen this print! error?', kt 
    516    END SUBROUTINE p2z_bio 
    517 #endif  
    518  
    519504   !!====================================================================== 
    520505END MODULE p2zbio 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zexp.F90

    r7041 r7068  
    99   !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90 
    1010   !!             3.5  !  2012-03  (C. Ethe)  Merge PISCES-LOBSTER 
    11    !!---------------------------------------------------------------------- 
    12 #if defined key_pisces 
    13    !!---------------------------------------------------------------------- 
    14    !!   'key_pisces'                                     LOBSTER bio-model 
    1511   !!---------------------------------------------------------------------- 
    1612   !!   p2z_exp        :  Compute loss of organic matter in the sediments 
     
    265261   END FUNCTION p2z_exp_alloc 
    266262 
    267 #else 
    268    !!====================================================================== 
    269    !!  Dummy module :                                   No PISCES bio-model 
    270    !!====================================================================== 
    271 CONTAINS 
    272    SUBROUTINE p2z_exp( kt )                   ! Empty routine 
    273       INTEGER, INTENT( in ) ::   kt 
    274       WRITE(*,*) 'p2z_exp: You should not have seen this print! error?', kt 
    275    END SUBROUTINE p2z_exp 
    276 #endif  
    277  
    278263   !!====================================================================== 
    279264END MODULE  p2zexp 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90

    r7041 r7068  
    1010   !!   NEMO      2.0  !  2007-12  (C. Deltel, G. Madec)  F90 
    1111   !!             3.2  !  2009-04  (C. Ethe, G. Madec)  minor optimisation + style 
    12    !!---------------------------------------------------------------------- 
    13 #if defined key_pisces 
    14    !!---------------------------------------------------------------------- 
    15    !!   'key_pisces'                                     LOBSTER bio-model 
    1612   !!---------------------------------------------------------------------- 
    1713   !!   p2z_opt        :   Compute the light availability in the water column 
     
    208204   END SUBROUTINE p2z_opt_init 
    209205 
    210 #else 
    211    !!====================================================================== 
    212    !!  Dummy module :                                   No PISCES bio-model 
    213    !!====================================================================== 
    214 CONTAINS 
    215    SUBROUTINE p2z_opt( kt )                   ! Empty routine 
    216       INTEGER, INTENT( in ) ::   kt 
    217       WRITE(*,*) 'p2z_opt: You should not have seen this print! error?', kt 
    218    END SUBROUTINE p2z_opt 
    219 #endif  
    220  
    221206   !!====================================================================== 
    222207END MODULE  p2zopt 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90

    r7041 r7068  
    77   !!              -   !  2000-12 (E. Kestenare)  clean up 
    88   !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90 + simplifications 
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_pisces'                                     LOBSTER bio-model 
    139   !!---------------------------------------------------------------------- 
    1410   !!   p2z_sed        :  Compute loss of organic matter in the sediments 
     
    159155   END SUBROUTINE p2z_sed_init 
    160156 
    161 #else 
    162    !!====================================================================== 
    163    !!  Dummy module :                                   No PISCES bio-model 
    164    !!====================================================================== 
    165 CONTAINS 
    166    SUBROUTINE p2z_sed( kt )                   ! Empty routine 
    167       INTEGER, INTENT( in ) ::   kt 
    168       WRITE(*,*) 'p2z_sed: You should not have seen this print! error?', kt 
    169    END SUBROUTINE p2z_sed 
    170 #endif  
    171  
    172157   !!====================================================================== 
    173158END MODULE  p2zsed 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90

    r7041 r7068  
    66   !! History :   1.0  !            M. Levy 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                              LOBSTER bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   p2zsms        :  Time loop of passive tracers sms 
     
    7268   END SUBROUTINE p2z_sms 
    7369 
    74 #else 
    75    !!====================================================================== 
    76    !!  Dummy module :                                     No passive tracer 
    77    !!====================================================================== 
    78 CONTAINS 
    79    SUBROUTINE p2z_sms( kt )                   ! Empty routine 
    80       INTEGER, INTENT( in ) ::   kt 
    81       WRITE(*,*) 'p2z_sms: You should not have seen this print! error?', kt 
    82    END SUBROUTINE p2z_sms 
    83 #endif  
    84  
    8570   !!====================================================================== 
    8671END MODULE p2zsms 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zbio.F90

    r6140 r7068  
    66   !! History :   1.0  !  2004     (O. Aumont) Original code 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                       PISCES bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   p4z_bio        :   computes the interactions between the different 
     
    9692   END SUBROUTINE p4z_bio 
    9793 
    98 #else 
    99    !!====================================================================== 
    100    !!  Dummy module :                                   No PISCES bio-model 
    101    !!====================================================================== 
    102 CONTAINS 
    103    SUBROUTINE p4z_bio                         ! Empty routine 
    104    END SUBROUTINE p4z_bio 
    105 #endif  
    106  
    10794   !!====================================================================== 
    10895END MODULE p4zbio 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90

    r6945 r7068  
    1111   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    1212   !!                  !  2011-02  (J. Simeon, J.Orr ) update O2 solubility constants 
    13    !!---------------------------------------------------------------------- 
    14 #if defined key_pisces 
    15    !!---------------------------------------------------------------------- 
    16    !!   'key_pisces'                                       PISCES bio-model 
    1713   !!---------------------------------------------------------------------- 
    1814   !!   p4z_che      :  Sea water chemistry computed following OCMIP protocol 
     
    333329   END FUNCTION p4z_che_alloc 
    334330 
    335 #else 
    336    !!====================================================================== 
    337    !!  Dummy module :                                   No PISCES bio-model 
    338    !!====================================================================== 
    339 CONTAINS 
    340    SUBROUTINE p4z_che( kt )                   ! Empty routine 
    341       INTEGER, INTENT(in) ::   kt 
    342       WRITE(*,*) 'p4z_che: You should not have seen this print! error?', kt 
    343    END SUBROUTINE p4z_che 
    344 #endif  
    345  
    346331   !!====================================================================== 
    347332END MODULE p4zche 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r7041 r7068  
    55   !!====================================================================== 
    66   !! History :   3.5  !  2012-07 (O. Aumont, A. Tagliabue, C. Ethe) Original code 
    7    !!---------------------------------------------------------------------- 
    8 #if defined key_pisces 
    9    !!---------------------------------------------------------------------- 
    10    !!   'key_top'       and                                      TOP models 
    11    !!   'key_pisces'                                       PISCES bio-model 
    127   !!---------------------------------------------------------------------- 
    138   !!   p4z_fechem       :  Compute remineralization/scavenging of iron 
     
    359354   END SUBROUTINE p4z_fechem_init 
    360355 
    361 #else 
    362    !!====================================================================== 
    363    !!  Dummy module :                                   No PISCES bio-model 
    364    !!====================================================================== 
    365 CONTAINS 
    366    SUBROUTINE p4z_fechem                    ! Empty routine 
    367    END SUBROUTINE p4z_fechem 
    368 #endif  
    369  
    370356   !!====================================================================== 
    371357END MODULE p4zfechem 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90

    r7041 r7068  
    1111   !!                  !  2011-02  (J. Simeon, J. Orr) Include total atm P correction  
    1212   !!---------------------------------------------------------------------- 
    13 #if defined key_pisces 
    14    !!---------------------------------------------------------------------- 
    15    !!   'key_pisces'                                       PISCES bio-model 
    16    !!---------------------------------------------------------------------- 
    1713   !!   p4z_flx       :   CALCULATES GAS EXCHANGE AND CHEMISTRY AT SEA SURFACE 
    1814   !!   p4z_flx_init  :   Read the namelist 
     
    2622   USE iom                          !  I/O manager 
    2723   USE fldread                      !  read input fields 
    28 #if defined key_cpl_carbon_cycle 
    2924   USE sbc_oce, ONLY :  atm_co2     !  atmospheric pCO2                
    30 #endif 
    3125 
    3226   IMPLICIT NONE 
     
    116110      ENDIF 
    117111 
    118 #if defined key_cpl_carbon_cycle 
    119       satmco2(:,:) = atm_co2(:,:) 
    120 #endif 
     112 !    IF( ln_cpl_carbon_cycle )   satmco2(:,:) = atm_co2(:,:) 
    121113 
    122114      DO jm = 1, 10 
     
    384376   END FUNCTION p4z_flx_alloc 
    385377 
    386 #else 
    387    !!====================================================================== 
    388    !!  Dummy module :                                   No PISCES bio-model 
    389    !!====================================================================== 
    390 CONTAINS 
    391    SUBROUTINE p4z_flx( kt )                   ! Empty routine 
    392       INTEGER, INTENT( in ) ::   kt 
    393       WRITE(*,*) 'p4z_flx: You should not have seen this print! error?', kt 
    394    END SUBROUTINE p4z_flx 
    395 #endif  
    396  
    397378   !!====================================================================== 
    398379END MODULE p4zflx 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zint.F90

    r5656 r7068  
    66   !! History :   1.0  !  2004-03 (O. Aumont) Original code 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                       PISCES bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   p4z_int        :  interpolation and computation of various accessory fields 
     
    7066   END SUBROUTINE p4z_int 
    7167 
    72 #else 
    73    !!====================================================================== 
    74    !!  Dummy module :                                   No PISCES bio-model 
    75    !!====================================================================== 
    76 CONTAINS 
    77    SUBROUTINE p4z_int                   ! Empty routine 
    78       WRITE(*,*) 'p4z_int: You should not have seen this print! error?' 
    79    END SUBROUTINE p4z_int 
    80 #endif  
    81  
    8268   !!====================================================================== 
    8369END MODULE p4zint 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90

    r6945 r7068  
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    88   !!             3.4  !  2011-04  (O. Aumont, C. Ethe) Limitation for iron modelled in quota  
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_pisces'                                       PISCES bio-model 
    139   !!---------------------------------------------------------------------- 
    1410   !!   p4z_lim        :   Compute the nutrients limitation terms  
     
    268264   END SUBROUTINE p4z_lim_init 
    269265 
    270 #else 
    271    !!====================================================================== 
    272    !!  Dummy module :                                   No PISCES bio-model 
    273    !!====================================================================== 
    274 CONTAINS 
    275    SUBROUTINE p4z_lim                   ! Empty routine 
    276    END SUBROUTINE p4z_lim 
    277 #endif  
    278  
    279266   !!====================================================================== 
    280267END MODULE p4zlim 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r7041 r7068  
    1111   !!                  !  2011-02  (J. Simeon, J. Orr)  Calcon salinity dependence 
    1212   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Improvment of calcite dissolution 
    13    !!---------------------------------------------------------------------- 
    14 #if defined key_pisces 
    15    !!---------------------------------------------------------------------- 
    16    !!   'key_pisces'                                       PISCES bio-model 
    1713   !!---------------------------------------------------------------------- 
    1814   !!   p4z_lys        :   Compute the CaCO3 dissolution  
     
    204200   END SUBROUTINE p4z_lys_init 
    205201 
    206 #else 
    207    !!====================================================================== 
    208    !!  Dummy module :                                   No PISCES bio-model 
    209    !!====================================================================== 
    210 CONTAINS 
    211    SUBROUTINE p4z_lys( kt )                   ! Empty routine 
    212       INTEGER, INTENT( in ) ::   kt 
    213       WRITE(*,*) 'p4z_lys: You should not have seen this print! error?', kt 
    214    END SUBROUTINE p4z_lys 
    215 #endif  
    216202   !!====================================================================== 
    217203END MODULE p4zlys 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r7041 r7068  
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    88   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Quota model for iron 
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_pisces'                                       PISCES bio-model 
    139   !!---------------------------------------------------------------------- 
    1410   !!   p4z_meso       :   Compute the sources/sinks for mesozooplankton 
     
    297293   END SUBROUTINE p4z_meso_init 
    298294 
    299  
    300 #else 
    301    !!====================================================================== 
    302    !!  Dummy module :                                   No PISCES bio-model 
    303    !!====================================================================== 
    304 CONTAINS 
    305    SUBROUTINE p4z_meso                    ! Empty routine 
    306    END SUBROUTINE p4z_meso 
    307 #endif  
    308  
    309295   !!====================================================================== 
    310296END MODULE p4zmeso 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r7041 r7068  
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    88   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Quota model for iron 
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_pisces'                                       PISCES bio-model 
    139   !!---------------------------------------------------------------------- 
    1410   !!   p4z_micro       :   Compute the sources/sinks for microzooplankton 
     
    250246   END SUBROUTINE p4z_micro_init 
    251247 
    252 #else 
    253    !!====================================================================== 
    254    !!  Dummy module :                                   No PISCES bio-model 
    255    !!====================================================================== 
    256 CONTAINS 
    257    SUBROUTINE p4z_micro                    ! Empty routine 
    258    END SUBROUTINE p4z_micro 
    259 #endif  
    260  
    261248   !!====================================================================== 
    262249END MODULE p4zmicro 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90

    r7041 r7068  
    66   !! History :   1.0  !  2002     (O. Aumont)  Original code 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                       PISCES bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   p4z_mort       :   Compute the mortality terms for phytoplankton 
     
    245241   END SUBROUTINE p4z_mort_init 
    246242 
    247 #else 
    248    !!====================================================================== 
    249    !!  Dummy module :                                   No PISCES bio-model 
    250    !!====================================================================== 
    251 CONTAINS 
    252    SUBROUTINE p4z_mort                    ! Empty routine 
    253    END SUBROUTINE p4z_mort 
    254 #endif  
    255  
    256243   !!====================================================================== 
    257244END MODULE p4zmort 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r7041 r7068  
    88   !!             3.2  !  2009-04  (C. Ethe, G. Madec)  optimisation 
    99   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Improve light availability of nano & diat 
    10    !!---------------------------------------------------------------------- 
    11 #if defined  key_pisces 
    12    !!---------------------------------------------------------------------- 
    13    !!   'key_pisces'                                       PISCES bio-model 
    1410   !!---------------------------------------------------------------------- 
    1511   !!   p4z_opt       : light availability in the water column 
     
    421417   END FUNCTION p4z_opt_alloc 
    422418 
    423 #else 
    424    !!---------------------------------------------------------------------- 
    425    !!  Dummy module :                                   No PISCES bio-model 
    426    !!---------------------------------------------------------------------- 
    427 CONTAINS 
    428    SUBROUTINE p4z_opt                   ! Empty routine 
    429    END SUBROUTINE p4z_opt 
    430 #endif  
    431  
    432419   !!====================================================================== 
    433420END MODULE p4zopt 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r7041 r7068  
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    88   !!             3.4  !  2011-05  (O. Aumont, C. Ethe) New parameterization of light limitation 
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_pisces'                                       PISCES bio-model 
    139   !!---------------------------------------------------------------------- 
    1410   !!   p4z_prod       :   Compute the growth Rate of the two phytoplanktons groups 
     
    563559   END FUNCTION p4z_prod_alloc 
    564560 
    565 #else 
    566    !!====================================================================== 
    567    !!  Dummy module :                                   No PISCES bio-model 
    568    !!====================================================================== 
    569 CONTAINS 
    570    SUBROUTINE p4z_prod                    ! Empty routine 
    571    END SUBROUTINE p4z_prod 
    572 #endif  
    573  
    574561   !!====================================================================== 
    575562END MODULE p4zprod 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r7041 r7068  
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    88   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Quota model for iron 
    9    !!---------------------------------------------------------------------- 
    10 #if defined key_pisces 
    11    !!---------------------------------------------------------------------- 
    12    !!   'key_top'       and                                      TOP models 
    13    !!   'key_pisces'                                       PISCES bio-model 
    149   !!---------------------------------------------------------------------- 
    1510   !!   p4z_rem       :  Compute remineralization/dissolution of organic compounds 
     
    350345   END FUNCTION p4z_rem_alloc 
    351346 
    352 #else 
    353    !!====================================================================== 
    354    !!  Dummy module :                                   No PISCES bio-model 
    355    !!====================================================================== 
    356 CONTAINS 
    357    SUBROUTINE p4z_rem                    ! Empty routine 
    358    END SUBROUTINE p4z_rem 
    359 #endif  
    360  
    361347   !!====================================================================== 
    362348END MODULE p4zrem 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r6962 r7068  
    55   !!====================================================================== 
    66   !! History :   3.5  !  2012-07 (O. Aumont, C. Ethe) Original code 
    7    !!---------------------------------------------------------------------- 
    8 #if defined key_pisces 
    9    !!---------------------------------------------------------------------- 
    10    !!   'key_pisces'                                       PISCES bio-model 
    117   !!---------------------------------------------------------------------- 
    128   !!   p4z_sbc        :  Read and interpolate time-varying nutrients fluxes 
     
    508504   END SUBROUTINE p4z_sbc_init 
    509505 
    510 #else 
    511    !!====================================================================== 
    512    !!  Dummy module :                                   No PISCES bio-model 
    513    !!====================================================================== 
    514 CONTAINS 
    515    SUBROUTINE p4z_sbc                         ! Empty routine 
    516    END SUBROUTINE p4z_sbc 
    517 #endif  
    518  
    519506   !!====================================================================== 
    520507END MODULE p4zsbc 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r7041 r7068  
    88   !!             3.4  !  2011-06 (C. Ethe) USE of fldread 
    99   !!             3.5  !  2012-07 (O. Aumont) improvment of river input of nutrients  
    10    !!---------------------------------------------------------------------- 
    11 #if defined key_pisces 
    12    !!---------------------------------------------------------------------- 
    13    !!   'key_pisces'                                       PISCES bio-model 
    1410   !!---------------------------------------------------------------------- 
    1511   !!   p4z_sed        :  Compute loss of organic matter in the sediments 
     
    5652      INTEGER, INTENT(in) ::   kt, knt ! ocean time step 
    5753      INTEGER  ::   ji, jj, jk, ikt 
    58 #if ! defined key_sed 
    5954      REAL(wp) ::   zsumsedsi, zsumsedpo4, zsumsedcal 
    6055      REAL(wp) ::   zrivalk, zrivsil, zrivno3 
    61 #endif 
    6256      REAL(wp) ::  zwflux, zfminus, zfplus 
    6357      REAL(wp) ::  zlim, zfact, zfactcal 
     
    205199      END DO 
    206200 
    207 #if ! defined key_sed 
    208       ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 
    209       ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
    210       ! ------------------------------------------------------- 
    211       DO jj = 1, jpj 
    212          DO ji = 1, jpi 
    213            IF( tmask(ji,jj,1) == 1 ) THEN 
    214               ikt = mbkt(ji,jj) 
    215               zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
    216                 &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) )  * 1E3 * 1E6 / 1E4 
    217               zflx  = LOG10( MAX( 1E-3, zflx ) ) 
    218               zo2   = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 
    219               zno3  = LOG10( MAX( 1.  , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 
    220               zdep  = LOG10( gdepw_n(ji,jj,ikt+1) ) 
    221               zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3    & 
    222               &                + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 
    223               zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 
    224               ! 
    225               zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
    226                 &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 
    227               zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 
    228            ENDIF 
    229          END DO 
    230       END DO  
    231  
    232       ! Loss of biogenic silicon, Caco3 organic carbon in the sediments.  
    233       ! First, the total loss is computed. 
    234       ! The factor for calcite comes from the alkalinity effect 
    235       ! ------------------------------------------------------------- 
    236       DO jj = 1, jpj 
    237          DO ji = 1, jpi 
    238             IF( tmask(ji,jj,1) == 1 ) THEN 
    239                ikt = mbkt(ji,jj)  
    240                zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 
    241                zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)  
    242                ! For calcite, burial efficiency is made a function of saturation 
    243                zfactcal      = MIN( excess(ji,jj,ikt), 0.2 ) 
    244                zfactcal      = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 
    245                zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 
    246             ENDIF 
    247          END DO 
    248       END DO 
    249       zsumsedsi  = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 
    250       zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 
    251       zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 
    252 #endif 
     201      IF( .NOT.lk_sed ) THEN 
     202         ! Computation of the sediment denitrification proportion: The metamodel from midlleburg (2006) is being used 
     203         ! Computation of the fraction of organic matter that is permanently buried from Dunne's model 
     204         ! ------------------------------------------------------- 
     205         DO jj = 1, jpj 
     206            DO ji = 1, jpi 
     207              IF( tmask(ji,jj,1) == 1 ) THEN 
     208                 ikt = mbkt(ji,jj) 
     209                 zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
     210                   &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) )  * 1E3 * 1E6 / 1E4 
     211                 zflx  = LOG10( MAX( 1E-3, zflx ) ) 
     212                 zo2   = LOG10( MAX( 10. , trb(ji,jj,ikt,jpoxy) * 1E6 ) ) 
     213                 zno3  = LOG10( MAX( 1.  , trb(ji,jj,ikt,jpno3) * 1E6 * rno3 ) ) 
     214                 zdep  = LOG10( gdepw_n(ji,jj,ikt+1) ) 
     215                 zdenit2d(ji,jj) = -2.2567 - 1.185 * zflx - 0.221 * zflx**2 - 0.3995 * zno3 * zo2 + 1.25 * zno3    & 
     216                   &                + 0.4721 * zo2 - 0.0996 * zdep + 0.4256 * zflx * zo2 
     217                   zdenit2d(ji,jj) = 10.0**( zdenit2d(ji,jj) ) 
     218                   ! 
     219                   zflx = (  trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj)   & 
     220                     &     + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj) ) * 1E6 
     221                   zbureff(ji,jj) = 0.013 + 0.53 * zflx**2 / ( 7.0 + zflx )**2 
     222                ENDIF 
     223              END DO 
     224           END DO  
     225 
     226           ! Loss of biogenic silicon, Caco3 organic carbon in the sediments.  
     227           ! First, the total loss is computed. 
     228           ! The factor for calcite comes from the alkalinity effect 
     229           ! ------------------------------------------------------------- 
     230           DO jj = 1, jpj 
     231              DO ji = 1, jpi 
     232                 IF( tmask(ji,jj,1) == 1 ) THEN 
     233                    ikt = mbkt(ji,jj)  
     234                    zwork1(ji,jj) = trb(ji,jj,ikt,jpgsi) * zwsbio4(ji,jj) 
     235                    zwork2(ji,jj) = trb(ji,jj,ikt,jpgoc) * zwsbio4(ji,jj) + trb(ji,jj,ikt,jppoc) * zwsbio3(ji,jj)  
     236                    ! For calcite, burial efficiency is made a function of saturation 
     237                    zfactcal      = MIN( excess(ji,jj,ikt), 0.2 ) 
     238                    zfactcal      = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 
     239                   zwork3(ji,jj) = trb(ji,jj,ikt,jpcal) * zwscal(ji,jj) * 2.e0 * zfactcal 
     240                ENDIF 
     241            END DO 
     242         END DO 
     243         zsumsedsi  = glob_sum( zwork1(:,:) * e1e2t(:,:) ) * r1_rday 
     244         zsumsedpo4 = glob_sum( zwork2(:,:) * e1e2t(:,:) ) * r1_rday 
     245         zsumsedcal = glob_sum( zwork3(:,:) * e1e2t(:,:) ) * r1_rday 
     246         ! 
     247      ENDIF 
    253248 
    254249      ! This loss is scaled at each bottom grid cell for equilibrating the total budget of silica in the ocean. 
    255250      ! Thus, the amount of silica lost in the sediments equal the supply at the surface (dust+rivers) 
    256251      ! ------------------------------------------------------ 
    257 #if ! defined key_sed 
    258       zrivsil =  1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 
    259 #endif 
     252      IF( .NOT.lk_sed )    zrivsil =  1._wp - ( sumdepsi + rivdsiinput * r1_ryyss ) / ( zsumsedsi + rtrn ) 
    260253 
    261254      DO jj = 1, jpj 
     
    270263            tra(ji,jj,ikt,jpgsi) = tra(ji,jj,ikt,jpgsi) - zsiloss 
    271264            tra(ji,jj,ikt,jpcal) = tra(ji,jj,ikt,jpcal) - zcaloss 
    272 #if ! defined key_sed 
    273             tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil  
    274             zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 
    275             zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 
    276             zrivalk  =  1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn ) 
    277             tra(ji,jj,ikt,jptal) =  tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 
    278             tra(ji,jj,ikt,jpdic) =  tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 
    279 #endif 
     265            IF( .NOT.lk_sed ) THEN 
     266               tra(ji,jj,ikt,jpsil) = tra(ji,jj,ikt,jpsil) + zsiloss * zrivsil  
     267               zfactcal = MIN( excess(ji,jj,ikt), 0.2 ) 
     268               zfactcal = MIN( 1., 1.3 * ( 0.2 - zfactcal ) / ( 0.4 - zfactcal ) ) 
     269               zrivalk  =  1._wp - ( rivalkinput * r1_ryyss ) * zfactcal / ( zsumsedcal + rtrn ) 
     270               tra(ji,jj,ikt,jptal) =  tra(ji,jj,ikt,jptal) + zcaloss * zrivalk * 2.0 
     271               tra(ji,jj,ikt,jpdic) =  tra(ji,jj,ikt,jpdic) + zcaloss * zrivalk 
     272            ENDIF 
    280273         END DO 
    281274      END DO 
     
    294287            zwstpoc              = trb(ji,jj,ikt,jpgoc) * zws4 + trb(ji,jj,ikt,jppoc) * zws3 
    295288 
    296 #if ! defined key_sed 
    297             ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 
    298             ! in the sediments and just above the sediments. Not very clever, but simpliest option. 
    299             zpdenit  = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
    300             z1pdenit = zwstpoc * zrivno3 - zpdenit 
    301             zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 
    302             zdenitt = MIN(  0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 
    303             tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 
    304             tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 
    305             tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 
    306             tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 
    307             tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut 
    308             tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
    309             tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
    310             sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt) 
    311 #endif 
     289            IF( .NOT.lk_sed ) THEN 
     290               ! The 0.5 factor in zpdenit and zdenitt is to avoid negative NO3 concentration after both denitrification 
     291               ! in the sediments and just above the sediments. Not very clever, but simpliest option. 
     292               zpdenit  = MIN( 0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, zdenit2d(ji,jj) * zwstpoc * zrivno3 ) 
     293               z1pdenit = zwstpoc * zrivno3 - zpdenit 
     294               zolimit = MIN( ( trb(ji,jj,ikt,jpoxy) - rtrn ) / o2ut, z1pdenit * ( 1.- nitrfac(ji,jj,ikt) ) ) 
     295               zdenitt = MIN(  0.5 * ( trb(ji,jj,ikt,jpno3) - rtrn ) / rdenit, z1pdenit * nitrfac(ji,jj,ikt) ) 
     296               tra(ji,jj,ikt,jpdoc) = tra(ji,jj,ikt,jpdoc) + z1pdenit - zolimit - zdenitt 
     297               tra(ji,jj,ikt,jppo4) = tra(ji,jj,ikt,jppo4) + zpdenit + zolimit + zdenitt 
     298               tra(ji,jj,ikt,jpnh4) = tra(ji,jj,ikt,jpnh4) + zpdenit + zolimit + zdenitt 
     299               tra(ji,jj,ikt,jpno3) = tra(ji,jj,ikt,jpno3) - rdenit * (zpdenit + zdenitt) 
     300               tra(ji,jj,ikt,jpoxy) = tra(ji,jj,ikt,jpoxy) - zolimit * o2ut 
     301               tra(ji,jj,ikt,jptal) = tra(ji,jj,ikt,jptal) + rno3 * (zolimit + (1.+rdenit) * (zpdenit + zdenitt) ) 
     302               tra(ji,jj,ikt,jpdic) = tra(ji,jj,ikt,jpdic) + zpdenit + zolimit + zdenitt 
     303               sdenit(ji,jj) = rdenit * zpdenit * e3t_n(ji,jj,ikt) 
     304            ENDIF 
    312305         END DO 
    313306      END DO 
     
    392385 
    393386 
    394 #else 
    395    !!====================================================================== 
    396    !!  Dummy module :                                   No PISCES bio-model 
    397    !!====================================================================== 
    398 CONTAINS 
    399    SUBROUTINE p4z_sed                         ! Empty routine 
    400    END SUBROUTINE p4z_sed 
    401 #endif  
    402  
    403387   !!====================================================================== 
    404388END MODULE p4zsed 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90

    r7041 r7068  
    88   !!             3.4  !  2011-06  (O. Aumont, C. Ethe) Change aggregation formula 
    99   !!             3.5  !  2012-07  (O. Aumont) Introduce potential time-splitting 
    10    !!---------------------------------------------------------------------- 
    11 #if defined key_pisces 
    1210   !!---------------------------------------------------------------------- 
    1311   !!   p4z_sink       :  Compute vertical flux of particulate matter due to gravitational sinking 
     
    409407   END FUNCTION p4z_sink_alloc 
    410408    
    411 #else 
    412    !!====================================================================== 
    413    !!  Dummy module :                                   No PISCES bio-model 
    414    !!====================================================================== 
    415 CONTAINS 
    416    SUBROUTINE p4z_sink                    ! Empty routine 
    417    END SUBROUTINE p4z_sink 
    418 #endif  
    419  
    420409   !!====================================================================== 
    421410END MODULE p4zsink 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90

    r7041 r7068  
    66   !! History :   1.0  !  2004-03 (O. Aumont) Original code 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces 
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                       PISCES bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   p4zsms         :  Time loop of passive tracers sms 
     
    546542   END SUBROUTINE p4z_chk_mass 
    547543 
    548 #else 
    549    !!====================================================================== 
    550    !!  Dummy module :                                   No PISCES bio-model 
    551    !!====================================================================== 
    552 CONTAINS 
    553    SUBROUTINE p4z_sms( kt )                   ! Empty routine 
    554       INTEGER, INTENT( in ) ::   kt 
    555       WRITE(*,*) 'p4z_sms: You should not have seen this print! error?', kt 
    556    END SUBROUTINE p4z_sms 
    557 #endif  
    558  
    559544   !!====================================================================== 
    560545END MODULE p4zsms  
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/SED/sedmodel.F90

    r5215 r7068  
    1515   PUBLIC sed_model  ! called by step.F90 
    1616 
    17    LOGICAL, PUBLIC, PARAMETER ::   lk_sed = .TRUE.     !: sediment flag 
    18  
    19    !! $Id$ 
    2017CONTAINS 
    2118 
     
    4744   !! MODULE sedmodel  :   Dummy module  
    4845   !!====================================================================== 
    49    LOGICAL, PUBLIC, PARAMETER ::   lk_sed = .FALSE.     !: sediment flag 
    50    !! $Id$ 
    5146CONTAINS 
    5247   SUBROUTINE sed_model( kt )         ! Empty routine 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/par_pisces.F90

    r7041 r7068  
    1313   IMPLICIT NONE 
    1414 
    15    INTEGER, PUBLIC    ::   jp_pisces   !: number of passive tracers in PISCES 
    16  
    17 #if defined key_pisces 
    18    !!--------------------------------------------------------------------- 
    19    !!   'key_pisces   :                                PISCES bio-model 
    20    !!--------------------------------------------------------------------- 
    21    LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .TRUE.  !: PISCES flag  
    2215   ! productive layer depth 
    23    INTEGER, PUBLIC ::   jpkb     !: first vertical layers where biology is active 
    24    INTEGER, PUBLIC ::   jpkbm1   !: first vertical layers where biology is active 
    25  
    26 #else 
    27    !!--------------------------------------------------------------------- 
    28    LOGICAL, PUBLIC, PARAMETER ::   lk_pisces     = .FALSE.  !: PISCES flag  
    29 #endif 
     16   INTEGER, PUBLIC ::   jpkb       !: first vertical layers where biology is active 
     17   INTEGER, PUBLIC ::   jpkbm1     !: first vertical layers where biology is active 
    3018 
    3119   ! assign an index in trc arrays for each LOBSTER prognostic variables 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r7041 r7068  
    66   !! History :   1.0  !  2000-02 (O. Aumont) original code 
    77   !!             3.2  !  2009-04 (C. Ethe & NEMO team) style 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces  
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                         PISCES model 
    128   !!---------------------------------------------------------------------- 
    139   USE par_oce 
     
    112108   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tgfunc2   !: Temp. dependancy of mesozooplankton rates 
    113109 
     110#if defined key_sed 
     111   LOGICAL, PUBLIC, PARAMETER ::   lk_sed = .TRUE.     !: sediment flag 
     112#else 
     113   LOGICAL, PUBLIC, PARAMETER ::   lk_sed = .FALSE.     !: sediment flag 
     114#endif 
    114115 
    115116   !!---------------------------------------------------------------------- 
     
    165166   END FUNCTION sms_pisces_alloc 
    166167 
    167 #else 
    168    !!----------------------------------------------------------------------    
    169    !!  Empty module :                                     NO PISCES model 
    170    !!---------------------------------------------------------------------- 
    171 #endif 
    172     
    173168   !!======================================================================    
    174169END MODULE sms_pisces     
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90

    r7041 r7068  
    55   !!====================================================================== 
    66   !! History :  3.5  ! 2013    (M. Vancoppenolle, O. Aumont, G. Madec), original code 
    7    !!---------------------------------------------------------------------- 
    8 #if defined key_pisces  
    9    !!---------------------------------------------------------------------- 
    10    !!   'key_pisces'                                       PISCES bio-model 
    117   !!---------------------------------------------------------------------- 
    128   !! trc_ice_pisces   : PISCES fake sea ice model setting 
     
    276272 
    277273 
    278 #else 
    279    !!---------------------------------------------------------------------- 
    280    !!   Dummy module                            No PISCES biochemical model 
    281    !!---------------------------------------------------------------------- 
    282 CONTAINS 
    283    SUBROUTINE trc_ice_ini_pisces         ! Empty routine 
    284    END SUBROUTINE trc_ice_ini_pisces 
    285 #endif 
    286  
    287274   !!====================================================================== 
    288275END MODULE trcice_pisces 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcini_pisces.F90

    r7041 r7068  
    1010   !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trcini.pisces.h90 
    1111   !!             3.5  !  2012-05  (C. Ethe) Merge PISCES-LOBSTER 
    12    !!---------------------------------------------------------------------- 
    13 #if defined key_pisces  
    14    !!---------------------------------------------------------------------- 
    15    !!   'key_pisces'                                       PISCES bio-model 
    1612   !!---------------------------------------------------------------------- 
    1713   !! trc_ini_pisces   : PISCES biochemical model initialisation 
     
    135131      ENDDO 
    136132 
    137       jp_pisces = 24 
    138       jp_pcs0 = MIN( jpdic, jptal, jpoxy, jpcal, jppo4, jppoc, jpsil, & 
    139          &           jpphy, jpzoo, jpdoc, jpdia, jpmes, jpdsi, jpfer, & 
    140          &           jpbfe, jpgoc, jpsfe, jpdfe, jpgsi, jpnfe, jpnch, & 
    141          &           jpdch, jpno3, jpnh4 ) 
    142  
    143       jp_pcs1     =  jp_pcs0 + jp_pisces - 1 
    144  
    145  
    146       IF( lwp ) THEN 
    147         WRITE(numout,*) '' 
    148         WRITE(numout,*) ' First index of PISCES model in the passive tracer array   jp_pcs0 = ', jp_pcs0 
    149         WRITE(numout,*) ' Last  index of PISCES model in the passive tracer array   jp_pcs1 = ', jp_pcs1 
    150         WRITE(numout,*)  
    151       ENDIF 
    152        
    153  
    154133      CALL p4z_sms_init       !  Maint routine 
    155134      !                                            ! Time-step 
     
    257236      ENDDO 
    258237 
    259  
    260       jp_pcs0 = MIN( jpdet, jpzoo, jpphy, jpno3, jpnh4, jpdom ) 
    261       jp_pcs1 =  jp_pcs0 + jp_pisces - 1 
    262  
    263  
    264       IF( lwp ) THEN 
    265         WRITE(numout,*) '' 
    266         WRITE(numout,*) ' First index of LOBSTER model in the passive tracer array   jp_pcs0 = ', jp_pcs0 
    267         WRITE(numout,*) ' Last  index of LOBSTER model in the passive tracer array   jp_pcs1 = ', jp_pcs1 
    268         WRITE(numout,*)  
    269       ENDIF 
    270  
    271  
    272238      jpkb = 10        !  last level where depth less than 200 m 
    273239      DO jk = jpkm1, 1, -1 
     
    304270      ! 
    305271   END SUBROUTINE p2z_ini 
    306 #else 
    307    !!---------------------------------------------------------------------- 
    308    !!   Dummy module                            No PISCES biochemical model 
    309    !!---------------------------------------------------------------------- 
    310 CONTAINS 
    311    SUBROUTINE trc_ini_pisces             ! Empty routine 
    312    END SUBROUTINE trc_ini_pisces 
    313 #endif 
    314272 
    315273   !!====================================================================== 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90

    r7041 r7068  
    88   !!             1.0  !  2003-08 (C. Ethe)  module F90 
    99   !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.pisces.h90 
    10    !!---------------------------------------------------------------------- 
    11 #if defined key_pisces  
    12    !!---------------------------------------------------------------------- 
    13    !!   'key_pisces'   :                                   PISCES bio-model 
    1410   !!---------------------------------------------------------------------- 
    1511   !! trc_nam_pisces       : PISCES model namelist read 
     
    7470 
    7571      IF(lwp) THEN                         ! control print 
    76          WRITE(numout,*) ' Namelist : nampismod' 
    77          WRITE(numout,*) '    PISCES   model                 ln_p4z  =', ln_p4z 
    78          WRITE(numout,*) '    LOBSTER  model                 ln_p2z  =', ln_p2z 
     72         WRITE(numout,*) ' ' 
     73         IF( ln_p4z )  WRITE(numout,*) '          PISCES  model is used' 
     74         IF( ln_p2z )  WRITE(numout,*) '          LOBSTER model is used' 
     75         WRITE(numout,*) ' ' 
    7976      ENDIF 
    8077     
     
    8784   END SUBROUTINE trc_nam_pisces 
    8885 
    89 #else 
    90    !!---------------------------------------------------------------------- 
    91    !!  Dummy module :                                   No PISCES bio-model 
    92    !!---------------------------------------------------------------------- 
    93 CONTAINS 
    94    SUBROUTINE trc_nam_pisces                      ! Empty routine 
    95    END  SUBROUTINE  trc_nam_pisces 
    96 #endif   
    97  
    9886   !!====================================================================== 
    9987END MODULE trcnam_pisces 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90

    r7041 r7068  
    66   !! History :   1.0  !  2004-03 (O. Aumont) Original code 
    77   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
    8    !!---------------------------------------------------------------------- 
    9 #if defined key_pisces  
    10    !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                       PISCES bio-model 
    128   !!---------------------------------------------------------------------- 
    139   !!   trcsms_pisces        :  Time loop of passive tracers sms 
     
    5652   END SUBROUTINE trc_sms_pisces 
    5753 
    58 #else 
    59    !!====================================================================== 
    60    !!  Dummy module :                                   No PISCES bio-model 
    61    !!====================================================================== 
    62 CONTAINS 
    63    SUBROUTINE trc_sms_pisces( kt )                   ! Empty routine 
    64       INTEGER, INTENT( in ) ::   kt 
    65       WRITE(*,*) 'trc_sms_pisces: You should not have seen this print! error?', kt 
    66    END SUBROUTINE trc_sms_pisces 
    67 #endif  
    68  
    6954   !!====================================================================== 
    7055END MODULE trcsms_pisces  
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90

    r7041 r7068  
    66   !! History :   1.0  !  2009-05 (C. Ethe)  Original code 
    77   !!---------------------------------------------------------------------- 
    8 #if defined key_top && defined key_pisces && defined key_iomput  
    9    !!---------------------------------------------------------------------- 
    10    !!   'key_pisces                           PISCES model 
     8#if defined key_top && defined key_iomput  
    119   !!---------------------------------------------------------------------- 
    1210   !! trc_wri_pisces   :  outputs of concentration fields 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90

    r7041 r7068  
    6262      ENDIF 
    6363 
    64       IF( ln_age     )   CALL trc_rad_sms( kt, trb, trn, jp_age0, jp_age0               )  !  AGE 
     64      IF( ln_age     )   CALL trc_rad_sms( kt, trb, trn, jp_age , jp_age               )  !  AGE 
    6565      IF( ll_cfc     )   CALL trc_rad_sms( kt, trb, trn, jp_cfc0, jp_cfc1               )  !  CFC model 
    66       IF( ln_c14     )   CALL trc_rad_sms( kt, trb, trn, jp_c140, jp_c140               )  !  C14 
    67       IF( lk_pisces  )   CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' )  !  PISCES model 
    68       IF( lk_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1               )  !  MY_TRC model 
     66      IF( ln_c14     )   CALL trc_rad_sms( kt, trb, trn, jp_c14 , jp_c14               )  !  C14 
     67      IF( ln_pisces  )   CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' )  !  PISCES model 
     68      IF( ln_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1               )  !  MY_TRC model 
    6969 
    7070      ! 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc.F90

    r6140 r7068  
    4141   PUBLIC trd_mxl_trc 
    4242   PUBLIC trd_mxl_trc_alloc 
    43    PUBLIC trd_mxl_bio 
    4443   PUBLIC trd_mxl_trc_init 
    4544   PUBLIC trd_mxl_trc_zint 
    46    PUBLIC trd_mxl_bio_zint 
    4745 
    4846   CHARACTER (LEN=40) ::  clhstnam                                ! name of the trends NetCDF file 
    4947   INTEGER ::   nmoymltrd 
    50    INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) ::   ndextrd1 
    51    INTEGER, DIMENSION(jptra) ::   nidtrd, nh_t 
     48   INTEGER, ALLOCATABLE, SAVE, DIMENSION(:) ::   ndextrd1, nidtrd, nh_t 
    5249   INTEGER ::   ndimtrd1                         
    5350   INTEGER, SAVE ::  ionce, icount 
    54 #if defined key_pisces_reduced 
    55    INTEGER ::   nidtrdbio, nh_tb 
    56    INTEGER, SAVE ::  ioncebio, icountbio 
    57    INTEGER, SAVE ::   nmoymltrdbio 
    58 #endif 
    5951   LOGICAL :: llwarn  = .TRUE.                                    ! this should always be .TRUE. 
    6052   LOGICAL :: lldebug = .TRUE. 
    6153 
    6254   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::  ztmltrd2   ! 
    63 #if defined key_pisces_reduced 
    64    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  ztmltrdbio2  ! only needed for mean diagnostics in trd_mxl_bio() 
    65 #endif 
    6655 
    6756   !! * Substitutions 
     
    7968      !!---------------------------------------------------------------------- 
    8069      ALLOCATE( ztmltrd2(jpi,jpj,jpltrd_trc,jptra) ,      & 
    81 #if defined key_pisces_reduced 
    82          &      ztmltrdbio2(jpi,jpj,jpdiabio)      ,      & 
    83 #endif 
    84          &      ndextrd1(jpi*jpj)                  ,  STAT=trd_mxl_trc_alloc) 
     70         &      ndextrd1(jpi*jpj), nidtrd(jptra), nh_t(jptra),  STAT=trd_mxl_trc_alloc) 
    8571         ! 
    8672      IF( lk_mpp                )   CALL mpp_sum ( trd_mxl_trc_alloc ) 
     
    131117         SELECT CASE ( nn_ctls_trc )                                ! choice of the control surface 
    132118            CASE ( -2  )   ;   STOP 'trdmxl_trc : not ready '     !     -> isopycnal surface (see ???) 
    133 #if defined key_pisces || defined key_pisces_reduced 
    134119            CASE ( -1  )   ;   nmld_trc(:,:) = neln(:,:)          !     -> euphotic layer with light criterion 
    135 #endif 
    136120            CASE (  0  )   ;   nmld_trc(:,:) = nmln(:,:)          !     -> ML with density criterion (see zdfmxl) 
    137121            CASE (  1  )   ;   nmld_trc(:,:) = nbol_trc(:,:)          !     -> read index from file 
     
    207191      ! 
    208192   END SUBROUTINE trd_mxl_trc_zint 
    209  
    210  
    211    SUBROUTINE trd_mxl_bio_zint( ptrc_trdmxl, ktrd ) 
    212       !!---------------------------------------------------------------------- 
    213       !!                  ***  ROUTINE trd_mxl_bio_zint  *** 
    214       !! 
    215       !! ** Purpose :   Compute the vertical average of the 3D fields given as arguments 
    216       !!                to the subroutine. This vertical average is performed from ocean 
    217       !!                surface down to a chosen control surface. 
    218       !! 
    219       !! ** Method/usage : 
    220       !!      The control surface can be either a mixed layer depth (time varying) 
    221       !!      or a fixed surface (jk level or bowl). 
    222       !!      Choose control surface with nctls in namelist NAMTRD : 
    223       !!        nctls_trc = 0  : use mixed layer with density criterion 
    224       !!        nctls_trc = 1  : read index from file 'ctlsurf_idx' 
    225       !!        nctls_trc > 1  : use fixed level surface jk = nctls_trc 
    226       !!      Note: in the remainder of the routine, the volume between the 
    227       !!            surface and the control surface is called "mixed-layer" 
    228       !!---------------------------------------------------------------------- 
    229       !! 
    230       INTEGER                         , INTENT(in) ::   ktrd          ! bio trend index 
    231       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) ::   ptrc_trdmxl   ! passive trc trend 
    232 #if defined key_pisces_reduced 
    233       ! 
    234       INTEGER ::   ji, jj, jk, isum 
    235       REAL(wp), POINTER, DIMENSION(:,:) :: zvlmsk 
    236       !!---------------------------------------------------------------------- 
    237  
    238       CALL wrk_alloc( jpi, jpj, zvlmsk ) 
    239  
    240       ! I. Definition of control surface and integration weights 
    241       ! -------------------------------------------------------- 
    242       !            ==> only once per time step <== 
    243  
    244       IF( icountbio == 1 ) THEN 
    245          ! 
    246          tmltrd_bio(:,:,:) = 0.e0    ! <<< reset trend arrays to zero 
    247          ! ... Set nmld(ji,jj) = index of first T point below control surf. or outside mixed-layer 
    248          SELECT CASE ( nn_ctls_trc )                                    ! choice of the control surface 
    249             CASE ( -2  )   ;   STOP 'trdmxl_trc : not ready '     !     -> isopycnal surface (see ???) 
    250             CASE ( -1  )   ;   nmld_trc(:,:) = neln(:,:)          !     -> euphotic layer with light criterion 
    251             CASE (  0  )   ;   nmld_trc(:,:) = nmln(:,:)          !     -> ML with density criterion (see zdfmxl) 
    252             CASE (  1  )   ;   nmld_trc(:,:) = nbol_trc(:,:)          !     -> read index from file 
    253             CASE (  2: )   ;   nn_ctls_trc = MIN( nn_ctls_trc, jpktrd_trc - 1 ) 
    254                                nmld_trc(:,:) = nn_ctls_trc + 1          !     -> model level 
    255          END SELECT 
    256  
    257          ! ... Compute ndextrd1 and ndimtrd1 only once 
    258          IF( ioncebio == 1 ) THEN 
    259             ! 
    260             ! Check of validity : nmld_trc(ji,jj) <= jpktrd_trc 
    261             isum        = 0 
    262             zvlmsk(:,:) = 0.e0 
    263  
    264             IF( jpktrd_trc < jpk ) THEN 
    265                DO jj = 1, jpj 
    266                   DO ji = 1, jpi 
    267                      IF( nmld_trc(ji,jj) <= jpktrd_trc ) THEN 
    268                         zvlmsk(ji,jj) = tmask(ji,jj,1) 
    269                      ELSE 
    270                         isum = isum + 1 
    271                         zvlmsk(ji,jj) = 0. 
    272                      END IF 
    273                   END DO 
    274                END DO 
    275             END IF 
    276  
    277             ! Index of ocean points (2D only) 
    278             IF( isum > 0 ) THEN 
    279                WRITE(numout,*)' tmltrd_trc : Number of invalid points nmld_trc > jpktrd', isum 
    280                CALL wheneq( jpi*jpj, zvlmsk(:,:) , 1, 1., ndextrd1, ndimtrd1 ) 
    281             ELSE 
    282                CALL wheneq( jpi*jpj, tmask(:,:,1), 1, 1., ndextrd1, ndimtrd1 ) 
    283             END IF 
    284  
    285             ioncebio = 0                  ! no more pass here 
    286             ! 
    287          END IF !  ( ioncebio == 1 ) 
    288  
    289          ! ... Weights for vertical averaging 
    290          wkx_trc(:,:,:) = 0.e0 
    291          DO jk = 1, jpktrd_trc         ! initialize wkx_trc with vertical scale factor in mixed-layer 
    292             DO jj = 1,jpj 
    293               DO ji = 1,jpi 
    294                   IF( jk - nmld_trc(ji,jj) < 0. )   wkx_trc(ji,jj,jk) = e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 
    295                END DO 
    296             END DO 
    297          END DO 
    298  
    299          rmld_trc(:,:) = 0. 
    300          DO jk = 1, jpktrd_trc         ! compute mixed-layer depth : rmld_trc 
    301             rmld_trc(:,:) = rmld_trc(:,:) + wkx_trc(:,:,jk) 
    302          END DO 
    303  
    304          DO jk = 1, jpktrd_trc         ! compute integration weights 
    305             wkx_trc(:,:,jk) = wkx_trc(:,:,jk) / MAX( 1., rmld_trc(:,:) ) 
    306          END DO 
    307  
    308          icountbio = 0                    ! <<< flag = off : control surface & integr. weights 
    309          !                             !     computed only once per time step 
    310       END IF ! ( icountbio == 1 ) 
    311  
    312       ! II. Vertical integration of trends in the mixed-layer 
    313       ! ----------------------------------------------------- 
    314  
    315  
    316       DO jk = 1, jpktrd_trc 
    317          tmltrd_bio(:,:,ktrd) = tmltrd_bio(:,:,ktrd) + ptrc_trdmxl(:,:,jk) * wkx_trc(:,:,jk) 
    318       END DO 
    319  
    320       CALL wrk_dealloc( jpi, jpj, zvlmsk ) 
    321 #endif 
    322       ! 
    323    END SUBROUTINE trd_mxl_bio_zint 
    324193 
    325194 
     
    877746 
    878747 
    879    SUBROUTINE trd_mxl_bio( kt ) 
    880       !!---------------------------------------------------------------------- 
    881       !!                  ***  ROUTINE trd_mld  *** 
    882       !! 
    883       !! ** Purpose :  Compute and cumulate the mixed layer biological trends over an analysis 
    884       !!               period, and write NetCDF outputs. 
    885       !! 
    886       !! ** Method/usage : 
    887       !!          The stored trends can be chosen twofold (according to the ln_trdmxl_trc_instant 
    888       !!          logical namelist variable) : 
    889       !!          1) to explain the difference between initial and final 
    890       !!             mixed-layer T & S (where initial and final relate to the 
    891       !!             current analysis window, defined by ntrd in the namelist) 
    892       !!          2) to explain the difference between the current and previous 
    893       !!             TIME-AVERAGED mixed-layer T & S (where time-averaging is 
    894       !!             performed over each analysis window). 
    895       !! 
    896       !! ** Consistency check : 
    897       !!        If the control surface is fixed ( nctls > 1 ), the residual term (dh/dt 
    898       !!        entrainment) should be zero, at machine accuracy. Note that in the case 
    899       !!        of time-averaged mixed-layer fields, this residual WILL NOT BE ZERO 
    900       !!        over the first two analysis windows (except if restart). 
    901       !!        N.B. For ORCA2_LIM, use e.g. ntrd=5, ucf=1., nctls=8 
    902       !!             for checking residuals. 
    903       !!             On a NEC-SX5 computer, this typically leads to: 
    904       !!                   O(1.e-20) temp. residuals (tml_res) when ln_trdmxl_trc_instant=.false. 
    905       !!                   O(1.e-21) temp. residuals (tml_res) when ln_trdmxl_trc_instant=.true. 
    906       !! 
    907       !! ** Action : 
    908       !!       At each time step, mixed-layer averaged trends are stored in the 
    909       !!       tmltrd(:,:,jpmxl_xxx) array (see trdmxl_oce.F90 for definitions of jpmxl_xxx). 
    910       !!       This array is known when trd_mld is called, at the end of the stp subroutine, 
    911       !!       except for the purely vertical K_z diffusion term, which is embedded in the 
    912       !!       lateral diffusion trend. 
    913       !! 
    914       !!       In I), this K_z term is diagnosed and stored, thus its contribution is removed 
    915       !!       from the lateral diffusion trend. 
    916       !!       In II), the instantaneous mixed-layer T & S are computed, and misc. cumulative 
    917       !!       arrays are updated. 
    918       !!       In III), called only once per analysis window, we compute the total trends, 
    919       !!       along with the residuals and the Asselin correction terms. 
    920       !!       In IV), the appropriate trends are written in the trends NetCDF file. 
    921       !! 
    922       !! References : 
    923       !!       - Vialard & al. 
    924       !!       - See NEMO documentation (in preparation) 
    925       !!---------------------------------------------------------------------- 
    926       INTEGER, INTENT( in ) ::   kt                       ! ocean time-step index 
    927 #if defined key_pisces_reduced 
    928       INTEGER  ::  jl, it, itmod 
    929       LOGICAL  :: llwarn  = .TRUE., lldebug = .TRUE. 
    930       REAL(wp) :: zfn, zfn2 
    931       !!---------------------------------------------------------------------- 
    932       ! ... Warnings 
    933       IF( nn_dttrc  /= 1  ) CALL ctl_stop( " Be careful, trends diags never validated " ) 
    934  
    935       ! ====================================================================== 
    936       ! II. Cumulate the trends over the analysis window 
    937       ! ====================================================================== 
    938  
    939       ztmltrdbio2(:,:,:) = 0.e0  ! <<< reset arrays to zero 
    940  
    941       ! II.3 Initialize mixed-layer "before" arrays for the 1rst analysis window 
    942       ! ------------------------------------------------------------------------ 
    943       IF( kt == nittrc000 + nn_dttrc ) THEN  !  i.e. ( .NOT. ln_rstart ).AND.( kt == nit000 + 1) 
    944          ! 
    945          tmltrd_csum_ub_bio (:,:,:) = 0.e0 
    946          ! 
    947       END IF 
    948  
    949       ! II.4 Cumulated trends over the analysis period 
    950       ! ---------------------------------------------- 
    951       ! 
    952       !         [  1rst analysis window ] [     2nd analysis window     ] 
    953       ! 
    954       ! 
    955       !     o---[--o-----o-----o-----o--]-[--o-----o-----o-----o-----o--]---o-----o--> time steps 
    956       !                            ntrd                             2*ntrd       etc. 
    957       !     1      2     3     4    =5 e.g.                          =10 
    958       ! 
    959       IF( ( kt >= 2 ).OR.( ln_rsttr ) ) THEN 
    960          ! 
    961          nmoymltrdbio = nmoymltrdbio + 1 
    962  
    963          ! ... Trends associated with the time mean of the ML passive tracers 
    964          tmltrd_sum_bio    (:,:,:) = tmltrd_sum_bio    (:,:,:) + tmltrd_bio    (:,:,:) 
    965          tmltrd_csum_ln_bio(:,:,:) = tmltrd_csum_ln_bio(:,:,:) + tmltrd_sum_bio(:,:,:) 
    966          ! 
    967       END IF 
    968  
    969       ! ====================================================================== 
    970       ! III. Prepare fields for output (get here ONCE PER ANALYSIS PERIOD) 
    971       ! ====================================================================== 
    972  
    973       ! Convert to appropriate physical units 
    974       tmltrd_bio(:,:,:) = tmltrd_bio(:,:,:) * rn_ucf_trc 
    975  
    976       MODULO_NTRD : IF( MOD( kt, nn_trd_trc ) == 0 ) THEN      ! nitend MUST be multiple of ntrd 
    977          ! 
    978          zfn  = float(nmoymltrdbio)    ;    zfn2 = zfn * zfn 
    979  
    980          ! III.1 Prepare fields for output ("instantaneous" diagnostics) 
    981          ! ------------------------------------------------------------- 
    982  
    983 #if defined key_diainstant 
    984          STOP 'tmltrd_bio : key_diainstant was never checked within trdmxl. Comment this to proceed.' 
    985 #endif 
    986          ! III.2 Prepare fields for output ("mean" diagnostics) 
    987          ! ---------------------------------------------------- 
    988  
    989          ztmltrdbio2(:,:,:) = tmltrd_csum_ub_bio(:,:,:) + tmltrd_csum_ln_bio(:,:,:) 
    990  
    991          !-- Lateral boundary conditions 
    992          IF ( cp_cfg .NE. 'gyre' ) THEN            ! other than GYRE configuration  
    993             ! ES_B27_CD_WARN : lbc inutile GYRE, cf. + haut 
    994             DO jn = 1, jpdiabio 
    995               CALL lbc_lnk( ztmltrdbio2(:,:,jn), 'T', 1. ) 
    996             ENDDO 
    997          ENDIF 
    998  
    999          IF( lldebug ) THEN 
    1000             ! 
    1001             WRITE(numout,*) 'trd_mxl_bio : write trends in the Mixed Layer for debugging process:' 
    1002             WRITE(numout,*) '~~~~~~~~~~~  ' 
    1003             WRITE(numout,*) 'TRC kt = ', kt, 'nmoymltrdbio = ', nmoymltrdbio 
    1004             WRITE(numout,*) 
    1005  
    1006             DO jl = 1, jpdiabio 
    1007               IF( ln_trdmxl_trc_instant ) THEN 
    1008                   WRITE(numout,97) 'TRC jl =', jl, ' bio TREND INDEX  = ', jl, & 
    1009                      & ' SUM tmltrd_bio : ', SUM2D(tmltrd_bio(:,:,jl)) 
    1010               ELSE 
    1011                   WRITE(numout,97) 'TRC jl =', jl, ' bio TREND INDEX  = ', jl, & 
    1012                      & ' SUM ztmltrdbio2 : ', SUM2D(ztmltrdbio2(:,:,jl)) 
    1013               endif 
    1014             END DO 
    1015  
    1016 97          FORMAT(a10, i3, 2x, a30, i3, a20, 2x, g20.10) 
    1017 98          FORMAT(a10, i3, 2x, a30, 2x, g20.10) 
    1018 99          FORMAT('TRC jj =', i3,' : ', 10(g10.3,2x)) 
    1019             WRITE(numout,*) 
    1020             ! 
    1021          ENDIF 
    1022  
    1023          ! III.3 Time evolution array swap 
    1024          ! ------------------------------- 
    1025  
    1026          ! For passive tracer mean diagnostics 
    1027          tmltrd_csum_ub_bio (:,:,:) = zfn * tmltrd_sum_bio(:,:,:) - tmltrd_csum_ln_bio(:,:,:) 
    1028  
    1029          ! III.4 Convert to appropriate physical units 
    1030          ! ------------------------------------------- 
    1031          ztmltrdbio2    (:,:,:) = ztmltrdbio2    (:,:,:) * rn_ucf_trc/zfn2 
    1032  
    1033       END IF MODULO_NTRD 
    1034  
    1035       ! ====================================================================== 
    1036       ! IV. Write trends in the NetCDF file 
    1037       ! ====================================================================== 
    1038  
    1039       ! IV.1 Code for IOIPSL/NetCDF output 
    1040       ! ---------------------------------- 
    1041  
    1042       ! define time axis 
    1043       itmod = kt - nittrc000 + 1 
    1044       it    = kt 
    1045  
    1046       IF( lwp .AND. MOD( itmod , nn_trd_trc ) == 0 ) THEN 
    1047          WRITE(numout,*) ' ' 
    1048          WRITE(numout,*) 'trd_mxl_bio : write ML bio trends in the NetCDF file :' 
    1049          WRITE(numout,*) '~~~~~~~~~~~ ' 
    1050          WRITE(numout,*) '          ', TRIM(clhstnam), ' at kt = ', kt 
    1051          WRITE(numout,*) '          N.B. nmoymltrdbio = ', nmoymltrdbio 
    1052          WRITE(numout,*) ' ' 
    1053       END IF 
    1054  
    1055  
    1056       ! 2. Start writing data 
    1057       ! --------------------- 
    1058  
    1059       NETCDF_OUTPUT : IF( ln_trdmxl_trc_instant ) THEN    ! <<< write the trends for passive tracer instant. diags 
    1060          ! 
    1061             DO jl = 1, jpdiabio 
    1062                CALL histwrite( nidtrdbio,TRIM("ML_"//ctrd_bio(jl,2)) ,            & 
    1063                     &          it, tmltrd_bio(:,:,jl), ndimtrd1, ndextrd1 ) 
    1064             END DO 
    1065  
    1066  
    1067          IF( kt == nitend )   CALL histclo( nidtrdbio ) 
    1068  
    1069       ELSE    ! <<< write the trends for passive tracer mean diagnostics 
    1070  
    1071             DO jl = 1, jpdiabio 
    1072                CALL histwrite( nidtrdbio, TRIM("ML_"//ctrd_bio(jl,2)) ,            & 
    1073                     &          it, ztmltrdbio2(:,:,jl), ndimtrd1, ndextrd1 ) 
    1074             END DO 
    1075  
    1076             IF( kt == nitend )   CALL histclo( nidtrdbio ) 
    1077             ! 
    1078       END IF NETCDF_OUTPUT 
    1079  
    1080       ! Compute the control surface (for next time step) : flag = on 
    1081       icountbio = 1 
    1082  
    1083  
    1084  
    1085       IF( MOD( itmod, nn_trd_trc ) == 0 ) THEN 
    1086          ! 
    1087          ! III.5 Reset cumulative arrays to zero 
    1088          ! ------------------------------------- 
    1089          nmoymltrdbio = 0 
    1090          tmltrd_csum_ln_bio (:,:,:) = 0.e0 
    1091          tmltrd_sum_bio     (:,:,:) = 0.e0 
    1092       END IF 
    1093  
    1094       ! ====================================================================== 
    1095       ! Write restart file 
    1096       ! ====================================================================== 
    1097  
    1098 ! restart write is done in trd_mxl_trc_write which is called by trd_mxl_bio (Marina) 
    1099 ! 
    1100 #endif 
    1101    END SUBROUTINE trd_mxl_bio 
    1102  
    1103  
    1104748   REAL FUNCTION sum2d( ztab ) 
    1105749      !!---------------------------------------------------------------------- 
     
    1191835      tmltrd_csum_ln_trc (:,:,:,:) = 0.e0   ;   rmld_sum_trc       (:,:)     = 0.e0 
    1192836 
    1193 #if defined key_pisces_reduced 
    1194       nmoymltrdbio   = 0 
    1195       tmltrd_sum_bio     (:,:,:) = 0.e0     ;   tmltrd_csum_ln_bio (:,:,:) = 0.e0 
    1196       DO jl = 1, jp_pisces_trd 
    1197           ctrd_bio(jl,1) = ctrbil(jl)   ! long name 
    1198           ctrd_bio(jl,2) = ctrbio(jl)   ! short name 
    1199        ENDDO 
    1200 #endif 
    1201  
    1202837      IF( ln_rsttr .AND. ln_trdmxl_trc_restart ) THEN 
    1203838         CALL trd_mxl_trc_rst_read 
     
    1208843         tml_sumb_trc       (:,:,:)   = 0.e0   ;   tmltrd_csum_ub_trc (:,:,:,:) = 0.e0     ! mean 
    1209844         tmltrd_atf_sumb_trc(:,:,:)   = 0.e0   ;   tmltrd_rad_sumb_trc(:,:,:)   = 0.e0  
    1210 #if defined key_pisces_reduced 
    1211          tmltrd_csum_ub_bio (:,:,:) = 0.e0 
    1212 #endif 
    1213845 
    1214846       ENDIF 
     
    1216848      icount = 1   ;   ionce  = 1  ! open specifier    
    1217849 
    1218 #if defined key_pisces_reduced 
    1219       icountbio = 1   ;   ioncebio  = 1  ! open specifier 
    1220 #endif 
    1221850 
    1222851      ! I.3 Read control surface from file ctlsurf_idx 
     
    1308937      END DO 
    1309938 
    1310 #if defined key_pisces_reduced 
    1311           !-- Create a NetCDF file and enter the define mode 
    1312           CALL dia_nam( clhstnam, nn_trd_trc, 'trdbio' ) 
    1313           CALL histbeg( clhstnam, jpi, glamt, jpj, gphit,                                            & 
    1314              &             1, jpi, 1, jpj, iiter, zjulian, rdt, nh_tb, nidtrdbio, domain_id=nidom, snc4chunks=snc4set ) 
    1315 #endif 
    1316  
    1317939      !-- Define physical units 
    1318940      IF( rn_ucf_trc == 1. ) THEN 
     
    1354976      END DO 
    1355977 
    1356 #if defined key_pisces_reduced 
    1357       DO jl = 1, jp_pisces_trd 
    1358          CALL histdef(nidtrdbio, TRIM("ML_"//ctrd_bio(jl,2)), TRIM(clmxl//" ML_"//ctrd_bio(jl,1))   ,            & 
    1359              &    cltrcu, jpi, jpj, nh_tb, 1  , 1, 1  , -99 , 32, clop, zsto, zout ) ! IOIPSL: time mean 
    1360       END DO                                                                         ! if zsto=rdt above 
    1361 #endif 
    1362  
    1363978      !-- Leave IOIPSL/NetCDF define mode 
    1364979      DO jn = 1, jptra 
     
    1366981      END DO 
    1367982 
    1368 #if defined key_pisces_reduced 
    1369       !-- Leave IOIPSL/NetCDF define mode 
    1370       CALL histend( nidtrdbio, snc4set ) 
    1371  
    1372983      IF(lwp) WRITE(numout,*) 
    1373        IF(lwp) WRITE(numout,*) 'End of NetCDF Initialization for ML bio trends' 
    1374 #endif 
    1375984 
    1376985   END SUBROUTINE trd_mxl_trc_init 
     
    1385994      WRITE(*,*) 'trd_mxl_trc: You should not have seen this print! error?', kt 
    1386995   END SUBROUTINE trd_mxl_trc 
    1387    SUBROUTINE trd_mxl_bio( kt ) 
    1388       INTEGER, INTENT( in) ::   kt 
    1389       WRITE(*,*) 'trd_mxl_bio: You should not have seen this print! error?', kt 
    1390    END SUBROUTINE trd_mxl_bio 
    1391996   SUBROUTINE trd_mxl_trc_zint( ptrc_trdmxl, ktrd, ctype, kjn ) 
    1392997      INTEGER               , INTENT( in ) ::  ktrd, kjn              ! ocean trend index and passive tracer rank 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdmxl_trc_rst.F90

    r6140 r7068  
    107107            END DO                                                     ! tracer loop 
    108108            !                                                          ! =========== 
    109 #if defined key_pisces_reduced 
    110             DO jl = 1, jp_pisces_trd 
    111                CALL iom_rstput( kt, nitrst, nummldw_trc, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) ) 
    112             ENDDO 
    113 #endif 
    114  
    115109         ENDIF 
    116110          
     
    188182         !                                                          ! =========== 
    189183 
    190 #if defined key_pisces_reduced 
    191          DO jl = 1, jp_pisces_trd 
    192             CALL iom_get( inum, jpdom_autoglo, 'tmltrd_csum_ub_bio'//ctrd_bio(jl,2), tmltrd_csum_ub_bio(:,:,jl) ) 
    193          ENDDO 
    194 #endif 
    195           
    196184         CALL iom_close( inum ) 
    197185      ENDIF 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/TRP/trdtrc_oce.F90

    r7041 r7068  
    106106# endif 
    107107 
    108 # if defined key_pisces_reduced 
    109    CHARACTER(LEN=80) :: clname_bio, ctrd_bio(jpdiabio,2) 
    110    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  & 
    111       tmltrd_bio,                         &      !: \ biological contributions to the total trend , 
    112                                                  !: / cumulated over the current analysis window 
    113       tmltrd_sum_bio,                     &      !: sum of these trends over the analysis period 
    114       tmltrd_csum_ln_bio,                 &      !: now cumulated sum of trends over the "lower triangle" 
    115       tmltrd_csum_ub_bio                         !: before (prev. analysis period) cumulated sum over the 
    116                                                  !: upper triangle 
    117 #endif 
    118108   !!---------------------------------------------------------------------- 
    119109   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
     
    154144#endif 
    155145      ! 
    156 # if defined key_pisces_reduced 
    157       ALLOCATE( tmltrd_bio        (jpi,jpj,jpdiabio) ,     & 
    158          &      tmltrd_sum_bio    (jpi,jpj,jpdiabio) ,     & 
    159          &      tmltrd_csum_ln_bio(jpi,jpj,jpdiabio) ,     & 
    160          &      tmltrd_csum_ub_bio(jpi,jpj,jpdiabio) , STAT=ierr(2) ) 
    161 # endif 
    162       ! 
    163146      trd_trc_oce_alloc = MAXVAL(ierr) 
    164147      ! 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/par_trc.F90

    r7046 r7068  
    1010   !!---------------------------------------------------------------------- 
    1111   USE par_kind          ! kind parameters 
     12   USE par_pisces        ! PISCES model  parameters 
     13   USE par_cfc           ! CFCs  tracers parameters 
     14   USE par_c14           ! C14 tracer    parameters 
     15   USE par_age           ! AGE tracer    parameters 
     16   USE par_my_trc        ! MY_TRC model  parameters 
    1217   ! 
    13    ! 
    14    USE par_pisces 
    15    USE par_c14   
    16    USE par_cfc 
    17    USE par_age  
    18    USE par_my_trc 
    1918 
    2019   IMPLICIT NONE 
    2120 
    2221   INTEGER, PUBLIC,  PARAMETER :: jpmaxtrc = 100  ! Maximum number of tracers 
     22 
    2323   INTEGER, PUBLIC             :: jptra           ! Total number of tracers 
    24    INTEGER, PUBLIC             :: jp_lc           ! Total number of tracers 
     24   INTEGER, PUBLIC             :: jp_pisces       !: number of passive tracers in PISCES model 
     25   INTEGER, PUBLIC             :: jp_cfc          !: number of CFC passive tracers  
     26   INTEGER, PUBLIC             :: jp_my_trc       !: number of passive tracers in MY_TRC model 
     27 
     28   LOGICAL, PUBLIC             :: ln_pisces       !: PISCES flag  
     29   LOGICAL, PUBLIC             :: ln_age          !: AGE flag  
     30   LOGICAL, PUBLIC             :: ln_cfc11        !: CFC11 flag  
     31   LOGICAL, PUBLIC             :: ln_cfc12        !: CFC12 flag  
     32   LOGICAL, PUBLIC             :: ll_cfc          !: CFC flag  
     33   LOGICAL, PUBLIC             :: ln_c14          !: C14 flag  
     34   LOGICAL, PUBLIC             :: ln_my_trc       !: MY_TRC flag  
     35 
     36 
     37   INTEGER, PUBLIC             :: jp_bgc          !: number of passive tracers for the BGC model 
    2538 
    2639   REAL(wp), PUBLIC            :: rtrn  = 0.5 * EPSILON( 1.e0 )    !: truncation value 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r7041 r7068  
    9898       CHARACTER(len = 20)  :: clunit   !: unit 
    9999       LOGICAL              :: llinit   !: read in a file or not 
    100 #if defined  key_my_trc 
    101100       LOGICAL              :: llsbc   !: read in a file or not 
    102101       LOGICAL              :: llcbc   !: read in a file or not 
    103102       LOGICAL              :: llobc   !: read in a file or not 
    104 #endif 
    105103   END TYPE PTRACER 
     104 
     105   TYPE, PUBLIC :: STRACER                                                            !: Passive tracer type 
     106       LOGICAL              :: llsbc   !: read in a file or not 
     107       LOGICAL              :: llcbc   !: read in a file or not 
     108       LOGICAL              :: llobc   !: read in a file or not 
     109   END TYPE STRACER 
     110 
    106111   CHARACTER(len = 20), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ctrcnm         !: tracer name  
    107112   CHARACTER(len = 80), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ctrcln         !: trccer field long name 
     
    116121   !! information for inputs 
    117122   !! -------------------------------------------------- 
    118    LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_ini     !: Initialisation from data input file 
    119    LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_obc     !: Use open boundary condition data 
    120    LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_sbc     !: Use surface boundary condition data 
    121    LOGICAL            , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_cbc     !: Use coastal boundary condition data 
     123   LOGICAL   , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_ini     !: Initialisation from data input file 
     124   LOGICAL   , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_obc     !: Use open boundary condition data 
     125   LOGICAL   , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_sbc     !: Use surface boundary condition data 
     126   LOGICAL   , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:)    ::  ln_trc_cbc     !: Use coastal boundary condition data 
    122127 
    123128 
     
    199204         &      sbc_trc_b(jpi,jpj,jptra), sbc_trc(jpi,jpj,jptra)                      ,       &   
    200205         &      cvol(jpi,jpj,jpk)     , trai(jptra)           ,  qsr_mean(jpi,jpj)    ,       & 
    201          &      ctrcnm(jptra)         , ctrcln(jptra)         , ctrcun(jptra)         ,       &  
    202          &      ln_trc_ini(jptra)     ,                                                       & 
    203          &      trc_ice_ratio(jptra)  , trc_ice_prescr(jptra) , cn_trc_o(jptra)       ,       &  
    204 #if defined key_my_trc 
    205          &      ln_trc_sbc(jptra)     , ln_trc_cbc(jptra)     , ln_trc_obc(jptra)     ,       & 
    206 #endif 
    207 #if defined key_bdy 
    208          &      cn_trc_dflt(nb_bdy)   , cn_trc(nb_bdy)        , nn_trcdmp_bdy(nb_bdy) ,       & 
    209          &      trcdta_bdy(jptra,nb_bdy)                                              ,       & 
    210 #endif 
    211206         &      STAT = trc_alloc  ) 
    212207 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcice.F90

    r7041 r7068  
    5252 
    5353      IF ( nn_ice_tr == 1 ) THEN 
    54          IF( lk_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model 
     54         IF( ln_pisces  )    CALL trc_ice_ini_pisces       ! PISCES  bio-model 
    5555         IF( ll_cfc     )    CALL trc_ice_ini_cfc          ! CFC     tracers 
    5656         IF( ln_c14     )    CALL trc_ice_ini_c14          ! C14     tracer 
    5757         IF( ln_age     )    CALL trc_ice_ini_age          ! AGE     tracer 
    58          IF( lk_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
     58         IF( ln_my_trc  )    CALL trc_ice_ini_my_trc       ! MY_TRC  tracers 
    5959      ENDIF 
    6060 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r7041 r7068  
    5959      IF(lwp) WRITE(numout,*) '~~~~~~~' 
    6060 
    61       IF( .NOT.lk_offline )   CALL trc_nam_run     ! Parameters of the run  
    62       ! 
    63       CALL top_alloc()   ! allocate TOP arrays 
     61      ! 
    6462      ! 
    6563      CALL trc_ini_ctl   ! control  
    6664      CALL trc_nam       ! read passive tracers namelists 
     65      CALL top_alloc()   ! allocate TOP arrays 
    6766      ! 
    6867      ! 
     
    152151      !! ** Purpose :   SMS initialisation 
    153152      !!---------------------------------------------------------------------- 
    154       USE par_trc 
    155153      USE trcini_pisces  ! PISCES   initialisation 
    156154      USE trcini_cfc     ! CFC      initialisation 
     
    159157      USE trcini_my_trc  ! MY_TRC   initialisation 
    160158      !!---------------------------------------------------------------------- 
    161       jp_lc = 0 
    162       IF( lk_pisces  )  THEN       ! PISCES bio-model 
    163          CALL trc_ini_pisces     
    164          jp_lc       = jp_pisces  
    165       ELSE 
    166          jp_pisces   = 0 
    167          jp_pcs0     = 0               
    168          jp_pcs1     = 0          
    169       ENDIF 
    170       IF( lk_my_trc )  THEN      ! MY_TRC 
    171          CALL trc_ini_my_trc 
    172          jp_lc       = jp_lc + jp_my_trc   
    173       ELSE 
    174          jp_my_trc   = 0 
    175          jp_myt0     = 0        
    176          jp_myt1     = 0       
    177       ENDIF 
    178       IF( ll_cfc    )  THEN          ! CFC 
    179          CALL trc_ini_cfc     
    180          jp_lc       = jp_lc + jp_cfc 
    181       ELSE 
    182          jp_cfc      = 0 
    183          jp_cfc0     = 0        
    184          jp_cfc1     = 0       
    185       ENDIF 
    186       IF( ln_c14    )  THEN      ! C14 
    187          CALL trc_ini_c14 
    188          jp_lc       = jp_lc + jp_c14 
    189       ELSE 
    190          jp_c14      = 0 
    191          jp_c140     = 0        
    192       ENDIF 
    193       IF( ln_age    )  THEN      ! AGE 
    194          CALL trc_ini_age 
    195          jp_lc       = jp_lc + jp_age 
    196       ELSE 
    197          jp_age      = 0 
    198          jp_age0     = 0        
    199       ENDIF 
    200       ! 
    201       IF( jp_lc /= jptra ) THEN 
    202         IF( lwp ) WRITE(numout,*) ' The total number of tracers in namelist_top jptra = ', jptra 
    203         IF( lwp ) WRITE(numout,*) ' The total number of tracers to be used by the model is jp_lc = ', jp_lc 
    204         CALL ctl_stop( " Change the value of total number of tracers in namelist " ) 
    205       ENDIF 
     159      !     
     160      IF( ln_pisces  )   CALL trc_ini_pisces     !  PISCES model 
     161      IF( ln_my_trc  )   CALL trc_ini_my_trc     !  MY_TRC model 
     162      IF( ll_cfc     )   CALL trc_ini_cfc        !  CFC's 
     163      IF( ln_c14     )   CALL trc_ini_c14        !  C14 model 
     164      IF( ln_age     )   CALL trc_ini_age        !  AGE 
    206165      ! 
    207166   END SUBROUTINE trc_ini_sms 
     
    247206 
    248207      ! Initialisation of tracers Boundary Conditions 
    249       IF( lk_my_trc )     CALL trc_bc_init(jptra) 
     208      IF( ln_my_trc )     CALL trc_bc_init(jptra) 
    250209 
    251210      IF( ln_rsttr ) THEN 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r7046 r7068  
    5353      !!--------------------------------------------------------------------- 
    5454      INTEGER  ::   jn                  ! dummy loop indice 
    55       !                                   
     55      ! 
     56      IF( .NOT.lk_offline )   CALL trc_nam_run     ! Parameters of the run                                   
    5657      !                
    5758      CALL trc_nam_trc     ! passive tracer informations 
     
    111112      ENDIF 
    112113 
    113       IF( lk_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model 
     114      IF( ln_pisces  ) THEN   ;   CALL trc_nam_pisces      ! PISCES  bio-model 
    114115      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used' 
    115116      ENDIF 
    116117 
    117118 
    118       IF( lk_my_trc  ) THEN   ;   CALL trc_nam_my_trc      ! MY_TRC  tracers 
     119      IF( ln_my_trc  ) THEN   ;   CALL trc_nam_my_trc      ! MY_TRC  tracers 
    119120      ELSE                    ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used' 
    120121      ENDIF 
     
    130131      !! 
    131132      !!--------------------------------------------------------------------- 
    132       NAMELIST/namtrc_run/ jptra, nn_dttrc, ln_rsttr, nn_rsttr, ln_top_euler, & 
     133      NAMELIST/namtrc_run/ nn_dttrc, ln_rsttr, nn_rsttr, ln_top_euler, & 
    133134        &                  cn_trcrst_indir, cn_trcrst_outdir, cn_trcrst_in, cn_trcrst_out 
    134135      ! 
     
    158159         WRITE(numout,*) 
    159160         WRITE(numout,*) ' Namelist : namtrc_run' 
    160          WRITE(numout,*) '   Total number of passive tracers              jptra         = ', jptra 
    161161         WRITE(numout,*) '   time step freq. for passive tracer           nn_dttrc      = ', nn_dttrc 
    162162         WRITE(numout,*) '   restart  for passive tracer                  ln_rsttr      = ', ln_rsttr 
     
    176176      !! 
    177177      !!--------------------------------------------------------------------- 
    178       INTEGER  ::   ios, ierr                 ! Local integer output status for namelist read 
     178      INTEGER  ::   ios, ierr, ioptio, icfc     ! Local integer output status for namelist read 
    179179      INTEGER  ::   jn                    ! dummy loop indice 
    180180      ! 
    181181      TYPE(PTRACER), DIMENSION(jpmaxtrc) :: sn_tracer  ! type of tracer for saving if not key_iomput 
    182       !! 
    183       NAMELIST/namtrc/ln_age, ln_cfc11, ln_cfc12, ln_c14, sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo 
     182      TYPE(STRACER), DIMENSION(jpmaxtrc) :: bc_tracer  ! type of tracer for saving if not key_iomput 
     183      !! 
     184      NAMELIST/namtrc/jptra, ln_pisces, ln_my_trc, ln_age, ln_cfc11, ln_cfc12, ln_c14, & 
     185         &            sn_tracer, ln_trcdta, ln_trcdmp, ln_trcdmp_clo 
    184186      !!--------------------------------------------------------------------- 
    185187      IF(lwp) WRITE(numout,*) 
     
    197199      IF(lwm) WRITE ( numont, namtrc ) 
    198200 
    199  
    200       DO jn = 1, jptra 
     201      ioptio = 0 
     202      IF( ln_pisces )    ioptio = ioptio + 1 
     203      IF( ln_my_trc )    ioptio = ioptio + 1 
     204      ! 
     205      IF( ioptio == 2 )   CALL ctl_stop( 'Choose only ONE BGC model - PISCES or MY_TRC' ) 
     206      IF( ioptio == 0 )   jptra = 0 
     207 
     208      ll_cfc = ln_cfc11 .OR. ln_cfc12 
     209   
     210      ! 
     211      jp_pisces   =  0    ;   jp_pcs0  =  0    ;   jp_pcs1  = 0 
     212      jp_my_trc   =  0    ;   jp_myt0  =  0    ;   jp_myt1  = 0 
     213      jp_cfc      =  0    ;   jp_cfc0  =  0    ;   jp_cfc1  = 0 
     214      jp_age      =  0    ;   jp_c14   = 0 
     215      IF( ln_pisces )  THEN 
     216         jp_pisces = jptra 
     217         jp_pcs0   = 1 
     218         jp_pcs1   = jp_pisces 
     219      ENDIF 
     220      IF( ln_my_trc )  THEN 
     221          jp_my_trc = jptra 
     222          jp_myt0   = 1 
     223          jp_myt1   = jp_my_trc 
     224      ENDIF 
     225      ! 
     226      jp_bgc  =   jptra 
     227      ! 
     228      IF( ln_age )    THEN 
     229         jptra     = jptra + 1 
     230         jp_age    = jptra 
     231      ENDIF 
     232      IF( ln_cfc11 )  jp_cfc = jp_cfc + 1 
     233      IF( ln_cfc12 )  jp_cfc = jp_cfc + 1 
     234      IF( ll_cfc )    THEN 
     235          jptra     = jptra + jp_cfc 
     236          jp_cfc0   = jptra - jp_cfc + 1 
     237          jp_cfc1   = jptra 
     238      ENDIF 
     239      IF( ln_c14 )    THEN 
     240           jptra     = jptra + 1 
     241           jp_c14    = jptra 
     242      ENDIF 
     243 
     244      IF(lwp) THEN                   ! control print 
     245         WRITE(numout,*) 
     246         WRITE(numout,*) ' Namelist : namtrc' 
     247         WRITE(numout,*) '   Total number of passive tracers              jptra         = ', jptra 
     248         WRITE(numout,*) '   Simulating PISCES model                      ln_pisces     = ', ln_pisces 
     249         WRITE(numout,*) '   Simulating water mass age                    ln_age        = ', ln_age 
     250         WRITE(numout,*) '   Simulating CFC11 passive tracer              ln_cfc11      = ', ln_cfc11 
     251         WRITE(numout,*) '   Simulating CFC12 passive tracer              ln_cfc12      = ', ln_cfc12 
     252         WRITE(numout,*) '   Simulating C14   passive tracer              ln_c14        = ', ln_c14 
     253         WRITE(numout,*) '   Simulating MY_TRC  model                     ln_my_trc     = ', ln_my_trc 
     254         WRITE(numout,*) '   Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta 
     255         WRITE(numout,*) '   Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp 
     256         WRITE(numout,*) '   Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo 
     257         WRITE(numout,*) ' ' 
     258         WRITE(numout,*) ' ' 
     259      ENDIF 
     260      ! 
     261      ALLOCATE( ctrcnm(jptra)      , ctrcln(jptra) , ctrcun(jptra)       , ln_trc_ini(jptra),          & 
     262#if defined key_bdy 
     263         &      cn_trc_dflt(nb_bdy), cn_trc(nb_bdy), nn_trcdmp_bdy(nb_bdy), trcdta_bdy(jptra,nb_bdy),  & 
     264#endif 
     265         &      ln_trc_sbc(jptra), ln_trc_cbc(jptra), ln_trc_obc(jptra), STAT = ierr  ) 
     266      ! 
     267      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'trc_nam_ice: unable to allocate arrays' ) 
     268      ! 
     269      DO jn = 1, jp_bgc 
    201270         ctrcnm    (jn) = TRIM( sn_tracer(jn)%clsname ) 
    202271         ctrcln    (jn) = TRIM( sn_tracer(jn)%cllname ) 
    203272         ctrcun    (jn) = TRIM( sn_tracer(jn)%clunit  ) 
    204273         ln_trc_ini(jn) =       sn_tracer(jn)%llinit 
    205 #if defined key_my_trc 
    206          ln_trc_sbc(jn) =       sn_tracer(jn)%llsbc 
    207          ln_trc_cbc(jn) =       sn_tracer(jn)%llcbc 
    208          ln_trc_obc(jn) =       sn_tracer(jn)%llobc 
    209 #endif 
    210274      END DO 
    211275      ! 
    212       ll_cfc = ln_cfc11 .OR. ln_cfc12 
     276      IF( ln_my_trc ) THEN 
     277         DO jn = 1, jp_bgc 
     278           ln_trc_sbc(jn) =  bc_tracer(jn)%llsbc 
     279           ln_trc_cbc(jn) =  bc_tracer(jn)%llcbc 
     280           ln_trc_obc(jn) =  bc_tracer(jn)%llobc 
     281         END DO 
     282      ENDIF 
    213283      ! 
    214284      IF(lwp) THEN                   ! control print 
    215          WRITE(numout,*) 
    216          WRITE(numout,*) ' Namelist : namtrc' 
    217          WRITE(numout,*) '   Simulating water mass age                    ln_age        = ', ln_age 
    218          WRITE(numout,*) '   Simulating CFC11 passive tracer              ln_cfc11      = ', ln_cfc11 
    219          WRITE(numout,*) '   Simulating CFC12 passive tracer              ln_cfc12      = ', ln_cfc12 
    220          WRITE(numout,*) '   Simulating C14   passive tracer              ln_c14        = ', ln_c14 
    221          WRITE(numout,*) '   Read inputs data from file (y/n)             ln_trcdta     = ', ln_trcdta 
    222          WRITE(numout,*) '   Damping of passive tracer (y/n)              ln_trcdmp     = ', ln_trcdmp 
    223          WRITE(numout,*) '   Restoring of tracer on closed seas           ln_trcdmp_clo = ', ln_trcdmp_clo 
    224          WRITE(numout,*) ' ' 
    225          DO jn = 1, jptra 
     285         DO jn = 1, jp_bgc 
    226286            WRITE(numout,*) '  tracer nb : ', jn, '    short name : ', ctrcnm(jn) 
    227287         END DO 
    228288         WRITE(numout,*) ' ' 
    229289      ENDIF 
     290      ! 
    230291      ! 
    231292      IF( ln_age .OR. ll_cfc .OR. ln_c14 ) THEN 
     
    252313      INTEGER :: ios, ierr     ! Local integer output status for namelist read 
    253314      ! 
    254       TYPE(TRC_I_NML), ALLOCATABLE, DIMENSION(:) :: sn_tri_tracer  ! type of tracer for saving if not key_iomput 
     315      TYPE(TRC_I_NML), DIMENSION(jpmaxtrc) :: sn_tri_tracer  ! type of tracer for saving if not key_iomput 
    255316      !! 
    256317      NAMELIST/namtrc_ice/ nn_ice_tr, sn_tri_tracer 
     
    265326      IF( nn_timing == 1 )  CALL timing_start('trc_nam_ice') 
    266327 
    267       ALLOCATE( sn_tri_tracer(jptra),  STAT = ierr ) 
    268328      ! 
    269329      REWIND( numnat_ref )              ! Namelist namtrc_ice in reference namelist : Passive tracer input data 
     
    281341      ENDIF 
    282342 
     343      ALLOCATE( trc_ice_ratio(jptra), trc_ice_prescr(jptra), cn_trc_o(jptra), STAT = ierr  ) 
     344      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'trc_nam_ice: unable to allocate arrays' ) 
     345      ! 
    283346      ! Assign namelist stuff 
    284347      DO jn = 1, jptra 
    285          trc_ice_ratio(jn) = sn_tri_tracer(jn)%trc_ratio 
     348         trc_ice_ratio (jn) = sn_tri_tracer(jn)%trc_ratio 
    286349         trc_ice_prescr(jn) = sn_tri_tracer(jn)%trc_prescr 
    287350         cn_trc_o      (jn) = sn_tri_tracer(jn)%ctrc_o 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcsms.F90

    r7041 r7068  
    4949      IF( nn_timing == 1 )   CALL timing_start('trc_sms') 
    5050      ! 
    51       IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES  
     51      IF( ln_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES  
    5252      IF( ll_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC 
    5353      IF( ln_c14     )   CALL trc_sms_c14    ( kt )    ! surface fluxes of C14 
    5454      IF( ln_age     )   CALL trc_sms_age    ( kt )    ! Age tracer 
    55       IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
     55      IF( ln_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
    5656 
    5757      IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
  • branches/2016/dev_r7012_ROBUST5_CNRS/NEMOGCM/NEMO/TOP_SRC/trcwri.F90

    r7041 r7068  
    5454      ! write the tracer concentrations in the file 
    5555      ! --------------------------------------- 
    56       IF( lk_pisces  )   CALL trc_wri_pisces     ! PISCES  
     56      IF( ln_pisces  )   CALL trc_wri_pisces     ! PISCES  
    5757      IF( ll_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC 
    5858      IF( ln_c14     )   CALL trc_wri_c14        ! surface fluxes of C14 
    5959      IF( ln_age     )   CALL trc_wri_age        ! AGE tracer 
    60       IF( lk_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers 
     60      IF( ln_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers 
    6161      ! 
    6262      IF( nn_timing == 1 )  CALL timing_stop('trc_wri') 
Note: See TracChangeset for help on using the changeset viewer.