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

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 777 for branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trcbio.F90 – NEMO

Ignore:
Timestamp:
2007-12-19T19:40:57+01:00 (16 years ago)
Author:
gm
Message:

dev_001_GM - LOBSTER in F90 encapsulation of LOBSTER routines in module - compilation OK

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trcbio.F90

    r774 r777  
    1  
    2 CCC $Header: /home/opalod/NEMOCVSROOT/NEMO/TOP_SRC/SMS/trcbio.F,v 1.9 2007/10/12 09:36:28 opalod Exp $  
    3 CCC  TOP 1.0 , LOCEAN-IPSL (2005)  
    4 C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    5 C --------------------------------------------------------------------------- 
    6       SUBROUTINE trcbio(kt) 
    7 #if defined key_top && defined key_lobster 
    8 CCC--------------------------------------------------------------------- 
    9 CCC 
    10 CCC                       ROUTINE trcbio 
    11 CCC                     ******************* 
    12 CCC 
    13 CCC  PURPOSE : 
    14 CCC  --------- 
    15 CCC     compute the now trend due to biogeochemical processes 
    16 CCC     and add it to the general trend of passive tracers equations. 
    17 CCC 
    18 CCC   Three options: 
    19 CCC     Default option  : no biological trend 
    20 CCC       IF 'key_lobster' : LOBSTER1 bio-model 
    21 CCC 
    22 CC   METHOD : 
    23 CC   ------- 
    24 CC      each now biological flux is calculated  in FUNCTION of now 
    25 CC      concentrations of tracers. 
    26 CC      depending on the tracer, these fluxes are sources or sinks. 
    27 CC      the total of the sources and sinks for each tracer 
    28 CC      is added to the general trend. 
    29 CC 
    30 CC    tra = tra + zf...tra - zftra... 
    31 CC                             |         | 
    32 CC                             |         | 
    33 CC                          source      sink 
    34 CC 
    35 CC 
    36 CC      IF 'key_trc_diabio' key is activated, the biogeochemical 
    37 CC trends for passive tracers are saved for futher diagnostics. 
    38 CC 
    39 CC      multitasked on vertical slab (jj-loop) 
    40 CC 
    41 CC   ----- 
    42 CC      argument 
    43 CC              ktask           : task identificator 
    44 CC              kt              : time step 
    45 CC      COMMON 
    46 CC            /comcoo/          : orthogonal curvilinear coordinates 
    47 CC                                and scale factors 
    48 CC                                depths 
    49 CC            /cottrp/          : present and next fields for passive 
    50 CC                              : tracers 
    51 CC            /comtsk/          : multitasking 
    52 CC            /comtke/          : emin, en() 
    53 CC            /cotbio/          : biological parameters 
    54 CC 
    55 CC   OUTPUT : 
    56 CC   ------ 
    57 CC      COMMON 
    58 CC            /cottrp/ tra      : general tracer trend increased by the 
    59 CC                                now horizontal tracer advection trend 
    60 CC            /cottbd/ trbio    : now horizontal tracer advection trend 
    61 CC                                (IF 'key_trc_diabio' is activated) 
    62 CC 
    63 CC   WORKSPACE : 
    64 CC   --------- 
    65 CC      local 
    66 CC               zdet,zzoo,zphy,znh4,zno3,zdom    : now concentrations 
    67 CC               zlt,zlno3,zlnh4,zle              : limitation terms for phyto 
    68 CC               zfno3phy and so on..             : fluxes between bio boxes 
    69 CC               zphya,zzooa,zdeta, ...           : after bio trends 
    70 CC               zppz, zpdz, zpppz, zppdz, zfood  : preferences terms 
    71 CC               zfilpz, zfilpd                   : filtration terms 
    72 CC      COMMON 
    73 CC 
    74 CC   EXTERNAL :                   no 
    75 CC   -------- 
    76 CC 
    77 CC   REFERENCES :                 no 
    78 CC   ---------- 
    79 CC 
    80 CC   MODIFICATIONS: 
    81 CC   -------------- 
    82 CC       original : 99-07 (M. Levy) 
    83 CC                  00-12 (E. Kestenare): assign a parameter  
    84 CC                                        to name individual tracers 
    85 CC                  01-03 (M. Levy) LNO3 + dia2d 
    86 CC---------------------------------------------------------------------- 
    87 CC---------------------------------------------------------------------- 
    88       USE oce_trc 
    89       USE trp_trc 
    90       USE sms 
    91       USE lbclnk 
    92       IMPLICIT NONE 
    93 CC local declarations 
    94 CC ================== 
    95       INTEGER kt 
    96       INTEGER ji,jj,jk,jn 
    97       REAL ztot(jpi) 
    98 #if defined key_trc_diaadd 
    99       REAL ze3t(jpi,jpj,jpk) 
    100 #endif 
    101       REAL zdet,zzoo,zphy,zno3,znh4,zdom,zlno3,zlnh4,zle,zlt 
    102       REAL zno3phy, znh4phy, zphynh4, zphydom, zphydet, zphyzoo, zdetzoo 
    103      $    ,zzoonh4, zzoodom, zzoodet, zdetnh4, zdetdom, znh4no3, zdomnh4 
    104      $    ,zppz,zpdz,zpppz,zppdz,zfood,zfilpz,zfildz,zphya,zzooa,zno3a 
    105      $    ,znh4a,zdeta,zdoma, ztra, zzoobod, zboddet, zdomaju 
    106  
    107 CC---------------------------------------------------------------------- 
    108 CC statement functions 
    109 CC =================== 
    110 CDIR$ NOLIST 
    111 #include "domzgr_substitute.h90" 
    112 CDIR$ LIST 
    113 CCC--------------------------------------------------------------------- 
    114 CCC  OPA8, LODYC (07/99) 
    115 CCC--------------------------------------------------------------------- 
    116 C   | --------------| 
    117 C   | LOBSTER1 MODEL|  
    118 C   | --------------| 
    119  
    120 #if defined key_trc_diaadd 
    121 C convert fluxes in per day 
    122       ze3t(:,:,:) = 0. 
    123       DO jk=1,jpkbm1 
    124         DO jj = 2, jpjm1 
    125           DO ji = 2, jpim1 
    126             ze3t(ji,jj,jk)=fse3t(ji,jj,jk)*86400. 
    127           END DO 
    128         END DO 
    129       END DO  
    130 #endif 
    131 C 
    132 C vertical slab 
    133 C ============= 
    134 C 
    135       DO 1000 jj = 2,jpjm1 
    136 C 
    137 C 1. biological level 
    138 C =================== 
    139 C 
    140         DO ji = 2,jpim1 
    141           fbod(ji,jj)=0. 
    142 #if defined key_trc_diaadd 
    143           DO jn=1,jpdia2d 
    144             trc2d(ji,jj,jn)=0.           
    145           END DO  
    146 #endif 
    147         END DO  
    148  
    149         DO jk=1,jpkbm1 
    150           DO ji = 2,jpim1 
    151 C 
    152 C 
    153 C 1.1 trophic variables( det, zoo, phy, no3, nh4, dom) 
    154 C --------------------------------------------------- 
    155 C 
    156 C negative trophic variables DO not contribute to the fluxes 
    157 C 
    158             zdet = max(0.,trn(ji,jj,jk,jpdet)) 
    159             zzoo = max(0.,trn(ji,jj,jk,jpzoo)) 
    160             zphy = max(0.,trn(ji,jj,jk,jpphy)) 
    161             zno3 = max(0.,trn(ji,jj,jk,jpno3)) 
    162             znh4 = max(0.,trn(ji,jj,jk,jpnh4)) 
    163             zdom = max(0.,trn(ji,jj,jk,jpdom)) 
    164 C 
    165 C 
    166 C 1.2  Limitations 
    167 C ---------------- 
    168 C 
    169             zlt = 1. 
    170             zle = 1. - exp( -xpar(ji,jj,jk)/aki/zlt) 
    171 C psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03 
    172             zlno3 = zno3* exp(-psinut*znh4) / (akno3+zno3) 
    173             zlnh4 = znh4 / (znh4+aknh4)  
    174  
    175 C 
    176 C 
    177 C 1.3 sinks and sources 
    178 C --------------------- 
    179 C 
    180 C 
    181 C 1. phytoplankton production and exsudation 
    182 C 
    183             zno3phy = tmumax * zle * zlt * zlno3 * zphy 
    184             znh4phy = tmumax * zle * zlt * zlnh4 * zphy 
    185  
    186 C fphylab added by asklod AS Kremeur 2005-03 
    187             zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy) 
    188             zphynh4 = rgamma * fphylab * (zno3phy + znh4phy) 
    189  
    190 C 
    191 C 2. zooplankton production 
    192 C 
    193 C preferences 
    194 C 
    195             zppz = rppz 
    196             zpdz = 1. - rppz 
    197             zpppz = ( zppz * zphy ) / 
    198      $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 
    199             zppdz = ( zpdz * zdet ) / 
    200      $          ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 
    201             zfood = zpppz * zphy + zppdz * zdet 
    202 C 
    203 C filtration 
    204 C 
    205             zfilpz = taus * zpppz / (aks + zfood) 
    206             zfildz = taus * zppdz / (aks + zfood) 
    207 C 
    208 C grazing 
    209 C 
    210             zphyzoo = zfilpz * zphy * zzoo 
    211             zdetzoo = zfildz * zdet * zzoo 
    212 C 
    213 C 3. fecal pellets production 
    214 C 
    215             zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo 
    216 C 
    217 C 4. zooplankton liquide excretion 
    218 C 
    219             zzoonh4 = tauzn * fzoolab * zzoo  
    220             zzoodom = tauzn * (1 - fzoolab) * zzoo 
    221 C 
    222 C 5. mortality 
    223 C 
    224 C phytoplankton mortality  
    225 C 
    226             zphydet = tmminp * zphy 
    227 C 
    228 C 
    229 C zooplankton mortality 
    230 c closure : flux fbod is redistributed below level jpkbio 
    231 C 
    232             zzoobod = tmminz * zzoo * zzoo 
    233             fbod(ji,jj) = fbod(ji,jj)  
    234      $                 + (1-fdbod) * zzoobod * fse3t(ji,jj,jk) 
    235             zboddet = fdbod * zzoobod 
    236 C 
    237 C 
    238 C 6. detritus and dom breakdown 
    239 C 
    240 C 
    241             zdetnh4 = taudn * fdetlab * zdet 
    242             zdetdom = taudn * (1 - fdetlab) * zdet  
    243  
    244             zdomnh4 = taudomn * zdom 
    245 C 
    246 C flux added to express how the excess of nitrogen from 
    247 C PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment) 
    248             zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 
    249 C 
    250 C 7. Nitrification 
    251 C 
    252             znh4no3 = taunn * znh4 
    253 C 
    254 C 
    255 C 
    256 C 1.4 determination of trends 
    257 C --------------------------- 
    258 C 
    259 C total trend for each biological tracer 
    260 C 
    261             zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo 
    262      $          - zphydet 
    263             zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 
    264      $          - zzoobod 
    265             zno3a = - zno3phy + znh4no3 
    266             znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 
    267      $          + zdetnh4 + zdomaju 
    268             zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom + 
    269      $          zboddet 
    270             zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 
    271 C 
     1MODULE trcbio 
     2   !!====================================================================== 
     3   !!                         ***  MODULE trcbio  *** 
     4   !! TOP :   LOBSTER 
     5   !!====================================================================== 
     6   !! History :    -   !  1999-07  (M. Levy) Original code 
     7   !!              -   !  2000-12  (E. Kestenare) assign a parameter to name individual tracers 
     8   !!              -   !  2001-03  (M. Levy)  LNO3 + dia2d  
     9   !!             2.0  !  2007-12  (C. Deltel, G. Madec)  F90 
     10   !!---------------------------------------------------------------------- 
     11#if defined key_lobster 
     12   !!---------------------------------------------------------------------- 
     13   !!   'key_lobster'                                     LOBSTER bio-model 
     14   !!---------------------------------------------------------------------- 
     15   !!   trc_bio        :   
     16   !!---------------------------------------------------------------------- 
     17   USE oce_trc         ! 
     18   USE trp_trc         !  
     19   USE sms             !  
     20   USE lbclnk          !  
     21    
     22   IMPLICIT NONE 
     23   PRIVATE 
     24 
     25   PUBLIC   trc_bio    ! called in ??? 
     26 
     27   !!* Substitution 
     28#  include "domzgr_substitute.h90" 
     29   !!---------------------------------------------------------------------- 
     30   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     31   !! $Id:$  
     32   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     33   !!---------------------------------------------------------------------- 
     34 
     35CONTAINS 
     36 
     37   SUBROUTINE trc_bio( kt ) 
     38      !!--------------------------------------------------------------------- 
     39      !!                     ***  ROUTINE trc_bio  *** 
     40      !! 
     41      !! ** Purpose :   compute the now trend due to biogeochemical processes 
     42      !!              and add it to the general trend of passive tracers equations 
     43      !! 
     44      !! ** Method  :   each now biological flux is calculated in function of now 
     45      !!              concentrations of tracers. 
     46      !!              depending on the tracer, these fluxes are sources or sinks. 
     47      !!              the total of the sources and sinks for each tracer 
     48      !!              is added to the general trend. 
     49      !!         
     50      !!                      tra = tra + zf...tra - zftra... 
     51      !!                                     |         | 
     52      !!                                     |         | 
     53      !!                                  source      sink 
     54      !!         
     55      !!              IF 'key_trc_diabio' defined , the biogeochemical trends 
     56      !!              for passive tracers are saved for futher diagnostics. 
     57      !!--------------------------------------------------------------------- 
     58      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
     59      !! 
     60      INTEGER  ::   ji, jj, jk 
     61      REAL(wp) ::   zdet, zzoo, zphy, zno3, znh4, zdom      ! now concentrations 
     62      REAL(wp) ::   zlno3, zlnh4, zle, zlt                  ! limitation terms for phyto 
     63      REAL(wp) ::   zno3phy, znh4phy, zphynh4, zphydom 
     64      REAL(wp) ::   zphydet, zphyzoo, zdetzoo 
     65      REAL(wp) ::   zzoonh4, zzoodom, zzoodet, zdetnh4, zdetdom 
     66      REAL(wp) ::   znh4no3, zdomnh4, zppz, zpdz, zpppz, zppdz, zfood 
     67      REAL(wp) ::   zfilpz, zfildz, zphya, zzooa, zno3a 
     68      REAL(wp) ::   znh4a, zdeta, zdoma, zzoobod, zboddet, zdomaju 
     69#if defined key_trc_diaadd 
     70      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze3t 
     71#endif 
     72      !!--------------------------------------------------------------------- 
     73 
     74      IF( kt == nit000 ) THEN 
     75         IF(lwp) WRITE(numout,*) 
     76         IF(lwp) WRITE(numout,*) ' trc_bio: LOBSTER bio-model' 
     77         IF(lwp) WRITE(numout,*) ' ~~~~~~~' 
     78      ENDIF 
     79 
     80#if defined key_trc_diaadd 
     81      ! convert fluxes in per day 
     82      ze3t(:,:,:) = 0.e0 
     83      DO jk = 1, jpkbm1 
     84         ze3t(:,:,jk) = fse3t(:,:,jk) * 86400. 
     85      END DO  
     86#endif 
     87 
     88      fbod(:,:) = 0.e0 
     89#if defined key_trc_diaadd 
     90      DO ji = 1, jpdia2d 
     91         trc2d(:,:,ji) = 0.e0 
     92      END DO  
     93#endif 
     94 
     95 
     96      !                                      ! -------------------------- ! 
     97      DO jk = 1, jpkbm1                      !  Upper ocean (bio-layers)  ! 
     98         !                                   ! -------------------------- ! 
     99         DO jj = 2, jpjm1 
     100            DO ji = 2, jpim1           !!gm  use of fs_2 fs_jpm1  required here 
     101 
     102               ! trophic variables( det, zoo, phy, no3, nh4, dom) 
     103               ! ------------------------------------------------ 
     104 
     105               ! negative trophic variables DO not contribute to the fluxes 
     106               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 
     107               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 
     108               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 
     109               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 
     110               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 
     111               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 
     112 
     113               ! Limitations 
     114               zlt   = 1. 
     115               zle   = 1. - EXP( -xpar(ji,jj,jk) / aki / zlt ) 
     116               ! psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03 
     117               zlno3 = zno3 * EXP( -psinut * znh4 ) / ( akno3 + zno3 ) 
     118               zlnh4 = znh4 / (znh4+aknh4)  
     119 
     120 
     121               ! sinks and sources 
     122               !    phytoplankton production and exsudation 
     123               zno3phy = tmumax * zle * zlt * zlno3 * zphy 
     124               znh4phy = tmumax * zle * zlt * zlnh4 * zphy 
     125 
     126               !    fphylab added by asklod AS Kremeur 2005-03 
     127               zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy) 
     128               zphynh4 = rgamma * fphylab * (zno3phy + znh4phy) 
     129 
     130               ! zooplankton production 
     131               !    preferences 
     132               zppz = rppz 
     133               zpdz = 1. - rppz 
     134               zpppz = ( zppz * zphy ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 
     135               zppdz = ( zpdz * zdet ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 
     136               zfood = zpppz * zphy + zppdz * zdet 
     137               !    filtration 
     138               zfilpz = taus * zpppz / (aks + zfood) 
     139               zfildz = taus * zppdz / (aks + zfood) 
     140               !    grazing 
     141               zphyzoo = zfilpz * zphy * zzoo 
     142               zdetzoo = zfildz * zdet * zzoo 
     143 
     144               ! fecal pellets production 
     145               zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo 
     146  
     147               ! zooplankton liquide excretion 
     148               zzoonh4 = tauzn * fzoolab * zzoo  
     149               zzoodom = tauzn * (1 - fzoolab) * zzoo 
     150 
     151               ! mortality 
     152               !    phytoplankton mortality  
     153               zphydet = tmminp * zphy 
     154 
     155               !    zooplankton mortality 
     156               !    closure : flux fbod is redistributed below level jpkbio 
     157               zzoobod = tmminz * zzoo * zzoo 
     158               fbod(ji,jj) = fbod(ji,jj) + (1-fdbod) * zzoobod * fse3t(ji,jj,jk) 
     159               zboddet = fdbod * zzoobod 
     160 
     161               ! detritus and dom breakdown 
     162               zdetnh4 = taudn * fdetlab * zdet 
     163               zdetdom = taudn * (1 - fdetlab) * zdet  
     164 
     165               zdomnh4 = taudomn * zdom 
     166 
     167               ! flux added to express how the excess of nitrogen from 
     168               ! PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment) 
     169               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 
     170 
     171               ! Nitrification 
     172               znh4no3 = taunn * znh4 
     173 
     174               ! determination of trends 
     175               !    total trend for each biological tracer 
     176               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 
     177               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 
     178               zno3a = - zno3phy + znh4no3 
     179               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 
     180               zdeta =   zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet 
     181               zdoma =   zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 
     182    
    272183#if defined key_trc_diabio 
    273             trbio(ji,jj,jk,1) = zno3phy 
    274             trbio(ji,jj,jk,2) = znh4phy 
    275             trbio(ji,jj,jk,3) = zphynh4 
    276             trbio(ji,jj,jk,4) = zphydom 
    277             trbio(ji,jj,jk,5) = zphyzoo 
    278             trbio(ji,jj,jk,6) = zphydet 
    279             trbio(ji,jj,jk,7) = zdetzoo 
    280             trbio(ji,jj,jk,9) = zzoodet 
    281             trbio(ji,jj,jk,10) = zzoobod 
    282             trbio(ji,jj,jk,11) = zzoonh4 
    283             trbio(ji,jj,jk,12) = zzoodom 
    284             trbio(ji,jj,jk,13) = znh4no3 
    285             trbio(ji,jj,jk,14) = zdomnh4 
    286             trbio(ji,jj,jk,15) = zdetnh4 
    287 #endif 
    288 #if defined key_trc_diaadd 
    289             trc2d(ji,jj,1)=trc2d(ji,jj,1)+zno3phy*ze3t(ji,jj,jk)           
    290             trc2d(ji,jj,2)=trc2d(ji,jj,2)+znh4phy*ze3t(ji,jj,jk) 
    291             trc2d(ji,jj,3)=trc2d(ji,jj,3)+zphydom*ze3t(ji,jj,jk) 
    292             trc2d(ji,jj,4)=trc2d(ji,jj,4)+zphynh4*ze3t(ji,jj,jk) 
    293             trc2d(ji,jj,5)=trc2d(ji,jj,5)+zphyzoo*ze3t(ji,jj,jk) 
    294             trc2d(ji,jj,6)=trc2d(ji,jj,6)+zphydet*ze3t(ji,jj,jk) 
    295             trc2d(ji,jj,7)=trc2d(ji,jj,7)+zdetzoo*ze3t(ji,jj,jk) 
    296 c trend number 8 is in trcsed.F             
    297             trc2d(ji,jj,9)=trc2d(ji,jj,9)+zzoodet*ze3t(ji,jj,jk) 
    298             trc2d(ji,jj,10)=trc2d(ji,jj,10)+zzoobod*ze3t(ji,jj,jk) 
    299             trc2d(ji,jj,11)=trc2d(ji,jj,11)+zzoonh4*ze3t(ji,jj,jk) 
    300             trc2d(ji,jj,12)=trc2d(ji,jj,12)+zzoodom*ze3t(ji,jj,jk) 
    301             trc2d(ji,jj,13)=trc2d(ji,jj,13)+znh4no3*ze3t(ji,jj,jk) 
    302             trc2d(ji,jj,14)=trc2d(ji,jj,14)+zdomnh4*ze3t(ji,jj,jk) 
    303             trc2d(ji,jj,15)=trc2d(ji,jj,15)+zdetnh4*ze3t(ji,jj,jk) 
     184               trbio(ji,jj,jk, 1) = zno3phy 
     185               trbio(ji,jj,jk, 2) = znh4phy 
     186               trbio(ji,jj,jk, 3) = zphynh4 
     187               trbio(ji,jj,jk, 4) = zphydom 
     188               trbio(ji,jj,jk, 5) = zphyzoo 
     189               trbio(ji,jj,jk, 6) = zphydet 
     190               trbio(ji,jj,jk, 7) = zdetzoo 
     191               trbio(ji,jj,jk, 9) = zzoodet 
     192               trbio(ji,jj,jk,10) = zzoobod 
     193               trbio(ji,jj,jk,11) = zzoonh4 
     194               trbio(ji,jj,jk,12) = zzoodom 
     195               trbio(ji,jj,jk,13) = znh4no3 
     196               trbio(ji,jj,jk,14) = zdomnh4 
     197               trbio(ji,jj,jk,15) = zdetnh4 
     198#endif 
     199#if defined key_trc_diaadd 
     200               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk)  
     201               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk) 
     202               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk) 
     203               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk) 
     204               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk) 
     205               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk) 
     206               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk) 
     207! trend number 8 is in trcsed.F             
     208               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk) 
     209               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk) 
     210               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk) 
     211               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk) 
     212               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk) 
     213               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk) 
     214               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk) 
    304215              
    305             trc2d(ji,jj,16)=trc2d(ji,jj,16)+(zno3phy+znh4phy-zphynh4 
    306      $          -zphydom-zphyzoo-zphydet)*ze3t(ji,jj,jk) 
    307             trc2d(ji,jj,17)=trc2d(ji,jj,17)+(zphyzoo+zdetzoo-zzoodet 
    308      $          -zzoobod-zzoonh4-zzoodom) *ze3t(ji,jj,jk) 
    309             trc2d(ji,jj,18)=trc2d(ji,jj,18)+zdetdom*ze3t(ji,jj,jk) 
    310 c trend number 19 is in trcexp.F 
    311             trc3d(ji,jj,jk,1)= zno3phy *86400      
    312             trc3d(ji,jj,jk,2)= znh4phy *86400      
    313             trc3d(ji,jj,jk,3)= znh4no3 *86400      
    314 #endif 
    315 C 
    316 C tracer flux at totox-point added to the general trend 
    317 C 
    318             tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
    319             tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
    320             tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
    321             tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
    322             tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
    323             tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
    324 C 
    325           END DO 
    326         END DO 
    327 C 
    328 C 2. under biological level 
    329 C ========================= 
    330 C 
    331         DO jk = jpkb,jpk 
    332 C 
    333 C 2.1 compute the remineralisation of all quantities towards nitrate  
    334 C ------------------------------------------------------------------ 
    335 C 
    336           DO ji = 2,jpim1 
    337 C 
    338 C 2.1.1 trophic variables( det, zoo, phy, no3, nh4, dom) 
    339 C ----------------------------------------------------- 
    340 C 
    341 C negative trophic variables DO not contribute to the fluxes 
    342 C 
    343             zdet = max(0.,trn(ji,jj,jk,jpdet)) 
    344             zzoo = max(0.,trn(ji,jj,jk,jpzoo)) 
    345             zphy = max(0.,trn(ji,jj,jk,jpphy)) 
    346             zno3 = max(0.,trn(ji,jj,jk,jpno3)) 
    347             znh4 = max(0.,trn(ji,jj,jk,jpnh4)) 
    348             zdom = max(0.,trn(ji,jj,jk,jpdom)) 
    349 CC 
    350 CC 2.1.2  Limitations 
    351 CC ---------------- 
    352 CC 
    353             zlt = 0. 
    354             zle = 0. 
    355             zlno3 = 0. 
    356             zlnh4 = 0. 
    357 CC 
    358 CC 
    359 CC 2.1.3 sinks and sources 
    360 CC --------------------- 
    361 CC 
    362 CC 
    363 CC 1. phytoplankton production and exsudation 
    364 CC 
    365             zno3phy = 0. 
    366             znh4phy = 0. 
    367 C 
    368             zphydom = 0. 
    369             zphynh4 = 0. 
    370 CC 
    371 CC 2. zooplankton production 
    372 CC 
    373 CC grazing 
    374 CC 
    375             zphyzoo = 0.  
    376             zdetzoo = 0. 
    377 CC 
    378 CC 3. fecal pellets production 
    379 CC 
    380             zzoodet = 0. 
    381 CC 
    382 CC 4. zooplankton liquide excretion 
    383 CC 
    384             zzoonh4 = tauzn * fzoolab * zzoo  
    385             zzoodom = tauzn * (1 - fzoolab) * zzoo 
    386 CC 
    387 CC 5. mortality 
    388 CC 
    389 CC phytoplankton mortality  
    390 CC 
    391             zphydet = tmminp * zphy 
    392 CC 
    393 CC 
    394 CC zooplankton mortality 
    395 Cc closure : flux fbod is redistributed below level jpkbio 
    396 CC 
    397             zzoobod = 0. 
    398             zboddet = 0.  
    399 CC 
    400 CC 
    401 CC 6. detritus and dom breakdown 
    402 CC 
    403             zdetnh4 = taudn * fdetlab * zdet 
    404             zdetdom = taudn * (1 - fdetlab) * zdet  
    405 C 
    406             zdomnh4 = taudomn * zdom 
    407             zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 
    408 CC 
    409 CC 7. Nitrification 
    410 CC 
    411             znh4no3 = taunn * znh4 
    412 CC 
    413 CC 
    414 CC 2.1.4 determination of trends 
    415 CC --------------------------- 
    416 CC 
    417 CC total trend for each biological tracer 
    418 CC 
    419             zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo 
    420      $          - zphydet 
    421             zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 
    422      $          - zzoobod 
    423             zno3a = - zno3phy + znh4no3 
    424             znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 
    425      $          + zdetnh4 + zdomaju 
    426             zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom + 
    427      $          zboddet 
    428             zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 
    429 CC 
     216               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   & 
     217                  &                                 - zphydom - zphyzoo - zphydet ) * ze3t(ji,jj,jk) 
     218               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   & 
     219                  &                                 - zzoobod - zzoonh4 - zzoodom ) * ze3t(ji,jj,jk) 
     220               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk) 
     221! trend number 19 is in trcexp.F 
     222               trc3d(ji,jj,jk,1) = zno3phy * 86400      
     223               trc3d(ji,jj,jk,2) = znh4phy * 86400      
     224               trc3d(ji,jj,jk,3) = znh4no3 * 86400      
     225#endif 
     226 
     227               ! tracer flux at totox-point added to the general trend 
     228               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
     229               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
     230               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
     231               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
     232               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
     233               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
     234 
     235            END DO 
     236         END DO 
     237      END DO 
     238 
     239!!gm do loop until jpkm1 only! 
     240      !                                      ! -------------------------- ! 
     241      DO jk = jpkb, jpk                      !  Upper ocean (bio-layers)  ! 
     242         !                                   ! -------------------------- ! 
     243 
     244         DO jj = 2, jpjm1 
     245            DO ji = 2,jpim1             !!gm use of fs_2 & fs_jpim1 required 
     246  
     247               ! remineralisation of all quantities towards nitrate  
     248 
     249               !    trophic variables( det, zoo, phy, no3, nh4, dom) 
     250               !       negative trophic variables DO not contribute to the fluxes 
     251               zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 
     252               zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 
     253               zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 
     254               zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 
     255               znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 
     256               zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 
     257 
     258               !    Limitations 
     259               zlt   = 0.e0 
     260               zle   = 0.e0 
     261               zlno3 = 0.e0 
     262               zlnh4 = 0.e0 
     263 
     264               !    sinks and sources 
     265               !       phytoplankton production and exsudation 
     266               zno3phy = 0.e0 
     267               znh4phy = 0.e0 
     268               zphydom = 0.e0 
     269               zphynh4 = 0.e0 
     270 
     271               !    zooplankton production 
     272               zphyzoo = 0.e0      ! grazing 
     273               zdetzoo = 0.e0 
     274 
     275               zzoodet = 0.e0      ! fecal pellets production 
     276 
     277               zzoonh4 = tauzn * fzoolab * zzoo         ! zooplankton liquide excretion 
     278               zzoodom = tauzn * (1 - fzoolab) * zzoo 
     279 
     280               !    mortality 
     281               zphydet = tmminp * zphy      ! phytoplankton mortality  
     282 
     283               zzoobod = 0.e0               ! zooplankton mortality 
     284               zboddet = 0.e0               ! closure : flux fbod is redistributed below level jpkbio 
     285 
     286               !    detritus and dom breakdown 
     287               zdetnh4 = taudn * fdetlab * zdet 
     288               zdetdom = taudn * (1 - fdetlab) * zdet  
     289 
     290               zdomnh4 = taudomn * zdom 
     291               zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 
     292 
     293               !    Nitrification 
     294               znh4no3 = taunn * znh4 
     295 
     296 
     297               ! determination of trends 
     298               !     total trend for each biological tracer 
     299               zphya =   zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 
     300               zzooa =   zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 
     301               zno3a = - zno3phy + znh4no3 
     302               znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 
     303               zdeta = zphydet + zzoodet  - zdetzoo - zdetnh4 - zdetdom + zboddet 
     304               zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 
     305 
    430306#if defined key_trc_diabio 
    431             trbio(ji,jj,jk,1) = zno3phy 
    432             trbio(ji,jj,jk,2) = znh4phy 
    433             trbio(ji,jj,jk,3) = zphynh4 
    434             trbio(ji,jj,jk,4) = zphydom 
    435             trbio(ji,jj,jk,5) = zphyzoo 
    436             trbio(ji,jj,jk,6) = zphydet 
    437             trbio(ji,jj,jk,7) = zdetzoo 
    438             trbio(ji,jj,jk,9) = zzoodet 
    439             trbio(ji,jj,jk,10) = zzoobod 
    440             trbio(ji,jj,jk,11) = zzoonh4 
    441             trbio(ji,jj,jk,12) = zzoodom 
    442             trbio(ji,jj,jk,13) = znh4no3 
    443             trbio(ji,jj,jk,14) = zdomnh4 
    444             trbio(ji,jj,jk,15) = zdetnh4 
    445 #endif 
    446 #if defined key_trc_diaadd 
    447             trc2d(ji,jj,1)=trc2d(ji,jj,1)+zno3phy*ze3t(ji,jj,jk)           
    448             trc2d(ji,jj,2)=trc2d(ji,jj,2)+znh4phy*ze3t(ji,jj,jk) 
    449             trc2d(ji,jj,3)=trc2d(ji,jj,3)+zphydom*ze3t(ji,jj,jk) 
    450             trc2d(ji,jj,4)=trc2d(ji,jj,4)+zphynh4*ze3t(ji,jj,jk) 
    451             trc2d(ji,jj,5)=trc2d(ji,jj,5)+zphyzoo*ze3t(ji,jj,jk) 
    452             trc2d(ji,jj,6)=trc2d(ji,jj,6)+zphydet*ze3t(ji,jj,jk) 
    453             trc2d(ji,jj,7)=trc2d(ji,jj,7)+zdetzoo*ze3t(ji,jj,jk) 
    454 Cc trend number 8 is in trcsed.F             
    455             trc2d(ji,jj,9)=trc2d(ji,jj,9)+zzoodet*ze3t(ji,jj,jk) 
    456             trc2d(ji,jj,10)=trc2d(ji,jj,10)+zzoobod*ze3t(ji,jj,jk) 
    457             trc2d(ji,jj,11)=trc2d(ji,jj,11)+zzoonh4*ze3t(ji,jj,jk) 
    458             trc2d(ji,jj,12)=trc2d(ji,jj,12)+zzoodom*ze3t(ji,jj,jk) 
    459             trc2d(ji,jj,13)=trc2d(ji,jj,13)+znh4no3*ze3t(ji,jj,jk) 
    460             trc2d(ji,jj,14)=trc2d(ji,jj,14)+zdomnh4*ze3t(ji,jj,jk) 
    461             trc2d(ji,jj,15)=trc2d(ji,jj,15)+zdetnh4*ze3t(ji,jj,jk) 
     307               trbio(ji,jj,jk, 1) = zno3phy 
     308               trbio(ji,jj,jk, 2) = znh4phy 
     309               trbio(ji,jj,jk, 3) = zphynh4 
     310               trbio(ji,jj,jk, 4) = zphydom 
     311               trbio(ji,jj,jk, 5) = zphyzoo 
     312               trbio(ji,jj,jk, 6) = zphydet 
     313               trbio(ji,jj,jk, 7) = zdetzoo 
     314               trbio(ji,jj,jk, 9) = zzoodet 
     315               trbio(ji,jj,jk,10) = zzoobod 
     316               trbio(ji,jj,jk,11) = zzoonh4 
     317               trbio(ji,jj,jk,12) = zzoodom 
     318               trbio(ji,jj,jk,13) = znh4no3 
     319               trbio(ji,jj,jk,14) = zdomnh4 
     320               trbio(ji,jj,jk,15) = zdetnh4 
     321#endif 
     322#if defined key_trc_diaadd 
     323               trc2d(ji,jj, 1) = trc2d(ji,jj, 1) + zno3phy * ze3t(ji,jj,jk)           
     324               trc2d(ji,jj, 2) = trc2d(ji,jj, 2) + znh4phy * ze3t(ji,jj,jk) 
     325               trc2d(ji,jj, 3) = trc2d(ji,jj, 3) + zphydom * ze3t(ji,jj,jk) 
     326               trc2d(ji,jj, 4) = trc2d(ji,jj, 4) + zphynh4 * ze3t(ji,jj,jk) 
     327               trc2d(ji,jj, 5) = trc2d(ji,jj, 5) + zphyzoo * ze3t(ji,jj,jk) 
     328               trc2d(ji,jj, 6) = trc2d(ji,jj, 6) + zphydet * ze3t(ji,jj,jk) 
     329               trc2d(ji,jj, 7) = trc2d(ji,jj, 7) + zdetzoo * ze3t(ji,jj,jk) 
     330               ! trend number 8 is in trcsed.F             
     331               trc2d(ji,jj, 9) = trc2d(ji,jj, 9) + zzoodet * ze3t(ji,jj,jk) 
     332               trc2d(ji,jj,10) = trc2d(ji,jj,10) + zzoobod * ze3t(ji,jj,jk) 
     333               trc2d(ji,jj,11) = trc2d(ji,jj,11) + zzoonh4 * ze3t(ji,jj,jk) 
     334               trc2d(ji,jj,12) = trc2d(ji,jj,12) + zzoodom * ze3t(ji,jj,jk) 
     335               trc2d(ji,jj,13) = trc2d(ji,jj,13) + znh4no3 * ze3t(ji,jj,jk) 
     336               trc2d(ji,jj,14) = trc2d(ji,jj,14) + zdomnh4 * ze3t(ji,jj,jk) 
     337               trc2d(ji,jj,15) = trc2d(ji,jj,15) + zdetnh4 * ze3t(ji,jj,jk) 
    462338              
    463             trc2d(ji,jj,16)=trc2d(ji,jj,16)+(zno3phy+znh4phy-zphynh4 
    464      $          -zphydom-zphyzoo-zphydet)*ze3t(ji,jj,jk) 
    465             trc2d(ji,jj,17)=trc2d(ji,jj,17)+(zphyzoo+zdetzoo-zzoodet 
    466      $          -zzoobod-zzoonh4-zzoodom) *ze3t(ji,jj,jk) 
    467             trc2d(ji,jj,18)=trc2d(ji,jj,18)+zdetdom*ze3t(ji,jj,jk) 
    468  
    469             trc3d(ji,jj,jk,1)= zno3phy *86400      
    470             trc3d(ji,jj,jk,2)= znh4phy *86400      
    471             trc3d(ji,jj,jk,3)= znh4no3 *86400      
    472 #endif 
    473 CC 
    474 CC tracer flux at totox-point added to the general trend 
    475 CC 
    476             tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
    477             tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
    478             tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
    479             tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
    480             tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
    481             tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
    482 CC 
    483           END DO 
    484         END DO 
    485  
    486  
    487  
    488  
    489 c$$$        DO jk = jpkb,jpk 
    490 c$$$C 
    491 c$$$C 2.1 Old way to compute the remineralisation : asklod AS Kremeur (before 2005-03) 
    492 c$$$C ------------------------------------------------------------------ 
    493 c$$$C 
    494 c$$$          DO ji=2,jpim1 
    495 c$$$            ztot(ji) = 0. 
    496 c$$$          END DO  
    497 c$$$          DO jn=1,jptra 
    498 c$$$            IF (ctrcnm(jn).NE.'NO3') THEN  
    499 c$$$                DO ji=2,jpim1 
    500 c$$$                  ztra = remdmp(jk,jn) * trn(ji,jj,jk,jn)  
    501 c$$$                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) - ztra 
    502 c$$$                  ztot(ji) = ztot(ji) + ztra 
    503 c$$$                END DO  
    504 c$$$            ENDIF 
    505 c$$$          END DO  
    506 c$$$          DO jn=1,jptra 
    507 c$$$            IF (ctrcnm(jn).EQ.'NO3') THEN  
    508 c$$$                DO ji=2,jpim1 
    509 c$$$                  tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztot(ji) 
    510 c$$$                END DO 
    511 c$$$#if defined key_trc_diabio 
    512 c$$$                trbio(ji,jj,jk,1)=ztot(ji) 
    513 c$$$#endif  
    514 c$$$            ENDIF 
    515 c$$$          END DO 
    516 c$$$        END DO  
    517  
    518 C 
    519 C 
    520 C END of slab 
    521 C =========== 
    522 C 
    523  1000 CONTINUE 
    524  
    525 #if defined key_trc_diaadd 
    526  
    527 C Lateral boundary conditions on trc2d 
    528       DO jn=1,jpdia2d 
    529           CALL lbc_lnk(trc2d(:,:,jn),'T',1. ) 
    530       END DO  
    531  
    532 C Lateral boundary conditions on trc3d 
    533       DO jn=1,jpdia3d 
    534           CALL lbc_lnk(trc3d(:,:,1,jn),'T',1. ) 
    535       END DO  
    536  
     339               trc2d(ji,jj,16) = trc2d(ji,jj,16) + (  zno3phy + znh4phy - zphynh4   & 
     340                  &                                 - zphydom - zphyzoo - zphydet  ) * ze3t(ji,jj,jk) 
     341               trc2d(ji,jj,17) = trc2d(ji,jj,17) + (  zphyzoo + zdetzoo - zzoodet   & 
     342                  &                                 - zzoobod - zzoonh4 - zzoodom  ) * ze3t(ji,jj,jk) 
     343               trc2d(ji,jj,18) = trc2d(ji,jj,18) + zdetdom * ze3t(ji,jj,jk) 
     344 
     345               trc3d(ji,jj,jk,1) =  zno3phy * 86400      
     346               trc3d(ji,jj,jk,2) =  znh4phy * 86400      
     347               trc3d(ji,jj,jk,3) =  znh4no3 * 86400      
     348#endif 
     349 
     350               ! tracer flux at totox-point added to the general trend 
     351               tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 
     352               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 
     353               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 
     354               tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 
     355               tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 
     356               tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 
     357               ! 
     358            END DO 
     359         END DO 
     360      END DO 
     361 
     362#if defined key_trc_diaadd 
     363      ! Lateral boundary conditions on trc2d and trc3d 
     364      DO ji = 1, jpdia2d 
     365          CALL lbc_lnk( trc2d(:,:,ji),'T', 1. ) 
     366      END DO  
     367      DO ji = 1, jpdia3d 
     368          CALL lbc_lnk( trc3d(:,:,1,ji),'T', 1. ) 
     369      END DO  
    537370#endif 
    538371 
    539372#if defined key_trc_diabio 
    540 C Lateral boundary conditions on trcbio 
    541       DO jn=1,jpdiabio 
    542           CALL lbc_lnk(trbio(:,:,1,jn),'T',1. ) 
    543       END DO  
    544 #endif 
    545  
    546 #  else 
    547 C 
    548 C    no biological model 
    549 C 
    550 #  endif 
    551  
    552 C 
    553 C 
    554       RETURN 
    555       END 
     373      ! Lateral boundary conditions on trcbio 
     374      DO ji = 1, jpdiabio 
     375          CALL lbc_lnk( trbio(:,:,1,ji),'T', 1. ) 
     376      END DO  
     377#endif 
     378      ! 
     379   END SUBROUTINE trc_bio 
     380 
     381#else 
     382   !!====================================================================== 
     383   !!  Dummy module :                                   No PISCES bio-model 
     384   !!====================================================================== 
     385CONTAINS 
     386   SUBROUTINE trc_bio( kt )                   ! Empty routine 
     387      INTEGER, INTENT( in ) ::   kt 
     388      WRITE(*,*) 'trc_bio: You should not have seen this print! error?', kt 
     389   END SUBROUTINE trc_bio 
     390#endif  
     391 
     392   !!====================================================================== 
     393END MODULE  trcbio 
Note: See TracChangeset for help on using the changeset viewer.