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/p4znano.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/p4znano.F90

    r774 r775  
     1MODULE p4znano 
     2   !!====================================================================== 
     3   !!                         ***  MODULE p4znano  *** 
     4   !! TOP :   PISCES Compute the mortality terms for nanophytoplankton 
     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_nano       :   Compute the mortality terms for nanophytoplankton 
     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 p4znano 
    8 #if defined key_top && defined key_pisces 
    9 CCC--------------------------------------------------------------------- 
    10 CCC 
    11 CCC          ROUTINE p4znano : PISCES MODEL 
    12 CCC          ****************************** 
    13 CCC 
    14 CCC  PURPOSE : 
    15 CCC  --------- 
    16 CCC         Compute the mortality terms for nanophytoplankton 
    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,compaph 
    50 C 
    51 C      Time step duration for biology 
    52 C      ------------------------------ 
    53 C 
    54         zstep=rfact2/rjjss 
    55 C 
    56         DO jk = 1,jpkm1 
    57           DO jj = 1,jpj 
    58             DO ji = 1,jpi 
    59 C 
    60         compaph = max((trn(ji,jj,jk,jpphy)-1E-8),0.) 
    61         zfact=1./(trn(ji,jj,jk,jpphy)+rtrn) 
    62 C 
    63 C     Squared mortality of Phyto similar to a sedimentation term during 
    64 C     blooms (Doney et al. 1996) 
    65 C     ----------------------------------------------------------------- 
    66 C 
    67         respp(ji,jj,jk) = wchl*1e6*zstep*zdiss(ji,jj,jk) 
    68      &    *compaph*trn(ji,jj,jk,jpphy) 
    69 #    if defined key_off_degrad 
    70      &    *facvol(ji,jj,jk) 
    71 #    endif 
     19   IMPLICIT NONE 
     20   PRIVATE 
     21 
     22   PUBLIC   p4z_nano    ! 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_nano 
     35      !!--------------------------------------------------------------------- 
     36      !!                     ***  ROUTINE p4z_nano  *** 
     37      !! 
     38      !! ** Purpose :   Compute the mortality terms for nanophytoplankton 
     39      !! 
     40      !! ** Method  : - ??? 
     41      !!--------------------------------------------------------------------- 
     42      INTEGER  ::   ji, jj, jk 
     43      REAL(wp) ::   zfact, zstep, zcompaph 
     44      !!--------------------------------------------------------------------- 
     45 
     46 
     47      zstep = rfact2 / rjjss      ! Time step duration for biology 
     48 
     49 
     50      DO jk = 1, jpkm1 
     51         DO jj = 1, jpj 
     52            DO ji = 1, jpi 
     53 
     54               zcompaph = MAX( ( trn(ji,jj,jk,jpphy) - 1e-8 ), 0.e0 ) 
     55               zfact    = 1./ ( trn(ji,jj,jk,jpphy) + rtrn ) 
     56 
     57!     Squared mortality of Phyto similar to a sedimentation term during 
     58!     blooms (Doney et al. 1996) 
     59!     ----------------------------------------------------------------- 
     60               respp(ji,jj,jk) = wchl * 1.e6 * zstep * zdiss(ji,jj,jk)   & 
     61# if defined key_off_degrad 
     62                  &            * facvol(ji,jj,jk)     & 
     63# endif 
     64                  &            * zcompaph * trn(ji,jj,jk,jpphy) 
    7265                                                                                
    73         respnf(ji,jj,jk) = respp(ji,jj,jk) 
    74      &    *trn(ji,jj,jk,jpnfe)*zfact 
     66               respnf (ji,jj,jk) = respp(ji,jj,jk) * trn(ji,jj,jk,jpnfe) * zfact 
    7567                                                                                
    76         respnch(ji,jj,jk) = respp(ji,jj,jk) 
    77      &    *trn(ji,jj,jk,jpnch)*zfact 
    78 C 
    79 C     Phytoplankton mortality. This mortality loss is slightly 
    80 C     increased when nutrients are limiting phytoplankton growth 
    81 C     as observed for instance in case of iron limitation. 
    82 C     ---------------------------------------------------------- 
    83 C 
    84         tortp(ji,jj,jk) = mprat*zstep*trn(ji,jj,jk,jpphy) 
    85      $    /(xkmort+trn(ji,jj,jk,jpphy))*compaph 
    86 #    if defined key_off_degrad 
    87      &    *facvol(ji,jj,jk) 
    88 #    endif 
     68               respnch(ji,jj,jk) = respp(ji,jj,jk) * trn(ji,jj,jk,jpnch) * zfact 
     69 
     70!     Phytoplankton mortality. This mortality loss is slightly 
     71!     increased when nutrients are limiting phytoplankton growth 
     72!     as observed for instance in case of iron limitation. 
     73!     ---------------------------------------------------------- 
     74               tortp  (ji,jj,jk) = mprat * zstep * trn(ji,jj,jk,jpphy)          & 
     75# if defined key_off_degrad 
     76                  &              * facvol(ji,jj,jk)     & 
     77# endif 
     78                  &              / ( xkmort + trn(ji,jj,jk,jpphy) ) * zcompaph 
    8979                                                                                
    90         tortnf(ji,jj,jk)=tortp(ji,jj,jk) 
    91      &    *trn(ji,jj,jk,jpnfe)*zfact 
     80               tortnf (ji,jj,jk) = tortp(ji,jj,jk) * trn(ji,jj,jk,jpnfe) * zfact 
    9281                                                                                
    93         tortnch(ji,jj,jk)=tortp(ji,jj,jk) 
    94      &    *trn(ji,jj,jk,jpnch)*zfact 
    95 C 
     82               tortnch(ji,jj,jk) = tortp(ji,jj,jk) * trn(ji,jj,jk,jpnch) * zfact 
     83 
    9684            END DO 
    97           END DO 
    98         END DO 
    99 C 
    100 #endif 
    101       RETURN 
    102       END 
     85         END DO 
     86      END DO 
     87      ! 
     88   END SUBROUTINE p4z_nano 
     89 
     90#else 
     91   !!====================================================================== 
     92   !!  Dummy module :                                   No PISCES bio-model 
     93   !!====================================================================== 
     94CONTAINS 
     95   SUBROUTINE p4z_nano                    ! Empty routine 
     96   END SUBROUTINE p4z_nano 
     97#endif  
     98 
     99   !!====================================================================== 
     100END MODULE  p4znano 
Note: See TracChangeset for help on using the changeset viewer.