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 775 for branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zdiat.F90 – NEMO

Ignore:
Timestamp:
2007-12-19T14:45:15+01:00 (16 years ago)
Author:
gm
Message:

dev_001_GM - PISCES in F90 : encapsulation of all p4z...F files in module F90 + doctor norme for local variables - compilation OK

File:
1 moved

Legend:

Unmodified
Added
Removed
  • branches/dev_001_GM/NEMO/TOP_SRC/PISCES_SMS/p4zdiat.F90

    r774 r775  
     1MODULE p4zdiat 
     2   !!====================================================================== 
     3   !!                         ***  MODULE p4zdiat  *** 
     4   !! TOP :   PISCES Compute the mortality terms for diatoms 
     5   !!====================================================================== 
     6   !! History :   1.0  !  2002     (O. Aumont)  Original code 
     7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  F90 
     8   !!---------------------------------------------------------------------- 
     9#if defined key_pisces 
     10   !!---------------------------------------------------------------------- 
     11   !!   'key_pisces'                                       PISCES bio-model 
     12   !!---------------------------------------------------------------------- 
     13   !!   p4z_diat       :   Compute the mortality terms for diatoms 
     14   !!---------------------------------------------------------------------- 
     15   USE oce_trc         ! 
     16   USE trp_trc         !  
     17   USE sms             !  
    118 
    2 CCC $Header$  
    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 CDIR$ LIST 
    7       SUBROUTINE p4zdiat 
    8 #if defined key_top && defined key_pisces 
    9 CCC--------------------------------------------------------------------- 
    10 CCC 
    11 CCC           ROUTINE p4zdiat : PISCES MODEL 
    12 CCC           ****************************** 
    13 CCC 
    14 CCC  PURPOSE : 
    15 CCC  --------- 
    16 CCC         Compute the mortality terms for diatoms 
    17 CCC 
    18 CC   INPUT : 
    19 CC   ----- 
    20 CC      argument 
    21 CC              None 
    22 CC      common 
    23 CC              all the common defined in opa 
    24 CC 
    25 CC 
    26 CC   OUTPUT :                   : no 
    27 CC   ------ 
    28 CC 
    29 CC   EXTERNAL : 
    30 CC   -------- 
    31 CC           None 
    32 CC 
    33 CC   MODIFICATIONS: 
    34 CC   -------------- 
    35 CC      original  : O. Aumont (2002) 
    36 CC---------------------------------------------------------------------- 
    37 CC parameters and commons 
    38 CC ====================== 
    39 CDIR$ NOLIST 
    40       USE oce_trc 
    41       USE trp_trc 
    42       USE sms 
    43       IMPLICIT NONE 
    44 CDIR$ LIST 
    45 CC---------------------------------------------------------------------- 
    46 CC local declarations 
    47 CC ================== 
    48       INTEGER ji, jj, jk 
    49       REAL zfact,zstep,compadi 
    50 C 
    51 C      Time step duration for biology 
    52 C      ------------------------------ 
    53 C 
    54         zstep=rfact2/rjjss 
    55 C 
    56 C    Aggregation term for diatoms is increased in case of nutrient 
    57 C    stress as observed in reality. The stressed cells become more 
    58 C    sticky and coagulate to sink quickly out of the euphotic zone 
    59 C     ------------------------------------------------------------ 
    60 C 
    61         DO jk = 1,jpkm1 
    62           DO jj = 1,jpj 
    63             DO ji = 1,jpi 
    64 C 
    65         compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.) 
    66         zfact=1./(trn(ji,jj,jk,jpdia)+rtrn) 
    67 C 
    68 C    Aggregation term for diatoms is increased in case of nutrient 
    69 C    stress as observed in reality. The stressed cells become more 
    70 C    sticky and coagulate to sink quickly out of the euphotic zone 
    71 C     ------------------------------------------------------------ 
    72 C 
    73         respp2(ji,jj,jk) = 1E6*zstep 
    74      &    *(wchl+wchld*(1.-xlimdia(ji,jj,jk))) 
    75      &    *zdiss(ji,jj,jk)*compadi*trn(ji,jj,jk,jpdia) 
    76 #    if defined key_off_degrad 
    77      &    *facvol(ji,jj,jk) 
    78 #    endif 
     19   IMPLICIT NONE 
     20   PRIVATE 
     21 
     22   PUBLIC   p4z_diat    ! called in p4zbio.F90 
     23 
     24   !!* Substitution 
     25#  include "domzgr_substitute.h90" 
     26   !!---------------------------------------------------------------------- 
     27   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     28   !! $Header:$  
     29   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     30   !!---------------------------------------------------------------------- 
     31 
     32CONTAINS 
     33 
     34   SUBROUTINE p4z_diat 
     35      !!--------------------------------------------------------------------- 
     36      !!                     ***  ROUTINE p4z_diat  *** 
     37      !! 
     38      !! ** Purpose :   Compute the mortality terms for diatoms 
     39      !! 
     40      !! ** Method  : - ??? 
     41      !!--------------------------------------------------------------------- 
     42      INTEGER  ::   ji, jj, jk 
     43      REAL(wp) ::   zfact, zstep, zcompadi 
     44      !!--------------------------------------------------------------------- 
     45 
     46        zstep = rfact2 / rjjss      ! Time step duration for biology 
     47 
     48 
     49!    Aggregation term for diatoms is increased in case of nutrient 
     50!    stress as observed in reality. The stressed cells become more 
     51!    sticky and coagulate to sink quickly out of the euphotic zone 
     52!     ------------------------------------------------------------ 
     53 
     54      DO jk = 1, jpkm1 
     55         DO jj = 1, jpj 
     56            DO ji = 1, jpi 
     57 
     58               zcompadi = MAX( ( trn(ji,jj,jk,jpdia) - 1e-8), 0. ) 
     59               zfact    = 1. / ( trn(ji,jj,jk,jpdia) + rtrn ) 
     60 
     61!    Aggregation term for diatoms is increased in case of nutrient 
     62!    stress as observed in reality. The stressed cells become more 
     63!    sticky and coagulate to sink quickly out of the euphotic zone 
     64!     ------------------------------------------------------------ 
     65 
     66               respp2 (ji,jj,jk) = 1.e6 * zstep * (  wchl + wchld * ( 1.- xlimdia(ji,jj,jk) )  )    & 
     67# if defined key_off_degrad 
     68                  &              * facvol(ji,jj,jk)       & 
     69# endif 
     70                  &              * zdiss(ji,jj,jk) * zcompadi * trn(ji,jj,jk,jpdia) 
    7971                                                                                
    80         respds(ji,jj,jk) = respp2(ji,jj,jk) 
    81      &    *trn(ji,jj,jk,jpbsi)*zfact 
     72               respds (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact 
    8273 
    83         respdf(ji,jj,jk) = respp2(ji,jj,jk) 
    84      &    *trn(ji,jj,jk,jpdfe)*zfact 
     74               respdf (ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact 
    8575                                                                                
    86         respdch(ji,jj,jk)=respp2(ji,jj,jk) 
    87      &    *trn(ji,jj,jk,jpdch)*zfact 
    88 C 
    89 C     Phytoplankton mortality.  
    90 C     ------------------------ 
    91 C 
    92         tortp2(ji,jj,jk) = mprat2*zstep*trn(ji,jj,jk,jpdia) 
    93      &    /(xkmort+trn(ji,jj,jk,jpdia))*compadi 
    94 #    if defined key_off_degrad 
    95      &    *facvol(ji,jj,jk) 
    96 #    endif 
     76               respdch(ji,jj,jk) = respp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact 
    9777 
    98         tortds(ji,jj,jk) = tortp2(ji,jj,jk) 
    99      &    *trn(ji,jj,jk,jpbsi)*zfact 
     78!     Phytoplankton mortality.  
     79!     ------------------------ 
     80               tortp2 (ji,jj,jk) = mprat2 * zstep * trn(ji,jj,jk,jpdia)     & 
     81# if defined key_off_degrad 
     82                  &              * facvol(ji,jj,jk)       & 
     83# endif 
     84                  &              / ( xkmort + trn(ji,jj,jk,jpdia) ) * zcompadi 
    10085 
    101         tortdf(ji,jj,jk)=tortp2(ji,jj,jk) 
    102      &    *trn(ji,jj,jk,jpdfe)*zfact 
     86               tortds (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpbsi) * zfact 
    10387 
    104         tortdch(ji,jj,jk)=tortp2(ji,jj,jk) 
    105      &    *trn(ji,jj,jk,jpdch)*zfact 
    106 C 
     88               tortdf (ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdfe) * zfact 
     89 
     90               tortdch(ji,jj,jk) = tortp2(ji,jj,jk) * trn(ji,jj,jk,jpdch) * zfact 
     91 
    10792            END DO 
    108           END DO 
    109         END DO 
    110 C 
    111 #endif 
    112       RETURN 
    113       END 
     93         END DO 
     94      END DO 
     95      ! 
     96   END SUBROUTINE p4z_diat 
     97 
     98#else 
     99   !!====================================================================== 
     100   !!  Dummy module :                                   No PISCES bio-model 
     101   !!====================================================================== 
     102CONTAINS 
     103   SUBROUTINE p4z_diat                    ! Empty routine 
     104   END SUBROUTINE p4z_diat 
     105#endif  
     106 
     107   !!====================================================================== 
     108END MODULE  p4zdiat 
Note: See TracChangeset for help on using the changeset viewer.