Changeset 763


Ignore:
Timestamp:
2007-12-13T14:52:50+01:00 (13 years ago)
Author:
gm
Message:

dev_001_GM - Style only addition in TOP F90 h90 routines

Location:
branches/dev_001_GM/NEMO/TOP_SRC
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/par_sms.F90

    r719 r763  
    11MODULE par_sms 
    2    !!--------------------------------------------------------------------- 
    3    !! 
    4    !!                         PARAMETER SMS 
    5    !!                       ******************************* 
    6    !! 
    7    !!  purpose : 
    8    !!  --------- 
    9    !!     INCLUDE PARAMETER FILE for SMS  models 
    10    !! 
    11    !! 
     2   !!====================================================================== 
     3   !!                         ***  MODULE par_sms  *** 
     4   !! TOP :   parameters of passive tracers 
     5   !!====================================================================== 
     6   !! History :   1.0  !  2005-03 (O. Aumont, A. El Moussaoui) F90 
    127   !!---------------------------------------------------------------------- 
    13    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    14    !! $Header$  
    15    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     8   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     9   !! $Id:$  
     10   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     11   !!---------------------------------------------------------------------- 
     12#if defined key_passivetrc 
     13   !!---------------------------------------------------------------------- 
     14   !!   'key_passivetrc'                                    Passive tracers 
    1615   !!---------------------------------------------------------------------- 
    1716   USE par_trc_trp 
     17 
    1818   IMPLICIT NONE 
    1919 
     
    3232#elif defined key_cfc 
    3333   !!---------------------------------------------------------------------- 
    34    !!   'key_cfc  '                                          CFC model                   
     34   !!   'key_cfc  '                                      CFC chemical model                   
    3535   !!---------------------------------------------------------------------- 
    3636#  include "par_sms_cfc.h90" 
    3737 
    3838#else 
    39    !!  purpose : 
    40    !!  --------- 
    41    !!     No SMS  models 
     39   !!---------------------------------------------------------------------- 
     40   !!  Empty module :                                     No passive tracer 
     41   !!---------------------------------------------------------------------- 
    4242#endif 
    4343 
     44   !!====================================================================== 
    4445END MODULE par_sms 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/par_sms_cfc.h90

    r719 r763  
    55 
    66   !!---------------------------------------------------------------------- 
    7    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    8    !! $Header$  
    9    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     7   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     8   !! $Id:$  
     9   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1010   !!---------------------------------------------------------------------- 
    1111 
    12    INTEGER , PARAMETER :: & 
    13       jpyear = 100,       & ! temporal parameter  
    14       jphem  = 2            ! hemispheric parameter 
     12   INTEGER, PARAMETER ::   jpyear = 100   ! temporal parameter  
     13   INTEGER, PARAMETER ::   jphem  = 2     ! hemispheric parameter 
    1514 
    16    INTEGER, PARAMETER ::  &  
    17       jp11 = 1,           & ! CFC-11 
    18       jp12 = 2              ! CFC-12 
     15   INTEGER, PARAMETER ::   jp11   = 1     ! CFC-11 
     16   INTEGER, PARAMETER ::   jp12   = 2     ! CFC-12 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/par_sms_lobster1.h90

    r719 r763  
    1 !!--------------------------------------------------------------------- 
    2 !! 
    3 !!                         PARAMETER passivetrc.lobster1 
    4 !!                       ******************************** 
    5 !! 
    6 !!  purpose : 
    7 !!  --------- 
    8 !!     INCLUDE PARAMETER FILE for passive tracer LOBSTER1 model 
    9 !! 
    10 !!  modifications:   
    11 !!  -------------- 
    12 !!     00-12 (E. Kestenare):  
    13 !!            assign a parameter to name individual tracers 
    14 !! 
    15 !! productive layer depth 
    16 !! ---------------------- 
    17 !!       jpkb   : first vertical layers where biology is active 
    18 !!       jpkbm1 : jpkb - 1 
    19 !! 
    20 !!---------------------------------------------------------------------- 
    21 !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    22 !! $Header$ 
    23 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    24 !!---------------------------------------------------------------------- 
     1   !!--------------------------------------------------------------------- 
     2   !!                     ***  par_sms_lobster1.h90  ***   
     3   !! TOP :   CFC Source Minus Sink parameter for LOBSTER 
     4   !!--------------------------------------------------------------------- 
     5   !! History :    -   !  1999-06  (M. Levy)  original code 
     6   !!              -   !  2000-12  (E. Kestenare) assign a parameter to name individual tracers 
     7   !!             1.0  !  2005-03  (C. Ethe) F90 
     8   !!---------------------------------------------------------------------- 
    259 
    26       INTEGER jpkb,jpkbm1 
    27       PARAMETER (jpkb = 12,jpkbm1 = 11) 
    28 !! 
    29 !! number of biological trends 
    30 !! --------------------------- 
    31 !! 
    32       INTEGER jpdiabio 
    33       PARAMETER (jpdiabio = 15) 
    34 !! 
    35 !!    NOW ASSIGN A PARAMETER TO NAME INDIVIDUAL TRACERS 
    36 !! 
    37 !!    JPDET : detritus (mmoleN/m3) 
    38 !!    JPZOO : zooplancton concentration (mmoleN/m3) 
    39 !!    JPPHY : phytoplancton concentration (mmoleN/m3) 
    40 !!    JPNO3 : nitrate concentration (mmoleN/m3) 
    41 !!    JPNH4 : ammonium concentration (mmoleN/m3) 
    42 !!    JPDOM : dissolved organic matter (mmoleN/m3) 
    43 !! 
    44       INTEGER jpdet,jpzoo,jpphy,jpno3,jpnh4,jpdom 
    45       PARAMETER (jpdet=1,jpzoo=2,jpphy=3,jpno3=4,jpnh4=5,jpdom=6) 
     10   !!---------------------------------------------------------------------- 
     11   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     12   !! $Id:$  
     13   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     14   !!---------------------------------------------------------------------- 
    4615 
     16   INTEGER, PARAMETER ::   jpkb     = 12        !: top jk layers where biology is active 
     17   INTEGER, PARAMETER ::   jpkbm1   = jpkb - 1  !: 
     18 
     19   INTEGER, PARAMETER ::   jpdiabio = 15        !: number of biological trends 
     20       
     21   INTEGER, PARAMETER ::   jpdet    = 1         !: detritus                    [mmoleN/m3] 
     22   INTEGER, PARAMETER ::   jpzoo    = 2         !: zooplancton concentration   [mmoleN/m3] 
     23   INTEGER, PARAMETER ::   jpphy    = 3         !: phytoplancton concentration [mmoleN/m3] 
     24   INTEGER, PARAMETER ::   jpno3    = 4         !: nitrate concentration       [mmoleN/m3] 
     25   INTEGER, PARAMETER ::   jpnh4    = 5         !: ammonium concentration      [mmoleN/m3] 
     26   INTEGER, PARAMETER ::   jpdom    = 6         !: dissolved organic matter    [mmoleN/m3] 
     27 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/par_sms_pisces.h90

    r719 r763  
    44   !!====================================================================== 
    55 
    6    INTEGER, PARAMETER ::  jpdiabio = 1 
     6   !!---------------------------------------------------------------------- 
     7   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     8   !! $Id:$  
     9   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     10   !!---------------------------------------------------------------------- 
    711 
    8    !! WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 
    9    !! 
    10    INTEGER, PARAMETER :: & 
    11       jpdic = 1  ,  &  ! dissolved inoganic carbon concentration  
    12       jptal = 2  ,  &  ! total alkalinity  
    13       jpoxy = 3  ,  &  ! oxygen carbon concentration  
    14       jpcal = 4  ,  &  ! calcite  concentration  
    15       jppo4 = 5  ,  &  ! phosphate concentration  
    16       jppoc = 6  ,  &  ! small particulate organic phosphate concentration 
    17       jpsil = 7  ,  &  ! silicate concentration 
    18       jpphy = 8  ,  &  ! phytoplancton concentration  
    19       jpzoo = 9  ,  &  ! zooplancton concentration 
    20       jpdoc = 10 ,  &  ! dissolved organic carbon concentration  
    21       jpdia = 11 ,  &  ! Diatoms Concentration 
    22       jpmes = 12 ,  &  ! Mesozooplankton Concentration 
    23       jpbsi = 13 ,  &  ! (big) Silicate Concentration 
    24       jpfer = 14 ,  &  ! Iron Concentration 
     12   INTEGER, PARAMETER ::   jpdiabio = 1   !: number of biological trends 
     13 
     14   ! WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 
     15 
     16   INTEGER, PARAMETER ::   jpdic =  1     !: dissolved inoganic carbon concentration  
     17   INTEGER, PARAMETER ::   jptal =  2     !: total alkalinity  
     18   INTEGER, PARAMETER ::   jpoxy =  3     !: oxygen carbon concentration  
     19   INTEGER, PARAMETER ::   jpcal =  4     !: calcite  concentration  
     20   INTEGER, PARAMETER ::   jppo4 =  5     !: phosphate concentration  
     21   INTEGER, PARAMETER ::   jppoc =  6     !: small particulate organic phosphate concentration 
     22   INTEGER, PARAMETER ::   jpsil =  7     !: silicate concentration 
     23   INTEGER, PARAMETER ::   jpphy =  8     !: phytoplancton concentration  
     24   INTEGER, PARAMETER ::   jpzoo =  9     !: zooplancton concentration 
     25   INTEGER, PARAMETER ::   jpdoc = 10     !: dissolved organic carbon concentration  
     26   INTEGER, PARAMETER ::   jpdia = 11     !: Diatoms Concentration 
     27   INTEGER, PARAMETER ::   jpmes = 12     !: Mesozooplankton Concentration 
     28   INTEGER, PARAMETER ::   jpbsi = 13     !: (big) Silicate Concentration 
     29   INTEGER, PARAMETER ::   jpfer = 14     !: Iron Concentration 
    2530#if ! defined key_trc_kriest 
    26       jpbfe = 15 ,  &  ! Big iron particles Concentration 
    27       jpgoc = 16 ,  &  ! big particulate organic phosphate concentration 
    28       jpsfe = 17 ,  &  ! Small iron particles Concentration 
    29       jpdfe = 18 ,  &  ! Diatoms iron Concentration 
    30       jpdsi = 19 ,  &  ! Diatoms Silicate Concentration 
    31       jpnfe = 20 ,  &  ! Nano iron Concentration 
    32       jpnch = 21 ,  &  ! Nano Chlorophyll Concentration 
    33       jpdch = 22 ,  &  ! Diatoms Chlorophyll Concentration 
    34       jpno3 = 23 ,  &  ! Nitrates Concentration 
    35       jpnh4 = 24       ! Ammonium Concentration 
     31   !!---------------------------------------------------------------------- 
     32   !!   Default                                             Standard PISCES 
     33   !!---------------------------------------------------------------------- 
     34   INTEGER, PARAMETER ::   jpbfe = 15     !: Big iron particles Concentration 
     35   INTEGER, PARAMETER ::   jpgoc = 16     !: big particulate organic phosphate concentration 
     36   INTEGER, PARAMETER ::   jpsfe = 17     !: Small iron particles Concentration 
     37   INTEGER, PARAMETER ::   jpdfe = 18     !: Diatoms iron Concentration 
     38   INTEGER, PARAMETER ::   jpdsi = 19     !: Diatoms Silicate Concentration 
     39   INTEGER, PARAMETER ::   jpnfe = 20     !: Nano iron Concentration 
     40   INTEGER, PARAMETER ::   jpnch = 21     !: Nano Chlorophyll Concentration 
     41   INTEGER, PARAMETER ::   jpdch = 22     !: Diatoms Chlorophyll Concentration 
     42   INTEGER, PARAMETER ::   jpno3 = 23     !: Nitrates Concentration 
     43   INTEGER, PARAMETER ::   jpnh4 = 24     !: Ammonium Concentration 
    3644#else 
    37       jpnum = 15 ,  &  ! Big iron particles Concentration 
    38       jpsfe = 16 ,  &  ! number of particulate organic phosphate concentration 
    39       jpdfe = 17 ,  &  ! Diatoms iron Concentration 
    40       jpdsi = 18 ,  &  ! Diatoms Silicate Concentration 
    41       jpnfe = 19 ,  &  ! Nano iron Concentration 
    42       jpnch = 20 ,  &  ! Nano Chlorophyll Concentration 
    43       jpdch = 21 ,  &  ! Diatoms Chlorophyll Concentration 
    44       jpno3 = 22 ,  &  ! Nitrates Concentration 
    45       jpnh4 = 23       ! Ammonium Concentration 
     45   !!---------------------------------------------------------------------- 
     46   !!   'key_trc_kriest'                                    PISCES + kriest 
     47   !!---------------------------------------------------------------------- 
     48   INTEGER, PARAMETER ::   jpnum = 15     !: Big iron particles Concentration 
     49   INTEGER, PARAMETER ::   jpsfe = 16     !: number of particulate organic phosphate concentration 
     50   INTEGER, PARAMETER ::   jpdfe = 17     !: Diatoms iron Concentration 
     51   INTEGER, PARAMETER ::   jpdsi = 18     !: Diatoms Silicate Concentration 
     52   INTEGER, PARAMETER ::   jpnfe = 19     !: Nano iron Concentration 
     53   INTEGER, PARAMETER ::   jpnch = 20     !: Nano Chlorophyll Concentration 
     54   INTEGER, PARAMETER ::   jpdch = 21     !: Diatoms Chlorophyll Concentration 
     55   INTEGER, PARAMETER ::   jpno3 = 22     !: Nitrates Concentration 
     56   INTEGER, PARAMETER ::   jpnh4 = 23     !: Ammonium Concentration 
    4657#endif 
    4758 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/sms.F90

    r719 r763  
    44   !! passive tracers :   set the passive tracers variables 
    55   !!====================================================================== 
    6    !! History : 
    7    !!   9.0  !  04-03  (C. Ethe)  Free form and module 
     6   !! History :    -   !  2004-03  (C. Ethe)  Free form and module 
    87   !!---------------------------------------------------------------------- 
    9    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    10    !! $Header$  
    11    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    128   !!---------------------------------------------------------------------- 
    13    !! * Modules used 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Header:$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
    1413#if defined key_passivetrc 
    15  
     14   !!---------------------------------------------------------------------- 
     15   !!   'key_passivetrc'                                    Passive tracers 
     16   !!---------------------------------------------------------------------- 
    1617   USE par_oce 
    1718   USE par_trc 
     
    1920 
    2021   IMPLICIT NONE 
    21  
    2222   PUBLIC 
    2323 
    24 #if defined key_trc_lobster1 
     24# if defined key_trc_lobster1 
    2525   !!---------------------------------------------------------------------- 
    2626   !!   'key_trc_lobster1'                        LOBSTER1 biological model   
     
    2828#  include "sms_lobster1.h90" 
    2929 
    30 #elif defined key_trc_pisces 
     30# elif defined key_trc_pisces 
    3131   !!---------------------------------------------------------------------- 
    3232   !!   'key_trc_pisces'                            PISCES biological model                   
     
    3434#  include "sms_pisces.h90" 
    3535 
    36 #elif defined key_cfc 
     36# elif defined key_cfc 
    3737   !!---------------------------------------------------------------------- 
    38    !!   'key_cfc  '                                          CFC model                   
     38   !!   'key_cfc  '                                      CFC chemical model                   
    3939   !!---------------------------------------------------------------------- 
    4040#  include "sms_cfc.h90" 
    4141 
     42# endif 
     43 
     44#else 
     45   !!---------------------------------------------------------------------- 
     46   !!  Empty module :                                     No passive tracer 
     47   !!---------------------------------------------------------------------- 
    4248#endif 
    4349 
    44 #else 
    4550   !!====================================================================== 
    46    !!  Empty module : No passive tracer  
    47    !!====================================================================== 
    48 #endif 
    49  
    5051END MODULE sms 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/sms_cfc.h90

    r719 r763  
    1    !!--------------------------------------------------------------------- 
     1   !!---------------------------------------------------------------------- 
    22   !!                     ***  sms_cfc.h90  ***   
    3    !!                    CFC Source Minus Sink model 
    4    !!--------------------------------------------------------------------- 
     3   !! TOP :   CFC Source Minus Sink valiables 
     4   !!---------------------------------------------------------------------- 
    55 
    66   !!---------------------------------------------------------------------- 
    7    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
     7   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
    88   !! $Header$  
    9    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     9   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1010   !!---------------------------------------------------------------------- 
    1111 
    12     INTEGER, PUBLIC :: & 
    13        ndate_beg,     & ! initial calendar date (aammjj) for CFC 
    14        nyear_res,     & ! restoring time constant (year) 
    15        nyear_beg        ! initial year (aa)  
     12   INTEGER , PUBLIC ::   ndate_beg    ! initial calendar date (aammjj) for CFC 
     13   INTEGER , PUBLIC ::   nyear_res    ! restoring time constant (year) 
     14   INTEGER , PUBLIC ::   nyear_beg    ! initial year (aa)  
    1615    
    17     REAL(wp), PUBLIC, DIMENSION(jpi,jpj)  ::  & 
    18        xphem            ! spatial interpolation factor for patm 
     16   REAL(wp), PUBLIC, DIMENSION(jpi,jpj)             ::   xphem    ! spatial interpolation factor for patm 
     17   REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jptra) ::   p_cfc    ! partial hemispheric pressure for CFC           
     18   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   pp_cfc   ! temporal interpolation of atmospheric concentrations  
     19   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   qtr      ! input function 
     20   REAL(wp), PUBLIC, DIMENSION(jpi,jpj      ,jptra) ::   qint     ! flux function 
    1921 
    20  
    21     REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jptra)  ::  &    
    22        p_cfc            ! partial hemispheric pressure for CFC           
    23  
    24   
    25     REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jptra) ::  &   
    26        pp_cfc           ! temporal interpolation of atmospheric concentrations  
    27  
    28  
    29     REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jptra) ::  &   
    30        qtr,          & ! input function 
    31        qint            ! flux function 
    32  
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/sms_lobster1.h90

    r719 r763  
    1 !!-------------------------------------------------------------------- 
    2 !! 
    3 !!                         COMMON passivetrc.lobster1.h 
    4 !!                      ******************************* 
    5 !! 
    6 !!  purpose : 
    7 !!  --------- 
    8 !!     INCLUDE COMMON FILE for LOBSTER1 biological model (IF key_trc_lobster1) 
    9 !! 
    10 !!  modifications : 
    11 !!   ------------- 
    12 !!      original    : 99-09 (M. Levy)  
    13 !!      additions   : 00-12 (O. Aumont, E. Kestenare):  
    14 !!                           add sediment parameters 
    15 !! 
    16 !!--------------------------------------------------------------------- 
    17 !!  TOP 1.0 , LOCEAN-IPSL (2005)  
     1   !!---------------------------------------------------------------------- 
     2   !!                     ***  sms_lobster1.h90  ***   
     3   !! TOP :   LOBSTER 1 Source Minus Sink valiables 
     4   !!---------------------------------------------------------------------- 
     5   !! History :    -   !  1999-09 (M. Levy)  original code 
     6   !!              -   !  2000-12 (O. Aumont, E. Kestenare) add sediment  
     7   !!             1.0  !  2005-10 (C. Ethe) F90 
     8   !!             1.0  !  2005-03  (A-S Kremeur) add fphylab, fzoolab, fdetlab, fdbod 
     9   !!              -   !  2005-06  (A-S Kremeur) add sedpocb, sedpocn, sedpoca 
     10   !!             2.0  !  2007-04  (C. Deltel, G. Madec) Free form and modules 
     11   !!---------------------------------------------------------------------- 
     12 
     13   !!---------------------------------------------------------------------- 
     14   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
    1815   !! $Header$  
    19    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    20 !!--------------------------------------------------------------------- 
    21 !! 
    22 !! 
    23 !!---------------------------------------------------------------------- 
    24 !! 
    25 !!  biological parameters 
    26 !! -------------------------------------------- 
    27 !! 
    28 !!      apmin     : minimum phytoplancton concentration (NAMELIST) 
    29 !!      azmin     : minimum zooplancton concentration (NAMELIST) 
    30 !!      anmin     : minimum nutrients concentration (NAMELIST) 
    31 !!      admin     : minimum detritus concentration (NAMELIST) 
    32 !!      redf      : redfield ratio c:n (NAMELIST) 
    33 !!      reddom    : redfield ratio c:n for DOM 
    34 !!      slopet    : van t hoff coefficient (NAMELIST) 
    35 !!      toptp     : optimal photosynthesis temperature (NAMELIST) 
    36 !!      aknut     : half-saturation nutrient (NAMELIST) 
    37 !!      akno3     : half-saturation for nitrate (NAMELIST) 
    38 !!      aknh4     : half-saturation for ammonium (NAMELIST) 
    39 !!      psinut    : inhibition of nitrate uptake by ammonium (NAMELIST) 
    40 !!      rgamma    : phytoplankton exudation fraction (NAMELIST) 
    41 !!      toptgz    : optimal temperature for zooplankton growth (NAMELIST) 
    42 !!      tmaxgz    : maximal temperature for zooplankton growth (NAMELIST)  
    43 !!      rgz       : widtht of zooplankton temperature FUNCTION (NAMELIST) 
    44 !!      rppz      : zooplankton nominal preference for phytoplancton 
    45 !!                  food, (NAMELIST) 
    46 !!      taus      : maximum specific zooplankton grazing rate (NAMELIST) 
    47 !!      aks       : half saturation constant for total zooplankton 
    48 !! grazing (NAMELIST) 
    49 !!      filmax    : maximum mass clearance rate for zooplankton (NAMELIST) 
    50 !!      rpnaz     : non-assimilated phytoplankton by zooplancton (NAMELIST)  
    51 !!      rdnaz     : non-assimilated detritus by zooplankton (NAMELIST)  
    52 !!      eggzoo    : minimum for zooplankton concentration (NAMELIST) 
    53 !!      tauzn     : zooplancton specific excretion rate (NAMELIST) 
    54 !!      tmmaxp    : maximal phytoplancton mortality rate (NAMELIST) 
    55 !!      tmminp    : minimal phytoplancton mortality rate (NAMELIST) 
    56 !!      tmmaxz    : maximal zooplankton mortality rate (NAMELIST) 
    57 !!      tmminz    : minimal zooplankton mortality rate (NAMELIST) 
    58 !!      anumin    : nutrient threshold for phytoplankton mortality (NAMELIST) 
    59 !!      afdmin    : food threshold for zooplankton mortality (NAMELIST) 
    60 !!      taudn     : detrital breakdown rate (NAMELIST) 
    61 !!      vsed      : sedimentation speed (NAMELIST) 
    62 !!      tmumax    : maximal phytoplankton growth rate (NAMELIST) 
    63 !!      aki       : light photosynthesis half saturation constant (NAMELIST) 
    64 !! 
    65 !!      tmaxr     : maximum coefficient for passive tracer damping (NAMELIST) 
    66 !!      tminr     : minimum coefficient for passive tracer damping (NAMELIST) 
    67 !!      remdmp()  : damping coefficient of passive tracers (depth dependant) 
    68 !!      fdoml     : fraction of exsudation that goes to nh4 (should be labile dom) 
    69 !!      taunn     : nitrification rate 
    70 !!      taudomn   : slow remineralization rate of semi-labile dom to nh4 
    71 !!      xhr       : coeff for Martin's remineralistion profile 
    72 !! 
    73 !!      added by asklod AS Kremeur 2005-03: 
    74 !!      fphylab   : NH4 fraction of phytoplankton excretion 
    75 !!      fzoolab   : NH4 fraction of zooplankton excretion 
    76 !!      fdetlab   : NH4 fraction of detritus dissolution 
    77 !!      fdbod     : zooplankton mortality fraction that goes to detritus 
     16   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     17   !!---------------------------------------------------------------------- 
    7818 
    79       REAL apmin,azmin,anmin,admin,  & 
    80                     redf,reddom,slopet,toptp,aknut,psinut,akno3,aknh4,rcchl,  & 
    81                      rgamma,toptgz,tmaxgz,rgz,  & 
    82                      rppz,taus,aks,filmax,rpnaz,rdnaz,eggzoo,tauzn,  & 
    83                      tmmaxp,tmminp,tmmaxz,tmminz,anumin,afdmin,taudn,  & 
    84                      vsed,tmumax,aki,  & 
    85                      tmaxr,tminr,fdoml,taunn,taudomn,xhr,  & 
    86                      fphylab,fzoolab,fdetlab,fdbod 
    87       REAL remdmp(jpk,jptra) 
     19   !!  biological parameters 
     20   !! ---------------------- 
     21   REAL(wp) ::   apmin    !: minimum phytoplancton concentration              (NAMELIST) 
     22   REAL(wp) ::   azmin    !: minimum zooplancton concentration                (NAMELIST) 
     23   REAL(wp) ::   anmin    !: minimum nutrients concentration                  (NAMELIST) 
     24   REAL(wp) ::   admin    !: minimum detritus concentration                   (NAMELIST) 
     25   REAL(wp) ::   redf     !: redfield ratio c:n                               (NAMELIST) 
     26   REAL(wp) ::   reddom   !: redfield ratio c:n for DOM                        
     27   REAL(wp) ::   slopet   !: van t hoff coefficient                           (NAMELIST) 
     28   REAL(wp) ::   toptp    !: optimal photosynthesis temperature               (NAMELIST)  
     29   REAL(wp) ::   aknut    !: half-saturation nutrient                         (NAMELIST) 
     30   REAL(wp) ::   psinut   !: inhibition of nitrate uptake by ammonium         (NAMELIST) 
     31   REAL(wp) ::   akno3    !: half-saturation for nitrate                      (NAMELIST) 
     32   REAL(wp) ::   aknh4    !: half-saturation for ammonium                     (NAMELIST) 
     33   REAL(wp) ::   rcchl    !: ???                                               
     34   REAL(wp) ::   rgamma   !: phytoplankton exudation fraction                 (NAMELIST) 
     35   REAL(wp) ::   toptgz   !: optimal temperature for zooplankton growth       (NAMELIST) 
     36   REAL(wp) ::   tmaxgz   !: maximal temperature for zooplankton growth       (NAMELIST)  
     37   REAL(wp) ::   rgz      !: widtht of zooplankton temperature FUNCTION       (NAMELIST) 
     38   REAL(wp) ::   rppz     !: zooplankton nominal preference for phytoplancton food (NAMELIST) 
     39   REAL(wp) ::   taus     !: maximum specific zooplankton grazing rate        (NAMELIST) 
     40   REAL(wp) ::   aks      !: half saturation constant for total zooplankton grazing (NAMELIST) 
     41   REAL(wp) ::   filmax   !: maximum mass clearance rate for zooplankton      (NAMELIST) 
     42   REAL(wp) ::   rpnaz    !: non-assimilated phytoplankton by zooplancton     (NAMELIST) 
     43   REAL(wp) ::   rdnaz    !: non-assimilated detritus by zooplankton          (NAMELIST)  
     44   REAL(wp) ::   eggzoo   !: minimum for zooplankton concentration            (NAMELIST) 
     45   REAL(wp) ::   tauzn    !: zooplancton specific excretion rate              (NAMELIST) 
     46   REAL(wp) ::   tmmaxp   !: maximal phytoplancton mortality rate             (NAMELIST) 
     47   REAL(wp) ::   tmminp   !: minimal phytoplancton mortality rate             (NAMELIST) 
     48   REAL(wp) ::   tmmaxz   !: maximal zooplankton mortality rate               (NAMELIST) 
     49   REAL(wp) ::   tmminz   !: minimal zooplankton mortality rate               (NAMELIST) 
     50   REAL(wp) ::   anumin   !: nutrient threshold for phytoplankton mortality   (NAMELIST) 
     51   REAL(wp) ::   afdmin   !: food threshold for zooplankton mortality         (NAMELIST) 
     52   REAL(wp) ::   taudn    !: detrital breakdown rate                          (NAMELIST) 
     53   REAL(wp) ::   vsed     !: sedimentation speed                              (NAMELIST) 
     54   REAL(wp) ::   tmumax   !: maximal phytoplankton growth rate                (NAMELIST) 
     55   REAL(wp) ::   aki      !: light photosynthesis half saturation constant    (NAMELIST) 
     56   REAL(wp) ::   tmaxr    !: maximum coefficient for passive tracer damping   (NAMELIST) 
     57   REAL(wp) ::   tminr    !: minimum coefficient for passive tracer damping   (NAMELIST) 
     58   REAL(wp) ::   fdoml    !: fraction of exsudation that goes to nh4 (should be labile dom) 
     59   REAL(wp) ::   taunn    !: nitrification rate 
     60   REAL(wp) ::   taudomn  !: slow remineralization rate of semi-labile dom to nh4 
     61   REAL(wp) ::   xhr      !: coeff for Martin's remineralistion profile 
     62   REAL(wp) ::   fphylab  !: NH4 fraction of phytoplankton excretion 
     63   REAL(wp) ::   fzoolab  !: NH4 fraction of zooplankton excretion 
     64   REAL(wp) ::   fdetlab  !: NH4 fraction of detritus dissolution 
     65   REAL(wp) ::   fdbod    !: zooplankton mortality fraction that goes to detritus 
    8866 
    89 !! 
    90 !! 
    91 #    if defined key_trc_diabio 
    92 !! 
    93 !!---------------------------------------------------------------------- 
    94 !! 
    95 !!  biological trends  
    96 !! ------------------------------------------------------------------ 
    97 !! 
    98 !!      ctrbio    : biological trends name (NAMELIST) 
    99 !!      ctrbil    : biological trends long name (NAMELIST) 
    100 !!      ctrbiu    : biological trends unit (NAMELIST) 
    101 !!      trbio()   : biological trends 
    102 !! 
    103       CHARACTER*8 ctrbio(jpdiabio) 
    104       CHARACTER*20 ctrbiu(jpdiabio) 
    105       CHARACTER*80 ctrbil(jpdiabio) 
    106       REAL trbio(jpi,jpj,jpk,jpdiabio) 
     67   REAL(wp), DIMENSION(jpk,jptra) ::   remdmp   !: depth dependant damping coefficient of passive tracers  
     68    
    10769 
    108 !! 
    109 !!    netcdf files and index COMMON biological trends files 
    110 !! 
    111 !!      nwritebio: time step frequency for biological outputs (NAMELIST) 
    112 ! asklod 10-2005: oubli de cette partie dans l update: 
    113 !!      nitb     : id for additional array output FILE 
    114 !!      ndepitb  : id for depth mesh 
    115 !!      nhoritb  : id for horizontal mesh 
    116 !! 
    117       INTEGER nwritebio,nitb,ndepitb,nhoritb 
     70# if defined key_trc_diabio 
    11871 
    119 #    endif  
     72   !! Biological trends  
     73   !! ----------------- 
     74   CHARACTER(len=8),  DIMENSION(jpdiabio) ::   ctrbio   !: biological trends name      (NAMELIST) 
     75   CHARACTER(len=20), DIMENSION(jpdiabio) ::   ctrbiu   !: biological trends unit      (NAMELIST) 
     76   CHARACTER(len=80), DIMENSION(jpdiabio) ::   ctrbil   !: biological trends long name (NAMELIST) 
     77   REAL(wp), DIMENSION(jpi,jpj,jpk,jpdiabio) :: trbio   !: biological trends 
    12078 
    121 !!---------------------------------------------------------------------- 
    122 !! 
    123 !!  optical parameters 
    124 !! ----------------------------------- 
    125 !! 
    126 !!      xze       : euphotic layer depth 
    127 !!      xpar      : par (photosynthetic available radiation) 
    128 !!      xkr0      : water coefficient absorption in red (NAMELIST) 
    129 !!      xkg0      : water coefficient absorption in green (NAMELIST) 
    130 !!      xkrp      : pigment coefficient absorption in red (NAMELIST) 
    131 !!      xkgp      : pigment coefficient absorption in green (NAMELIST) 
    132 !!      xlr       : exposant for pigment absorption in red (NAMELIST) 
    133 !!      xlg       : exposant for pigment absorption in green (NAMELIST) 
    134 !!      rpig      : chla/chla+phea ratio (NAMELIST) 
    135 !! 
    136       REAL xkr0,xkg0,xkrp,xkgp,xlr,xlg,rpig 
     79   !! Netcdf output parameters 
     80   !! ------------------------ 
     81   INTEGER ::   nwritebio   !: time step frequency for biological outputs (NAMELIST) 
     82   INTEGER ::   nitb        !:         id.         for additional array output file 
     83   INTEGER ::   ndepitb     !:         id.         for depth mesh 
     84   INTEGER ::   nhoritb     !:         id.         for horizontal mesh 
    13785 
    138       REAL xze(jpi,jpj) 
    139       REAL xpar(jpi,jpj,jpk) 
     86# endif  
    14087 
    141 !!---------------------------------------------------------------------- 
    142 !! 
    143 !!  sediment parameters 
    144 !! -------------------------------------- 
    145 !! 
    146 !!      sedlam : time coefficient of POC remineralization in sediments 
    147 !!      dmin3  : fraction of sinking POC released at each level 
    148 !!      dminl  : fraction of sinking POC released in sediments 
    149 !! asklod add sedpocb, sedpocn, sedpoca 17 06 2005 
    150 !!      sedpocb : mass of POC in sediments 
    151 !!      sedpocn : mass of POC in sediments 
    152 !!      sedpoca : mass of POC in sediments 
    153 !!      fbod   : rapid sinking particles 
    154 !! 
    155 !! 
    156       REAL sedlam,sedlostpoc 
    157       REAL dmin3(jpi,jpj,jpk), dminl(jpi,jpj) 
    158       REAL sedpoca(jpi,jpj),sedpocb(jpi,jpj),sedpocn(jpi,jpj) 
    159       REAL fbod(jpi,jpj),cmask(jpi,jpj),areacot 
     88   !! Optical parameters                                 
     89   !! ------------------                                 
     90   REAL(wp) ::   xkr0       !: water coefficient absorption in red      (NAMELIST) 
     91   REAL(wp) ::   xkg0       !: water coefficient absorption in green    (NAMELIST) 
     92   REAL(wp) ::   xkrp       !: pigment coefficient absorption in red    (NAMELIST) 
     93   REAL(wp) ::   xkgp       !: pigment coefficient absorption in green  (NAMELIST) 
     94   REAL(wp) ::   xlr        !: exposant for pigment absorption in red   (NAMELIST) 
     95   REAL(wp) ::   xlg        !: exposant for pigment absorption in green (NAMELIST) 
     96   REAL(wp) ::   rpig       !: chla/chla+phea ratio                     (NAMELIST) 
     97                                                         
     98   INTEGER , DIMENSION(jpi,jpj)     ::   neln    !: number of levels in the euphotic layer 
     99   REAL(wp), DIMENSION(jpi,jpj)     ::   xze     !: euphotic layer depth 
     100   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xpar    !: par (photosynthetic available radiation) 
    160101 
     102   !! Sediment parameters                                
     103   !! -------------------                                
     104   REAL(wp) ::   sedlam       !: time coefficient of POC remineralization in sediments 
     105   REAL(wp) ::   sedlostpoc   !: ??? 
     106   REAL(wp) ::   areacot      !: ??? 
     107                                                         
     108   REAL(wp), DIMENSION(jpi,jpj)     ::   dminl   !: fraction of sinking POC released in sediments 
     109   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   dmin3   !: fraction of sinking POC released at each level 
     110                                                         
     111   REAL(wp), DIMENSION(jpi,jpj) ::   sedpocb     !: mass of POC in sediments 
     112   REAL(wp), DIMENSION(jpi,jpj) ::   sedpocn     !: mass of POC in sediments 
     113   REAL(wp), DIMENSION(jpi,jpj) ::   sedpoca     !: mass of POC in sediments 
     114                                                         
     115   REAL(wp), DIMENSION(jpi,jpj) ::   fbod        !: rapid sinking particles 
     116   REAL(wp), DIMENSION(jpi,jpj) ::   cmask       !: ??? 
     117 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/sms_pisces.h90

    r730 r763  
    1 !!--------------------------------------------------------------------- 
    2 !! 
    3 !!                         COMMON passivetrc.pisces.h 
    4 !!                       ****************************** 
    5 !! 
    6 !!  purpose : 
    7 !!  --------- 
    8 !!     INCLUDE COMMON FILE for PISCES biological model 
    9 !! 
    10 !!  modifications : 
    11 !!   ------------- 
    12 !!      original    : 00-02 (O. Aumont) 
    13 !! 
    14 !! 
    15 #if defined key_trc_pisces 
    16 !! 
    17 !!---------------------------------------------------------------------- 
    18 !! 
    19 !! Variable for chemistry of the CO2 cycle 
    20 !! 
    21 !! --------------------------------------------------------------------- 
    22 !! 
    23       REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    24          akb3, ak13, ak23, aksp, akw3, & 
    25          akp13, akp23, akp33, aksi3, aks3, akf3, & 
    26          hi, borat 
     1   !!---------------------------------------------------------------------- 
     2   !!                     ***  sms_pisces.h90  ***   
     3   !! TOP :   PISCES Source Minus Sink valiables 
     4   !!---------------------------------------------------------------------- 
     5   !! History :   1.0  !  2000-02 (O. Aumont) original code 
     6   !!---------------------------------------------------------------------- 
    277 
    28       REAL :: & 
    29          atcco2, atcox 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Header$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
    3013 
    31 !! 
    32 !!---------------------------------------------------------------------- 
    33 !! 
    34 !!  Variable for chemistry of the CO2 cycle 
    35 !! 
    36 !! --------------------------------------------------------------------- 
    37 !! 
    38       REAL(wp), DIMENSION(10)  :: & 
    39          devk1, devk2, devk3, devk4, devk5      
    40     
    41       REAL(wp) :: &  
    42          akcc1, akcc2, akcc3, akcc4,akcc5, akcc6, akcc7, akcc8, akcc9 , & 
    43          bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11, & 
    44          c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3, & 
    45          cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14, & 
    46          cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4,ox5, & 
    47          salchl, rgas, oxyco, ca0, ca1, ca2, ca3, ca4, ca5, ca6, & 
    48          cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21, & 
    49          cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33, & 
    50          cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16, & 
    51          cs17, cs18, cs19, cs20, cs21, & 
    52          st1, st2, ft1, ft2, ks0, ks1, ks2, ks3, ks4, ks5, & 
    53          ks6, ks7, ks8, ks9, ks10, ks11, ks12, kf0, kf1, & 
    54          kf2, kf3, kf4 
     14   !!---------------------------------------------------------------------- 
     15   !! Variable for chemistry of the CO2 cycle 
     16   !! --------------------------------------------------------------------- 
     17   REAL(wp) ::   atcco2, atcox 
     18   ! 
     19   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   akb3, ak13, ak23, aksp, akw3             !: ??? 
     20   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   akp13, akp23, akp33, aksi3, aks3, akf3   !: ??? 
     21   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   hi, borat                                !: ??? 
    5522 
    56       REAL(wp), DIMENSION(jpi,jpj,3) :: & 
    57          chemc 
     23   !!---------------------------------------------------------------------- 
     24   !!  Variable for chemistry of the CO2 cycle 
     25   !! --------------------------------------------------------------------- 
     26   REAL(wp), DIMENSION(10) ::   devk1, devk2, devk3, devk4, devk5      
     27   ! 
     28   REAL(wp) ::   akcc1, akcc2, akcc3, akcc4,akcc5, akcc6, akcc7, akcc8, akcc9     !: ??? 
     29   REAL(wp) ::   bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11               !: ??? 
     30   REAL(wp) ::   c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3                 !: ??? 
     31   REAL(wp) ::   cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14                    !: ??? 
     32   REAL(wp) ::   cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4,ox5   !: ??? 
     33   REAL(wp) ::   salchl, rgas, oxyco, ca0, ca1, ca2, ca3, ca4, ca5, ca6           !: ??? 
     34   REAL(wp) ::   cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21             !: ??? 
     35   REAL(wp) ::   cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33             !: ??? 
     36   REAL(wp) ::   cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16             !: ??? 
     37   REAL(wp) ::   cs17, cs18, cs19, cs20, cs21                                     !: ??? 
     38   REAL(wp) ::   st1, st2, ft1, ft2, ks0, ks1, ks2, ks3, ks4, ks5                 !: ??? 
     39   REAL(wp) ::   ks6, ks7, ks8, ks9, ks10, ks11, ks12, kf0, kf1                   !: ??? 
     40   REAL(wp) ::   kf2, kf3, kf4 
     41   ! 
     42   REAL(wp), DIMENSION(jpi,jpj,3) ::   chemc   !: ??? 
    5843 
    59 !! 
    60 !!---------------------------------------------------------------------- 
    61 !! 
    62 !!  Variable for chemistry of Fe and SIO3 
    63 !! 
    64 !! --------------------------------------------------------------------- 
    65 !! 
    66       REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    67          sio3eq, fekeq 
     44   !!---------------------------------------------------------------------- 
     45   !!  Variable for chemistry of Fe and SIO3 
     46   !! --------------------------------------------------------------------- 
     47   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   sio3eq   !: ??? 
     48   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   fekeq    !: ??? 
    6849 
    69 !! 
    70 !!---------------------------------------------------------------------- 
    71 !! 
    72 !!  Time variables 
    73 !! 
    74 !! --------------------------------------------------------------------- 
    75 !! 
    76  
    77       INTEGER :: & 
    78          iabsyr, nrdttrc, ndayflxtr 
    79  
    80       REAL(wp) :: & 
    81          tspyr, absyr, xtvit , & 
    82          rfact, rfactr, rfact2, rfact2r 
     50   !!---------------------------------------------------------------------- 
     51   !!  Time variables 
     52   !! --------------------------------------------------------------------- 
     53   INTEGER  ::   iabsyr, nrdttrc, ndayflxtr       !: ??? 
     54   REAL(wp) ::   tspyr, absyr, xtvit              !: ??? 
     55   REAL(wp) ::   rfact, rfactr, rfact2, rfact2r   !: ??? 
    8356 
    8457 
    85 !! 
    86 !!---------------------------------------------------------------------- 
    87 !! 
    88 !!  Gas exchange 
    89 !! 
    90 !! --------------------------------------------------------------------- 
    91 !! 
    92       REAL(wp), DIMENSION(jpi,jpj) :: &  
    93          strn 
    94 !!--------------------------------------- 
    95 !! 
    96 !!  Biological parameters  
    97 !! 
    98 !! -------------------------------------- 
    99 !!  
    100       INTEGER :: & 
    101          jkopt 
     58   !!---------------------------------------------------------------------- 
     59   !!  Gas exchange 
     60   !! --------------------------------------------------------------------- 
     61   REAL(wp), DIMENSION(jpi,jpj) ::   strn         !: ??? 
     62    
     63   !!--------------------------------------- 
     64   !!  Biological parameters  
     65   !! -------------------------------------- 
     66   INTEGER ::   jkopt    !: ??? 
     67   ! 
     68   REAL(wp) ::   caco3r, kdca, nca, part, rno3, o2ut, po4r               !: ??? 
     69   REAL(wp) ::   sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput     !: ??? 
     70   REAL(wp) ::   calcon, rivpo4input,nitdepinput,oxymin,spocri           !: ??? 
     71   REAL(wp) ::   nitrif,rdenit,o2nit,concnnh4,concdnh4                   !: ??? 
     72   REAL(wp) ::   pislope,excret,wsbio,resrat,mprat,wchl,wchld            !: ??? 
     73   REAL(wp) ::   mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort         !: ??? 
     74   REAL(wp) ::   xksi1,xksi2,sicmax,xremik,xremip,xkdoc1                 !: ??? 
     75   REAL(wp) ::   xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz      !: ??? 
     76   REAL(wp) ::   xkgraz2,grazrat2,xlam1,conc1,conc2,conc3                !: ??? 
     77   REAL(wp) ::   unass2,xprefpoc,epsher,epsher2,pislope2,mpratm          !: ??? 
     78   REAL(wp) ::   sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3   !: ??? 
     79   REAL(wp) ::   xsirem, fecnm, fecdm, chlcnm, chlcdm                    !: ??? 
    10280 
    103       REAL(wp) :: & 
    104          caco3r, kdca, nca, part, rno3, o2ut, po4r,  & 
    105          sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput, & 
    106          calcon, rivpo4input,nitdepinput,oxymin,spocri, & 
    107          nitrif,rdenit,o2nit,concnnh4,concdnh4, & 
    108          pislope,excret,wsbio,resrat,mprat,wchl,wchld, & 
    109          mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort, & 
    110          xksi1,xksi2,sicmax,xremik,xremip,xkdoc1, & 
    111          xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz, & 
    112          xkgraz2,grazrat2,xlam1,conc1,conc2,conc3, & 
    113          unass2,xprefpoc,epsher,epsher2,pislope2,mpratm, & 
    114          sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3, & 
    115          xsirem, fecnm, fecdm, chlcnm, chlcdm 
     81   !!--------------------------------------------- 
     82   !!  Biological fluxes for light 
     83   !!--------------------------------------------- 
     84   REAL(wp), DIMENSION(3,61)        ::   xkrgb                 !: ??? 
     85   REAL(wp), DIMENSION(jpi,jpj)     ::   zmeu                  !: ??? 
     86   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   etot, etot3, emoy     !: ??? 
    11687 
     88!!---------------------------------------------------------- 
     89!!  Biological fluxes for primary production 
     90!!---------------------------------------------------------- 
     91   REAL(wp), DIMENSION(jpi,jpj) ::   xksimax, xksi 
     92   ! 
     93   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prmax, tgfunc, tgfunc2                       !: ??? 
     94   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prcaca, prorca, prorca2, prorca3             !: ??? 
     95   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   prorca4, prorca5, prorca6, prorca7           !: ??? 
     96   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   pronew, pronew2, proreg, proreg2             !: ??? 
     97   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xnanono3, xdiatno3, xnanonh4, xdiatnh4       !: ??? 
     98   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xlimphy, xlimdia, concdfe, concnfe, znegtr   !: ??? 
    11799 
     100   !!------------------------------------------ 
     101   !! Sinks for phytoplankton 
     102   !!------------------------------------------ 
     103   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   tortp, tortnf, tortnch            !: ??? 
     104   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   respp, respp2, respnch, respdch   !: ??? 
     105   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   tortp2, tortdf, tortdch, tortds   !: ??? 
     106   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   respds, respdf, respnf            !: ??? 
    118107 
    119 !! 
    120 !!--------------------------------------------- 
    121 !! 
    122 !!  Biological fluxes for light 
    123 !! 
    124 !!--------------------------------------------- 
    125 !! 
    126       REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    127          etot, etot3, emoy 
     108   !!------------------------------------ 
     109   !!  SMS for zooplankton 
     110   !!------------------------------------- 
     111   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   respz, tortz, grazp, grazpf                   !: ??? 
     112   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazpch, grazm, grazmf, grazsd                !: ??? 
     113   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazsf, grazss, grazsch, grarem               !: ??? 
     114   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grafer,respz2,tortz2,grazd, grazz,grazn       !: ??? 
     115   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazpoc,graznf, graznch, grazs, grazf         !: ??? 
     116   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grazdch, grazpof, grarem2, grafer2, grapoc2   !: ??? 
     117   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   grapoc, grazffe, grazfff                      !: ??? 
    128118 
    129       REAL(wp), DIMENSION(jpi,jpj) :: & 
    130          zmeu 
     119   !!--------------------------------------------- 
     120   !!  SMS for the organic matter 
     121   !!--------------------------------------------- 
     122   REAL(wp) ::   wsbio2 
     123   ! 
     124   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xagg, xaggfe, zdiss, xaggdoc, xaggdfe, xbactfer   !: ??? 
     125   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   xscave, olimi, orem, orem2, ofer, ofer2           !: ??? 
     126   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   osil, xaggdoc2, nitrfac, xlimbac                  !: ??? 
     127   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   wsbio4, wsbio3, wscal                             !: ??? 
    131128 
    132       REAL(wp), DIMENSION(3,61) :: &  
    133          xkrgb 
    134  
    135  
    136 !! 
    137 !!---------------------------------------------------------- 
    138 !! 
    139 !!  Biological fluxes for primary production 
    140 !! 
    141 !!---------------------------------------------------------- 
    142 !! 
    143       REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
    144          prmax, tgfunc, tgfunc2, & 
    145          prcaca, prorca, prorca2, prorca3, & 
    146          prorca4, prorca5, prorca6, prorca7, & 
    147          pronew, pronew2, proreg, proreg2, & 
    148          xnanono3, xdiatno3, xnanonh4, xdiatnh4, & 
    149          xlimphy, xlimdia, concdfe, concnfe, znegtr 
    150  
    151       REAL(wp), DIMENSION(jpi,jpj) :: &       
    152          xksimax, xksi 
    153  
    154  
    155  
    156 !! 
    157 !!------------------------------------------ 
    158 !! 
    159 !! Sinks for phytoplankton 
    160 !! 
    161 !!------------------------------------------ 
    162 !! 
    163       REAL(wp), DIMENSION(jpi,jpj,jpk) :: &       
    164          tortp, tortnf, tortnch, & 
    165          respp, respp2, respnch, respdch, & 
    166          tortp2, tortdf, tortdch, tortds, & 
    167          respds, respdf, respnf 
    168  
    169  
    170 !! 
    171 !!------------------------------------ 
    172 !! 
    173 !!  SMS for zooplankton 
    174 !! 
    175 !!------------------------------------- 
    176 !! 
    177       REAL(wp), DIMENSION(jpi,jpj,jpk) :: &    
    178          respz, tortz, grazp, grazpf, & 
    179          grazpch, grazm, grazmf, grazsd, & 
    180          grazsf, grazss, grazsch, grarem, & 
    181          grafer,respz2,tortz2,grazd, grazz,grazn, & 
    182          grazpoc,graznf, graznch, grazs, grazf, & 
    183          grazdch, grazpof, grarem2, grafer2, grapoc2, & 
    184          grapoc, grazffe, grazfff 
    185  
    186  
    187 !! 
    188 !!--------------------------------------------- 
    189 !! 
    190 !!  SMS for the organic matter 
    191 !! 
    192 !!--------------------------------------------- 
    193 !! 
    194       REAL(wp), DIMENSION(jpi,jpj,jpk) :: &    
    195          xagg, xaggfe, zdiss, xaggdoc, xaggdfe, xbactfer, & 
    196          xscave, olimi, orem, orem2, ofer, ofer2, & 
    197          osil, xaggdoc2, nitrfac, xlimbac, &  
    198          wsbio4, wsbio3, wscal 
    199  
    200       REAL(wp) :: & 
    201          wsbio2 
    202  
    203  
    204   
    205 !! 
    206 !!--------------------------------------------------------- 
    207 !! 
    208 !! External sources of nutrients in ocean 
    209 !! 
    210 !!--------------------------------------------------------- 
    211 !! 
    212       REAL(wp), DIMENSION(jpi,jpj,jpk) :: &          
    213          onitr, denitr, ironsed 
    214  
    215       REAL(wp), DIMENSION(jpi,jpj) :: &  
    216          dust, cotdep, nitdep, rivinp 
    217  
    218       REAL(wp), DIMENSION(jpi,jpj,12) ::  &   
    219          dustmo 
    220  
    221       REAL(wp) :: & 
    222          areacot 
    223  
    224       LOGICAL :: & 
    225          bdustfer, briver, bndepo, bsedinput 
    226  
    227  
     129   !!--------------------------------------------------------- 
     130   !! External sources of nutrients in ocean 
     131   !!--------------------------------------------------------- 
     132   LOGICAL ::   bdustfer, briver, bndepo, bsedinput   !: ??? 
     133   ! 
     134   REAL(wp) ::   areacot                              !: ??? 
     135   ! 
     136   REAL(wp), DIMENSION(jpi,jpj)     ::   dust, cotdep, nitdep, rivinp   !: ??? 
     137   REAL(wp), DIMENSION(jpi,jpj,12)  ::   dustmo                         !: ??? 
     138   REAL(wp), DIMENSION(jpi,jpj,jpk) ::   onitr, denitr, ironsed         !: ??? 
    228139 
    229140#if defined key_trc_kriest 
    230 !! 
    231 !!--------------------------------------------------------- 
    232 !! 
    233 !!  Kriest parameter for aggregation 
    234 !! 
    235 !!--------------------------------------------------------- 
    236 !! 
    237       REAL(wp) :: & 
    238          xkr_eta, xkr_zeta, xkr_sfact, xkr_stick,  & 
    239          xkr_mass_min, xkr_mass_max, xkr_massp, xkr_frac, & 
    240          xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr, & 
    241          xkr_nnano, xkr_ndiat, xkr_nmeso, xkr_naggr, & 
    242          xkr_wsbio_min, xkr_wsbio_max 
    243        
    244       REAL(wp), DIMENSION(jpk) :: & 
    245          xnumm 
     141   !!--------------------------------------------------------- 
     142   !!  Kriest parameter for aggregation 
     143   !!--------------------------------------------------------- 
     144   REAL(wp) ::   xkr_eta, xkr_zeta, xkr_sfact, xkr_stick            !: ??? 
     145   REAL(wp) ::   xkr_mass_min, xkr_mass_max, xkr_massp, xkr_frac    !: ??? 
     146   REAL(wp) ::   xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr         !: ??? 
     147   REAL(wp) ::   xkr_nnano, xkr_ndiat, xkr_nmeso, xkr_naggr         !: ??? 
     148   REAL(wp) ::   xkr_wsbio_min, xkr_wsbio_max 
     149   !   
     150   REAL(wp), DIMENSION(jpk) ::   xnumm      !: ??? 
    246151#endif 
    247152 
    248 #endif 
    249  
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcctl.cfc.h90

    r719 r763  
    1 ! $Id$ 
    2 !!! 
    3 !!! Modifications: 
    4 !!! -------------- 
    5 !!!    05-10 (C. Ethe):  
    6 !!!           assign a parameter to name individual tracers 
    7 !!! 
     1   !!====================================================================== 
     2   !!                         ***  trcctl.cfc.h90  *** 
     3   !! TOP :   Control of CFC chemical model 
     4   !!====================================================================== 
     5   !!---------------------------------------------------------------------- 
     6   !! History :   1.0  !  2005-10 (C. Ethe) assign a parameter to name individual tracers 
     7   !!---------------------------------------------------------------------- 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Id:$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
     13 
    814 
    915      IF(lwp) THEN 
     
    1218      ENDIF 
    1319 
    14 ! Check number of tracers 
    15 ! ----------------------- 
    16       
    17       IF (jptra .GT. 2) THEN  
    18           IF (lwp) THEN  
     20      ! Check number of tracers 
     21      ! -----------------------    
     22      IF( jptra > 2) THEN  
     23          IF(lwp) THEN  
    1924              WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    2025              WRITE (numout,*) ' =======   ============= ' 
     
    2530      END IF  
    2631 
    27 ! Check tracer names 
    28 ! ------------------ 
    29       IF ( jptra == 1 ) THEN 
     32      ! Check tracer names 
     33      ! ------------------ 
     34      IF( jptra == 1 ) THEN 
    3035         IF ( jp11 == 1 ) THEN 
    3136            IF ( ctrcnm(jp11) /= 'CFC11') THEN 
    32                ctrcnm(jp11)='CFC11' 
    33                ctrcnl(jp11)='Chlorofuorocarbone 11 concentration' 
     37               ctrcnm(jp11) = 'CFC11' 
     38               ctrcnl(jp11) = 'Chlorofuorocarbone 11 concentration' 
    3439            ENDIF 
    3540         ENDIF 
    36          IF ( jp12 == 1 ) THEN 
     41         IF( jp12 == 1 ) THEN 
    3742            IF ( ctrcnm(jp12) /= 'CFC12') THEN 
    38                ctrcnm(jp12)='CFC12' 
    39                ctrcnl(jp12)='Chlorofuorocarbone 12 concentration' 
     43               ctrcnm(jp12) = 'CFC12' 
     44               ctrcnl(jp12) = 'Chlorofuorocarbone 12 concentration' 
    4045            ENDIF 
    4146         ENDIF 
    4247      ENDIF 
    4348 
    44       IF ( jptra == 2 ) THEN 
     49      IF( jptra == 2 ) THEN 
    4550         IF ( ctrcnm(jp11) /= 'CFC11' .OR. ctrcnm(jp12) /= 'CFC12' ) THEN  
    46             ctrcnm(jp11)='CFC11' 
    47             ctrcnl(jp11)='Chlorofuorocarbone 11 concentration' 
    48             ctrcnm(jp12)='CFC12' 
    49             ctrcnl(jp12)='Chlorofuorocarbone 12 concentration'  
     51            ctrcnm(jp11) = 'CFC11' 
     52            ctrcnl(jp11) = 'Chlorofuorocarbone 11 concentration' 
     53            ctrcnm(jp12) = 'CFC12' 
     54            ctrcnl(jp12) = 'Chlorofuorocarbone 12 concentration'  
    5055         ENDIF 
    5156      ENDIF 
    5257 
    53       IF (lwp) THEN 
     58      IF(lwp) THEN 
    5459         WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    5560         WRITE (numout,*) ' =======   ============= ' 
    5661         WRITE (numout,*) ' we force tracer names' 
    57          DO jn=1,jptra 
     62         DO jn = 1, jptra 
    5863            WRITE(numout,*) ' tracer nb: ',jn,' name = ',ctrcnm(jn), ctrcnl(jn) 
    5964         END DO 
     
    6267 
    6368 
    64 ! Check tracer units 
    65  
    66       DO jn=1,jptra 
    67         IF (ctrcun(jn) /= 'mole/m3') THEN 
    68             ctrcun(jn)='mole/m3' 
    69             IF (lwp) THEN 
    70                 WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    71                 WRITE (numout,*) ' =======   ============= ' 
    72                 WRITE (numout,*) ' we force tracer unit' 
    73                 WRITE(numout,*) ' tracer  ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) 
    74                 WRITE(numout,*) ' ' 
     69      ! Check tracer units 
     70      ! ------------------ 
     71      DO jn = 1, jptra 
     72        IF( ctrcun(jn) /= 'mole/m3' ) THEN 
     73            ctrcun(jn) = 'mole/m3' 
     74            IF(lwp) THEN 
     75               WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     76               WRITE (numout,*) ' =======   ============= ' 
     77               WRITE (numout,*) ' we force tracer unit' 
     78               WRITE(numout,*) ' tracer  ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) 
     79               WRITE(numout,*) ' ' 
    7580            ENDIF  
    76         ENDIF  
     81         ENDIF  
    7782      END DO               
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcctl.lobster1.h90

    r719 r763  
    1 !!---------------------------------------------------------------------- 
    2 !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    3 !! $Header$ 
    4 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    5 !!---------------------------------------------------------------------- 
    6 !!! 
    7 !!! Modifications: 
    8 !!! -------------- 
    9 !!!    00-12 (E. Kestenare):  
    10 !!!           assign a parameter to name individual tracers 
    11 !!! 
     1   !!====================================================================== 
     2   !!                         ***  trcctl.lobster1.h90  *** 
     3   !! TOP :   Control of LOBSTER 1 biological model 
     4   !!====================================================================== 
     5   !!---------------------------------------------------------------------- 
     6   !! History :   1.0  !  2000-12 (E. Kestenare) assign a parameter to name individual tracers 
     7   !!---------------------------------------------------------------------- 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Id:$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
    1213 
    13 #if defined key_trc_lobster1 
    14       IF(lwp) THEN 
    15           WRITE(numout,*) ' use LOBSTER1 biological model ' 
    16           WRITE(numout,*) ' ' 
    17       ENDIF 
     14      IF(lwp) WRITE(numout,*) 
     15      IF(lwp) WRITE(numout,*) ' use LOBSTER1 biological model ' 
    1816 
    19 ! Check number of tracers 
    20 ! ----------------------- 
     17      ! Check number of tracers 
     18      ! ----------------------- 
    2119      IF (jptra /= 6) THEN  
    2220          IF (lwp) THEN  
     
    3028      END IF  
    3129 
    32 ! Check tracer names 
    33 ! ------------------ 
    34       IF (    ctrcnm(jpdet) /= 'DET' .OR. ctrcnm(jpzoo) /= 'ZOO'     & 
    35          & .OR. ctrcnm(jpphy) /= 'PHY' .OR. ctrcnm(jpno3) /= 'NO3'   & 
    36          & .OR. ctrcnm(jpnh4) /= 'NH4' .OR. ctrcnm(jpdom) /= 'DOM'   &  
    37          & .OR. ctrcnl(jpdet) /= 'Detritus'                          & 
    38          & .OR. ctrcnl(jpzoo) /= 'Zooplankton concentration'         & 
    39          & .OR. ctrcnl(jpphy) /= 'Phytoplankton concentration'       & 
    40          & .OR. ctrcnl(jpno3) /= 'Nitrate concentration'             & 
    41          & .OR. ctrcnl(jpnh4) /= 'Ammonium concentration'            & 
    42          & .OR. ctrcnl(jpdom) /= 'Dissolved organic matter' ) THEN  
    43           ctrcnm(jpdet)='DET' 
    44           ctrcnl(jpdet)='Detritus' 
    45           ctrcnm(jpzoo)='ZOO' 
    46           ctrcnl(jpzoo)='Zooplankton concentration' 
    47           ctrcnm(jpphy)='PHY' 
    48           ctrcnl(jpphy)='Phytoplankton concentration' 
    49           ctrcnm(jpno3)='NO3' 
    50           ctrcnl(jpno3)='Nitrate concentration' 
    51           ctrcnm(jpnh4)='NH4' 
    52           ctrcnl(jpnh4)='Ammonium concentration' 
    53           ctrcnm(jpdom)='DOM' 
    54           ctrcnl(jpdom)='Dissolved organic matter'           
    55           IF (lwp) THEN 
    56               WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    57               WRITE (numout,*) ' =======   ============= ' 
    58               WRITE (numout,*) ' we force tracer names' 
    59               DO jn=1,jptra 
    60                 WRITE(numout,*) ' tracer nb: ',jn,' name = ',ctrcnm(jn), ctrcnl(jn) 
    61               END DO 
    62               WRITE(numout,*) ' ' 
    63           ENDIF  
     30      ! Check tracer names 
     31      ! ------------------ 
     32      IF(   ctrcnm(jpdet) /= 'DET' .OR. ctrcnm(jpzoo) /= 'ZOO' .OR.   & 
     33         &  ctrcnm(jpphy) /= 'PHY' .OR. ctrcnm(jpno3) /= 'NO3' .OR.   & 
     34         &  ctrcnm(jpnh4) /= 'NH4' .OR. ctrcnm(jpdom) /= 'DOM' .OR.   &  
     35         &  ctrcnl(jpdet) /= 'Detritus'                        .OR.   & 
     36         &  ctrcnl(jpzoo) /= 'Zooplankton concentration'       .OR.   & 
     37         &  ctrcnl(jpphy) /= 'Phytoplankton concentration'     .OR.   & 
     38         &  ctrcnl(jpno3) /= 'Nitrate concentration'           .OR.   & 
     39         &  ctrcnl(jpnh4) /= 'Ammonium concentration'          .OR.   & 
     40         & ctrcnl(jpdom) /= 'Dissolved organic matter' ) THEN  
     41         ctrcnm(jpdet)='DET' 
     42         ctrcnl(jpdet)='Detritus' 
     43         ctrcnm(jpzoo)='ZOO' 
     44         ctrcnl(jpzoo)='Zooplankton concentration' 
     45         ctrcnm(jpphy)='PHY' 
     46         ctrcnl(jpphy)='Phytoplankton concentration' 
     47         ctrcnm(jpno3)='NO3' 
     48         ctrcnl(jpno3)='Nitrate concentration' 
     49         ctrcnm(jpnh4)='NH4' 
     50         ctrcnl(jpnh4)='Ammonium concentration' 
     51         ctrcnm(jpdom)='DOM' 
     52         ctrcnl(jpdom)='Dissolved organic matter'           
     53         IF(lwp) THEN 
     54            WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     55            WRITE (numout,*) ' =======   ============= ' 
     56            WRITE (numout,*) ' we force tracer names' 
     57            DO jn = 1, jptra 
     58               WRITE(numout,*) ' tracer nb: ',jn,' name = ',ctrcnm(jn), ctrcnl(jn) 
     59            END DO 
     60            WRITE(numout,*) ' ' 
     61         ENDIF  
    6462      ENDIF  
    6563 
    66 ! Check tracer units 
    67  
    68       DO jn=1,jptra 
    69         IF (ctrcun(jn) /= 'mmole-N/m3') THEN 
     64      ! Check tracer units 
     65      DO jn = 1, jptra 
     66         IF( ctrcun(jn) /= 'mmole-N/m3') THEN 
    7067            ctrcun(jn)='mmole-N/m3' 
    71             IF (lwp) THEN 
    72                 WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    73                 WRITE (numout,*) ' =======   ============= ' 
    74                 WRITE (numout,*) ' we force tracer unit' 
    75                 WRITE(numout,*) ' tracer  ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) 
    76                 WRITE(numout,*) ' ' 
     68            IF(lwp) THEN 
     69               WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
     70               WRITE (numout,*) ' =======   ============= ' 
     71               WRITE (numout,*) ' we force tracer unit' 
     72               WRITE(numout,*) ' tracer  ',ctrcnm(jn), 'UNIT= ',ctrcun(jn) 
    7773            ENDIF  
    78         ENDIF  
     74         ENDIF  
    7975      END DO               
    80 #endif 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcctl.pisces.h90

    r719 r763  
     1   !!====================================================================== 
     2   !!                         ***  trcctl.cfc.h90  *** 
     3   !! TOP :   Control of CFC chemical model 
     4   !!====================================================================== 
     5   !!---------------------------------------------------------------------- 
     6   !! History :   1.0  !  2005-10 (C. Ethe) assign a parameter to name individual tracers 
     7   !!---------------------------------------------------------------------- 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Id:$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
    113 
    2    !!---------------------------------------------------------------------- 
    3    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    4    !! $Header$  
    5    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    6    !!---------------------------------------------------------------------- 
    7 #if defined key_trc_pisces 
     14      IF(lwp) WRITE(numout,*) 
    815      IF(lwp) WRITE(numout,*) ' use PISCES biological model ' 
    9       IF(lwp) WRITE(numout,*) ' ' 
    1016 
    1117   ! Check number of tracers 
    1218   ! ----------------------- 
    13  
    1419#if  defined key_trc_kriest 
    15       IF (jptra /= 23) THEN  
     20      IF( jptra /= 23) THEN  
    1621#else 
    17       IF (jptra /= 24) THEN 
     22      IF( jptra /= 24) THEN 
    1823#endif 
    1924          IF (lwp) THEN  
     
    2631          STOP 'TRC_CTL' 
    2732      END IF  
    28 #endif 
     33       
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcfreons.F90

    r719 r763  
    11MODULE trcfreons 
    2    !!============================================================== 
    3    !!                  ***  MODULE trcfreons  *** 
    4    !!  Passive tracer : CFC main model 
    5    !!============================================================== 
     2   !!====================================================================== 
     3   !!                      ***  MODULE trcfreons  *** 
     4   !! TOP : CFC main model 
     5   !!====================================================================== 
     6   !! History :    -   !  1999-10  (JC. Dutay)  original code 
     7   !!             1.0  !  2004-03 (C. Ethe) free form + modularity 
     8   !!---------------------------------------------------------------------- 
    69#if defined key_cfc 
    7    !!-------------------------------------------------------------- 
    8    !!   'key_cfc'                                         CFC model 
    9    !!-------------------------------------------------------------- 
    10    !! * Modules used    
     10   !!---------------------------------------------------------------------- 
     11   !!   'key_cfc'                                        CFC chemical model 
     12   !!---------------------------------------------------------------------- 
     13   !!   trc_freons     :  compute and add CFC suface forcing to CFC trends 
     14   !!   trc_freons_cst :  sets constants for CFC surface forcing computation 
     15   !!---------------------------------------------------------------------- 
    1116   USE daymod 
    1217   USE sms 
     
    1419   USE trc 
    1520 
    16  
    1721   IMPLICIT NONE 
    1822   PRIVATE 
    1923 
    20    !! * Routine accessibility 
    21    PUBLIC trc_freons         
    22  
    23    !! * Module variables 
    24    REAL(wp), DIMENSION(jptra) :: & ! coefficient for solubility of CFC11 in  mol/l/atm 
    25       soa1, soa2, soa3, soa4, & 
    26       sob1, sob2, sob3 
    27  
    28    REAL(wp), DIMENSION(jptra) :: & ! coefficients for schmidt number in degre Celcius 
    29       sca1, sca2, sca3, sca4 
    30  
    31    REAL(wp) ::              & ! coefficients for conversion 
    32       xconv1 = 1.0       ,  & ! conversion from to  
    33       xconv2 = 0.01/3600.,  & ! conversion from cm/h to m/s:  
    34       xconv3 = 1.0e+3    ,  & ! conversion from mol/l/atm to mol/m3/atm 
    35       xconv4 = 1.0e-12        ! conversion from mol/m3/atm to mol/m3/pptv  
     24   PUBLIC   trc_freons       ! called in ???     
     25 
     26   REAL(wp), DIMENSION(jptra) ::   soa1, soa2, soa3, soa4   ! coefficient for solubility of CFC [mol/l/atm] 
     27   REAL(wp), DIMENSION(jptra) ::   sob1, sob2, sob3         !    "               " 
     28   REAL(wp), DIMENSION(jptra) ::   sca1, sca2, sca3, sca4   ! coefficients for schmidt number in degre Celcius 
     29       
     30   !                          ! coefficients for conversion 
     31   REAL(wp) ::   xconv1 = 1.0          ! conversion from to  
     32   REAL(wp) ::   xconv2 = 0.01/3600.   ! conversion from cm/h to m/s:  
     33   REAL(wp) ::   xconv3 = 1.0e+3       ! conversion from mol/l/atm to mol/m3/atm 
     34   REAL(wp) ::   xconv4 = 1.0e-12      ! conversion from mol/m3/atm to mol/m3/pptv  
    3635 
    3736   !! * Substitutions 
    3837#  include "passivetrc_substitute.h90" 
    39  
    40    !!---------------------------------------------------------------------- 
    41    !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    42    !! $Header$  
    43    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     38   !!---------------------------------------------------------------------- 
     39   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     40   !! $Id:$  
     41   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    4442   !!---------------------------------------------------------------------- 
    4543 
     
    6260      !!          - the input function is in pico-mol/m3/s and the 
    6361      !!            freons concentration in pico-mol/m3 
    64       !! 
    65       !! History : 
    66       !!   8.1  !  99-10  (JC. Dutay)  original code 
    67       !!   9.0  !  04-03  (C. Ethe)  free form + modularity 
    6862      !!---------------------------------------------------------------------- 
    69       !! * Arguments 
    7063      INTEGER, INTENT( in ) ::   kt    ! ocean time-step index 
    71  
    72       !! * Local declarations 
    73       INTEGER ::  & 
    74          ji, jj, jn, jm 
    75  
    76       INTEGER ::   & 
    77          iyear_beg, iyear_end, & 
    78          imonth, im1, im2 
    79  
    80       REAL(wp) :: & 
    81          ztap, zdtap, & 
    82          zt1, zt2, zt3, zv2 
    83  
    84       REAL(wp), DIMENSION(jphem,jptra)   ::  &    
    85          zpatm       ! atmospheric function 
    86  
    87       REAL(wp) ::  &  
    88          zsol,     & ! solubility 
    89          zsch        ! schmidt number  
    90  
     64      !! 
     65      INTEGER ::   ji, jj, jn, jm 
     66      INTEGER ::   iyear_beg, iyear_end 
     67      INTEGER ::   imonth, im1, im2 
     68 
     69      REAL(wp) ::   ztap, zdtap         
     70      REAL(wp) ::   zt1, zt2, zt3, zv2 
     71      REAL(wp) ::   zsol   ! solubility 
     72      REAL(wp) ::   zsch   ! schmidt number  
    9173       
    92       REAL(wp), DIMENSION(jpi,jpj,jptra)   ::  &  
    93          zca_cfc,  & ! concentration 
    94          zak_cfc     ! transfert coefficients 
    95  
     74      REAL(wp), DIMENSION(jphem,jptra) ::   zpatm       ! atmospheric function 
     75      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   zca_cfc   ! concentration 
     76      REAL(wp), DIMENSION(jpi,jpj,jptra) ::   zak_cfc   ! transfert coefficients 
    9677      !!---------------------------------------------------------------------- 
    97  
    9878 
    9979      IF( kt == nittrc000 )   CALL trc_freons_cst 
     
    11797 
    11898 
    119  
    120  
    12199      !  Temporal and spatial interpolation at time k 
    122100      ! -------------------------------------------------- 
     
    125103            zpatm(jm,jn) = (  p_cfc(iyear_beg, jm, jn) * FLOAT (im1)  & 
    126104               &           +  p_cfc(iyear_end, jm, jn) * FLOAT (im2) ) / 12. 
    127          ENDDO 
    128       END DO 
    129  
    130       DO jn = 1, jptra 
    131          DO jj = 1, jpj  
    132             DO ji = 1, jpi 
    133                pp_cfc(ji,jj,jn) =     xphem(ji,jj)   * zpatm(1,jn)  & 
    134                   &           + ( 1.- xphem(ji,jj) ) * zpatm(2,jn) 
    135             END DO 
    136          END DO 
    137       ENDDO 
     105         END DO 
     106      END DO 
     107 
     108      DO jn = 1, jptra 
     109         pp_cfc(:,:,jn) =       xphem(:,:)   * zpatm(1,jn)   & 
     110            &           + ( 1.- xphem(:,:) ) * zpatm(2,jn) 
     111      END DO 
    138112 
    139113 
     
    160134            END DO 
    161135         END DO 
    162       ENDDO 
     136      END DO 
    163137 
    164138   
     
    181155            END DO 
    182156         END DO 
    183       ENDDO 
     157      END DO 
    184158 
    185159 
     
    199173            END DO 
    200174         END DO 
    201       ENDDO 
     175      END DO 
    202176 
    203177 
     
    212186            END DO 
    213187         END DO 
    214       ENDDO 
     188      END DO 
    215189 
    216190      ! -------------------------------------------- 
     
    223197            END DO 
    224198         END DO 
    225       ENDDO 
    226  
    227  
     199      END DO 
     200      ! 
    228201   END SUBROUTINE trc_freons 
     202 
    229203 
    230204   SUBROUTINE trc_freons_cst 
     
    232206      !!                     ***  trc_freons_cst  ***   
    233207      !! 
    234       !!   Purpose : sets constants for CFC model 
    235       !!  --------- 
    236       !! 
    237       !! 
    238       !! History : 
    239       !!   8.2  !  04-06  (JC. Dutay)  original code 
    240       !!   9.0  !  05-10  (C. Ethe) Modularity  
     208      !! ** Purpose : sets constants for CFC model 
    241209      !!--------------------------------------------------------------------- 
    242       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    243    !! $Header$  
    244    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    245       !!---------------------------------------------------------------- 
    246       !! Local declarations 
    247       INTEGER :: jn 
     210      INTEGER ::   jn 
     211      !!--------------------------------------------------------------------- 
    248212 
    249213      DO jn = 1, jptra 
     
    290254         WRITE(numout,*) 'coefficient for schmidt of tracer',ctrcnm(jn) 
    291255         WRITE(numout,*) sca1(jn), sca2(jn),sca3(jn), sca4(jn) 
    292       ENDDO 
    293  
     256      END DO 
     257      ! 
    294258   END SUBROUTINE trc_freons_cst 
     259    
    295260#else 
    296261   !!---------------------------------------------------------------------- 
    297    !!   Default option                                         Dummy module 
     262   !!   Dummy module                                           No CFC model 
    298263   !!---------------------------------------------------------------------- 
    299264CONTAINS 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcini.cfc.h90

    r719 r763  
     1   !!====================================================================== 
     2   !!                         ***  trcini.cfc.h90  *** 
     3   !! TOP :   Initialisation of CFC chemical model 
     4   !!====================================================================== 
     5   !! History :    -   !  2004-06  (JC. Dutay) Original code 
     6   !!             1.0  !  2005-03  (O. Aumont, A. El Moussaoui) F90 
     7   !!              -   !  2005-10  (C. Ethe) Modularity 
    18   !!---------------------------------------------------------------------- 
    2    !!                    ***  trcini.cfc.h90 *** 
     9 
     10   CHARACTER (len=34) ::   clname = 'cfc1112.atm' ! ??? 
     11 
     12   INTEGER  ::   inum                   ! unit number 
     13   REAL(wp) ::   ylats = -10.           ! 10 degrees south 
     14   REAL(wp) ::   ylatn =  10.           ! 10 degrees north 
     15 
    316   !!---------------------------------------------------------------------- 
    4    !! * Module variables 
    5    INTEGER  ::  & 
    6       inum                   ! unit number 
    7    CHARACTER (len=34) :: & 
    8       clname = 'cfc1112.atm' ! ??? 
    9    REAL(wp) ::  & 
    10       ylats = -10.,    &     ! 10 degrees south 
    11       ylatn =  10.           ! 10 degrees north 
     17   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     18   !! $Id:$  
     19   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     20   !!---------------------------------------------------------------------- 
    1221 
    1322CONTAINS 
    1423 
    1524   SUBROUTINE trc_ini 
    16       !!--------------------------------------------------------------------- 
     25      !!---------------------------------------------------------------------- 
    1726      !!                     ***  trcini.cfc.h90  ***   
    1827      !! 
    19       !!   Purpose : special initialization for cfc model 
    20       !!  --------- 
    21       !! 
    22       !! 
    23       !! History : 
    24       !!   8.2  !  04-06  (JC. Dutay)  original code 
    25       !!   8.5  !  05-03  (O. Aumont and A. El Moussaoui F90 
    26       !!   9.0  !  05-10  (C. Ethe) Modularity  
    27       !!--------------------------------------------------------------------- 
    28       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    29    !! $Header$  
    30    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    31       !!--------------------------------------------------------------------- 
    32       !! Local declarations 
    33       INTEGER  :: ji, jj, jn, jl, jm 
    34       REAL(wp) :: zyy,  zyd 
     28      !! ** Purpose : special initialization for cfc model 
     29      !!---------------------------------------------------------------------- 
     30      INTEGER  ::   ji, jj, jn, jl, jm 
     31      REAL(wp) ::   zyy,  zyd 
     32      !!---------------------------------------------------------------------- 
    3533 
    36     
    37       ! 
    3834      ! Initialization of boundaries conditions 
    3935      ! ---------------------------------------  
    40  
    41       pp_cfc(:,:,:) = 0.0 
    42       qtr  (:,:,:) = 0.0 
    43       xphem(:,:  ) = 0.0 
    44  
    45   
     36      pp_cfc(:,:,:) = 0.e0 
     37      qtr   (:,:,:) = 0.e0 
     38      xphem (:,:)   = 0.e0 
    4639      DO jn = 1, jptra 
    4740         DO jm = 1, jphem 
     
    5043            END DO 
    5144         END DO 
    52       ENDDO 
     45      END DO 
    5346       
    5447       
     
    6154         ENDIF 
    6255         DO jn = 1, jptra 
    63             DO jj = 1, jpj 
    64                DO ji = 1, jpi 
    65                   qint(ji,jj,jn) = 0. 
    66                END DO 
    67             END DO 
    68          ENDDO 
     56            qint(:,:,jn) = 0.e0 
     57         END DO 
    6958      ENDIF 
    7059 
    7160 
    72       ! 
    7361      !   READ CFC partial pressure atmospheric value : 
    7462      !     p11(year,nt) = PCFC11  in northern (1) and southern (2) hemisphere  
     
    127115      DO jj = 1 , jpj 
    128116         DO ji = 1 , jpi 
    129             IF( gphit(ji,jj) .GE. ylatn ) THEN 
    130                xphem(ji,jj) = 1. 
    131             ELSE IF (gphit(ji,jj) .LE. ylats) THEN 
    132                xphem(ji,jj) = 0. 
    133             ELSE  
    134                xphem(ji,jj) = ( gphit(ji,jj) - ylats) / zyd 
     117            IF(     gphit(ji,jj) >= ylatn ) THEN   ;   xphem(ji,jj) = 1.e0 
     118            ELSEIF( gphit(ji,jj) <= ylats ) THEN   ;   xphem(ji,jj) = 0.e0 
     119            ELSE                                   ;   xphem(ji,jj) = ( gphit(ji,jj) - ylats) / zyd 
    135120            ENDIF 
    136121         END DO 
    137122      END DO 
    138  
     123      ! 
    139124   END SUBROUTINE trc_ini 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcini.lobster1.h90

    r719 r763  
     1   !!====================================================================== 
     2   !!                         ***  trcini.lobster1.h90  *** 
     3   !! TOP :   Initialisation of LOBSTER 1 biological model 
     4   !!====================================================================== 
     5   !! History :    -   !  1999-09  (M. Levy) Original code 
     6   !!              -   !  2000-12  (0. Aumont, E. Kestenare) add sediment  
     7   !!             1.0  !  2004-03  (C. Ethe) Modularity 
     8   !!              -   !  2005-03  (O. Aumont, A. El Moussaoui) F90 
    19   !!---------------------------------------------------------------------- 
    2    !!                    ***  trcini.lobster1.h90 *** 
    3    !!---------------------------------------------------------------------- 
     10 
    411#  include "domzgr_substitute.h90" 
    512#  include "passivetrc_substitute.h90" 
     13   !!---------------------------------------------------------------------- 
     14   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     15   !! $Id:$  
     16   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     17   !!---------------------------------------------------------------------- 
     18 
    619CONTAINS 
    720 
    821   SUBROUTINE trc_ini 
    9       !!--------------------------------------------------------------------- 
     22      !!---------------------------------------------------------------------- 
    1023      !!                    ***  ROUTINE trc_ini  *** 
    11       !!  purpose : 
    12       !!  --------- 
    13       !!     specific initialisation for lobster1 model 
    14       !! 
    15       !!   History : 
    16       !!   -------- 
    17       !!      original    : 99-09 (M. Levy)  
    18       !!      additions   : 00-12 (0. Aumont, E. Kestenare) 
    19       !!                           add sediment computations 
    20       !!    03-05 : O. Aumont and A. El Moussaoui F90   
     24      !! ** purpose :   specific initialisation for lobster1 model 
    2125      !!---------------------------------------------------------------------- 
    22       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    23    !! $Header$  
    24    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     26      INTEGER  ::   ji, jj, jk, jn 
     27      REAL(wp) ::   zdm0(jpi,jpj,jpk), zrro(jpi,jpj), zfluo, zfluu 
     28      REAL(wp) ::   ztest, zfluo, zfluu 
     29      REAL(wp), DIMENSION(jpi,jpj) ::   zrro 
     30      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zdm0 
    2531      !!---------------------------------------------------------------------- 
    26       !! local declarations 
    27       !! ================== 
    28       INTEGER ji,jj,jk,jn 
    29       REAL zdm0(jpi,jpj,jpk),zrro(jpi,jpj),zfluo,zfluu 
    30       REAL ztest 
    3132 
    32       !! 1. initialization of fields for optical model 
    33       !! -------------------------------------------- 
     33      ! initialization of fields for optical model 
     34      ! -------------------------------------------- 
     35      xze (:,:)   = 5.e0 
     36      xpar(:,:,:) = 0.e0 
    3437 
    35       xze(:,:)=5. 
    36       xpar(:,:,:)=0. 
     38      ! initialization for passive tracer remineralisation-damping  array 
     39      ! ----------------------------------------------------------------- 
    3740 
    38       !! 2. initialization for passive tracer remineralisation-damping  array 
    39       !! ------------------------------------------------------------------------- 
    40  
    41       DO jn=1,jptra 
    42          remdmp(:,jn)=tminr 
     41      DO jn = 1, jptra 
     42         remdmp(:,jn) = tminr 
    4343      END DO 
    4444 
     
    4949      ENDIF 
    5050 
    51       !! 3. initialization of biological variables 
    52       !! ------------------------------------------ 
     51      ! initialization of biological variables 
     52      ! ------------------------------------------ 
    5353 
    54       !! Calculate vertical distribution of newly formed biogenic poc 
    55       !! in the water column in the case of max. possible bottom depth 
    56       !! ------------------------------------------------------------ 
     54      ! Calculate vertical distribution of newly formed biogenic poc 
     55      ! in the water column in the case of max. possible bottom depth 
     56      ! ------------------------------------------------------------ 
    5757 
    58       zdm0   = 0. 
    59       zrro = 1. 
     58      zdm0   = 0.e0 
     59      zrro = 1.e0 
    6060      DO jk = jpkb,jpkm1 
    6161         DO jj =1, jpj 
    6262            DO ji =1, jpi 
    63                zfluo = (fsdepw(ji,jj,jk)/fsdepw(ji,jj,jpkb))**xhr  
    64                zfluu = (fsdepw(ji,jj,jk+1)/fsdepw(ji,jj,jpkb))**xhr 
    65                IF (zfluo.GT.1.) zfluo = 1. 
    66                zdm0(ji,jj,jk) = zfluo-zfluu 
    67                IF (jk.LE.jpkb-1) zdm0(ji,jj,jk)=0. 
    68                zrro(ji,jj) = zrro(ji,jj)-zdm0(ji,jj,jk) 
    69             ENDDO 
    70          ENDDO 
    71       ENDDO 
    72 !!! 
     63               zfluo = ( fsdepw(ji,jj,jk  ) / fsdepw(ji,jj,jpkb) )**xhr  
     64               zfluu = ( fsdepw(ji,jj,jk+1) / fsdepw(ji,jj,jpkb) )**xhr 
     65               IF( zfluo.GT.1. )   zfluo = 1.e0 
     66               zdm0(ji,jj,jk) = zfluo - zfluu 
     67               IF( jk <= jpkb-1 )   zdm0(ji,jj,jk) = 0.e0 
     68               zrro(ji,jj) = zrro(ji,jj) - zdm0(ji,jj,jk) 
     69            END DO 
     70         END DO 
     71      END DO 
    7372 
    7473      zdm0(:,:,jpk) = zrro(:,:) 
    7574 
    76       !! Calculate vertical distribution of newly formed biogenic poc 
    77       !! in the water column with realistic topography (first "dry" layer 
    78       !! contains total fraction, which has passed to the upper layers) 
    79       !! ---------------------------------------------------------------------- 
    80  
     75      ! Calculate vertical distribution of newly formed biogenic poc 
     76      ! in the water column with realistic topography (first "dry" layer 
     77      ! contains total fraction, which has passed to the upper layers) 
     78      ! ---------------------------------------------------------------------- 
    8179      dminl = 0. 
    8280      dmin3 = zdm0 
     81      DO jk = 1, jpk 
     82         DO jj = 1, jpj 
     83            DO ji = 1, jpi 
     84               IF( tmask(ji,jj,jk) == 0. ) THEN 
     85                  dminl(ji,jj) = dminl(ji,jj) + dmin3(ji,jj,jk) 
     86                  dmin3(ji,jj,jk) = 0.e0 
     87               ENDIF 
     88            END DO 
     89         END DO 
     90      END DO 
    8391 
    84       DO jk = 1,jpk 
    85          DO jj = 1,jpj 
    86             DO ji = 1,jpi 
     92      DO jj = 1, jpj 
     93         DO ji = 1, jpi 
     94            IF( tmask(ji,jj,1) == 0 )   dmin3(ji,jj,1) = 0.e0 
     95         END DO 
     96      END DO 
    8797 
    88                IF(tmask(ji,jj,jk) == 0) THEN 
    89                   dminl(ji,jj) = dminl(ji,jj)+dmin3(ji,jj,jk) 
    90                   dmin3(ji,jj,jk) = 0.0 
    91                ENDIF 
    92  
    93             ENDDO 
    94          ENDDO 
    95       ENDDO 
    96  
    97       DO jj = 1,jpj 
    98          DO ji = 1,jpi 
    99             IF (tmask(ji,jj,1) == 0) dmin3(ji,jj,1) = 0. 
    100          ENDDO 
    101       ENDDO 
    102  
    103       !! CALCUL DU MASK DE COTE 
    104       !! ----------------------    
    105       cmask=0. 
    106       do ji=2,jpi-1 
    107          do jj=2,jpj-1 
     98      ! Coastal mask  
     99      ! ------------    
     100      cmask = 0.e0 
     101      DO ji = 2, jpi-1 
     102         DO jj = 2, jpj-1 
    108103            if (tmask(ji,jj,1) == 1) then 
    109104               ztest=tmask(ji+1,jj,1)*tmask(ji-1,jj,1)*tmask(ji,jj+1,1)*tmask(ji,jj-1,1) 
    110105               IF (ztest == 0) cmask(ji,jj) = 1. 
    111106            endif 
    112          end do 
    113       end do 
     107         END DO 
     108      END DO 
    114109 
    115       cmask(1,:)=cmask(jpi-1,:) 
    116       cmask(jpi,:)=cmask(2,:) 
     110      cmask( 1 ,:) = cmask(jpi-1,:) 
     111      cmask(jpi,:) = cmask( 2   ,:) 
    117112 
     113      !!gm BUG !!!!!   not valid in mpp and also not valid for north fold   !!!!! 
    118114 
    119       !! CALCUL DE LA SURFACE COTIERE 
    120       !! ---------------------------- 
    121       areacot=0. 
    122       do ji=2,jpi-1 
    123          do jj=2,jpj-1 
    124             areacot=areacot+e1t(ji,jj)*e2t(ji,jj)*cmask(ji,jj) 
    125          end do 
    126       end do 
    127  
     115      ! Coastal surface 
     116      ! --------------- 
     117      areacot = 0.e0 
     118      DO ji = 2, jpi-1 
     119         DO jj = 2, jpj-1 
     120            areacot = areacot + e1t(ji,jj) * e2t(ji,jj) * cmask(ji,jj) 
     121         END DO 
     122      END DO 
     123      ! 
    128124   END SUBROUTINE trc_ini 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trcini.pisces.h90

    r728 r763  
     1   !!====================================================================== 
     2   !!                         ***  trcini.pisces.h90  *** 
     3   !! TOP :   Initialisation of PISCES biological model 
     4   !!====================================================================== 
     5   !! History :    -   !  1988-07  (E. Maier-Reiner) Original code 
     6   !!              -   !  1999-10  (O. Aumont, C. Le Quere) 
     7   !!              -   !  2002     (O. Aumont)  PISCES 
     8   !!             1.0  !  2005-03  (O. Aumont, A. El Moussaoui) F90 
    19   !!---------------------------------------------------------------------- 
    2    !!                    ***  trcini.pisces.h90 *** 
    3    !!---------------------------------------------------------------------- 
     10 
    411#  include "domzgr_substitute.h90" 
    512#  include "passivetrc_substitute.h90" 
     13   !!---------------------------------------------------------------------- 
     14   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     15   !! $Id:$  
     16   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     17   !!---------------------------------------------------------------------- 
     18 
    619CONTAINS 
    720 
    821   SUBROUTINE trc_ini 
    9       !!----------------------------------------------------------------- 
     22      !!---------------------------------------------------------------------- 
     23      !!                   ***  ROUTINE trc_ini *** 
    1024      !! 
    11       !!                   ***  ROUTINE trc_ini *** 
    12       !!                      
     25      !! ** Purpose :   Initialisation of PISCES biological and chemical variables 
     26      !!---------------------------------------------------------------------- 
     27      USE iom 
    1328      !! 
    14       !!  Purpose : 
    15       !!  --------- 
    16       !!     Initialisation of PISCES biological and chemical variables 
    17       !! 
    18       !!   INPUT : 
    19       !!   ----- 
    20       !!      common 
    21       !!              all the common defined in opa  
    22       !! 
    23       !! 
    24       !!   OUTPUT :                   : no 
    25       !!   ------ 
    26       !! 
    27       !!   EXTERNAL : 
    28       !!   ---------- 
    29       !!         p4zche 
    30       !! 
    31       !!   MODIFICATIONS: 
    32       !!   -------------- 
    33       !!      original  : 1988-07  E. MAIER-REIMER      MPI HAMBURG 
    34       !!      additions : 1999-10  O. Aumont and C. Le Quere 
    35       !!      additions : 2002     O. Aumont (PISCES) 
    36       !!     03-2005 O. Aumont and A. El Moussaoui F90 
    37       !!---------------------------------------------------------------------- 
    38       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    39       !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/SMS/trcini.pisces.h90,v 1.9 2007/10/12 09:35:04 opalod Exp $  
    40       !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    41       !!---------------------------------------------------------------------- 
    42       !!Module used 
    43       USE iom 
    44  
    45       !! local declarations 
    46       !! ================== 
    4729      INTEGER :: ji,jj,jk 
    4830      INTEGER :: ichl,iband,jm 
    4931      INTEGER , PARAMETER :: jpmois = 12, jpan   = 1  
    5032 
     33      REAL(wp) :: zcoef 
    5134      REAL(wp) :: ztoto,expide,denitide,ztra,zmaskt 
    5235      REAL(wp) , DIMENSION (jpi,jpj) :: riverdoc,river,ndepo 
    5336      REAL(wp) , DIMENSION (jpi,jpj,jpk) :: cmask 
    5437 
    55       INTEGER :: numriv,numdust,numbath,numdep 
     38      INTEGER :: numriv, numdust, numbath, numdep 
    5639      INTEGER :: numlight  
    5740 
    5841#if defined key_trc_kriest 
    59       REAL(wp) ::  & 
    60          znum, zdiv, & 
    61          zws,zwr, zwl,wmax, xnummax, & 
    62          zmin, zmax, zl, zr, xacc 
    63  
    64       INTEGER :: jn, kiter 
     42      INTEGER  ::   jn, kiter 
     43      REAL(wp) ::   znum, zdiv 
     44      REAL(wp) ::   zws,zwr, zwl,wmax, xnummax, & 
     45      REAL(wp) ::   zmin, zmax, zl, zr, xacc 
    6546#endif 
    66  
    67       !! 1. initialization 
    68       !! ----------------- 
    69  
    70       !! computation of the record length for direct access FILE 
    71       !! this length depend of 512 for the t3d machine 
    72       !! 
    73       rfact = rdttra(1) * float(ndttrc) 
    74       rfactr = 1./rfact 
    75       IF(lwp) WRITE(numout,*) ' Tracer time step=',rfact,' rdt=',rdt 
    76       rfact2= rfact / float(nrdttrc) 
    77       rfact2r = 1./rfact2 
    78       IF(lwp) write(numout,*) ' Biology time step=',rfact2 
    79  
    80  
    81       !!    INITIALISE DUST INPUT FROM ATMOSPHERE 
    82       !!    ------------------------------------- 
    83  
    84       IF ( bdustfer ) THEN 
    85          IF(lwp) WRITE(numout,*) ' Initialize dust input from atmosphere ' 
     47      !!---------------------------------------------------------------------- 
     48 
     49 
     50      IF(lwp) WRITE(numout,*) 
     51      IF(lwp) WRITE(numout,*) ' trc_ini :   PISCES biological and chemical initialisation' 
     52      IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
     53 
     54 
     55      !                                            ! Time-step 
     56      rfact   = rdttra(1) * float(ndttrc)          ! --------- 
     57      rfactr  = 1. / rfact 
     58      rfact2  = rfact / float(nrdttrc) 
     59      rfact2r = 1. / rfact2 
     60 
     61      IF(lwp) WRITE(numout,*) '    Tracer  time step=', rfact, ' rdt = ', rdt 
     62      IF(lwp) write(numout,*) '    Biology time step=', rfact2 
     63 
     64 
     65      !                                            ! Dust input from the atmosphere 
     66      IF( bdustfer ) THEN                          ! ------------------------------ 
     67         IF(lwp) WRITE(numout,*) '    Initialize dust input from atmosphere ' 
    8668         CALL iom_open ( 'dust.orca.nc', numdust ) 
    8769         DO jm = 1, jpmois 
    88             CALL iom_get  ( numdust, jpdom_data, 'dust', dustmo(:,:,jm), jm ) 
    89          ENDDO 
     70            CALL iom_get( numdust, jpdom_data, 'dust', dustmo(:,:,jm), jm ) 
     71         END DO 
    9072         CALL iom_close( numdust ) 
    9173      ELSE 
    92          dustmo(:,:,:) = 0. 
     74         dustmo(:,:,:) = 0.e0 
    9375      ENDIF 
    9476 
    9577 
    96  
    97       !!    INITIALISE THE NUTRIENT INPUT BY RIVERS 
    98       !!    --------------------------------------- 
    99  
    100       IF ( briver ) THEN 
    101          IF(lwp) WRITE(numout,*) ' Initialize the nutrient input by rivers ' 
     78      !                                            ! Nutrient input from rivers 
     79      IF( briver ) THEN                            ! -------------------------- 
     80         IF(lwp) WRITE(numout,*) '    Initialize the nutrient input by rivers from river.orca.nc file' 
    10281         CALL iom_open ( 'river.orca.nc', numriv ) 
    10382         CALL iom_get  ( numriv, jpdom_data, 'riverdic', river   (:,:), jpan ) 
     
    10584         CALL iom_close( numriv ) 
    10685      ELSE 
    107          river   (:,:) = 0. 
    108          riverdoc(:,:) = 0. 
     86         river   (:,:) = 0.e0 
     87         riverdoc(:,:) = 0.e0 
    10988      endif 
    11089 
    111       !!    INITIALISE THE N INPUT BY DUST 
    112       !!  --------------------------------------- 
    113  
    114       IF ( bndepo ) THEN 
    115          IF(lwp) WRITE(numout,*) ' Initialize the nutrient input by dust ' 
     90      !                                            ! Nutrient input from dust 
     91      IF( bndepo ) THEN                            ! ------------------------ 
     92         IF(lwp) WRITE(numout,*) '    Initialize the nutrient input by dust from ndeposition.orca.nc' 
    11693         CALL iom_open ( 'ndeposition.orca.nc', numdep ) 
    11794         CALL iom_get  ( numdep, jpdom_data, 'ndep', ndepo(:,:), jpan ) 
    11895         CALL iom_close( numdep ) 
    11996      ELSE 
    120          ndepo(:,:) = 0. 
     97         ndepo(:,:) = 0.e0 
    12198      ENDIF 
    12299 
    123       !!    Computation of the coastal mask. 
    124       !!    Computation of an island mask to enhance coastal supply of iron 
    125       !!    --------------------------------------------------------------- 
    126  
    127       IF ( bsedinput ) THEN 
    128          IF(lwp) WRITE(numout,*) '  Computation of an island mask to enhance coastal supply of iron ' 
     100      !                                            ! Coastal and island masks 
     101      IF( bsedinput ) THEN                         ! ------------------------ 
     102         IF(lwp) WRITE(numout,*) '    Computation of an island mask to enhance coastal supply of iron ' 
     103         IF(lwp) WRITE(numout,*) '       from bathy.orca.nc file ' 
    129104         CALL iom_open ( 'bathy.orca.nc', numbath ) 
    130105         CALL iom_get  ( numbath, jpdom_data, 'bathy', cmask(:,:,:), jpan ) 
    131  
     106         CALL iom_close( numbath ) 
     107         ! 
    132108         DO jk = 1, 5 
    133109            DO jj = 2, jpjm1 
    134110               DO ji = 2, jpim1 
    135                   IF ( tmask(ji,jj,jk) /= 0. ) THEN 
     111                  IF( tmask(ji,jj,jk) /= 0. ) THEN 
    136112                     zmaskt = tmask(ji+1,jj,jk) * tmask(ji-1,jj,jk) * tmask(ji,jj+1,jk)    & 
    137                         &          * tmask(ji,jj-1,jk) * tmask(ji,jj,jk+1) 
    138                      IF ( zmaskt == 0. ) THEN 
    139                         cmask(ji,jj,jk ) = 0.1 
    140                      ENDIF 
     113                        &                       * tmask(ji,jj-1,jk) * tmask(ji,jj,jk+1) 
     114                     IF( zmaskt == 0. )   cmask(ji,jj,jk ) = 0.1 
    141115                  ENDIF 
    142116               END DO 
     
    151125               END DO 
    152126            END DO 
    153          END DO 
    154           
    155          CALL iom_close( numbath ) 
     127         END DO     
    156128      ELSE 
    157          cmask(:,:,:) = 0. 
     129         cmask(:,:,:) = 0.e0 
    158130      ENDIF 
    159131 
    160       ! Lateral boundary conditions on ( avt, en )   (sign unchanged) 
    161       CALL lbc_lnk( cmask , 'T', 1. ) 
    162  
    163       !!     Computation of the total atmospheric supply of Si 
    164       !!     ------------------------------------------------- 
    165  
    166       sumdepsi = 0. 
     132      CALL lbc_lnk( cmask , 'T', 1. )      ! Lateral boundary conditions on cmask   (sign unchanged) 
     133 
     134 
     135      !                                            ! total atmospheric supply of Si 
     136      !                                            ! ------------------------------ 
     137      sumdepsi = 0.e0 
    167138      DO jm = 1, jpmois 
    168139         DO jj = 2, jpjm1 
    169140            DO ji = 2, jpim1 
    170                sumdepsi = sumdepsi + dustmo(ji,jj,jm)/(12.*rmoss)*8.8        & 
    171                   *0.075/28.1*e1t(ji,jj)*e2t(ji,jj)*tmask(ji,jj,1)*tmask_i(ji,jj) 
     141               sumdepsi = sumdepsi + dustmo(ji,jj,jm) / (12.*rmoss) * 8.8        & 
     142                  &     * 0.075/28.1 * e1t(ji,jj) * e2t(ji,jj) * tmask(ji,jj,1) * tmask_i(ji,jj) 
    172143            END DO 
    173144         END DO 
    174145      END DO 
    175  
    176146      IF( lk_mpp )   CALL mpp_sum( sumdepsi )  ! sum over the global domain 
    177147 
    178       !!    COMPUTATION OF THE N/P RELEASE DUE TO COASTAL RIVERS 
    179       !!    COMPUTATION OF THE Si RELEASE DUE TO COASTAL RIVERS  
    180       !!    --------------------------------------------------- 
    181  
    182       DO jj=1,jpj 
    183          DO ji=1,jpi 
    184             cotdep(ji,jj)=river(ji,jj)*1E9/(12.*raass                          & 
    185                *e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,1)+rtrn)*tmask(ji,jj,1) 
    186             rivinp(ji,jj)=(river(ji,jj)+riverdoc(ji,jj))*1E9                   & 
    187                /(31.6*raass*e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,1)+rtrn)   & 
    188                *tmask(ji,jj,1) 
    189             nitdep(ji,jj)=7.6*ndepo(ji,jj)*tmask(ji,jj,1)/(14E6*raass          & 
    190                *fse3t(ji,jj,1)+rtrn) 
     148      !                                            ! N/P and Si releases due to coastal rivers 
     149      !                                            ! ----------------------------------------- 
     150      DO jj = 1, jpj 
     151         DO ji = 1, jpi 
     152            zcoef = raass * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,1) 
     153            cotdep(ji,jj) =  river(ji,jj)                  *1E9 / ( 12. * zcoef + rtrn ) * tmask(ji,jj,1) 
     154            rivinp(ji,jj) = (river(ji,jj)+riverdoc(ji,jj)) *1E9 / ( 31.6* zcoef + rtrn ) * tmask(ji,jj,1) 
     155            nitdep(ji,jj) = 7.6 * ndepo(ji,jj)                  / ( 14E6*raass*fse3t(ji,jj,1) + rtrn ) * tmask(ji,jj,1) 
    191156         END DO 
    192157      END DO 
     
    194159      CALL lbc_lnk( cotdep , 'T', 1. )  ;  CALL lbc_lnk( rivinp , 'T', 1. )  ;  CALL lbc_lnk( nitdep , 'T', 1. ) 
    195160 
    196       rivpo4input=0. 
    197       rivalkinput=0. 
    198       nitdepinput=0. 
    199       DO jj=2,jpjm1 
    200          DO ji=2,jpim1 
    201             rivpo4input=rivpo4input+rivinp(ji,jj)*(e1t(ji,jj)*e2t(ji,jj)    & 
    202                *fse3t(ji,jj,1))*tmask(ji,jj,1)*tmask_i(ji,jj)*raass 
    203             rivalkinput=rivalkinput+cotdep(ji,jj)*(e1t(ji,jj)*e2t(ji,jj)    & 
    204                *fse3t(ji,jj,1))*tmask(ji,jj,1)*tmask_i(ji,jj)*raass 
    205             nitdepinput=nitdepinput+nitdep(ji,jj)*(e1t(ji,jj)*e2t(ji,jj)    & 
    206                *fse3t(ji,jj,1))*tmask(ji,jj,1)*tmask_i(ji,jj)*raass 
     161      rivpo4input=0.e0 
     162      rivalkinput=0.e0 
     163      nitdepinput=0.e0 
     164      DO jj = 2 , jpjm1 
     165         DO ji = 2, jpim1 
     166            zcoef = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,1)) * tmask(ji,jj,1) * tmask_i(ji,jj) * raass 
     167            rivpo4input = rivpo4input + rivinp(ji,jj) * zcoef 
     168            rivalkinput = rivalkinput + cotdep(ji,jj) * zcoef 
     169            nitdepinput = nitdepinput + nitdep(ji,jj) * zcoef 
    207170         END DO 
    208171      END DO 
    209  
    210172      IF( lk_mpp ) THEN 
    211173         CALL mpp_sum( rivpo4input )  ! sum over the global domain 
     
    215177 
    216178 
    217       !!    Coastal supply of iron 
    218       !!    ---------------------- 
    219  
    220       DO jk=1,jpkm1 
    221          ironsed(:,:,jk)=sedfeinput*cmask(:,:,jk)         & 
    222             /(fse3t(:,:,jk)*rjjss) 
     179      !                                            !    Coastal supply of iron 
     180      !                                            ! ------------------------- 
     181      DO jk = 1, jpkm1 
     182         ironsed(:,:,jk) = sedfeinput * cmask(:,:,jk) / ( fse3t(:,:,jk) * rjjss ) 
    223183      END DO 
    224  
    225       ! Lateral boundary conditions on ( ironsed )   (sign unchanged) 
    226       CALL lbc_lnk( ironsed , 'T', 1. ) 
     184      CALL lbc_lnk( ironsed , 'T', 1. )      ! Lateral boundary conditions on ( ironsed )   (sign unchanged) 
     185 
    227186 
    228187 
     
    233192      !  Bissection Method 
    234193      !-------------------------------------------------------------------- 
    235       WRITE(numout,*)'  ' 
    236       WRITE(numout,*)'Compute maximum number of particles in aggregates' 
    237       WRITE(numout,*)'  ' 
     194      WRITE(numout,*) 
     195      WRITE(numout,*)'    kriest : Compute maximum number of particles in aggregates' 
    238196             
    239       xacc     = 0.001 
     197      xacc     =  0.001 
    240198      kiter    = 50 
    241       zmin     = 1.10 
    242       zmax     = xkr_mass_max/xkr_mass_min 
     199      zmin     =  1.10 
     200      zmax     = xkr_mass_max / xkr_mass_min 
    243201      xkr_frac = zmax 
    244202 
     
    262220 
    263221iflag:  DO jn = 1, kiter                
    264            IF( zwl == 0. ) THEN 
     222           IF( zwl == 0.e0 ) THEN 
    265223              xnummax = zl 
    266            ELSE IF ( zwr == 0. ) THEN 
     224           ELSE IF ( zwr == 0.e0 ) THEN 
    267225              xnummax = zr 
    268226           ELSE 
     
    297255           ENDIF 
    298256                     
    299         ENDDO iflag 
     257        END DO iflag 
    300258                
    301259        xnumm(jk) = xnummax 
    302         WRITE(numout,*) 'jk = ',jk,' wmax = ',wmax,' xnum max = ',xnumm(jk) 
     260        WRITE(numout,*) '       jk = ', jk, ' wmax = ', wmax,' xnum max = ', xnumm(jk) 
    303261         
    304262     END DO 
    305263 
    306      WRITE(numout,*) '------------------------------------' 
    307264#endif 
    308265 
    309       !!---------------------------------------------------------------------- 
    310       !! 
    311       !! Initialize biological variables  
    312       !! 
    313       !!---------------------------------------------------------------------- 
    314       !! Set biological ratios 
    315       !! --------------------- 
    316  
    317       rno3   = (16.+2.)/122. 
    318       po4r   = 1./122. 
    319       o2nit  = 32./122. 
    320       rdenit = 97.6/16. 
    321       o2ut   = 140./122. 
    322  
    323       !!---------------------------------------------------------------------- 
    324       !! 
    325       !! Initialize chemical variables  
    326       !! 
    327       !!---------------------------------------------------------------------- 
    328  
    329       !! set pre-industrial atmospheric [co2] (ppm) and o2/n2 ratio 
    330       !! ---------------------------------------------------------- 
    331  
     266      !---------------------------------------------------------------------- 
     267      ! Initialize biological variables  
     268      !---------------------------------------------------------------------- 
     269      ! Set biological ratios 
     270      ! --------------------- 
     271      rno3   = (16.+2.) / 122. 
     272      po4r   =   1.e0   / 122. 
     273      o2nit  =  32.     / 122. 
     274      rdenit =  97.6    /  16. 
     275      o2ut   = 140.     / 122. 
     276 
     277      !---------------------------------------------------------------------- 
     278      ! Initialize chemical variables  
     279      !---------------------------------------------------------------------- 
     280 
     281      ! set pre-industrial atmospheric [co2] (ppm) and o2/n2 ratio 
     282      ! ---------------------------------------------------------- 
    332283      atcox = 0.20946 
    333284 
    334       !! Set lower/upper limits for temperature and salinity 
    335       !! --------------------------------------------------- 
    336  
    337       salchl = 1./1.80655 
    338       calcon = 1.03E-2 
    339  
    340  
    341  
    342       !! Set coefficients for apparent solubility equilibrium of calcite 
    343       !! Millero et al. 1995 from Mucci 1983 
    344       !! -------------------------------------------------------------- 
     285      ! Set lower/upper limits for temperature and salinity 
     286      ! --------------------------------------------------- 
     287      salchl = 1.e0 / 1.80655 
     288      calcon = 1.03e-2 
     289 
     290      ! Set coefficients for apparent solubility equilibrium of calcite 
     291      ! Millero et al. 1995 from Mucci 1983 
     292      ! -------------------------------------------------------------- 
    345293      akcc1 = -171.9065 
    346       akcc2 = -0.077993 
     294      akcc2 =   -0.077993 
    347295      akcc3 = 2839.319 
    348       akcc4 = 71.595 
    349       akcc5 = -0.77712 
    350       akcc6 = 0.0028426 
    351       akcc7 = 178.34 
    352       akcc8 = -0.07711 
    353       akcc9 = 0.0041249 
    354  
    355  
    356  
    357       !! Set coefficients for seawater pressure correction 
    358       !! ------------------------------------------------- 
     296      akcc4 =   71.595 
     297      akcc5 =   -0.77712 
     298      akcc6 =    0.0028426 
     299      akcc7 =  178.34 
     300      akcc8 =   -0.07711 
     301      akcc9 =    0.0041249 
     302 
     303      ! Set coefficients for seawater pressure correction 
     304      ! ------------------------------------------------- 
    359305      devk1(1) = -25.5 
    360       devk2(1) = 0.1271 
    361       devk3(1) = 0. 
    362       devk4(1) = -3.08E-3 
    363       devk5(1) = 0.0877E-3 
    364       !! 
     306      devk2(1) =   0.1271 
     307      devk3(1) =   0.e0 
     308      devk4(1) =  -3.08E-3 
     309      devk5(1) =   0.0877E-3 
     310      ! 
    365311      devk1(2) = -15.82 
    366       devk2(2) = -0.0219 
    367       devk3(2) = 0. 
    368       devk4(2) = 1.13E-3 
    369       devk5(2) = -0.1475E-3 
    370       !! 
     312      devk2(2) =  -0.0219 
     313      devk3(2) =   0.e0 
     314      devk4(2) =   1.13E-3 
     315      devk5(2) =  -0.1475E-3 
     316      ! 
    371317      devk1(3) = -29.48 
    372       devk2(3) = 0.1622 
    373       devk3(3) = 2.608E-3 
    374       devk4(3) = -2.84E-3 
    375       devk5(3) = 0. 
    376       !! 
     318      devk2(3) =   0.1622 
     319      devk3(3) =   2.608E-3 
     320      devk4(3) =  -2.84E-3 
     321      devk5(3) =   0.e0 
     322      ! 
    377323      devk1(4) = -14.51 
    378       devk2(4) = 0.1211 
    379       devk3(4) = -0.321E-3 
    380       devk4(4) = -2.67E-3 
    381       devk5(4) = 0.0427E-3 
    382       !! 
     324      devk2(4) =   0.1211 
     325      devk3(4) =  -0.321E-3 
     326      devk4(4) =  -2.67E-3 
     327      devk5(4) =   0.0427E-3 
     328      ! 
    383329      devk1(5) = -23.12 
    384       devk2(5) = 0.1758 
    385       devk3(5) = -2.647E-3 
    386       devk4(5) = -5.15E-3 
    387       devk5(5) = 0.09E-3 
    388       !! 
     330      devk2(5) =   0.1758 
     331      devk3(5) =  -2.647E-3 
     332      devk4(5) =  -5.15E-3 
     333      devk5(5) =   0.09E-3 
     334      ! 
    389335      devk1(6) = -26.57 
    390       devk2(6) = 0.2020 
    391       devk3(6) = -3.042E-3 
    392       devk4(6) = -4.08E-3 
    393       devk5(6) = 0.0714E-3 
    394       !! 
     336      devk2(6) =   0.2020 
     337      devk3(6) =  -3.042E-3 
     338      devk4(6) =  -4.08E-3 
     339      devk5(6) =   0.0714E-3 
     340      ! 
    395341      devk1(7) = -25.60 
    396       devk2(7) = 0.2324 
    397       devk3(7) = -3.6246E-3 
    398       devk4(7) = -5.13E-3 
    399       devk5(7) = 0.0794E-3 
    400       !! 
    401       !! For calcite with Edmond and Gieske 1970 
    402       !!     devkst = 0.23 
    403       !!     devks  = 35.4 
    404       !! Millero 95 takes this depth dependance for calcite 
     342      devk2(7) =   0.2324 
     343      devk3(7) =  -3.6246E-3 
     344      devk4(7) =  -5.13E-3 
     345      devk5(7) =   0.0794E-3 
     346      ! 
     347      ! For calcite with Edmond and Gieske 1970 
     348      !     devkst = 0.23 
     349      !     devks  = 35.4 
     350      ! Millero 95 takes this depth dependance for calcite 
    405351      devk1(8) = -48.76 
    406       devk2(8) = 0.5304 
    407       devk3(8) = 0. 
     352      devk2(8) =   0.5304 
     353      devk3(8) =   0.e0 
    408354      devk4(8) = -11.76E-3 
    409       devk5(8) = 0.3692E-3 
    410       !! 
    411       !! Coefficients for sulfate and fluoride 
     355      devk5(8) =   0.3692E-3 
     356      ! 
     357      ! Coefficients for sulfate and fluoride 
    412358      devk1(9) = -18.03 
    413       devk2(9) = 0.0466 
    414       devk3(9) = 0.316E-3 
    415       devk4(9) = -4.53E-3 
    416       devk5(9) = 0.09E-3 
     359      devk2(9) =   0.0466 
     360      devk3(9) =   0.316e-3 
     361      devk4(9) =  -4.53e-3 
     362      devk5(9) =   0.09e-3 
    417363 
    418364      devk1(10) = -9.78 
    419365      devk2(10) = -0.0090 
    420       devk3(10) = -0.942E-3 
    421       devk4(10) = -3.91E-3 
    422       devk5(10) = 0.054E-3 
    423  
    424  
    425       !! Set universal gas constants 
    426       !! --------------------------- 
    427  
    428       rgas = 83.143 
    429       oxyco = 1./22.4144 
    430  
    431       !! Set boron constants 
    432       !! ------------------- 
    433  
     366      devk3(10) = -0.942e-3 
     367      devk4(10) = -3.91e-3 
     368      devk5(10) =  0.054e-3 
     369 
     370 
     371      ! Set universal gas constants 
     372      ! --------------------------- 
     373      rgas  = 83.143 
     374      oxyco =  1.e0 / 22.4144 
     375 
     376      ! Set boron constants 
     377      ! ------------------- 
    434378      bor1 = 0.00023 
    435       bor2 = 1./10.82 
    436  
    437       !! Set volumetric solubility constants for co2 in ml/l (Weiss, 1974) 
    438       !! ----------------------------------------------------------------- 
    439  
     379      bor2 = 1.e0 / 10.82 
     380 
     381      ! Set volumetric solubility constants for co2 in ml/l (Weiss, 1974) 
     382      ! ----------------------------------------------------------------- 
    440383      c00 = -60.2409 
    441       c01 = 93.4517 
    442       c02 = 23.3585 
    443       c03 = 0.023517 
    444       c04 = -0.023656 
    445       c05 = 0.0047036 
    446  
     384      c01 =  93.4517 
     385      c02 =  23.3585 
     386      c03 =   0.023517 
     387      c04 =  -0.023656 
     388      c05 =   0.0047036 
     389      ! 
    447390      ca0 = -162.8301 
    448       ca1 = 218.2968 
    449       ca2 = 90.9241 
    450       ca3 = -1.47696 
    451       ca4 = 0.025695 
    452       ca5 = -0.025225 
    453       ca6 = 0.0049867 
    454  
    455       !! Set coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 
    456       !! --------------------------------------------------------------------- 
    457  
     391      ca1 =  218.2968 
     392      ca2 =   90.9241 
     393      ca3 =   -1.47696 
     394      ca4 =    0.025695 
     395      ca5 =   -0.025225 
     396      ca6 =    0.0049867 
     397 
     398      ! Set coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 
     399      ! --------------------------------------------------------------------- 
    458400      c10 = -3670.7 
    459       c11 =  62.008 
    460       c12 = -9.7944 
    461       c13 = 0.0118 
    462       c14 = -0.000116 
    463  
    464       !! Set coeff. for 2. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 
    465       !! --------------------------------------------------------------------- 
    466  
     401      c11 =    62.008 
     402      c12 =    -9.7944 
     403      c13 =     0.0118 
     404      c14 =    -0.000116 
     405 
     406      ! Set coeff. for 2. dissoc. of carbonic acid (Edmond and Gieskes, 1970) 
     407      ! --------------------------------------------------------------------- 
    467408      c20 = -1394.7 
    468       c21 = -4.777 
    469       c22 = 0.0184 
    470       c23 = -0.000118 
    471  
    472       !! Set constants for calculate concentrations for sulfate and fluoride 
    473       !! sulfates (Morris & Riley 1966) 
    474       !!---------------------------------------------------------------------- 
    475  
     409      c21 =    -4.777 
     410      c22 =     0.0184 
     411      c23 =    -0.000118 
     412 
     413      ! Set constants for calculate concentrations for sulfate and fluoride 
     414      ! sulfates (Morris & Riley 1966) 
     415      !---------------------------------------------------------------------- 
    476416      st1 = 0.14 
    477       st2 = 1./96.062 
    478  
    479       !! fluoride 
    480       !!------------ 
    481  
     417      st2 = 1.e0 / 96.062 
     418 
     419      ! fluoride 
     420      ! -------- 
    482421      ft1 = 0.000067 
    483       ft2 = 1./18.9984 
    484  
    485       !! sulfates (Dickson 1990 change to mol:kg soln, idem OCMIP) 
    486       !!---------------------------------------------------------- 
    487  
    488       ks0  = 141.328 
    489       ks1  = -4276.1 
    490       ks2  = -23.093 
    491       ks3  = -13856 
    492       ks4  = 324.57 
    493       ks5  = -47.986 
    494       ks6  = 35474 
    495       ks7  = -771.54 
    496       ks8  = 114.723 
    497       ks9  = -2698 
    498       ks10 = 1776 
    499       ks11 = 1. 
    500       ks12 = -0.001005 
    501  
    502       !! fluorides (Dickson & Riley 1979 change to mol/kg soln) 
    503       !!------------------------------------------------------- 
    504       kf0 = -12.641 
     422      ft2 = 1.e0 / 18.9984 
     423 
     424      ! sulfates (Dickson 1990 change to mol:kg soln, idem OCMIP) 
     425      !---------------------------------------------------------- 
     426      ks0  =    141.328 
     427      ks1  =  -4276.1 
     428      ks2  =    -23.093 
     429      ks3  = -13856. 
     430      ks4  =    324.57 
     431      ks5  =    -47.986 
     432      ks6  =  35474. 
     433      ks7  =   -771.54 
     434      ks8  =    114.723 
     435      ks9  =  -2698. 
     436      ks10 =   1776. 
     437      ks11 =      1. 
     438      ks12 =     -0.001005 
     439 
     440      ! fluorides (Dickson & Riley 1979 change to mol/kg soln) 
     441      !------------------------------------------------------- 
     442      kf0 =  -12.641 
    505443      kf1 = 1590.2 
    506       kf2 = 1.525 
    507       kf3 = 1.0 
    508       kf4 = -0.001005 
    509  
    510       !! 
    511       !! Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970) 
    512       !! ------------------------------------------------------------------ 
    513  
     444      kf2 =    1.525 
     445      kf3 =    1.0 
     446      kf4 =   -0.001005 
     447 
     448      ! Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970) 
     449      ! ------------------------------------------------------------------ 
    514450      cb0  = -8966.90 
    515451      cb1  = -2890.53 
    516       cb2  = -77.942 
    517       cb3  = 1.728 
    518       cb4  = -0.0996 
    519       cb5  = 148.0248 
    520       cb6  = 137.1942 
    521       cb7  = 1.62142 
    522       cb8  = -24.4344 
    523       cb9  = -25.085 
    524       cb10 = -0.2474 
    525       cb11 = 0.053105 
    526  
    527  
    528       !! Set coeff. for dissoc. of water (Dickson and Riley, 1979,  
    529       !!   eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415  
    530       !!   after pers. commun. to B. Bacastow, 1988) 
    531       !! --------------------------------------------------------- 
    532  
     452      cb2  =   -77.942 
     453      cb3  =     1.728 
     454      cb4  =    -0.0996 
     455      cb5  =   148.0248 
     456      cb6  =   137.1942 
     457      cb7  =     1.62142 
     458      cb8  =   -24.4344 
     459      cb9  =   -25.085 
     460      cb10 =    -0.2474 
     461      cb11 =     0.053105 
     462 
     463      ! Set coeff. for dissoc. of water (Dickson and Riley, 1979,  
     464      !   eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415  
     465      !   after pers. commun. to B. Bacastow, 1988) 
     466      ! --------------------------------------------------------- 
    533467      cw0 = -13847.26 
    534       cw1 = 148.9652 
    535       cw2 = -23.6521 
    536       cw3 = 118.67 
    537       cw4 = -5.977 
    538       cw5 = 1.0495 
    539       cw6 = -0.01615 
    540  
    541  
    542       !! Set coeff. for dissoc. of phosphate (Millero (1974) 
    543       !! --------------------------------------------------- 
    544        
    545       cp10 = 115.54 
     468      cw1 =    148.9652 
     469      cw2 =    -23.6521 
     470      cw3 =    118.67 
     471      cw4 =     -5.977 
     472      cw5 =      1.0495 
     473      cw6 =     -0.01615 
     474 
     475      ! Set coeff. for dissoc. of phosphate (Millero (1974) 
     476      ! --------------------------------------------------- 
     477      cp10 =   115.54 
    546478      cp11 = -4576.752 
    547       cp12 = -18.453 
    548       cp13 = -106.736 
    549       cp14 = 0.69171 
    550       cp15 = -0.65643 
    551       cp16 = -0.01844 
    552  
    553       cp20 = 172.1033 
     479      cp12 =   -18.453 
     480      cp13 =  -106.736 
     481      cp14 =     0.69171 
     482      cp15 =    -0.65643 
     483      cp16 =    -0.01844 
     484      ! 
     485      cp20 =   172.1033 
    554486      cp21 = -8814.715 
    555       cp22 = -27.927 
    556       cp23 = -160.340 
    557       cp24 = 1.3566 
    558       cp25 = 0.37335 
    559       cp26 = -0.05778 
    560  
    561  
    562       cp30 = -18.126 
     487      cp22 =   -27.927 
     488      cp23 =  -160.340 
     489      cp24 =     1.3566 
     490      cp25 =     0.37335 
     491      cp26 =    -0.05778 
     492      ! 
     493      cp30 =   -18.126 
    563494      cp31 = -3070.75 
    564       cp32 = 17.27039 
    565       cp33 = 2.81197 
    566       cp34 = -44.99486 
    567       cp35 = -0.09984 
    568  
    569  
    570       !! Set coeff. for dissoc. of phosphate (Millero (1974) 
    571       !! --------------------------------------------------- 
    572        
    573       cs10 = 117.385 
     495      cp32 =    17.27039 
     496      cp33 =     2.81197 
     497      cp34 =   -44.99486 
     498      cp35 =    -0.09984 
     499 
     500      ! Set coeff. for dissoc. of phosphate (Millero (1974) 
     501      ! --------------------------------------------------- 
     502      cs10 =   117.385 
    574503      cs11 = -8904.2 
    575       cs12 = -19.334 
    576       cs13 = -458.79 
    577       cs14 =  3.5913 
    578       cs15 = 188.74 
    579       cs16 = -1.5998 
    580       cs17 = -12.1652 
    581       cs18 = 0.07871 
    582       cs19 = 0. 
    583       cs20 = 1. 
    584       cs21 = -0.001005 
    585  
    586  
    587       !! Set volumetric solubility constants for o2 in ml/l (Weiss, 1970) 
    588       !! ---------------------------------------------------------------- 
    589  
     504      cs12 =   -19.334 
     505      cs13 =  -458.79 
     506      cs14 =     3.5913 
     507      cs15 =   188.74 
     508      cs16 =    -1.5998 
     509      cs17 =   -12.1652 
     510      cs18 =     0.07871 
     511      cs19 =     0.e0 
     512      cs20 =     1.e0 
     513      cs21 =    -0.001005 
     514 
     515 
     516      ! Set volumetric solubility constants for o2 in ml/l (Weiss, 1970) 
     517      ! ---------------------------------------------------------------- 
    590518      ox0 = -58.3877 
    591       ox1 = 85.8079 
    592       ox2 = 23.8439 
    593       ox3 = -0.034892 
    594       ox4 = 0.015568 
    595       ox5 = -0.0019387 
    596  
    597       !!  FROM THE NEW BIOOPTIC MODEL PROPOSED JM ANDRE, WE READ HERE 
    598       !!  A PRECOMPUTED ARRAY CORRESPONDING TO THE ATTENUATION COEFFICIENT 
     519      ox1 =  85.8079 
     520      ox2 =  23.8439 
     521      ox3 =  -0.034892 
     522      ox4 =   0.015568 
     523      ox5 =  -0.0019387 
     524 
     525      !  FROM THE NEW BIOOPTIC MODEL PROPOSED JM ANDRE, WE READ HERE 
     526      !  A PRECOMPUTED ARRAY CORRESPONDING TO THE ATTENUATION COEFFICIENT 
    599527 
    600528      CALL ctlopn( numlight, 'kRGB61.txt', 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    601529         &           1, numout, .TRUE., 1 ) 
    602530      DO ichl = 1,61 
    603          READ(numlight,*) ztoto,(xkrgb(iband,ichl),iband = 1,3) 
     531         READ(numlight,*) ztoto, ( xkrgb(iband,ichl), iband = 1,3 ) 
    604532      END DO 
    605533      CLOSE(numlight) 
    606534 
    607535 
    608       !!  Call p4zche to initialize the chemical constants 
    609       !!  ------------------------------------------------ 
    610  
    611       CALL p4zche 
    612       !! 
    613       !!  Initialize a counter for the computation of chemistry 
    614       !! 
    615       ndayflxtr=0 
     536      CALL p4zche        ! initialize the chemical constants 
     537 
     538 
     539      ndayflxtr = 0      !  Initialize a counter for the computation of chemistry 
     540 
    616541 
    617542      IF(lwp) WRITE(numout,*) ' Initialisation of PISCES done' 
    618  
     543      ! 
    619544   END SUBROUTINE trc_ini 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trclsm.cfc.h90

    r719 r763  
    11   !!---------------------------------------------------------------------- 
    2    !!                    ***  trclsm.cfc.h90 *** 
     2   !!                     ***  trclsm.cfc.h90  ***   
     3   !! TOP :   Definition some run parameter for CFC chemical model 
    34   !!---------------------------------------------------------------------- 
     5   !! History :   1.0  !  2003-08 (C. Ethe)  Original code 
     6   !!---------------------------------------------------------------------- 
     7 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     10   !! $Id $  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
     13 
    414CONTAINS 
    515 
    616   SUBROUTINE trc_lsm 
    717      !!------------------------------------------------------------------- 
    8       !!                  ***  ROUTINE trc_lsm *** 
     18      !!                  ***  ROUTINE trc_lsm  *** 
    919      !!                  
    1020      !! ** Purpose :   Definition some run parameter for CFC model 
     
    1424      !! 
    1525      !! ** input   :   Namelist namcfc 
     26      !!---------------------------------------------------------------------- 
     27      CHARACTER (len=32) ::   clname = 'namelist.trc.sms' 
     28      INTEGER ::   numnat 
    1629      !! 
    17       !! history : 
    18       !!   2.0  !  03-08 (C. Ethe)  Original code 
    19       !!---------------------------------------------------------------------- 
    20       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    21    !! $Header$  
    22    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    23       !!---------------------------------------------------------------------- 
    24  
    25       CHARACTER (len=32) ::  & 
    26          clname = 'namelist.trc.sms' 
    27       INTEGER ::  & 
    28          numnat 
    29  
    30       NAMELIST/namdates/ndate_beg, nyear_res 
     30      NAMELIST/namdates/ ndate_beg, nyear_res 
    3131      !!------------------------------------------------------------------- 
    3232 
    33       ndate_beg = 300101 
     33      ndate_beg = 300101            ! default namelist value 
    3434      nyear_res = 1950 
    3535 
    36       IF(lwp) THEN 
    37          WRITE(numout,*) ' ' 
    38          WRITE(numout,*) ' Namelist for CFC model' 
    39          WRITE(numout,*) ' ***********************' 
    40          WRITE(numout,*) ' ' 
    41       ENDIF 
    42  
     36      !                             ! Open namelist file 
    4337      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    4438         &           1, numout, .FALSE., 1 ) 
    45       READ( numnat , namdates ) 
     39          
     40      READ( numnat , namdates )     ! read namelist 
    4641 
    47       IF(lwp) THEN 
     42      IF(lwp) THEN                  ! control print 
    4843         WRITE(numout,*) 
    49          WRITE(numout,*) ' trc_lsm: Namelist parameter' 
    50          WRITE(numout,*) ' ~~~~~~~~~~~~~~' 
    51          WRITE(numout,*) '  initial calendar date (aammjj) for CFC  ndate_beg = ', ndate_beg 
    52          WRITE(numout,*) '  restoring time constant (year)          nyear_res = ', nyear_res 
     44         WRITE(numout,*) ' trc_lsm: Read namdates, namelist for CFC chemical model' 
     45         WRITE(numout,*) ' ~~~~~~~' 
     46         WRITE(numout,*) '    initial calendar date (aammjj) for CFC  ndate_beg = ', ndate_beg 
     47         WRITE(numout,*) '    restoring time constant (year)          nyear_res = ', nyear_res 
    5348      ENDIF 
    5449      nyear_beg = ndate_beg / 10000 
    55       IF(lwp) THEN 
    56          WRITE(numout,*) '  initial year (aa)                       nyear_beg = ', nyear_beg 
    57          WRITE(numout,*) ' ' 
    58       ENDIF 
    59  
     50      IF(lwp) WRITE(numout,*) '    initial year (aa)                       nyear_beg = ', nyear_beg 
     51      ! 
    6052   END SUBROUTINE trc_lsm 
    61  
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trclsm.lobster1.h90

    r719 r763  
    1 !!---------------------------------------------------------------------- 
    2 !!                    ***  trclsm.lobster1.h90 *** 
    3 !!---------------------------------------------------------------------- 
     1   !!---------------------------------------------------------------------- 
     2   !!                     ***  trclsm.lobster1.h90  ***   
     3   !! TOP :   Definition some run parameter for LOBSTER biological model 
     4   !!---------------------------------------------------------------------- 
     5   !! History :    -  !  1999-10 (M.A. Foujols, M. Levy) original code 
     6   !!              -  !  2000-12 (O. Aumont, E. Kestenare) add sediments 
     7   !!             1.0 !  2003-08 (C. Ethe)  Original code 
     8   !!---------------------------------------------------------------------- 
     9 
     10   !!---------------------------------------------------------------------- 
     11   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     12   !! $Id $  
     13   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     14   !!---------------------------------------------------------------------- 
     15 
    416CONTAINS 
    517 
    618   SUBROUTINE trc_lsm 
    719      !!---------------------------------------------------------------------- 
    8       !!                        trclsm.lobster1.h 
    9       !!                     ********************** 
     20      !!                     ***  trc_lsm  ***   
    1021      !! 
    11       !!  PURPOSE : 
    12       !!  --------- 
    13       !!     READS the specific NAMELIST for LOBSTER1 model 
     22      !! ** Purpose :   read LOBSTER namelist 
    1423      !! 
    15       !!   WORKSPACE :                : no 
    16       !!   --------- 
     24      !! ** input   :   file 'namelist.trc.sms' containing the following 
     25      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio") 
     26      !!---------------------------------------------------------------------- 
     27      CHARACTER (len=32) :: clname 
    1728      !! 
    18       !!   MODIFICATIONS: 
    19       !!   -------------- 
    20       !!      original  : 99-10 (M.A. Foujols, M. Levy) passive tracer 
    21       !!      additions : 00-12 (O. Aumont, E. Kestenare) add sediments 
    22       !! ---------------------------------------------------------------------- 
    23       !! local declarations 
    24       !! ================== 
    25       CHARACTER (len=32) :: clname 
    26  
    27       !!--------------------------------------------------------------------- 
    28       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    29    !! $Header$  
    30    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    31       !!--------------------------------------------------------------------- 
    32  
    33       ! 0. initializations 
    34       ! ------------------ 
    35      NAMELIST/natbio/apmin,azmin,anmin,admin,   & 
    36       &   redf,reddom,slopet,toptp,psinut,akno3,aknh4,rcchl,        & 
    37       &   rgamma,toptgz,tmaxgz,rgz,             & 
    38       &   rppz,taus,aks,filmax,rpnaz,rdnaz,eggzoo,tauzn,   & 
    39       &   tmmaxp,tmminp,tmmaxz,tmminz,anumin,afdmin,taudn,   & 
    40       &   vsed,tmumax,aki,tmaxr,tminr, taunn, taudomn,xhr,   & 
    41       &   sedlam, sedlostpoc,  & 
    42       &    fphylab,fzoolab,fdetlab,fdbod 
    43       NAMELIST/natopt/xkg0,xkr0,xkgp,xkrp,xlg,xlr,rpig 
     29      NAMELIST/natbio/ apmin, azmin, anmin, admin,                       & 
     30         &   redf, reddom, slopet, toptp, psinut, akno3, aknh4, rcchl,   & 
     31         &   rgamma, toptgz, tmaxgz, rgz,                                & 
     32         &   rppz, taus, aks, filmax, rpnaz, rdnaz, eggzoo, tauzn,       & 
     33         &   tmmaxp, tmminp, tmmaxz, tmminz, anumin, afdmin, taudn,      & 
     34         &   vsed, tmumax, aki, tmaxr, tminr, taunn, taudomn, xhr,       & 
     35         &   sedlam, sedlostpoc,                                         & 
     36         &   fphylab, fzoolab, fdetlab, fdbod 
     37      NAMELIST/natopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 
    4438#if defined key_trc_diabio 
    4539      INTEGER :: ji 
    4640      NAMELIST/natdbi/ctrbio,ctrbil,ctrbiu,nwritebio 
    4741#endif 
    48  
    49       IF(lwp) THEN 
    50          WRITE(numout,*) ' ' 
    51          WRITE(numout,*) ' ROUTINE trclsm' 
    52          WRITE(numout,*) ' **************' 
    53          WRITE(numout,*) ' ' 
    54          WRITE(numout,*) ' namelist for lobster1 model' 
    55          WRITE(numout,*) ' ***************************' 
    56          WRITE(numout,*) ' ' 
    57       ENDIF 
    58  
    59  
     42      !!---------------------------------------------------------------------- 
     43 
     44      IF(lwp) WRITE(numout,*) 
     45      IF(lwp) WRITE(numout,*) ' trc_lsm : read LOBSTER 1 namelists' 
     46      IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
     47 
     48      !                               ! Open the namelist file 
     49      !                               ! ---------------------- 
    6050      clname ='namelist.trc.sms' 
    6151      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    6252         &           1, numout, .FALSE., 1 ) 
    6353 
    64       ! 1.4 namelist natbio : biological parameters 
    65       ! ------------------------------------------- 
    66  
    67       apmin = 0. 
     54      !                               ! natbio : biological parameters 
     55      !                               ! ------------------------------ 
     56      apmin = 0.                           ! default values 
    6857      azmin = 0. 
    6958      anmin = 0. 
     
    111100      fdbod = 0. 
    112101 
    113       READ(numnat,natbio) 
     102      REWIND( numnat )                     ! read natbio 
     103      READ  ( numnat, natbio ) 
    114104 
    115105      IF(lwp) THEN 
    116           WRITE(numout,*) 'natbio' 
    117           WRITE(numout,*) ' ' 
    118           WRITE(numout,*)     & 
    119           &   ' minimum phytoplancton concentration  apmin =', apmin 
    120           WRITE(numout,*)     & 
    121           &   ' minimum zooplancton   concentration  azmin =', azmin 
    122           WRITE(numout,*)     & 
    123           &   ' minimum nutrients     concentration  anmin =', anmin 
    124           WRITE(numout,*)     & 
    125           &   ' minimum detritus      concentration  admin =', admin 
    126           WRITE(numout,*)     & 
    127           &   ' redfield ratio  c:n                   redf =', redf 
    128           WRITE(numout,*)     & 
    129           &   ' van t hoff coefficient              slopet =', slopet 
    130           WRITE(numout,*)     & 
    131           &   ' optimal photosynthesis temperature   toptp =', toptp 
    132           WRITE(numout,*)     & 
    133           &   ' inhibition of no3 uptake by nh4      psinut =', psinut 
    134           WRITE(numout,*)     & 
    135           &   ' half-saturation nutrient for no3 uptake   akno3 =', akno3 
    136           WRITE(numout,*)     & 
    137           &   ' half-saturation nutrient for nh4 uptake   aknh4 =', aknh4 
    138           WRITE(numout,*)     & 
    139           &   ' carbone/chlorophyl ratio             rcchl =', rcchl 
    140           WRITE(numout,*)     & 
    141           &   ' phytoplankton exudation fraction    rgamma =', rgamma 
    142           WRITE(numout,*)     & 
    143           &   ' optimal temperature for zoo growth  toptgz =', toptgz 
    144           WRITE(numout,*)     & 
    145           &   ' maximal temperature for zoo growth  tmaxgz =', tmaxgz 
    146           WRITE(numout,*)     & 
    147           &   ' widtht of zoo temperature FUNCTION     rgz =', rgz 
    148           WRITE(numout,*)     & 
    149           &   ' zoo preference for phyto              rppz =', rppz 
    150           WRITE(numout,*)     & 
    151           &   ' maximal zoo grazing rate              taus =',86400*taus 
    152           WRITE(numout,*)     & 
    153           &   ' half saturation constant for zoo food  aks =', aks 
    154           WRITE(numout,*)     & 
    155           &   ' maximal mass clearance rate for zoo filmax =', filmax 
    156           WRITE(numout,*)     & 
    157           &   ' non-assimilated phyto by zoo         rpnaz =', rpnaz 
    158           WRITE(numout,*)     & 
    159           &   ' non-assimilated detritus by zoo      rdnaz =', rdnaz 
    160           WRITE(numout,*)     & 
    161           &   ' minimum  for zoo concentration      eggzoo =', eggzoo 
    162           WRITE(numout,*)     & 
    163           &   ' zoo specific excretion rate          tauzn =',86400   & 
    164           &   *tauzn 
    165           WRITE(numout,*)     & 
    166           &   ' maximal phyto mortality rate        tmmaxp =',86400   & 
    167           &   *tmmaxp 
    168           WRITE(numout,*)     & 
    169           &   ' minimal phyto mortality rate        tmminp =',86400   & 
    170           &   *tmminp 
    171           WRITE(numout,*)     & 
    172           &   ' maximal zoo mortality rate          tmmaxz =',86400   & 
    173           &   *tmmaxz 
    174           WRITE(numout,*)     & 
    175           &   ' minimal zoo mortality rate          tmminz =',86400   & 
    176           &   *tmminz 
    177           WRITE(numout,*)     & 
    178           &   ' nutrient threshold for phyto mort   anumin =', anumin 
    179           WRITE(numout,*)     & 
    180           &   ' food threshold for zoo mort         afdmin =', afdmin 
    181           WRITE(numout,*)     & 
    182           &   ' detrital breakdown rate              taudn =',86400   & 
    183           &   *taudn 
    184           WRITE(numout,*)     & 
    185           &   ' detritus sedimentation speed          vsed =',86400*vsed 
    186           WRITE(numout,*)     & 
    187           &   ' phyto max growth rate               tmumax =',86400   & 
    188           &   *tmumax 
    189           WRITE(numout,*)     & 
    190           &   ' light hlaf saturation constant         aki =', aki 
    191           WRITE(numout,*)     & 
    192           &   ' maximum damping for d z or p         tmaxr =', tmaxr 
    193           WRITE(numout,*)     & 
    194           &   ' damping-remineralisation rate        tminr =', tminr 
    195           WRITE(numout,*)     &  
    196           &   ' nitrification rate                   taunn =', taunn 
    197           WRITE(numout,*)     &  
    198           &   ' dom remineralisation rate          taudomn =', taudomn 
    199           WRITE(numout,*)     &  
    200           &   ' coeff for martin''s remineralistion    xhr =', xhr 
    201           WRITE(numout,*)     &  
    202           &   ' time coeff of POC in sediments      sedlam =', sedlam 
    203           WRITE(numout,*)     & 
    204           &   ' Sediment geol loss for POC  sedlostpoc =', sedlostpoc 
    205           WRITE(numout,*)     & 
    206           & ' NH4 fraction of phytoplankton exsudation fphylab =', fphylab 
    207           WRITE(numout,*)     & 
    208           & ' NH4 fraction of zooplankton excretion fzoolab =', fzoolab 
    209           WRITE(numout,*)     & 
    210           & ' NH4 fraction of detritus dissolution  fdetlab =', fdetlab 
    211           WRITE(numout,*)     & 
    212           & ' Zooplankton mortality fraction that goes to detritus fdbod =', fdbod 
     106          WRITE(numout,*) ' Namelist natbio' 
     107          WRITE(numout,*) '    minimum phytoplancton concentration                  apmin     =', apmin 
     108          WRITE(numout,*) '    minimum zooplancton   concentration                  azmin     =', azmin 
     109          WRITE(numout,*) '    minimum nutrients     concentration                  anmin     =', anmin 
     110          WRITE(numout,*) '    minimum detritus      concentration                  admin     =', admin 
     111          WRITE(numout,*) '    redfield ratio  c:n                                  redf      =', redf 
     112          WRITE(numout,*) '    van t hoff coefficient                               slopet    =', slopet 
     113          WRITE(numout,*) '    optimal photosynthesis temperature                   toptp     =', toptp 
     114          WRITE(numout,*) '    inhibition of no3 uptake by nh4                      psinut    =', psinut 
     115          WRITE(numout,*) '    half-saturation nutrient for no3 uptake              akno3     =', akno3 
     116          WRITE(numout,*) '    half-saturation nutrient for nh4 uptake              aknh4     =', aknh4 
     117          WRITE(numout,*) '    carbone/chlorophyl ratio                             rcchl     =', rcchl 
     118          WRITE(numout,*) '    phytoplankton exudation fraction                     rgamma    =', rgamma 
     119          WRITE(numout,*) '    optimal temperature for zoo growth                   toptgz    =', toptgz 
     120          WRITE(numout,*) '    maximal temperature for zoo growth                   tmaxgz    =', tmaxgz 
     121          WRITE(numout,*) '    widtht of zoo temperature FUNCTION                   rgz       =', rgz 
     122          WRITE(numout,*) '    zoo preference for phyto                             rppz      =', rppz 
     123          WRITE(numout,*) '    maximal zoo grazing rate                             taus      =', 86400 * taus, ' d' 
     124          WRITE(numout,*) '    half saturation constant for zoo food                aks       =', aks 
     125          WRITE(numout,*) '    maximal mass clearance rate for zoo                  filmax    =', filmax 
     126          WRITE(numout,*) '    non-assimilated phyto by zoo                         rpnaz     =', rpnaz 
     127          WRITE(numout,*) '    non-assimilated detritus by zoo                      rdnaz     =', rdnaz 
     128          WRITE(numout,*) '    minimum  for zoo concentration                       eggzoo    =', eggzoo 
     129          WRITE(numout,*) '    zoo specific excretion rate                          tauzn     =', 86400 * tauzn 
     130          WRITE(numout,*) '    maximal phyto mortality rate                         tmmaxp    =', 86400 * tmmaxp 
     131          WRITE(numout,*) '    minimal phyto mortality rate                         tmminp    =', 86400 * tmminp 
     132          WRITE(numout,*) '    maximal zoo mortality rate                           tmmaxz    =', 86400 * tmmaxz 
     133          WRITE(numout,*) '    minimal zoo mortality rate                           tmminz    =', 86400 * tmminz 
     134          WRITE(numout,*) '    nutrient threshold for phyto mort                    anumin    =', anumin 
     135          WRITE(numout,*) '    food threshold for zoo mort                          afdmin    =', afdmin 
     136          WRITE(numout,*) '    detrital breakdown rate                              taudn     =', 86400 * taudn , ' d' 
     137          WRITE(numout,*) '    detritus sedimentation speed                         vsed      =', 86400 * vsed  , ' d' 
     138          WRITE(numout,*) '    phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d' 
     139          WRITE(numout,*) '    light hlaf saturation constant                       aki       =', aki 
     140          WRITE(numout,*) '    maximum damping for d z or p                         tmaxr     =', tmaxr 
     141          WRITE(numout,*) '    damping-remineralisation rate                        tminr     =', tminr 
     142          WRITE(numout,*) '    nitrification rate                                   taunn     =', taunn 
     143          WRITE(numout,*) '    dom remineralisation rate                            taudomn   =', taudomn 
     144          WRITE(numout,*) '    coeff for martin''s remineralistion                  xhr       =', xhr 
     145          WRITE(numout,*) '    time coeff of POC in sediments                       sedlam    =', sedlam 
     146          WRITE(numout,*) '    Sediment geol loss for POC                           sedlostpoc=', sedlostpoc 
     147          WRITE(numout,*) '    NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab 
     148          WRITE(numout,*) '    NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab 
     149          WRITE(numout,*) '    NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab 
     150          WRITE(numout,*) '    Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod 
    213151      ENDIF 
    214152 
    215       ! 1.5 namelist natopt : parameters for optic 
    216       ! ------------------------------------------ 
    217  
    218       xkg0  = 0. 
     153      !                               ! natopt : optical parameters 
     154      !                               ! --------------------------- 
     155      xkg0  = 0.                           ! default values 
    219156      xkr0  = 0. 
    220157      xkgp  = 0. 
     
    224161      rpig  = 0. 
    225162 
    226       READ(numnat,natopt) 
     163      REWIND( numnat )                     ! read natopt 
     164      READ  ( numnat, natopt )        
     165 
     166      IF(lwp) THEN                         ! control print 
     167         WRITE(numout,*) 
     168         WRITE(numout,*) ' Namelist natopt' 
     169         WRITE(numout,*) '    green   water absorption coeff                       xkg0  = ', xkg0 
     170         WRITE(numout,*) '    red water absorption coeff                           xkr0  = ', xkr0 
     171         WRITE(numout,*) '    pigment red absorption coeff                         xkrp  = ', xkrp 
     172         WRITE(numout,*) '    pigment green absorption coeff                       xkgp  = ', xkgp 
     173         WRITE(numout,*) '    green chl exposant                                   xlg   = ', xlg 
     174         WRITE(numout,*) '    red   chl exposant                                   xlr   = ', xlr 
     175         WRITE(numout,*) '    chla/chla+phea ratio                                 rpig  = ', rpig 
     176      ENDIF 
     177 
     178#if defined key_trc_diabio 
     179 
     180      !                               ! natdbi : bio diagnostics 
     181      !                               ! ------------------------ 
     182      nwritebio = 10                     ! default values 
     183      DO ji = 1, jpdiabio 
     184         IF(     ji <  10 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I1)') ji      ! short name 
     185         ELSEIF (ji < 100 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I2)') ji    
     186         ELSE                      ;   WRITE (ctrbio(ji),'("BIO_",I3)') ji 
     187         ENDIF 
     188         WRITE(ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji                 ! long name 
     189         ctrbiu(ji) = 'mmoleN/m3/s '                                            ! units 
     190      END DO 
     191 
     192      REWIND( numnat )                     ! read natdbi 
     193      READ  ( numnat, natdbi )   
    227194 
    228195      IF(lwp) THEN 
    229          WRITE(numout,*) 'natopt' 
    230          WRITE(numout,*) ' ' 
    231          WRITE(numout,*) ' green   water absorption coeff  xkg0  = ',xkg0 
    232          WRITE(numout,*) ' red water absorption coeff      xkr0  = ',xkr0 
    233          WRITE(numout,*) ' pigment red absorption coeff    xkrp  = ',xkrp 
    234          WRITE(numout,*) ' pigment green absorption coeff  xkgp  = ',xkgp 
    235          WRITE(numout,*) ' green chl exposant              xlg   = ',xlg 
    236          WRITE(numout,*) ' red   chl exposant              xlr   = ',xlr 
    237          WRITE(numout,*) ' chla/chla+phea ratio            rpig  = ',rpig 
    238          WRITE(numout,*) ' ' 
    239  
    240       ENDIF 
    241  
    242 #if defined key_trc_diabio 
    243  
    244       ! NAMELIST : natdbi  
    245  
    246       ! default name for biological trends : short and long name, units 
    247  
    248       DO ji=1,jpdiabio 
    249          IF (ji < 10) THEN  
    250             WRITE (ctrbio(ji),'("BIO_",I1)') ji 
    251          ELSE IF (ji < 100) THEN 
    252             WRITE (ctrbio(ji),'("BIO_",I2)') ji 
    253          ELSE 
    254             WRITE (ctrbio(ji),'("BIO_",I3)') ji 
    255          ENDIF 
    256          WRITE (ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji 
    257          ctrbiu(ji)='mmoleN/m3/s ' 
    258       END DO 
    259  
    260       nwritebio = 10 
    261  
    262       READ(numnat,natdbi) 
    263  
    264       IF(lwp) THEN 
    265          WRITE(numout,*) 'natdbi' 
    266          WRITE(numout,*) ' ' 
    267          WRITE(numout,*)      & 
    268             &   ' frequency of outputs for biological outputs = '    & 
    269             &   ,nwritebio 
    270          WRITE(numout,*) ' ' 
    271          DO ji=1,jpdiabio 
    272             WRITE(numout,*)     & 
    273                &   'name of biological trend number :',ji,' : ',ctrbio(ji)   
    274             WRITE(numout,*) ctrbil(ji)   
    275             WRITE(numout,*) ' in unit = ',ctrbiu(ji) 
     196         WRITE(numout,*) 
     197         WRITE(numout,*) ' Namelist natdbi' 
     198         WRITE(numout,*) '    frequency of outputs for biological outputs  nwritebio = ', nwritebio 
     199         DO ji = 1, jpdiabio 
     200            WRITE(numout,*) '     name of biological trend No :',ji,' : ',ctrbio(ji), ctrbil(ji), ' in ', ctrbiu(ji) 
    276201         END DO 
    277202      END IF 
    278203#endif 
    279  
     204      ! 
    280205   END SUBROUTINE trc_lsm 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trclsm.pisces.h90

    r730 r763  
    1 !!---------------------------------------------------------------------- 
    2 !!                    ***  trclsm.pisces.h90 *** 
    3 !!---------------------------------------------------------------------- 
     1   !!---------------------------------------------------------------------- 
     2   !!                     ***  trclsm.pisces.h90  ***   
     3   !! TOP :   Definition some run parameter for PISCES biological model 
     4   !!---------------------------------------------------------------------- 
     5   !! History :    -  !  1999-10 (M.A. Foujols, M. Levy) original code 
     6   !!              -  !  2000-01 (L. Bopp) hamocc3, p3zd 
     7   !!             1.0 !  2003-08 (C. Ethe)  module F90 
     8   !!---------------------------------------------------------------------- 
     9 
     10   !!---------------------------------------------------------------------- 
     11   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     12   !! $Id $  
     13   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     14   !!---------------------------------------------------------------------- 
     15 
    416CONTAINS 
    517 
    618   SUBROUTINE trc_lsm 
    719      !!---------------------------------------------------------------------- 
     20      !!                     ***  trc_lsm  ***   
    821      !! 
    9       !!                       trclsm.pisces.h 
    10       !!                       **************** 
     22      !! ** Purpose :   read PISCES namelist 
    1123      !! 
    12       !!  PURPOSE : 
    13       !!  --------- 
    14       !!     READs and PRINT options for PISCES namelist 
     24      !! ** input   :   file 'namelist.trc.sms' containing the following 
     25      !!             namelist: natext, natbio, natsms 
     26      !!                       natkriest ("key_trc_kriest") 
     27      !!---------------------------------------------------------------------- 
     28      CHARACTER (len=32) ::   clname 
    1529      !! 
    16       !!   MODIFICATIONS: 
    17       !!   -------------- 
    18       !!      original  : 99-10 (M.A. Foujols, M. Levy) passive tracer 
    19       !!      addition  : 00-01 (L. Bopp) hamocc3,p3zd 
    20       !!      
    21       !!---------------------------------------------------------------------- 
    22       !!---------------------------------------------------------------------- 
    23       !! local declarations 
    24       !! ================== 
    25       CHARACTER (len=32) clname 
    26  
    27       !!--------------------------------------------------------------------- 
    28       !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    29    !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/SMS/trclsm.pisces.h90,v 1.7 2007/10/17 14:50:13 opalod Exp $  
    30    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    31       !!--------------------------------------------------------------------- 
    32  
    33       ! 0. initializations 
    34       ! ------------------ 
    35       ! 
    3630      NAMELIST/natext/ atcco2 
    37       NAMELIST/natbio/caco3r, kdca, nca, part,                       & 
    38          &          dispo0,conc0,oxymin,grosip, nrdttrc,              & 
    39          &          pislope, excret,wsbio,wchl,wchld,resrat,mprat,mzrat,   & 
    40          &          grazrat,xprefc,xprefp,unass,xkgraz,xkmort,xksi1, & 
    41          &          xksi2,xremip,xremik,xsirem,xkdoc1,xkdoc2, & 
    42          &          excret2,resrat2,mprat2,mpratm,mzrat2,grazrat2,   & 
    43          &          xprefz,xprefpoc,unass2,xkgraz2,xlam1,      & 
    44          &          ferat3,conc1,conc2,conc3,concnnh4,concdnh4,      & 
    45          &          nitrif,epsher,epsher2,pislope2,wsbio2,sigma1,    & 
    46          &          sigma2, zprefc, zprefp, zprefd,fecnm,fecdm,      & 
    47          &          chlcnm,chlcdm, sedfeinput 
     31      NAMELIST/natbio/ caco3r, kdca, nca, part,                               & 
     32         &             dispo0,conc0,oxymin,grosip, nrdttrc,                   & 
     33         &             pislope, excret,wsbio,wchl,wchld,resrat,mprat,mzrat,   & 
     34         &             grazrat,xprefc,xprefp,unass,xkgraz,xkmort,xksi1,      & 
     35         &             xksi2,xremip,xremik,xsirem,xkdoc1,xkdoc2,              & 
     36         &             excret2,resrat2,mprat2,mpratm,mzrat2,grazrat2,         & 
     37         &             xprefz, xprefpoc, unass2, xkgraz2, xlam1,              & 
     38         &             ferat3,conc1,conc2,conc3,concnnh4,concdnh4,            & 
     39         &             nitrif,epsher,epsher2,pislope2,wsbio2,sigma1,          & 
     40         &             sigma2, zprefc, zprefp, zprefd,fecnm,fecdm,            & 
     41         &             chlcnm,chlcdm, sedfeinput 
    4842      NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput 
    4943#if defined key_trc_kriest 
    50       NAMELIST/natkriest/xkr_eta,xkr_zeta,xkr_sfact,xkr_mass_min,xkr_mass_max,& 
    51          &               xkr_dnano,xkr_ddiat,xkr_dmeso,xkr_daggr,xkr_stick 
     44      NAMELIST/natkriest/ xkr_eta  , xkr_zeta , xkr_sfact, xkr_mass_min, xkr_mass_max,   & 
     45         &                xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr   , xkr_stick 
    5246#endif 
    53  
    54       ! initialize the number of LOGICAL UNIT used 
    55       ! ------------------------------------------ 
    56  
    57       IF(lwp) THEN 
    58          WRITE(numout,*) ' ' 
    59          WRITE(numout,*) ' ROUTINE trclec' 
    60          WRITE(numout,*) ' **************' 
    61          WRITE(numout,*) ' ' 
    62          WRITE(numout,*) ' namelist for PISCES model' 
    63          WRITE(numout,*) ' ***********************' 
    64          WRITE(numout,*) ' ' 
    65       ENDIF 
    66  
     47      !!---------------------------------------------------------------------- 
     48 
     49 
     50      IF(lwp) WRITE(numout,*) 
     51      IF(lwp) WRITE(numout,*) ' trc_lsm : read PISCES namelists' 
     52      IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
     53 
     54 
     55      !                               ! Open the namelist file 
     56      !                               ! ---------------------- 
    6757      clname ='namelist.trc.sms' 
    6858      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    6959         &           1, numout, .FALSE., 1 ) 
    7060 
    71       ! 1 Namelist natext : 
    72       ! ------------------- 
    73       READ(numnat,natext) 
    74  
     61      !                               ! natext : Atmospheric parameters 
     62      !                               ! -------------------- ---------- 
     63      REWIND( numnat )                     ! read natext 
     64      READ  ( numnat, natext ) 
     65 
     66      IF(lwp) THEN                         ! control print 
     67         WRITE(numout,*) 
     68         WRITE(numout,*) ' Namelist : natext' 
     69         WRITE(numout,*) '    atmospheric pCO2                         atcco2 = ',atcco2 
     70      ENDIF 
     71 
     72 
     73      !                               ! natbio : biological parameters 
     74      !                               ! ------------------------------ 
     75      REWIND( numnat )                     ! read natbio 
     76      READ  ( numnat, natbio ) 
     77 
     78      IF(lwp) THEN                         ! control print 
     79         WRITE(numout,*) ' Namelist : natbio' 
     80         WRITE(numout,*) '    mean rainratio                            caco3r    =', caco3r 
     81         WRITE(numout,*) '    diss. rate constant calcite (per month)   kdca      =', kdca 
     82         WRITE(numout,*) '    order of reaction for calcite dissolution nca       =', nca 
     83         WRITE(numout,*) '    part of calcite not dissolved in guts     part      =', part 
     84         WRITE(numout,*) '    mean Si/C ratio                           grosip    =', grosip 
     85         WRITE(numout,*) '    Calcite dissolution half saturation       dispo0    =', dispo0 
     86         WRITE(numout,*) '    Phosphate half saturation                 conc0     =', conc0 
     87         WRITE(numout,*) '    frequence pour la biologie                nrdttrc   =', nrdttrc 
     88         WRITE(numout,*) '    P-I slope                                 pislope   =', pislope 
     89         WRITE(numout,*) '    excretion ratio of phytoplankton          excret    =', excret 
     90         WRITE(numout,*) '    POC sinking speed                         wsbio     =', wsbio 
     91         WRITE(numout,*) '    quadratic mortality of phytoplankton      wchl      =', wchl 
     92         WRITE(numout,*) '    maximum quadratic mortality of diatoms    wchld     =', wchld 
     93         WRITE(numout,*) '    exsudation rate of zooplankton            resrat    =', resrat 
     94         WRITE(numout,*) '    phytoplankton mortality rate              mprat     =', mprat 
     95         WRITE(numout,*) '    zooplankton mortality rate                mzrat     =', mzrat 
     96         WRITE(numout,*) '    zoo preference for phyto                  xprefc    =', xprefc 
     97         WRITE(numout,*) '    zoo preference for POC                    xprefp    =', xprefp 
     98         WRITE(numout,*) '    maximal zoo grazing rate                  grazrat   =', grazrat 
     99         WRITE(numout,*) '    non assimilated fraction of phyto by zoo  unass     =', unass 
     100         WRITE(numout,*) '    half sturation constant for grazing       xkgraz    =', xkgraz 
     101         WRITE(numout,*) '    half saturation constant for mortality    xkmort    =', xkmort 
     102         WRITE(numout,*) '    half saturation constant for Si uptake    xksi1     =', xksi1 
     103         WRITE(numout,*) '    half saturation constant for Si/C         xksi2     =', xksi2 
     104         WRITE(numout,*) '    remineralisation rate of POC              xremip    =', xremip 
     105         WRITE(numout,*) '    remineralization rate of DOC              xremik    =', xremik 
     106         WRITE(numout,*) '    remineralization rate of Si               xsirem    =', xsirem  
     107         WRITE(numout,*) '    1st half-sat. of DOC remineralization     xkdoc1    =', xkdoc1 
     108         WRITE(numout,*) '    2nd half-sat. of DOC remineralization     xkdoc2    =', xkdoc2 
     109         WRITE(numout,*) '    excretion ratio of diatoms                excret2   =', excret2 
     110         WRITE(numout,*) '    exsudation rate of mesozooplankton        resrat2   =', resrat2 
     111         WRITE(numout,*) '    Diatoms mortality rate                    mprat2    =', mprat2 
     112         WRITE(numout,*) '    Phytoplankton minimum mortality rate      mpratm    =', mpratm 
     113         WRITE(numout,*) '    mesozooplankton mortality rate            mzrat2    =', mzrat2 
     114         WRITE(numout,*) '    zoo preference for zoo                    xprefz    =', xprefz 
     115         WRITE(numout,*) '    zoo preference for poc                    xprefpoc  =', xprefpoc 
     116         WRITE(numout,*) '    maximal mesozoo grazing rate              grazrat2  =', grazrat2 
     117         WRITE(numout,*) '    non assimilated fraction of P by mesozoo  unass2    =', unass2 
     118         WRITE(numout,*) '    Efficicency of Mesozoo growth             epsher2   =', epsher2  
     119         WRITE(numout,*) '    Efficiency of microzoo growth             epsher    =', epsher 
     120         WRITE(numout,*) '    half sturation constant for grazing 2     xkgraz2   =', xkgraz2 
     121         WRITE(numout,*) '    Maximum aggregation rate for diatoms      wchld     =', wchld 
     122         WRITE(numout,*) '    scavenging rate of Iron                   xlam1     =', xlam1 
     123         WRITE(numout,*) '    Fe/C in zooplankton                       ferat3    =', ferat3 
     124         WRITE(numout,*) '    Phosphate half saturation for diatoms     conc1     =', conc1 
     125         WRITE(numout,*) '    Iron half saturation for phyto            conc2     =', conc2 
     126         WRITE(numout,*) '    Iron half saturation for diatoms          conc3     =', conc3 
     127         WRITE(numout,*) '    NH4 half saturation for phyto             concnnh4  =', concnnh4 
     128         WRITE(numout,*) '    NH4 half saturation for diatoms           concdnh4  =', concdnh4 
     129         WRITE(numout,*) '    NH4 nitrification rate                    nitrif    =', nitrif 
     130         WRITE(numout,*) '    P-I slope  for diatoms                    pislope2  =', pislope2 
     131         WRITE(numout,*) '    Big particles sinking speed               wsbio2    =', wsbio2 
     132         WRITE(numout,*) '    Fraction of microzoo excretion as DOM     sigma1    =', sigma1 
     133         WRITE(numout,*) '    Fraction of mesozoo excretion as DOM      sigma2    =', sigma2 
     134         WRITE(numout,*) '    Microzoo preference for POM               zprefc    =', zprefc 
     135         WRITE(numout,*) '    Microzoo preference for Nanophyto         zprefp    =', zprefp 
     136         WRITE(numout,*) '    Microzoo preference for Diatoms           zprefd    =', zprefd 
     137         WRITE(numout,*) '    Minimum Chl/C in nanophytoplankton        chlcnm    =', chlcnm 
     138         WRITE(numout,*) '    Minimum Chl/C in diatoms                  chlcdm    =', chlcdm 
     139         WRITE(numout,*) '    Maximum Fe/C in nanophytoplankton         fecnm     =', fecnm 
     140         WRITE(numout,*) '    Minimum Fe/C in diatoms                   fecdm     =', fecdm 
     141         WRITE(numout,*) '    Coastal release of Iron                   sedfeinput=', sedfeinput 
     142      ENDIF 
     143 
     144      !                               ! natsms : SMS parameters 
     145      !                               ! ----------------------- 
     146      REWIND( numnat )                     ! read natsms 
     147      READ  ( numnat, natsms ) 
    75148      IF(lwp) THEN 
    76149         WRITE(numout,*) ' ' 
    77          WRITE(numout,*) 'natext' 
    78          WRITE(numout,*) ' ' 
    79          WRITE(numout,*) 'atmospheric pCO2= ',atcco2 
    80          WRITE(numout,*) ' ' 
     150         WRITE(numout,*) ' Namelist : natsms' 
     151         WRITE(numout,*) '    Dust input from the atmosphere           bdustfer  = ', bdustfer 
     152         WRITE(numout,*) '    River input of nutrients                 briver    = ', briver 
     153         WRITE(numout,*) '    Atmospheric deposition of N              bndepo    = ', bndepo 
     154         WRITE(numout,*) '    Fe input from sediments                  bsedinput = ', bsedinput 
    81155      ENDIF 
    82156 
    83  
    84       READ(numnat,natbio) 
     157#if defined key_trc_kriest 
     158 
     159      !                               ! natkriest : kriest parameters 
     160      !                               ! ----------------------------- 
     161      REWIND( numnat )                     ! read natkriest 
     162      READ  ( numnat, natkriest ) 
     163 
    85164      IF(lwp) THEN 
    86          WRITE(numout,*) 'natbio' 
    87          WRITE(numout,*) ' ' 
    88          WRITE(numout,*)      & 
    89             &   ' mean rainratio                             =', caco3r 
    90          WRITE(numout,*)      & 
    91             &   ' diss. rate constant calcite (per month)    =', kdca 
    92          WRITE(numout,*)      & 
    93             &   ' order of reaction for calcite dissolution  =', nca 
    94          WRITE(numout,*)      & 
    95             &   ' part of calcite not dissolved in guts      =', part 
    96          WRITE(numout,*)      & 
    97             &   ' mean Si/C ratio                            =', grosip 
    98          WRITE(numout,*)      & 
    99             &   ' Calcite dissolution half saturation        =', dispo0 
    100          WRITE(numout,*)      & 
    101             &   ' Phosphate half saturation                  =', conc0 
    102          WRITE(numout,*)      & 
    103             &   ' frequence pour la biologie                 =', nrdttrc 
    104          WRITE(numout,*)      & 
    105             &   ' P-I slope                                  =', pislope 
    106          WRITE(numout,*)      & 
    107             &   ' excretion ratio of phytoplankton           =', excret 
    108          WRITE(numout,*)      & 
    109             &   ' POC sinking speed                          =', wsbio 
    110          WRITE(numout,*)      & 
    111             &   ' quadratic mortality of phytoplankton       =', wchl 
    112          WRITE(numout,*)      & 
    113             &   ' maximum quadratic mortality of diatoms     =', wchld 
    114          WRITE(numout,*)      & 
    115             &   ' exsudation rate of zooplankton             =', resrat 
    116          WRITE(numout,*)      & 
    117             &   ' phytoplankton mortality rate               =', mprat 
    118          WRITE(numout,*)      & 
    119             &   ' zooplankton mortality rate                 =', mzrat 
    120          WRITE(numout,*)      & 
    121             &   ' zoo preference for phyto                   =', xprefc 
    122          WRITE(numout,*)      & 
    123             &   ' zoo preference for POC                     =', xprefp 
    124          WRITE(numout,*)      & 
    125             &   ' maximal zoo grazing rate                   =', grazrat 
    126          WRITE(numout,*)      & 
    127             &   ' non assimilated fraction of phyto by zoo   =', unass 
    128          WRITE(numout,*)      & 
    129             &   ' half sturation constant for grazing        =', xkgraz 
    130          WRITE(numout,*)      & 
    131             &   ' half saturation constant for mortality     =', xkmort 
    132          WRITE(numout,*)      & 
    133             &   ' half saturation constant for Si uptake     =', xksi1 
    134          WRITE(numout,*)      & 
    135             &   ' half saturation constant for Si/C          =', xksi2 
    136          WRITE(numout,*)      & 
    137             &   ' remineralisation rate of POC               =', xremip 
    138          WRITE(numout,*)      & 
    139             &   ' remineralization rate of DOC               =', xremik 
    140          WRITE(numout,*)      &  
    141             &   ' remineralization rate of Si                =', xsirem  
    142          WRITE(numout,*)      & 
    143             &   ' 1st half-sat. of DOC remineralization      =', xkdoc1 
    144          WRITE(numout,*)      & 
    145             &   ' 2nd half-sat. of DOC remineralization      =', xkdoc2 
    146          WRITE(numout,*)      & 
    147             &   ' excretion ratio of diatoms                 =', excret2 
    148          WRITE(numout,*)      & 
    149             &   ' exsudation rate of mesozooplankton         =', resrat2 
    150          WRITE(numout,*)      & 
    151             &   ' Diatoms mortality rate                     =', mprat2 
    152          WRITE(numout,*)      & 
    153             &   ' Phytoplankton minimum mortality rate       =', mpratm 
    154          WRITE(numout,*)      & 
    155             &   ' mesozooplankton mortality rate             =', mzrat2 
    156          WRITE(numout,*)      & 
    157             &   ' zoo preference for zoo                     =', xprefz 
    158          WRITE(numout,*)      & 
    159             &   ' zoo preference for poc                   =', xprefpoc 
    160          WRITE(numout,*)      & 
    161             &   ' maximal mesozoo grazing rate               =', grazrat2 
    162          WRITE(numout,*)      & 
    163             &   ' non assimilated fraction of P by mesozoo   =', unass2 
    164          WRITE(numout,*)      & 
    165             &   ' Efficicency of Mesozoo growth              =', epsher2  
    166          WRITE(numout,*)      & 
    167             &   ' Efficiency of microzoo growth              =', epsher 
    168          WRITE(numout,*)      & 
    169             &   ' half sturation constant for grazing 2      =', xkgraz2 
    170          WRITE(numout,*)      & 
    171             &   ' Maximum aggregation rate for diatoms       =', wchld 
    172          WRITE(numout,*)      & 
    173             &   ' scavenging rate of Iron                    =', xlam1 
    174          WRITE(numout,*)      & 
    175             &   ' Fe/C in zooplankton                        =', ferat3 
    176          WRITE(numout,*)      & 
    177             &   ' Phosphate half saturation for diatoms      =', conc1 
    178          WRITE(numout,*)      & 
    179             &   ' Iron half saturation for phyto             =', conc2 
    180          WRITE(numout,*)      & 
    181             &   ' Iron half saturation for diatoms           =', conc3 
    182          WRITE(numout,*)      & 
    183             &   ' NH4 half saturation for phyto              =', concnnh4 
    184          WRITE(numout,*)      & 
    185             &   ' NH4 half saturation for diatoms            =', concdnh4 
    186          WRITE(numout,*)      & 
    187             &   ' NH4 nitrification rate                     =', nitrif 
    188          WRITE(numout,*)      & 
    189             &   ' P-I slope  for diatoms                     =', pislope2 
    190          WRITE(numout,*)      & 
    191             &   ' Big particles sinking speed                =', wsbio2 
    192          WRITE(numout,*)      & 
    193             &   ' Fraction of microzoo excretion as DOM      =', sigma1 
    194          WRITE(numout,*)      & 
    195             &   ' Fraction of mesozoo excretion as DOM       =', sigma2 
    196          WRITE(numout,*)      & 
    197             &   ' Microzoo preference for POM                =', zprefc 
    198          WRITE(numout,*)      & 
    199             &   ' Microzoo preference for Nanophyto          =', zprefp 
    200          WRITE(numout,*)      & 
    201             &   ' Microzoo preference for Diatoms          =', zprefd 
    202          WRITE(numout,*)      & 
    203             &   ' Minimum Chl/C in nanophytoplankton         =', chlcnm 
    204          WRITE(numout,*)      & 
    205             &   ' Minimum Chl/C in diatoms                   =', chlcdm 
    206          WRITE(numout,*)      & 
    207             &   ' Maximum Fe/C in nanophytoplankton          =', fecnm 
    208          WRITE(numout,*)      & 
    209             &   ' Minimum Fe/C in diatoms                    =', fecdm 
    210          WRITE(numout,*)      & 
    211             &   ' Coastal release of Iron                 =', sedfeinput 
    212       ENDIF 
    213  
    214       READ(numnat,natsms) 
    215       IF(lwp) THEN 
    216          WRITE(numout,*) ' ' 
    217          WRITE(numout,*) 'natsms' 
    218          WRITE(numout,*) ' ' 
    219          WRITE(numout,*) 'Dust input from the atmosphere : ', bdustfer 
    220          WRITE(numout,*) ' ' 
    221          WRITE(numout,*) 'River input of nutrients : ', briver 
    222          WRITE(numout,*) ' ' 
    223          WRITE(numout,*) 'Atmospheric deposition of N : ', bndepo 
    224          WRITE(numout,*) ' ' 
    225          WRITE(numout,*) 'Fe input from sediments : ', bsedinput 
    226          WRITE(numout,*) ' ' 
    227       ENDIF 
    228  
    229 #if defined key_trc_kriest 
    230  
    231       READ(numnat,natkriest) 
    232       IF(lwp) THEN 
    233          WRITE(numout,*) ' ' 
    234          WRITE(numout,*) 'natkriest' 
    235          WRITE(numout,*) ' ' 
    236          WRITE(numout,*) 'Sinking  exponent                    xkr_eta       = ', xkr_eta  
    237          WRITE(numout,*) 'N content exponent                   xkr_zeta      = ', xkr_zeta 
    238          WRITE(numout,*) 'Sinking factor                       xkr_sfact     = ', xkr_sfact 
    239          WRITE(numout,*) 'Stickiness                           xkr_stick     = ', xkr_stick 
    240          WRITE(numout,*) 'Minimum mass for Aggregates          xkr_mass_min  = ', xkr_mass_min 
    241          WRITE(numout,*) 'Maximum mass for Aggregates          xkr_mass_max  = ', xkr_mass_max 
    242          WRITE(numout,*) 'Size of particles in nano pool       xkr_dnano     = ', xkr_dnano 
    243          WRITE(numout,*) 'Size of particles in diatoms pool    xkr_ddiat     = ', xkr_ddiat 
    244          WRITE(numout,*) 'Size of particles in mesozoo pool    xkr_dmeso     = ', xkr_dmeso 
    245          WRITE(numout,*) 'Size of particles in aggregates pool xkr_daggr     = ', xkr_daggr 
     165         WRITE(numout,*) 
     166         WRITE(numout,*) ' Namelist : natkriest' 
     167         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta  
     168         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta 
     169         WRITE(numout,*) '    Sinking factor                           xkr_sfact    = ', xkr_sfact 
     170         WRITE(numout,*) '    Stickiness                               xkr_stick    = ', xkr_stick 
     171         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min 
     172         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max 
     173         WRITE(numout,*) '    Size of particles in nano pool           xkr_dnano    = ', xkr_dnano 
     174         WRITE(numout,*) '    Size of particles in diatoms pool        xkr_ddiat    = ', xkr_ddiat 
     175         WRITE(numout,*) '    Size of particles in mesozoo pool        xkr_dmeso    = ', xkr_dmeso 
     176         WRITE(numout,*) '    Size of particles in aggregates pool     xkr_daggr    = ', xkr_daggr 
    246177     ENDIF 
    247178 
    248179 
    249180     ! Computation of some variables 
    250      xkr_massp     = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta 
     181     xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta 
     182      
    251183     ! max and min vertical particle speed 
    252184     xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta 
    253185     xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta 
    254      WRITE(numout,*) ' max and min vertical particle speed ',xkr_wsbio_min,xkr_wsbio_max 
     186     WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max 
     187      
    255188     ! 
    256189     !    effect of the sizes of the different living pools on particle numbers 
     
    267200     xkr_naggr = 1. / ( xkr_massp * xkr_daggr ) 
    268201     
    269  
    270202#endif 
    271  
     203      ! 
    272204   END SUBROUTINE trc_lsm 
  • branches/dev_001_GM/NEMO/TOP_SRC/SMS/trp_trc.F90

    r719 r763  
    11MODULE trp_trc 
     2   !!====================================================================== 
     3   !!                         ***  MODULE trp_trc  *** 
     4   !! TOP :   TOP parameters used in TRP 
     5   !!====================================================================== 
     6   !! History :   1.0  !  2004-03 (C. Ethe) original code 
     7   !!---------------------------------------------------------------------- 
     8   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     9   !! $Id:$  
     10   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     11   !!---------------------------------------------------------------------- 
     12#if defined key_passivetrc 
     13   !!---------------------------------------------------------------------- 
     14   !!   'key_passivetrc'                                    Passive tracers 
     15   !!---------------------------------------------------------------------- 
    216 
    3 #if defined key_passivetrc 
    4    !!====================================================================== 
    5    !! Module trp_trc 
    6    !!====================================================================== 
    7    !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    8    !! $Header$ 
    9    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
     17   !! passive tracers number 
     18   USE par_trc_trp , ONLY :   jptra    =>   jptra    !: number of passive tracers 
     19 
     20   !! passive tracers fields  
     21   USE trc         , ONLY :   trai     =>   trai     !: initial total tracer 
     22   USE trc         , ONLY :   trb      =>   trb      !: tracer field (before) 
     23   USE trc         , ONLY :   tra      =>   tra      !: tracer field (now) 
     24   USE trc         , ONLY :   trn      =>   trn      !: tracer field (after) 
     25 
     26   !! time step 
     27   USE trc         , ONLY :   ndttrc   =>   ndttrc   !: frequency of step on passive tracers (NAMELIST) 
     28 
     29   !! non-centered advection scheme (smolarkiewicz) 
     30   USE trc         , ONLY :   rtrn     =>   rtrn     !: value for truncation (NAMELIST) 
     31   USE trc         , ONLY :   ctrcnm   =>   ctrcnm   !: value for truncation (NAMELIST) 
     32 
     33# if defined key_trc_diaadd 
     34   USE par_trc_trp , ONLY :   jpdia2d  =>  jpdia2d   !: number of 2D passive tracers diag 
     35   USE par_trc_trp , ONLY :   jpdia3d  =>  jpdia3d   !: number of 3D passive tracers diag 
     36   USE trc         , ONLY :   trc2d    =>   trc2d    !: additional 2D variable for ouputs 
     37   USE trc         , ONLY :   trc3d    =>   trc3d    !: additional 3D variable for ouputs 
     38# endif 
     39 
     40#else 
    1041   !!---------------------------------------------------------------------- 
    11    !! passive tracers number 
    12    USE par_trc_trp , ONLY : & 
    13       jptra    =>   jptra       !!: number of passive tracers 
    14  
    15 #if defined key_trc_diaadd 
    16    USE par_trc_trp , ONLY : & 
    17       jpdia2d  =>  jpdia2d , &  !!: number of passive tracers 
    18       jpdia3d  =>  jpdia3d 
     42   !!  Empty module :                                     No passive tracer 
     43   !!---------------------------------------------------------------------- 
    1944#endif 
    2045 
    21    !! passive tracers fields  
    22    USE trc , ONLY :  & 
    23       trai   =>   trai , &  !!: initial total tracer 
    24       trb    =>   trb  , &  !!: tracer field (before) 
    25       tra    =>   tra  , &  !!: tracer field (now) 
    26       trn    =>   trn       !!: tracer field (after) 
    27  
    28 #if defined key_trc_diaadd 
    29    USE trc , ONLY :  & 
    30       trc2d   =>   trc2d , &  !!: additional 2D variable for ouputs 
    31       trc3d   =>   trc3d      !!: additional 3D variable for ouputs 
    32 #endif 
    33    !! time step 
    34    USE trc , ONLY :  & 
    35       ndttrc =>   ndttrc    !!: frequency of step on passive tracers (NAMELIST) 
    36  
    37    !! non-centered advection scheme (smolarkiewicz) 
    38    USE trc , ONLY : & 
    39       rtrn   =>   rtrn      !!: value for truncation (NAMELIST) 
    40  
    41    USE trc , ONLY : & 
    42       ctrcnm   =>   ctrcnm      !!: value for truncation (NAMELIST) 
    43 #else 
    4446   !!====================================================================== 
    45    !!  Empty module : No passive tracer  
    46    !!====================================================================== 
    47 #endif 
    48  
    4947END MODULE trp_trc 
  • branches/dev_001_GM/NEMO/TOP_SRC/agrif_top_interp.F90

    r719 r763  
    11MODULE agrif_top_interp 
    22   !!====================================================================== 
    3    !!                       ***  MODULE agrif_top_interp  *** 
    4    !!  Dummy module 
     3   !!                   ***  MODULE agrif_top_interp  *** 
     4   !! TOP :   Dummy module when AGRIF is not used 
    55   !!====================================================================== 
    66 
    77   !!---------------------------------------------------------------------- 
    8    !!   Dummy module                                     NO agrif use 
     8   !!   Dummy module                                               NO AGRIF 
    99   !!---------------------------------------------------------------------- 
     10   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     11   !! $Header$  
     12   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)  
    1013   !!---------------------------------------------------------------------- 
    11    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    12    !! $Header$  
    13    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    14    !!---------------------------------------------------------------------- 
     14 
     15   !!====================================================================== 
    1516END MODULE agrif_top_interp 
  • branches/dev_001_GM/NEMO/TOP_SRC/agrif_top_update.F90

    r719 r763  
    11MODULE agrif_top_update 
    22   !!====================================================================== 
    3    !!                       ***  MODULE agrif_top_update  *** 
    4    !!  Dummy module 
     3   !!                   ***  MODULE agrif_top_update  *** 
     4   !! TOP :   Dummy module when AGRIF is not used 
    55   !!====================================================================== 
    66 
    77   !!---------------------------------------------------------------------- 
    8    !!   Dummy module                                     NO agrif use 
     8   !!   Dummy module                                               NO AGRIF 
    99   !!---------------------------------------------------------------------- 
     10   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     11   !! $Header$  
     12   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)  
    1013   !!---------------------------------------------------------------------- 
    11    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    12    !! $Header$  
    13    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    14    !!---------------------------------------------------------------------- 
     14 
     15   !!====================================================================== 
    1516END MODULE agrif_top_update 
  • branches/dev_001_GM/NEMO/TOP_SRC/initrc.F90

    r719 r763  
    11MODULE initrc 
    2    !!================================================ 
    3    !! 
    4    !!                       *** MODULE initrc *** 
    5    !! Initialisation the tracer model 
    6    !!================================================ 
    7                                                                                                                              
     2   !!====================================================================== 
     3   !!                         ***  MODULE initrc  *** 
     4   !! TOP :   Initialisation of passive tracers 
     5   !!====================================================================== 
     6   !! History :    -   !  1991-03  ()  original code 
     7   !!             1.0  !  2005-03 (O. Aumont, A. El Moussaoui) F90 
     8   !!              -   !  2005-10 (C. Ethe) print control 
     9   !!---------------------------------------------------------------------- 
    810#if defined key_passivetrc 
    9  
    10    !!------------------------------------------------------- 
    11    !!  TOP 1.0,  LOCEAN-IPSL (2005)  
    12    !! $Header$  
    13    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    14    !!------------------------------------------------------- 
    15  
    16    !!-------------------------------------------------------------- 
    17    !! * Modules used 
    18    !! ============== 
     11   !!---------------------------------------------------------------------- 
     12   !!   'key_passivetrc'                                    Passive tracers 
     13   !!---------------------------------------------------------------------- 
     14   !!   ini_trc    :  initialisation of passive tracers 
     15   !!---------------------------------------------------------------------- 
    1916   USE oce_trc 
    2017   USE trc 
     
    2926   PRIVATE 
    3027    
    31     
    32    !! * Accessibility 
    33    PUBLIC ini_trc 
     28   PUBLIC   ini_trc   ! called by ??? 
    3429 
    3530    !! * Substitutions 
    3631#  include "domzgr_substitute.h90" 
     32   !!---------------------------------------------------------------------- 
     33   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     34   !! $Id:$  
     35   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     36   !!---------------------------------------------------------------------- 
    3737   
    3838CONTAINS 
     
    4040   SUBROUTINE ini_trc 
    4141      !!--------------------------------------------------------------------- 
     42      !!                     ***  ROUTINE ini_trc  *** 
    4243      !! 
    43       !!                       ROUTINE ini_trc 
    44       !!                     ****************** 
     44      !! ** Purpose :   Initialization of the passive tracer fields  
    4545      !! 
    46       !!  PURPOSE : 
    47       !!  --------- 
    48       !!     initialize the tracer model 
    49       !! 
    50       !!   METHOD : 
    51       !!   ------- 
    52       !! 
    53       !! 
    54       !!   History: 
    55       !!   ------- 
    56       !!      original  : 91-03 () 
    57       !!      additions : 92-01 (C. Levy) 
    58       !!                  05-03 (O. Aumont and A. El Moussaoui) F90 
    59       !!                  05-10 (C. Ethe ) print control initialization  
    60       !!---------------------------------------------------------------------- 
     46      !! ** Method  : - read namelist 
     47      !!              - control the consistancy  
     48      !!              - compute specific initialisations 
     49      !!              - set initial tracer fields (either read restart  
     50      !!                or read data or analytical formulation 
     51      !!--------------------------------------------------------------------- 
     52      INTEGER ::   ji, jj, jk, jn    ! dummy loop indices 
     53      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zbt   ! workspace: masked grid volume 
     54      !!--------------------------------------------------------------------- 
    6155 
    62       !!--------------------------------------------------------------------- 
    63       !!  OPA.9, 03-2005 
    64       !!--------------------------------------------------------------------- 
    65       INTEGER :: ji, jj, jk, jn    !: dummy loop indices 
     56      IF(lwp) WRITE(numout,*) 
     57      IF(lwp) WRITE(numout,*) 'ini_trc : initial set up of the passive tracers' 
     58      IF(lwp) WRITE(numout,*) '~~~~~~~' 
    6659 
    67       !! 0.b PRINT the number of tracer 
    68       !! ------------------------------ 
     60      !                 ! masked grid volume 
     61      DO jk = 1, jpk 
     62         zbt(:,:,jk) = e1t(:,:) * e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) 
     63      END DO 
     64#if defined key_off_degrad 
     65      zbt(:,:,:) = zbt(:,:,:) * facvol(ji,jj,jk)      ! degrad option: reduction by facvol 
     66#endif 
    6967 
    70       IF(lwp) WRITE(numout,*) ' ' 
    71       IF(lwp) WRITE(numout,*) ' *** number of passive tracer jptra = ',jptra 
    72       IF(lwp) WRITE(numout,*) ' ' 
     68      !                 ! total volume of the ocean 
     69      areatot = SUM( zbt(:,:,:) ) 
     70      IF( lk_mpp )   CALL mpp_sum( areatot )     ! sum over the global domain   
    7371 
    74       ! 1. READ passive tracers namelists 
    75       ! --------------------------------- 
     72      CALL trc_lec      ! READ passive tracers namelists 
    7673 
    77       CALL trc_lec 
     74      CALL trc_ctl      ! control consistency between parameters, cpp key and namelists 
    7875 
    79       ! 2. control consistency between parameters, cpp key and namelists 
    80       ! ---------------------------------------------------------------- 
     76      CALL trc_ini      ! computes some initializations 
    8177 
    82       CALL trc_ctl 
    83  
    84       ! 3. computes some initializations 
    85       ! -------------------------------- 
    86  
    87       CALL trc_ini 
    88  
    89   
    90       ! 4. total volume of the ocean 
    91       !----------------------------- 
    92  
    93       areatot = 0. 
    94       DO jk = 1, jpk 
    95          DO jj = 1, jpj 
    96             DO ji = 1, jpi 
    97                areatot = areatot + tmask(ji,jj,jk) * tmask_i(ji,jj)  & 
    98 #if defined key_off_degrad 
    99                   &                * facvol(ji,jj,jk)    & 
    100 #endif 
    101                   &                * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)  
    102             END DO 
    103          END DO 
    104       END DO 
    105       IF( lk_mpp ) THEN  
    106          CALL mpp_sum(areatot)     ! sum over the global domain   
    107       END IF 
    108  
    109       IF(lwp) WRITE(numout,*) ' ' 
    110       IF (lwp) WRITE(numout,*) 'Total volume of ocean =',areatot 
    111       IF(lwp) WRITE(numout,*) ' ' 
    112  
    113       ! 5. Initialization of tracers 
    114       ! ----------------------------- 
    115  
    116       IF( lrsttr ) THEN 
    117  
    118          ! 5.1 restart from a file 
    119          !------------------------ 
    120          CALL trc_rst_read 
    121  
    122       ELSE 
    123  
    124          !  5.2 analytical formulation or global data 
    125          !------------------------------------- 
    126          CALL trc_dtr 
    127  
     78      !                 ! set initial tracer values  
     79      IF( lrsttr ) THEN   ;   CALL trc_rst_read      ! restart from a file 
     80      ELSE                ;   CALL trc_dtr           ! analytical formulation or from data 
    12881      ENDIF 
    12982 
     83      !                 ! Computation content of all tracers 
     84      trai = 0.e0 
     85      DO jn = 1, jptra 
     86         trai = trai + SUM( trn(:,:,:,jn) * zbt(:,:,:) ) 
     87      END DO       
     88      IF( lk_mpp )   CALL mpp_sum( trai )     ! sum over the global domain   
    13089 
    131       ! 6. Computation integral of all tracers 
    132       !------------------ 
    13390 
    134       trai = 0. 
    135       DO jn = 1, jptra 
    136          DO jk = 1, jpk 
    137             DO jj = 1, jpj 
    138                DO ji = 1, jpi 
    139                   trai = trai + trn(ji,jj,jk,jn) * tmask(ji,jj,jk) * tmask_i(ji,jj)    & 
    140 #if defined key_off_degrad 
    141                      &              * facvol(ji,jj,jk)   & 
    142 #endif 
     91      !                 ! control print 
     92      IF(lwp) WRITE(numout,*) '          *** Total number of passive tracer jptra = ', jptra 
     93      IF(lwp) WRITE(numout,*) '          *** Total volume of ocean                = ', areatot 
     94      IF(lwp) WRITE(numout,*) '          *** Total inital content of all tracers  = ', trai 
     95      IF(lwp) WRITE(numout,*) 
    14396 
    144                      &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
    145                END DO 
    146             END DO 
    147          END DO 
    148       ENDDO 
    149        
    150       IF( lk_mpp ) THEN  
    151          CALL mpp_sum(trai)         ! sum over the global domain   
    152       END IF 
    153  
    154       IF(lwp) WRITE(numout,*) ' '      
    155       IF(lwp) WRITE(numout,*) 'Integral of all tracers over the full domain at initial time =',trai 
    156       IF(lwp) WRITE(numout,*) ' ' 
    157  
    158       ! 6. Print control 
    159       !------------------ 
    160  
    161       IF( ln_ctl )    CALL prt_ctl_trc_init 
    162  
     97      IF( ln_ctl )   CALL prt_ctl_trc_init      ! control print 
     98      ! 
    16399   END SUBROUTINE ini_trc 
    164100 
    165  
    166101#else 
    167    !!====================================================================== 
    168    !!  Empty module : No passive tracer 
    169    !!====================================================================== 
     102   !!---------------------------------------------------------------------- 
     103   !!  Empty module :                                     No passive tracer 
     104   !!---------------------------------------------------------------------- 
    170105CONTAINS 
    171    SUBROUTINE ini_trc       
     106   SUBROUTINE ini_trc                      ! Dummy routine    
    172107   END SUBROUTINE ini_trc 
    173108#endif 
    174109 
     110   !!====================================================================== 
    175111END MODULE initrc  
  • branches/dev_001_GM/NEMO/TOP_SRC/oce_trc.F90

    r719 r763  
    22   !!====================================================================== 
    33   !!                      ***  MODULE  oce_trc  *** 
    4    !! Ocean passive tracer  :  share ocean-passive tracers variables 
     4   !! TOP :   variables shared between ocean and passive tracers 
    55   !!====================================================================== 
    6    !! History : 
    7    !!   9.0  !  04-03  (C. Ethe)  F90: Free form and module 
    8    !!---------------------------------------------------------------------- 
    9    !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    10    !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/oce_trc.F90,v 1.17 2007/05/28 02:55:05 opalod Exp $ 
    11    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    12    !!---------------------------------------------------------------------- 
    13    !! * Modules used 
    14    !! Domain characteristics 
    15    USE par_oce , ONLY :       & 
    16       cp_cfg   =>   cp_cfg,  & !: name of the configuration 
    17       jp_cfg   =>   jp_cfg,  & !: resolution of the configuration 
    18       jpiglo   =>   jpiglo,  & !: first  dimension of global domain --> i 
    19       jpjglo   =>   jpjglo,  & !: second dimension of global domain --> j 
    20       jpi      =>   jpi   ,  & !: first  dimension of grid --> i  
    21       jpj      =>   jpj   ,  & !: second dimension of grid --> j   
    22       jpk      =>   jpk   ,  & !: number of levels   
    23       jpim1    =>   jpim1 ,  & !: jpi - 1 
    24       jpjm1    =>   jpjm1 ,  & !: jpj - 1  
    25       jpkm1    =>   jpkm1 ,  & !: jpk - 1   
    26       jpij     =>   jpij  ,  & !: jpi x jpj 
    27       jpidta   =>   jpidta,  & !: first horizontal dimension  > or = jpi 
    28       jpjdta   =>   jpjdta,  & !: second horizontal dimension > or = jpj 
    29       jpkdta   =>   jpkdta,  & !: number of levels            > or = jpk 
    30       lk_esopa =>   lk_esopa   !: flag to activate the all option 
    31  
    32  
    33    !! run controm    
    34  
    35    USE in_out_manager 
    36        
    37    USE dom_oce , ONLY :           &             
    38       lzoom      => lzoom     ,  & !: zoom flag 
    39       lzoom_e    => lzoom_e   ,  & !: East  zoom type flag 
    40       lzoom_w    => lzoom_w   ,  & !: West  zoom type flag 
    41       lzoom_s    => lzoom_s   ,  & !: South zoom type flag 
    42       lzoom_n    => lzoom_n   ,  & !: North zoom type flag 
    43       lzoom_arct => lzoom_arct,  & !: ORCA    arctic zoom flag 
    44       lzoom_anta => lzoom_anta     !: ORCA antarctic zoom flag 
    45  
    46  
    47  
    48    USE dom_oce , ONLY :       &  
    49       nperio   =>   nperio,  & !: type of lateral boundary condition        
    50       nimpp    =>   nimpp ,  & !: i index for mpp-subdomain left bottom 
    51       njmpp    =>   njmpp ,  & !: j index for mpp-subdomain left bottom 
    52       nproc    =>   nproc ,  & !: number for local processor 
    53       narea    =>   narea ,  & !: number for local area 
    54       mig      =>   mig   ,  & !: local  ==> global  domain i-indice 
    55       mjg      =>   mjg   ,  & !: local  ==> global  domain i-indice 
    56       mi0      =>   mi0   ,  & !: global ==> local domain i-indice  
    57       mi1      =>   mi1   ,  & !: (mi0=1 and mi1=0 if the global indice is not in the local domain) 
    58       mj0      =>   mj0   ,  & !: global ==> local domain j-indice  
    59       mj1      =>   mj1   ,  & !: (mj0=1 and mj1=0 if the global indice is not in the local domain) 
    60       nidom    =>   nidom 
     6   !! History :   1.0  !  2004-03  (C. Ethe)  original code 
     7   !!             2.0  !  2007-12 (C. Ethe, G. Madec)  rewritting 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 2.0,  LOCEAN-IPSL (2007) 
     10   !! $Header: $ 
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     12   !!---------------------------------------------------------------------- 
     13#if defined key_passivetrc 
     14   !!---------------------------------------------------------------------- 
     15   !!   'key_passivetrc'                                    Passive tracers 
     16   !!---------------------------------------------------------------------- 
     17 
     18   !* Domain size * 
     19   USE par_oce , ONLY :   cp_cfg   =>   cp_cfg     !: name of the configuration 
     20   USE par_oce , ONLY :   jp_cfg   =>   jp_cfg     !: resolution of the configuration 
     21   USE par_oce , ONLY :   jpiglo   =>   jpiglo     !: first  dimension of global domain --> i 
     22   USE par_oce , ONLY :   jpjglo   =>   jpjglo     !: second dimension of global domain --> j 
     23   USE par_oce , ONLY :   jpi      =>   jpi        !: first  dimension of grid --> i  
     24   USE par_oce , ONLY :   jpj      =>   jpj        !: second dimension of grid --> j   
     25   USE par_oce , ONLY :   jpk      =>   jpk        !: number of levels   
     26   USE par_oce , ONLY :   jpim1    =>   jpim1      !: jpi - 1 
     27   USE par_oce , ONLY :   jpjm1    =>   jpjm1      !: jpj - 1  
     28   USE par_oce , ONLY :   jpkm1    =>   jpkm1      !: jpk - 1   
     29   USE par_oce , ONLY :   jpij     =>   jpij       !: jpi x jpj 
     30   USE par_oce , ONLY :   jpidta   =>   jpidta     !: first horizontal dimension  > or = jpi 
     31   USE par_oce , ONLY :   jpjdta   =>   jpjdta     !: second horizontal dimension > or = jpj 
     32   USE par_oce , ONLY :   jpkdta   =>   jpkdta     !: number of levels            > or = jpk 
     33   USE par_oce , ONLY :   lk_esopa =>   lk_esopa   !: flag to activate the all option 
     34 
     35   !* IO manager * 
     36   USE in_out_manager      ! use all the variables 
     37   !* physical constants * 
     38   USE phycst              ! use all the variables 
     39 
     40   !* model domain * 
     41   USE dom_oce , ONLY :   lzoom      => lzoom        !: zoom flag 
     42   USE dom_oce , ONLY :   lzoom_e    => lzoom_e      !: East  zoom type flag 
     43   USE dom_oce , ONLY :   lzoom_w    => lzoom_w      !: West  zoom type flag 
     44   USE dom_oce , ONLY :   lzoom_s    => lzoom_s      !: South zoom type flag 
     45   USE dom_oce , ONLY :   lzoom_n    => lzoom_n      !: North zoom type flag 
     46   USE dom_oce , ONLY :   lzoom_arct => lzoom_arct   !: ORCA    arctic zoom flag 
     47   USE dom_oce , ONLY :   lzoom_anta => lzoom_anta   !: ORCA antarctic zoom flag 
     48   USE dom_oce , ONLY :   nperio     =>   nperio     !: type of lateral boundary condition        
     49   USE dom_oce , ONLY :   nimpp      =>   nimpp      !: i index for mpp-subdomain left bottom 
     50   USE dom_oce , ONLY :   njmpp      =>   njmpp      !: j index for mpp-subdomain left bottom 
     51   USE dom_oce , ONLY :   nproc      =>   nproc      !: number for local processor 
     52   USE dom_oce , ONLY :   narea      =>   narea      !: number for local area 
     53   USE dom_oce , ONLY :   mig        =>   mig        !: local  ==> global  domain i-indice 
     54   USE dom_oce , ONLY :   mjg        =>   mjg        !: local  ==> global  domain i-indice 
     55   USE dom_oce , ONLY :   mi0        =>   mi0        !: global ==> local domain i-indice  
     56   USE dom_oce , ONLY :   mi1        =>   mi1        !: (mi0=1 and mi1=0 if the global indice is not in the local one) 
     57   USE dom_oce , ONLY :   mj0        =>   mj0        !: global ==> local domain j-indice  
     58   USE dom_oce , ONLY :   mj1        =>   mj1        !: (mj0=1 and mj1=0 if the global indice is not in the local one) 
     59   USE dom_oce , ONLY :   nidom      =>   nidom 
     60   USE dom_oce , ONLY :   nimppt     => nimppt     !:i-indexes for each processor 
     61   USE dom_oce , ONLY :   njmppt     => njmppt       !:j-indexes for each processor 
     62   USE dom_oce , ONLY :   ibonit     => ibonit       !:i-processor neighbour existence 
     63   USE dom_oce , ONLY :   ibonjt     => ibonjt       !:j- processor neighbour existence  
     64   USE dom_oce , ONLY :   nlci       => nlci         !:i- & j-dimensions of the local subdomain 
     65   USE dom_oce , ONLY :   nlcj       => nlcj         !: 
     66   USE dom_oce , ONLY :   nldi       => nldi         !:first and last indoor i- and j-indexes 
     67   USE dom_oce , ONLY :   nlei       => nlei         !: 
     68   USE dom_oce , ONLY :   nldj       => nldj         !: 
     69   USE dom_oce , ONLY :   nlej       => nlej         !: 
     70   USE dom_oce , ONLY :   nlcit      => nlcit        !:dimensions of every i-subdomain 
     71   USE dom_oce , ONLY :   nlcjt      => nlcjt        !:dimensions of every j-subdomain 
     72   USE dom_oce , ONLY :   nldit      => nldit        !:first indoor index for each i-domain  
     73   USE dom_oce , ONLY :   nleit      => nleit        !:last indoor index for each i-domain  
     74   USE dom_oce , ONLY :   nldjt      => nldjt        !:first indoor index for each j-domain  
     75   USE dom_oce , ONLY :   nlejt      => nlejt        !:last indoor index for each j-domain  
    6176  
    62    USE dom_oce , ONLY :       &  
    63       nimppt   => nimppt  ,  & !:i-indexes for each processor 
    64       njmppt   => njmppt  ,  & !:j-indexes for each processor 
    65       ibonit   => ibonit  ,  & !:i-processor neighbour existence 
    66       ibonjt   => ibonjt  ,  & !:j- processor neighbour existence  
    67       nlci     => nlci    ,  & !:i- & j-dimensions of the local subdomain 
    68       nlcj     => nlcj    ,  & !: 
    69       nldi     => nldi    ,  & !:first and last indoor i- and j-indexes 
    70       nlei     => nlei    ,  & !: 
    71       nldj     => nldj    ,  & !: 
    72       nlej     => nlej    ,  & !: 
    73       nlcit    => nlcit   ,  & !:dimensions of every i-subdomain 
    74       nlcjt    => nlcjt   ,  & !:dimensions of every j-subdomain 
    75       nldit    => nldit   ,  & !:first indoor index for each i-domain  
    76       nleit    => nleit   ,  & !:last indoor index for each i-domain  
    77       nldjt    => nldjt   ,  & !:first indoor index for each j-domain  
    78       nlejt    => nlejt        !:last indoor index for each j-domain  
    79  
    80      
    81       !! horizontal curvilinear coordinate and scale factors 
    82    USE dom_oce , ONLY :            &     
    83       glamt    =>   glamt ,  & !: longitude of t-point (degre)   
    84       glamu    =>   glamu ,  & !: longitude of t-point (degre)   
    85       glamv    =>   glamv ,  & !: longitude of t-point (degre)   
    86       glamf    =>   glamf ,  & !: longitude of t-point (degre)   
    87       gphit    =>   gphit ,  & !: latitude  of t-point (degre)    
    88       gphiu    =>   gphiu ,  & !: latitude  of t-point (degre)    
    89       gphiv    =>   gphiv ,  & !: latitude  of t-point (degre)    
    90       gphif    =>   gphif ,  & !: latitude  of t-point (degre)    
    91       e1t      =>   e1t   ,  & !: horizontal scale factors at t-point (m)   
    92       e2t      =>   e2t   ,  & !: horizontal scale factors at t-point (m)    
    93       e1u      =>   e1u   ,  & !: horizontal scale factors at u-point (m) 
    94       e2u      =>   e2u   ,  & !: horizontal scale factors at u-point (m) 
    95       e1v      =>   e1v   ,  & !: horizontal scale factors at v-point (m) 
    96       e2v      =>   e2v        !: horizontal scale factors at v-point (m)   
    97  
    98    !! vertical coordinate and scale factors 
    99    USE dom_oce , ONLY :              &    
    100       gdept_0    =>   gdept_0 ,  & !: reference depth of t-points (m) 
    101       e3t_0      =>   e3t_0   ,  & !: reference depth of t-points (m)   
    102       e3w_0      =>   e3w_0   ,  & !: reference depth of w-points (m) 
    103       gdepw_0    =>   gdepw_0      !: reference depth of w-points (m) 
    104  
    105 #if ! defined key_zco 
    106    USE dom_oce , ONLY :                & 
    107       gdep3w   =>  gdep3w  ,  & !: ??? 
    108       gdept =>  gdept,  & !: depth of t-points (m) 
    109       gdepw =>  gdepw,  & !: depth of t-points (m) 
    110       e3t   =>  e3t  ,  & !: vertical scale factors at t- 
    111       e3u   =>  e3u  ,  & !: vertical scale factors at u- 
    112       e3v   =>  e3v  ,  & !: vertical scale factors v- 
    113       e3w   =>  e3w  ,  & !: w-points (m) 
    114       e3f   =>  e3f  ,  & !: f-points (m) 
    115       e3uw  =>  e3uw ,  & !: uw-points (m) 
    116       e3vw  =>  e3vw      !: vw-points (m) 
     77   !* horizontal mesh * 
     78   USE dom_oce , ONLY :   glamt      =>   glamt      !: longitude of t-point (degre)   
     79   USE dom_oce , ONLY :   glamu      =>   glamu      !: longitude of t-point (degre)   
     80   USE dom_oce , ONLY :   glamv      =>   glamv      !: longitude of t-point (degre)   
     81   USE dom_oce , ONLY :   glamf      =>   glamf      !: longitude of t-point (degre)   
     82   USE dom_oce , ONLY :   gphit      =>   gphit      !: latitude  of t-point (degre)    
     83   USE dom_oce , ONLY :   gphiu      =>   gphiu      !: latitude  of t-point (degre)    
     84   USE dom_oce , ONLY :   gphiv      =>   gphiv      !: latitude  of t-point (degre)    
     85   USE dom_oce , ONLY :   gphif      =>   gphif      !: latitude  of t-point (degre)    
     86   USE dom_oce , ONLY :   e1t        =>   e1t        !: horizontal scale factors at t-point (m)   
     87   USE dom_oce , ONLY :   e2t        =>   e2t        !: horizontal scale factors at t-point (m)    
     88   USE dom_oce , ONLY :   e1u        =>   e1u        !: horizontal scale factors at u-point (m) 
     89   USE dom_oce , ONLY :   e2u        =>   e2u        !: horizontal scale factors at u-point (m) 
     90   USE dom_oce , ONLY :   e1v        =>   e1v        !: horizontal scale factors at v-point (m) 
     91   USE dom_oce , ONLY :   e2v        =>   e2v        !: horizontal scale factors at v-point (m)   
     92 
     93   !* vertical mesh * 
     94   USE dom_oce , ONLY :   gdept_0    =>   gdept_0    !: reference depth of t-points (m) 
     95   USE dom_oce , ONLY :   e3t_0      =>   e3t_0      !: reference depth of t-points (m)   
     96   USE dom_oce , ONLY :   e3w_0      =>   e3w_0      !: reference depth of w-points (m) 
     97   USE dom_oce , ONLY :   gdepw_0    =>   gdepw_0    !: reference depth of w-points (m) 
     98# if ! defined key_zco 
     99   USE dom_oce , ONLY :   gdep3w     =>  gdep3w      !: ??? 
     100   USE dom_oce , ONLY :   gdept      =>  gdept       !: depth of t-points (m) 
     101   USE dom_oce , ONLY :   gdepw      =>  gdepw       !: depth of t-points (m) 
     102   USE dom_oce , ONLY :   e3t        =>  e3t         !: vertical scale factors at t- 
     103   USE dom_oce , ONLY :   e3u        =>  e3u         !: vertical scale factors at u- 
     104   USE dom_oce , ONLY :   e3v        =>  e3v         !: vertical scale factors v- 
     105   USE dom_oce , ONLY :   e3w        =>  e3w         !: w-points (m) 
     106   USE dom_oce , ONLY :   e3f        =>  e3f         !: f-points (m) 
     107   USE dom_oce , ONLY :   e3uw       =>  e3uw        !: uw-points (m) 
     108   USE dom_oce , ONLY :   e3vw       =>  e3vw        !: vw-points (m) 
     109# endif 
     110   USE dom_oce , ONLY :   ln_zps     =>  ln_zps      !: partial steps flag 
     111   USE dom_oce , ONLY :   ln_sco     =>  ln_sco      !: s-coordinate flag 
     112   USE dom_oce , ONLY :   ln_zco     =>  ln_zco      !: z-coordinate flag 
     113   USE dom_oce , ONLY :   lk_zco     =>  lk_zco      !: z-coordinate flag (1D or 3D arrays) 
     114   USE dom_oce , ONLY :   hbatt     =>   hbatt       !: ocean depth at the vertical of  t-point (m) 
     115   USE dom_oce , ONLY :   hbatu     =>   hbatu       !: ocean depth at the vertical of  u-point (m) 
     116   USE dom_oce , ONLY :   hbatv     =>   hbatv       !: ocean depth at the vertical of w-point (m) 
     117   USE dom_oce , ONLY :   gsigt     =>   gsigt       !: model level depth coefficient at T-levels 
     118   USE dom_oce , ONLY :   gsigw     =>   gsigw       !: model level depth coefficient at W-levels 
     119   USE dom_oce , ONLY :   gsi3w     =>   gsi3w       !: model level depth coef at w-levels (defined as the sum of e3w) 
     120   USE dom_oce , ONLY :   esigt     =>   esigt       !: vertical scale factor coef. at t-levels 
     121   USE dom_oce , ONLY :   esigw     =>   esigw       !: vertical scale factor coef. at w-levels 
     122 
     123   !* masks, bathymetry * 
     124   USE dom_oce , ONLY :   mbathy    =>   mbathy      !: number of ocean level (=0,  & 1, ... , jpk-1)  
     125   USE dom_oce , ONLY :   tmask_i   =>   tmask_i     !: Interior mask at t-points 
     126   USE dom_oce , ONLY :   tmask     =>   tmask       !: land/ocean mask at t-points 
     127   USE dom_oce , ONLY :   umask     =>   umask       !: land/ocean mask at u-points    
     128   USE dom_oce , ONLY :   vmask     =>   vmask       !: land/ocean mask at v-points  
     129   USE dom_oce , ONLY :   fmask     =>   fmask       !: land/ocean mask at f-points  
     130# if defined key_off_degrad 
     131   USE dom_oce , ONLY :   facvol    =>   facvol      !: volume factor for degradation 
     132# endif 
     133 
     134   !* time domain * 
     135   USE dom_oce , ONLY :   neuler    =>   neuler      !: restart euler forward option (0=Euler) 
     136   USE dom_oce , ONLY :   rdt       =>   rdt         !: time step for the dynamics  
     137   USE dom_oce , ONLY :   atfp      =>   atfp        !: asselin time filter parameter 
     138   USE dom_oce , ONLY :   atfp1     =>   atfp1       !: asselin time filter coeff. (atfp1= 1-2*atfp) 
     139   USE dom_oce , ONLY :   rdttra    =>   rdttra      !: vertical profile of tracer time step 
     140   USE daymod  , ONLY :   ndastp    =>   ndastp      !: time step date in year/month/day aammjj 
     141   USE daymod  , ONLY :   nday_year =>   nday_year   !: curent day counted from jan 1st of the current year 
     142   USE daymod  , ONLY :   nyear     =>   nyear       !: Current year 
     143   USE daymod  , ONLY :   nmonth    =>   nmonth      !: Current month 
     144   USE daymod  , ONLY :   nday      =>   nday        !: Current day 
     145 
     146   !* ocean fields: here now and after fields * 
     147   USE oce , ONLY :   ua      =>    ua      !: i-horizontal velocity (m s-1)  
     148   USE oce , ONLY :   va      =>    va      !: j-horizontal velocity (m s-1) 
     149   USE oce , ONLY :   un      =>    un      !: i-horizontal velocity (m s-1)  
     150   USE oce , ONLY :   vn      =>    vn      !: j-horizontal velocity (m s-1) 
     151   USE oce , ONLY :   wn      =>    wn      !: vertical velocity (m s-1)   
     152   USE oce , ONLY :   tn      =>    tn      !: pot. temperature (celsius) 
     153   USE oce , ONLY :   sn      =>    sn      !: salinity (psu) 
     154   USE oce , ONLY :   rhop    =>    rhop    !: potential volumic mass (kg m-3)  
     155   USE oce , ONLY :   rhd     =>    rhd     !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 
     156# if defined key_trc_diatrd 
     157   USE oce , ONLY :   hdivn   =>    hdivn   !: horizontal divergence (1/s) 
     158# endif 
     159 
     160 
     161   USE lib_mpp , ONLY :   lk_mpp    =>  lk_mpp       !: Mpp flag 
     162 
     163   USE dynspg_oce , ONLY :   lk_dynspg_rl   =>  lk_dynspg_rl      !: rigid lid flag 
     164 
     165   USE dom_oce , ONLY :   n_cla     =>   n_cla         !: flag (0/1) for cross land advection  
     166 
     167 
     168 
     169   !* surface fluxes * 
     170# if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core 
     171   USE blk_oce, ONLY :   vatm       =>    vatm       !: wind speed at sea surface (m s-1) 
     172# endif 
     173   USE taumod , ONLY :   taux       =>    taux       !: i-surface stress component 
     174   USE taumod , ONLY :   tauy       =>    tauy       !: j-surface stress component 
     175   USE ocesbc , ONLY :   qt         =>    qt         !: total surface heat flux (w m-2)    
     176   USE ocesbc , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)   
     177   USE ocesbc , ONLY :   emp        =>    emp        !: evaporation minus precipitation (kg m-2 s-2)  
     178   USE ocesbc , ONLY :   emps       =>    emps       !: evaporation minus precipitation (kg m-2 s-2) 
     179   USE traqsr , ONLY :   xsi1       =>   xsi1        !: first depth of extinction 
     180   USE traqsr , ONLY :   ln_qsr_sms =>  ln_qsr_sms   !: flag to use or not the biological fluxes for light 
     181   USE flxrnf , ONLY :   upsrnfh    =>   upsrnfh     !: mixed adv scheme in runoffs vicinity (hori.)  
     182   USE flxrnf , ONLY :   upsrnfz    =>   upsrnfz     !: mixed adv scheme in runoffs vicinity (vert.) 
     183   USE flxrnf , ONLY :   upsadv     =>   upsadv      !: mixed adv scheme in straits vicinity (hori.) 
     184 
     185   !* freezing area * 
     186   USE ocfzpt , ONLY :   freeze      =>    freeze     !: ice mask (0 or 1)   
     187   USE ocfzpt , ONLY :   fzptn       =>    fzptn      !: now freezing temperature at ocean surface   
     188 
     189   !* bottom boundary layer * 
     190# if   defined key_trabbl_dif   ||   defined key_trabbl_adv 
     191   USE trabbl , ONLY :   atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s) 
     192#  if defined key_off_tra 
     193   USE trabbl, ONLY :   bblx   => bblx         !: ??? 
     194   USE trabbl, ONLY :   bbly   => bbly         !: ??? 
     195#  endif 
     196# endif 
     197 
     198   !* lateral diffusivity (tracers) * 
     199   USE ldftra_oce , ONLY :   aht0    =>   aht0     !: horizontal eddy diffusivity for tracers (m2/s) 
     200   USE ldftra_oce , ONLY :   ahtb0   =>   ahtb0    !: background eddy diffusivity for isopycnal diff. (m2/s) 
     201   USE ldftra_oce , ONLY :   ahtu    =>   ahtu     !: lateral diffusivity coef. at u-points  
     202   USE ldftra_oce , ONLY :   ahtv    =>   ahtv     !: lateral diffusivity coef. at v-points  
     203   USE ldftra_oce , ONLY :   ahtw    =>   ahtw     !: lateral diffusivity coef. at w-points  
     204   USE ldftra_oce , ONLY :   ahtt    =>   ahtt     !: lateral diffusivity coef. at t-points 
     205   USE ldftra_oce , ONLY :   aeiv0   =>   aeiv0    !: eddy induced velocity coefficient (m2/s)  
     206   USE ldftra_oce , ONLY :   aeiu    =>   aeiu     !: eddy induced velocity coef. at u-points (m2/s)    
     207   USE ldftra_oce , ONLY :   aeiv    =>   aeiv     !: eddy induced velocity coef. at v-points (m2/s)  
     208   USE ldftra_oce , ONLY :   aeiw    =>   aeiw     !: eddy induced velocity coef. at w-points (m2/s)  
     209 
     210   !* vertical diffusion * 
     211   USE zdf_oce , ONLY :   avt        =>   avt         !: vert. diffusivity coef. at w-point for temp   
     212   USE zdf_oce , ONLY :   avt0       =>   avt0        !: vertical eddy diffusivity for tracers (m2/s) 
     213   USE zdf_oce , ONLY :   ln_zdfnpc  =>   ln_zdfnpc   !: convection: non-penetrative convection flag 
     214# if defined key_zdfddm 
     215   USE zdfddm  , ONLY :   avs        =>    avs        !: salinity vertical diffusivity coeff. at w-point 
     216# endif 
     217 
     218   !* mixing & mixed layer depth * 
     219   USE zdfmxl , ONLY :   hmld        =>   hmld        !: mixing layer depth (turbocline) 
     220   USE zdfmxl , ONLY :   hmlp        =>   hmlp        !: mixed layer depth  (rho=rho0+zdcrit) (m) 
     221   USE zdfmxl , ONLY :   hmlpt       =>   hmlpt       !: mixed layer depth at t-points (m) 
     222 
     223   !* direction of lateral diffusion * 
     224   USE ldfslp , ONLY :   lk_ldfslp  =>  lk_ldfslp     !: slopes flag 
     225# if   defined key_ldfslp 
     226   USE ldfslp , ONLY :   uslp       =>   uslp         !: i-direction slope at u-, w-points 
     227   USE ldfslp , ONLY :   vslp       =>   vslp         !: j-direction slope at v-, w-points 
     228   USE ldfslp , ONLY :   wslpi      =>   wslpi        !: i-direction slope at u-, w-points 
     229   USE ldfslp , ONLY :   wslpj      =>   wslpj        !: j-direction slope at v-, w-points 
     230# endif 
     231 
     232#else 
     233   !!---------------------------------------------------------------------- 
     234   !!  Empty module :                                     No passive tracer 
     235   !!---------------------------------------------------------------------- 
    117236#endif 
    118237 
    119    USE dom_oce ,   ONLY :            &       
    120       ln_zps   =>  ln_zps ,  & !: partial steps flag 
    121       ln_sco   =>  ln_sco ,  & !: s-coordinate flag 
    122       ln_zco   =>  ln_zco ,  & !: z-coordinate flag 
    123       lk_zco   =>  lk_zco      !: z-coordinate flag (1D or 3D arrays) 
    124  
    125    USE lib_mpp ,   ONLY :            &      
    126       lk_mpp   =>  lk_mpp      !: Mpp flag 
    127  
    128    USE dynspg_oce ,   ONLY :            &      
    129       lk_dynspg_rl   =>  lk_dynspg_rl      !: rigid lid flag 
    130  
    131  
    132    USE dom_oce , ONLY :              &    
    133       hbatt   =>   hbatt  ,  & !: ocean depth at the vertical of  t-point (m) 
    134       hbatu   =>   hbatu  ,  & !: ocean depth at the vertical of  u-point (m) 
    135       hbatv   =>   hbatv  ,  & !: ocean depth at the vertical of w-point (m) 
    136       gsigt   =>   gsigt  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors at u- 
    137       gsigw   =>   gsigw  ,  & !: model level depth coefficient at t-,  & w-levelsvertical scale factors v- 
    138       gsi3w   =>   gsi3w  ,  & !: model level depth coef at w-levels (defined as the sum of e3w) 
    139       esigt   =>   esigt  ,  & !: vertical scale factor coef. at t-levels 
    140       esigw   =>   esigw       !: vertical scale factor coef. at w-levels 
    141  
    142    !! masks, bathymetry 
    143    USE dom_oce , ONLY :             &     
    144       mbathy   =>   mbathy,  & !: number of ocean level (=0,  & 1, ... , jpk-1)  
    145       tmask_i  =>   tmask_i, & !: Interior mask at t-points 
    146       tmask    =>   tmask ,  & !: land/ocean mask at t-points 
    147       umask    =>   umask ,  & !: land/ocean mask at u-points    
    148       vmask    =>   vmask ,  & !: land/ocean mask at v-points  
    149       fmask    =>   fmask      !: land/ocean mask at f-points  
    150  
    151 #if defined key_off_degrad 
    152    USE dom_oce , ONLY :                 & 
    153       facvol   =>   facvol     !: volume factor for degradation 
    154 #endif 
    155  
    156    USE dom_oce , ONLY :         & 
    157       n_cla   =>   n_cla       !: flag (0/1) for cross land advection  
    158  
    159    !! time domain 
    160    USE dom_oce , ONLY :                 & 
    161       neuler   =>   neuler,  & !: restart euler forward option (0=Euler) 
    162       rdt      =>   rdt   ,  & !: time step for the dynamics  
    163       atfp     =>   atfp  ,  & !: asselin time filter parameter 
    164       atfp1    =>   atfp1 ,  & !: asselin time filter coeff. (atfp1= 1-2*atfp) 
    165       rdttra   =>   rdttra     !: vertical profile of tracer time step 
    166  
    167    USE daymod , ONLY :                 & 
    168       ndastp    =>   ndastp,  &    !: time step date in year/month/day aammjj 
    169       nday_year =>   nday_year, &  !: curent day counted from jan 1st of the current year 
    170       nyear     =>   nyear,   &  !: Current year 
    171       nmonth    =>   nmonth,  &  !: Current month 
    172       nday      =>   nday        !: Current day 
    173  
    174    !! physical constants 
    175    USE phycst ,   ONLY :                &   
    176       ra       =>   ra    ,  & !: earth radius 
    177       rpi      =>   rpi   ,  & !: pi 
    178       rday     =>   rday  ,  & !: day 
    179       rauw     =>   rauw  ,  & !: density of pure water kg/m3 
    180       ro0cpr   =>   ro0cpr,  & !: = 1. / ( rau0 * rcp ) 
    181       rad      =>   rad   ,  & !: conversion coeff. from degre into radian 
    182       raass    =>   raass ,  & !: number of seconds in one year 
    183       rmoss    =>   rmoss ,  & !: number of seconds in one month 
    184       rjjss    =>   rjjss      !: number of seconds in one day 
    185  
    186    !! present fields (now) 
    187    USE oce , ONLY :            &      
    188       ua      =>    ua    ,  & !: i-horizontal velocity (m s-1)  
    189       va      =>    va    ,  & !: j-horizontal velocity (m s-1) 
    190       un      =>    un    ,  & !: i-horizontal velocity (m s-1)  
    191       vn      =>    vn    ,  & !: j-horizontal velocity (m s-1) 
    192       wn      =>    wn    ,  & !: vertical velocity (m s-1)   
    193       tn      =>    tn    ,  & !: pot. temperature (celsius) 
    194       sn      =>    sn    ,  & !: salinity (psu) 
    195       rhop    =>    rhop  ,  & !: potential volumic mass (kg m-3)  
    196       rhd     =>    rhd        !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units) 
    197  
    198 #if defined key_trc_diatrd 
    199    USE oce , ONLY :          & 
    200       hdivn   =>    hdivn      !: horizontal divergence (1/s) 
    201 #endif 
    202  
    203 #if defined key_flx_bulk_monthly || defined key_flx_bulk_daily || defined key_flx_core 
    204    !! wind speed 
    205    USE blk_oce , ONLY :        &      
    206       vatm    =>    vatm       !: wind speed at sea surface (m s-1) 
    207 #endif 
    208  
    209    !! wind speed 
    210    USE taumod , ONLY :        &      
    211       taux    =>    taux ,  &  !: i-surface stress component 
    212       tauy    =>    tauy       !: j-surface stress component 
    213  
    214 #if   defined key_trabbl_dif   ||   defined key_trabbl_adv 
    215    USE trabbl , ONLY :           &       
    216       atrbbl   =>   atrbbl     !: lateral coeff. for bottom boundary layer scheme (m2/s) 
    217 #  if defined key_off_tra 
    218    USE trabbl, ONLY :            & 
    219       bblx   => bblx,       & 
    220       bbly   => bbly 
    221 #  endif 
    222 #endif 
    223  
    224    !! lateral diffusivity (tracers) 
    225    USE ldftra_oce ,   ONLY :             &     
    226       aht0    =>   aht0  ,  &  !: horizontal eddy diffusivity for tracers (m2/s) 
    227       ahtb0   =>   ahtb0 ,  &  !: background eddy diffusivity for isopycnal diff. (m2/s) 
    228       ahtu    =>   ahtu  ,  &  !: lateral diffusivity coef. at u-points  
    229       ahtv    =>   ahtv  ,  &  !: lateral diffusivity coef. at v-points  
    230       ahtw    =>   ahtw  ,  &  !: lateral diffusivity coef. at w-points  
    231       ahtt    =>   ahtt  ,  &  !: lateral diffusivity coef. at t-points 
    232       aeiv0   =>   aeiv0 ,  &  !: eddy induced velocity coefficient (m2/s)  
    233       aeiu    =>   aeiu  ,  &  !: eddy induced velocity coef. at u-points (m2/s)    
    234       aeiv    =>   aeiv  ,  &  !: eddy induced velocity coef. at v-points (m2/s)  
    235       aeiw    =>   aeiw        !: eddy induced velocity coef. at w-points (m2/s)  
    236  
    237    !! vertical diffusion 
    238    USE zdf_oce , ONLY :      &     
    239       avt            =>   avt          ,  & !: vert. diffusivity coef. at w-point for temp   
    240       avt0           =>   avt0         ,  & !: vertical eddy diffusivity for tracers (m2/s) 
    241       ln_zdfnpc      =>   ln_zdfnpc         !: convection: non-penetrative convection flag 
    242  
    243  
    244 #if defined key_zdfddm 
    245    USE zdfddm , ONLY :             &      
    246       avs     =>    avs        !: salinity vertical diffusivity coeff. at w-point 
    247 #endif 
    248  
    249    !! penetrative solar radiation 
    250    USE traqsr , ONLY :            & 
    251       xsi1        =>   xsi1    ,  & !: first depth of extinction 
    252       ln_qsr_sms  =>  ln_qsr_sms    !: flag to use or not the biological fluxes for light 
    253  
    254    !! surface fluxes 
    255    USE ocesbc , ONLY :             &    
    256       qt      =>    qt    ,  & !: total surface heat flux (w m-2)    
    257       qsr     =>    qsr   ,  & !: penetrative solar radiation (w m-2)   
    258       emp     =>    emp   ,  & !: evaporation minus precipitation (kg m-2 s-2)  
    259       emps    =>    emps       !: evaporation minus precipitation (kg m-2 s-2) 
    260  
    261    !! freezing area 
    262    USE ocfzpt , ONLY :            &       
    263       freeze  =>    freeze,  & !: ice mask (0 or 1)   
    264       fzptn   =>    fzptn      !: now freezing temperature at ocean surface   
    265  
    266  
    267    !! mixing layer depth (turbocline) 
    268    USE zdfmxl , ONLY :             &     
    269       hmld    =>   hmld   ,  & !: mixing layer depth (turbocline) 
    270       hmlp    =>   hmlp   ,  & !: mixed layer depth  (rho=rho0+zdcrit) (m) 
    271       hmlpt   =>   hmlpt       !: mixed layer depth at t-points (m) 
    272  
    273    USE ldfslp , ONLY :              &  
    274       lk_ldfslp  =>  lk_ldfslp     !: slopes flag 
    275 #if   defined key_ldfslp 
    276    !! direction of lateral diffusion (momentum  tracers)  
    277    USE ldfslp , ONLY :              &  
    278       uslp       =>   uslp    ,  & !: i-direction slope at u-, w-points 
    279       vslp       =>   vslp    ,  & !: j-direction slope at v-, w-points 
    280       wslpi      =>   wslpi   ,  & !: i-direction slope at u-, w-points 
    281       wslpj      =>   wslpj        !: j-direction slope at v-, w-points 
    282 #endif 
    283  
    284    !! ocean forcings runoff 
    285    USE flxrnf , ONLY :              &    
    286       upsrnfh =>   upsrnfh ,  & !: mixed adv scheme in runoffs vicinity (hori.)  
    287       upsrnfz =>   upsrnfz ,  & !: mixed adv scheme in runoffs vicinity (vert.) 
    288       upsadv  =>   upsadv       !: mixed adv scheme in straits vicinity (hori.) 
    289  
     238   !!====================================================================== 
    290239END MODULE oce_trc 
  • branches/dev_001_GM/NEMO/TOP_SRC/par_trc.F90

    r724 r763  
    22   !!====================================================================== 
    33   !!                        ***  par_trc  *** 
    4    !! passive tracers :   set the passive tracers parameters 
     4   !! TOP :   set the passive tracers parameters 
    55   !!====================================================================== 
    6    !! History : 
    7    !!   8.2  !  96-01  (M. Levy)  Original code 
    8    !!        !  99-07  (M. Levy)  for LOBSTER1 or NPZD model 
    9    !!        !  00-04  (O. Aumont, M.A. Foujols)  HAMOCC3 and P3ZD 
    10    !!   9.0  !  04-03  (C. Ethe)  Free form and module 
     6   !! History :    -   !  1996-01  (M. Levy)  original code 
     7   !!              -   !  1999-07  (M. Levy)  for LOBSTER1 or NPZD model 
     8   !!              -   !  2000-04  (O. Aumont, M.A. Foujols)  HAMOCC3 and P3ZD 
     9   !!             1.0  !  2004-03  (C. Ethe) Free form and module 
     10   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  rewritting 
    1111   !!---------------------------------------------------------------------- 
    12    !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    13    !! $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/par_trc.F90,v 1.6 2007/10/12 09:22:19 opalod Exp $ 
    14    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
     12   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     13   !! $Header:$  
     14   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1515   !!---------------------------------------------------------------------- 
    16    !! * Modules used 
    1716#if defined key_passivetrc 
    18  
     17   !!---------------------------------------------------------------------- 
     18   !!   'key_passivetrc'                                    Passive tracers 
     19   !!---------------------------------------------------------------------- 
    1920   USE par_trc_trp 
    2021 
     
    2223   PUBLIC 
    2324 
     25# if defined key_trc_diatrd 
     26   !!---------------------------------------------------------------------- 
     27   !!   'key_trc_diatrd'                                  trend diagnostics 
     28   !!---------------------------------------------------------------------- 
     29#  if defined key_trcldf_eiv 
     30#   if defined key_trcdmp 
     31   INTEGER, PARAMETER :: jpdiatrc = 11      !: trends: 3*(advection + diffusion + eiv ) + damping + sms 
     32#   else 
     33   INTEGER, PARAMETER :: jpdiatrc = 10      !: trends: 3*(advection + diffusion + eiv )           + sms 
     34#   endif 
     35#  else 
     36#   if defined key_trcdmp 
     37   INTEGER, PARAMETER :: jpdiatrc =  8      !: trends: 3*(advection + diffusion       ) + damping + sms 
     38#   else 
     39   INTEGER, PARAMETER :: jpdiatrc =  7      !: trends: 3*(advection + diffusion       ) + damping + sms 
     40#   endif 
     41#  endif 
    2442 
    25 #if defined key_trc_diatrd 
    26  
    27 !! number of dynamical trends 
    28 #  if defined key_trcldf_eiv 
    29 !! we keep 3 more trends for eddy induced flux (gent velocity) 
    30 #    if defined key_trcdmp 
    31    INTEGER , PARAMETER :: jpdiatrc = 11 
    32 #    else 
    33    INTEGER , PARAMETER :: jpdiatrc = 10 
    34 #    endif 
    35 #  else 
    36 #    if defined key_trcdmp 
    37    INTEGER , PARAMETER :: jpdiatrc = 8 
    38 #    else 
    39    INTEGER , PARAMETER :: jpdiatrc = 7 
    40 #    endif 
    41 #  endif 
    4243# endif 
    4344 
    4445#else 
    4546   !!====================================================================== 
    46    !!  Empty module : No passive tracer  
     47   !!  Empty module :                                     No passive tracer  
    4748   !!====================================================================== 
    4849#endif 
    4950 
     51   !!====================================================================== 
    5052END MODULE par_trc 
  • branches/dev_001_GM/NEMO/TOP_SRC/par_trc_trp.F90

    r719 r763  
    22   !!====================================================================== 
    33   !!                        ***  par_trc_trp  *** 
    4    !! passive tracers :   set the number of passive tracers 
     4   !! TOP :   set the number of passive tracers 
    55   !!====================================================================== 
    6    !! History : 
    7    !!   9.0  !  04-03  (C. Ethe)  Orignal 
     6   !! History :   1.0  !  2004-03  (C. Ethe)  Original cade 
     7   !!             2.0  !  04-03  (C. Ethe, G. Madec)  rewriting 
    88   !!---------------------------------------------------------------------- 
    9    !!  TOP 1.0,  LOCEAN-IPSL (2005)  
    10    !! $Header$  
    11    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     9   !! NEMO/TOP 1.0,  LOCEAN-IPSL (2005) 
     10   !! $Id$ 
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1212   !!---------------------------------------------------------------------- 
    1313#if defined key_passivetrc 
    14    !!--------------------------------------------------------------------- 
    15    !!   'key_passivetrc'   :                               Passive tracer 
    16    !!--------------------------------------------------------------------- 
     14   !!---------------------------------------------------------------------- 
     15   !!   'key_passivetrc'                                    Passive tracers 
     16   !!---------------------------------------------------------------------- 
    1717 
    1818   IMPLICIT NONE 
    1919   PUBLIC 
    2020    
    21    !! jptra   : number of passive tracers 
    22    !! jpdia2d : additional 2d output 
    23    !! jpdia3d : additional 3d output 
    24  
    25 #if defined key_trc_lobster1 
     21# if defined key_trc_lobster1 
    2622   !!--------------------------------------------------------------------- 
    27    !!   'key_trc_lobster1'   :            LOBSTER1 Source Minus Sink model 
     23   !!   'key_trc_lobster1'   :                    LOBSTER biological model 
    2824   !!--------------------------------------------------------------------- 
    29    INTEGER, PUBLIC, PARAMETER :: jptra   = 6 
    30 #if defined key_trc_diaadd 
    31    INTEGER, PUBLIC, PARAMETER :: jpdia2d = 19 
    32    INTEGER, PUBLIC, PARAMETER :: jpdia3d = 3 
    33 #endif 
    34 #elif defined key_cfc 
     25   INTEGER, PUBLIC, PARAMETER ::   jptra   =  6   !: number of passive tracers 
     26#  if defined key_trc_diaadd 
     27   INTEGER, PUBLIC, PARAMETER ::   jpdia2d = 19   !: additional 2d output 
     28   INTEGER, PUBLIC, PARAMETER ::   jpdia3d =  3   !: additional 3d output 
     29#  endif 
     30# elif defined key_cfc 
    3531   !!--------------------------------------------------------------------- 
    3632   !!   'key_cfc'   :                      CFC Source Minus Sink model 
    3733   !!--------------------------------------------------------------------- 
    38    INTEGER, PUBLIC, PARAMETER :: jptra   = 2 
    39 #if defined key_trc_diaadd 
    40    INTEGER, PUBLIC, PARAMETER :: jpdia2d = 1 
    41    INTEGER, PUBLIC, PARAMETER :: jpdia3d = 1 
    42 #endif 
    43 #elif defined key_trc_pisces 
     34   INTEGER, PUBLIC, PARAMETER ::   jptra   = 2   !: number of passive tracers 
     35#  if defined key_trc_diaadd 
     36   INTEGER, PUBLIC, PARAMETER ::   jpdia2d = 1   !: additional 2d output 
     37   INTEGER, PUBLIC, PARAMETER ::   jpdia3d = 1   !: additional 3d output 
     38#  endif 
     39# elif defined key_trc_pisces 
    4440   !!--------------------------------------------------------------------- 
    4541   !!   'key_trc_pisces'   :                  PISCES Source Minus Sink model 
    4642   !!--------------------------------------------------------------------- 
    47 #if ! defined key_trc_kriest 
    48    INTEGER, PUBLIC, PARAMETER :: jptra   = 24 
    49 #if defined key_trc_diaadd 
    50    INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 
    51    INTEGER, PUBLIC, PARAMETER :: jpdia3d = 11 
     43#  if ! defined key_trc_kriest 
     44   INTEGER, PUBLIC, PARAMETER ::   jptra   = 24   !: number of passive tracers 
     45#   if defined key_trc_diaadd 
     46   INTEGER, PUBLIC, PARAMETER ::   jpdia2d = 13   !: additional 2d output 
     47   INTEGER, PUBLIC, PARAMETER ::   jpdia3d = 11   !: additional 3d output 
     48#   endif 
     49#  else 
     50   INTEGER, PUBLIC, PARAMETER ::   jptra   = 23   !: number of passive tracers 
     51#   if defined key_trc_diaadd 
     52   INTEGER, PUBLIC, PARAMETER ::   jpdia2d = 13   !: additional 2d output 
     53   INTEGER, PUBLIC, PARAMETER ::   jpdia3d = 18   !: additional 3d output 
     54#   endif 
    5255#  endif 
    53 #else 
    54    INTEGER, PUBLIC, PARAMETER :: jptra   = 23 
    55 #if defined key_trc_diaadd 
    56    INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 
    57    INTEGER, PUBLIC, PARAMETER :: jpdia3d = 18 
    58 #  endif 
    59 #endif 
    60 #else 
     56# else 
    6157   !!--------------------------------------------------------------------- 
    6258   !!   'default'   :          temperature and salinity as passive tracers 
    6359   !!--------------------------------------------------------------------- 
    64    INTEGER, PUBLIC, PARAMETER :: jptra   = 2 
    65 #if defined key_trc_diaadd 
    66    INTEGER, PUBLIC, PARAMETER :: jpdia2d = 1 
    67    INTEGER, PUBLIC, PARAMETER :: jpdia3d = 1 
    68 #endif 
     60   INTEGER, PUBLIC, PARAMETER ::   jptra   = 2   !: number of passive tracers 
     61#  if defined key_trc_diaadd 
     62   INTEGER, PUBLIC, PARAMETER ::   jpdia2d = 1   !: additional 2d output 
     63   INTEGER, PUBLIC, PARAMETER ::   jpdia3d = 1   !: additional 3d output 
     64#  endif 
     65# endif 
     66 
     67#else 
     68   !!---------------------------------------------------------------------- 
     69   !!  Empty module :                                     No passive tracer 
     70   !!---------------------------------------------------------------------- 
    6971#endif 
    7072 
    71 #else 
    7273   !!====================================================================== 
    73    !!  Empty module : No passive tracer  
    74    !!====================================================================== 
    75 #endif 
    76  
    7774END MODULE par_trc_trp 
  • branches/dev_001_GM/NEMO/TOP_SRC/passivetrc_substitute.h90

    r719 r763  
    55   !!              concerning passive tracer model  
    66   !!---------------------------------------------------------------------- 
    7    !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    8    !! $Header$ 
    9    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
     7   !! History :   1.0  !  2004-03 (C. Ethe) Original code 
     8   !!---------------------------------------------------------------------- 
     9   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2007)  
     10   !! $Header:$  
     11   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    1012   !!---------------------------------------------------------------------- 
    1113 
  • branches/dev_001_GM/NEMO/TOP_SRC/prtctl_trc.F90

    r719 r763  
    11MODULE prtctl_trc 
    2    !!============================================================================== 
    3    !!                       ***  MODULE prtctl   *** 
    4    !! Ocean system   : print all SUM trends for each processor domain 
    5    !!============================================================================== 
     2   !!====================================================================== 
     3   !!                         ***  MODULE prtctl_trc  *** 
     4   !! TOP :   print all SUM trends for each processor domain 
     5   !!====================================================================== 
     6   !! History :    -   !  2005-07  (C. Talandier) original code for OPA 
     7   !!             1.0  !  2005-10  (C. Ethe     ) adapted to passive tracer 
     8   !!---------------------------------------------------------------------- 
    69#if defined key_passivetrc 
    7  
    8    USE par_trc_trp 
     10   !!---------------------------------------------------------------------- 
     11   !!   'key_passivetrc'                                    Passive tracers 
     12   !!---------------------------------------------------------------------- 
     13   !!   prt_ctl_trc      :   control print in mpp for passive tracers 
     14   !!   prt_ctl_trc_info :   ??? 
     15   !!   prt_ctl_trc_init :   ??? 
     16   !!---------------------------------------------------------------------- 
     17   USE par_trc_trp      ! ??? 
    918   USE oce_trc          ! ocean space and time domain variables 
    1019   USE in_out_manager   ! I/O manager 
     
    1423   PRIVATE 
    1524 
    16    !! * Module declaration 
    17    INTEGER, DIMENSION(:), ALLOCATABLE :: numid_trc  ! logical unit  
    18    INTEGER, DIMENSION(:), ALLOCATABLE, SAVE ::   &  !: 
    19       nlditl , nldjtl ,   &  !: first, last indoor index for each i-domain 
    20       nleitl , nlejtl ,   &  !: first, last indoor index for each j-domain 
    21       nimpptl, njmpptl,   &  !: i-, j-indexes for each processor 
    22       nlcitl , nlcjtl ,   &  !: dimensions of every subdomain 
    23       ibonitl, ibonjtl 
    24  
    25    REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   &  !: 
    26       tra_ctl                   !: previous trend values 
    27  
    28    !! * Routine accessibility 
     25   INTEGER , DIMENSION(:), ALLOCATABLE ::   numid_trc          !: logical unit  
     26   INTEGER , DIMENSION(:), ALLOCATABLE ::   nlditl , nldjtl    !: first, last indoor index for each i-domain 
     27   INTEGER , DIMENSION(:), ALLOCATABLE ::   nleitl , nlejtl    !: first, last indoor index for each j-domain 
     28   INTEGER , DIMENSION(:), ALLOCATABLE ::   nimpptl, njmpptl   !: i-, j-indexes for each processor 
     29   INTEGER , DIMENSION(:), ALLOCATABLE ::   nlcitl , nlcjtl    !: dimensions of every subdomain 
     30   INTEGER , DIMENSION(:), ALLOCATABLE ::   ibonitl, ibonjtl 
     31 
     32   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   tra_ctl         !: previous trend values 
     33 
    2934   PUBLIC prt_ctl_trc         ! called by all subroutines 
    3035   PUBLIC prt_ctl_trc_info    ! 
    3136   PUBLIC prt_ctl_trc_init    ! called by opa.F90 
    32    !!---------------------------------------------------------------------- 
    33    !!   OPA 9.0 , LOCEAN-IPSL (2005)  
    34    !! $Header$  
    35    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    36    !!---------------------------------------------------------------------- 
    37  
     37 
     38   !!---------------------------------------------------------------------- 
     39   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)  
     40   !! $Header:$  
     41   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     42   !!---------------------------------------------------------------------- 
    3843 
    3944CONTAINS 
    4045 
    41    SUBROUTINE prt_ctl_trc (tab4d, mask, clinfo, ovlap, kdim, clinfo2) 
     46   SUBROUTINE prt_ctl_trc( tab4d, mask, clinfo, ovlap, kdim, clinfo2 ) 
    4247      !!---------------------------------------------------------------------- 
    4348      !!                     ***  ROUTINE prt_ctl  *** 
     
    6166      !!                name must be explicitly typed if used. For instance if the mask 
    6267      !!                array tmask(:,:,:) must be passed through the prt_ctl subroutine,  
    63       !!                it must looks like: CALL prt_ctl(mask=tmask). 
    64       !! 
    65       !!                    tab4d   : 4D array 
    66       !!                    mask    : mask (3D) to apply to the tab4d array 
    67       !!                    clinfo  : information about the tab3d array 
    68       !!                    ovlap   : overlap value 
    69       !!                    kdim    : k- direction for 4D arrays  
    70       !! 
    71       !! History : 
    72       !!   9.0  !  05-07  (C. Talandier) original code 
    73       !!        !  05-10  (C. Ethe     ) adapted to passive tracer 
    74       !!---------------------------------------------------------------------- 
    75       !! * Arguments 
    76       REAL(wp), DIMENSION(:,:,:,:), INTENT(in), OPTIONAL :: tab4d 
    77       REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask 
    78       CHARACTER (len=*), DIMENSION(:), INTENT(in), OPTIONAL :: clinfo 
    79       CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo2 
    80       INTEGER, INTENT(in), OPTIONAL :: ovlap 
    81       INTEGER, INTENT(in), OPTIONAL :: kdim 
    82  
    83       !! * Local declarations 
    84       INTEGER  :: overlap, jn, js, sind, eind, kdir, j_id 
    85       REAL(wp) :: zsum, zvctl 
    86       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask, ztab3d 
    87       CHARACTER (len=20), DIMENSION(jptra) :: cl 
    88       CHARACTER (len=10) :: cl2 
    89       !!---------------------------------------------------------------------- 
    90  
    91       ! Arrays, scalars initialization  
     68      !!                it must looks like: CALL prt_ctl( mask=tmask ). 
     69      !!---------------------------------------------------------------------- 
     70      REAL(wp)         , DIMENSION(:,:,:,:), INTENT(in), OPTIONAL ::   tab4d     ! 4D array 
     71      REAL(wp)         , DIMENSION(:,:,:)  , INTENT(in), OPTIONAL ::   mask      ! 3D mask to apply to the tab4d array 
     72      CHARACTER (len=*), DIMENSION(:)      , INTENT(in), OPTIONAL ::   clinfo    ! information about the tab3d array 
     73      CHARACTER (len=*)                    , INTENT(in), OPTIONAL ::   clinfo2   ! ??? 
     74      INTEGER                              , INTENT(in), OPTIONAL ::   ovlap     ! overlap value 
     75      INTEGER                              , INTENT(in), OPTIONAL ::   kdim      ! k- direction for 4D arrays 
     76      !! 
     77      INTEGER  ::   overlap, jn, js, sind, eind, kdir, j_id 
     78      REAL(wp) ::   zsum, zvctl 
     79      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zmask, ztab3d 
     80      CHARACTER (len=20), DIMENSION(jptra) ::   cl 
     81      CHARACTER (len=10) ::   cl2 
     82      !!---------------------------------------------------------------------- 
     83 
     84      !                                      ! Arrays, scalars initialization  
    9285      overlap       = 0 
    9386      kdir          = jpkm1 
     
    9992      zmask (:,:,:) = 1.e0 
    10093 
    101       ! Control of optional arguments 
    102  
    103       IF( PRESENT(ovlap)   )  overlap       = ovlap 
    104       IF( PRESENT(kdim)    )  kdir          = kdim 
    105       IF( PRESENT(clinfo ) )  cl(:)         = clinfo(:) 
    106       IF( PRESENT(clinfo2) )  cl2           = clinfo2 
    107       IF( PRESENT(mask)    )  zmask (:,:,:) = mask(:,:,:) 
    108  
    109       IF( lk_mpp )   THEN 
    110          ! processor number 
     94      !                                      ! Control of optional arguments 
     95      IF( PRESENT(ovlap)   )   overlap       = ovlap 
     96      IF( PRESENT(kdim)    )   kdir          = kdim 
     97      IF( PRESENT(clinfo ) )   cl(:)         = clinfo(:) 
     98      IF( PRESENT(clinfo2) )   cl2           = clinfo2 
     99      IF( PRESENT(mask)    )   zmask (:,:,:) = mask(:,:,:) 
     100 
     101      IF( lk_mpp )   THEN      ! processor number 
    111102         sind = narea 
    112103         eind = narea 
    113       ELSE 
    114          ! processors total number 
     104      ELSE                     ! processors total number 
    115105         sind = 1 
    116106         eind = ijsplt 
     
    119109      ! Loop over each sub-domain, i.e. the total number of processors ijsplt 
    120110      DO js = sind, eind 
    121  
     111         ! 
    122112         ! Set logical unit 
    123          j_id = numid_trc(js - narea + 1) 
     113         j_id = numid_trc( js - narea + 1 ) 
    124114         ! Set indices for the SUM control 
    125115         IF( .NOT. lsp_area ) THEN 
     
    130120               njctle = nlejtl(js) + overlap * MIN( 1, nlcjtl(js) - nlejtl(js)) 
    131121               ! Do not take into account the bound of the domain 
    132                IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 ) nictls = MAX(2, nictls) 
    133                IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 ) nictle = MIN(nictle, nleitl(js) - 1) 
    134                IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 ) njctls = MAX(2, njctls) 
    135                IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 ) njctle = MIN(njctle, nlejtl(js) - 1) 
     122               IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 )   nictls = MAX( 2, nictls ) 
     123               IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nleitl(js) - 1 ) 
     124               IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 )   njctls = MAX( 2, njctls ) 
     125               IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, nlejtl(js) - 1 ) 
    136126            ELSE 
    137127               nictls = MAX( 1, nimpptl(js) + nlditl(js) - 1 - overlap ) 
     
    140130               njctle = njmpptl(js) + nlejtl(js) - 1 + overlap * MIN( 1, nlcjtl(js) - nlejtl(js) )  
    141131               ! Do not take into account the bound of the domain 
    142                IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 ) nictls = MAX(2, nictls) 
    143                IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 ) njctls = MAX(2, njctls) 
    144                IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 ) nictle = MIN(nictle, nimpptl(js) + nleitl(js) - 2) 
    145                IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 ) njctle = MIN(njctle, njmpptl(js) + nlejtl(js) - 2) 
     132               IF( ibonitl(js) == -1 .OR. ibonitl(js) == 2 )   nictls = MAX( 2, nictls ) 
     133               IF( ibonjtl(js) == -1 .OR. ibonjtl(js) == 2 )   njctls = MAX( 2, njctls ) 
     134               IF( ibonitl(js) ==  1 .OR. ibonitl(js) == 2 )   nictle = MIN( nictle, nimpptl(js) + nleitl(js) - 2 ) 
     135               IF( ibonjtl(js) ==  1 .OR. ibonjtl(js) == 2 )   njctle = MIN( njctle, njmpptl(js) + nlejtl(js) - 2 ) 
    146136            ENDIF 
    147137         ENDIF 
    148           
     138         ! 
    149139         IF( PRESENT(clinfo2) ) THEN 
    150140            DO jn = 1, jptra 
    151141               zvctl  = tra_ctl(jn,js) 
    152142               ztab3d(:,:,:) = tab4d(:,:,:,jn) 
    153                zsum          = SUM( ztab3d(nictls:nictle,njctls:njctle,1:kdir) & 
    154                   &                 *zmask(nictls:nictle,njctls:njctle,1:kdir) ) 
     143               zsum          = SUM( ztab3d(nictls:nictle,njctls:njctle,1:kdir)   & 
     144                  &                * zmask(nictls:nictle,njctls:njctle,1:kdir) ) 
    155145               WRITE(j_id,FMT="(3x,a,' : ',D23.16)") cl(jn), zsum-zvctl 
    156146               tra_ctl(jn,js) = zsum 
    157             ENDDO 
     147            END DO 
    158148         ELSE 
    159149            DO jn = 1, jptra 
    160150               ztab3d(:,:,:) = tab4d(:,:,:,jn) 
    161                zsum          = SUM( ztab3d(nictls:nictle,njctls:njctle,1:kdir) & 
    162                   &               * zmask(nictls:nictle,njctls:njctle,1:kdir) ) 
     151               zsum          = SUM( ztab3d(nictls:nictle,njctls:njctle,1:kdir)   & 
     152                  &               *  zmask(nictls:nictle,njctls:njctle,1:kdir) ) 
    163153               WRITE(j_id,FMT="(3x,a,' : ',D23.16)") cl(jn), zsum 
    164154            END DO 
    165155         ENDIF 
    166           
    167  
    168       ENDDO