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 6453 for branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90 – NEMO

Ignore:
Timestamp:
2016-04-08T10:10:11+02:00 (8 years ago)
Author:
aumont
Message:

New developments of PISCES (QUOTA, ligands, lability, ...)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r5385 r6453  
    66   !! History :   1.0  !  2000-02 (O. Aumont) original code 
    77   !!             3.2  !  2009-04 (C. Ethe & NEMO team) style 
     8   !!             3.6  !  2015-05  (O. Aumont) PISCES quota 
    89   !!---------------------------------------------------------------------- 
    9 #if defined key_pisces || defined key_pisces_reduced  
     10#if defined key_pisces || defined key_pisces_reduced || defined key_pisces_quota  
    1011   !!---------------------------------------------------------------------- 
    11    !!   'key_pisces'                                         PISCES model 
     12   !!   'key_pisces*'                                         PISCES model 
    1213   !!---------------------------------------------------------------------- 
    1314   USE par_oce 
     
    2223 
    2324   !!*  Biological fluxes for light : variables shared by pisces & lobster 
    24    INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  neln  !: number of T-levels + 1 in the euphotic layer 
    25    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  heup  !: euphotic layer depth 
    26    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  etot  !: par (photosynthetic available radiation) 
    27    ! 
    28    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  xksi  !:  LOBSTER : zooplakton closure 
    29    !                                                       !:  PISCES  : silicon dependant half saturation 
     25   INTEGER , ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  neln    !: number of T-levels + 1 in the euphotic layer 
     26   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  heup    !: euphotic layer depth 
     27   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  heup_01 !: Absolute euphotic layer depth 
     28   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  etot    !: par (photosynthetic available radiation) 
     29   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  xksi    !:  LOBSTER : zooplakton closure 
     30   !                                                         !:  PISCES  : silicon dependant half saturation 
    3031 
    31 #if defined key_pisces  
     32#if defined key_pisces || defined key_pisces_quota  
    3233   !!*  Time variables 
    3334   INTEGER  ::   nrdttrc           !: ??? 
     
    3839   REAL(wp) ::   ryyss             !: number of seconds per year  
    3940   REAL(wp) ::   r1_ryyss          !: inverse number of seconds per year  
    40  
    4141 
    4242   !!*  Biological parameters  
     
    4949   REAL(wp) ::   o2nit             !: ??? 
    5050   REAL(wp) ::   wsbio, wsbio2     !: ??? 
     51   REAL(wp) ::   wsbio2max         !: ??? 
     52   REAL(wp) ::   wsbio2scale       !: ??? 
    5153   REAL(wp) ::   xkmort            !: ??? 
    5254   REAL(wp) ::   ferat3            !: ??? 
     55#if defined key_ligand 
     56   REAL(wp) ::   wfep              !: ??? 
     57   REAL(wp) ::   ldocp           !: ??? 
     58   REAL(wp) ::   ldocz           !: ??? 
     59   REAL(wp) ::   lthet           !: ??? 
     60#endif 
     61 
    5362 
    5463   !!*  diagnostic parameters  
     
    6877   !!*  Biological fluxes for primary production 
    6978   REAL(wp), ALLOCATABLE, SAVE,   DIMENSION(:,:)  ::   xksimax    !: ??? 
    70    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanono3   !: ??? 
    71    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatno3   !: ??? 
    72    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanonh4   !: ??? 
    73    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatnh4   !: ??? 
    74    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xnanopo4   !: ??? 
    75    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xdiatpo4   !: ??? 
    76    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimphy    !: ??? 
    77    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdia    !: ??? 
    78    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concdfe    !: ??? 
    79    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   concnfe    !: ??? 
    80    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimnfe    !: ??? 
    81    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdfe    !: ??? 
    82    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimsi     !: ??? 
    8379   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   biron      !: bioavailable fraction of iron 
    84  
     80#if defined key_ligand 
     81   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   plig       !: proportion of iron organically complexed 
     82#endif 
    8583 
    8684   !!*  SMS for the organic matter 
    8785   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: ?? 
    8886   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: ?? 
    89    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xlimbac    !: ?? 
    90    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xlimbacl   !: ?? 
     87   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   orem       !: ?? 
    9188   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: ?? 
    9289   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodcal    !: Calcite production 
     90   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodpoc    !: Calcite production 
     91   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   conspoc    !: Calcite production 
     92   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodgoc    !: Calcite production 
     93   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   consgoc    !: Calcite production 
     94 
    9395 
    9496   !!* Variable for chemistry of the CO2 cycle 
    95    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akb3       !: ??? 
    9697   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak13       !: ??? 
    9798   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak23       !: ??? 
    9899   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aksp       !: ??? 
    99    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   akw3       !: ??? 
    100    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   borat      !: ??? 
    101100   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hi         !: ??? 
    102101   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   excess     !: ??? 
     
    116115 
    117116#endif 
     117 
     118# if defined key_pisces_quota 
     119   !!*  Biological parameters  
     120   REAL(wp) ::   no3rat3           !: ??? 
     121   REAL(wp) ::   po4rat3           !: ??? 
     122 
     123   !!*  SMS for the organic matter 
     124   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sizen      !: size of diatoms  
     125   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sizep      !: size of diatoms  
     126   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sized      !: size of diatoms  
     127 
     128#endif 
    118129   !!---------------------------------------------------------------------- 
    119130   !! NEMO/TOP 3.3 , NEMO Consortium (2010) 
     
    128139      !!---------------------------------------------------------------------- 
    129140      USE lib_mpp , ONLY: ctl_warn 
     141#if defined key_pisces_quota 
     142      INTEGER ::   ierr(6)        ! Local variables 
     143#else 
    130144      INTEGER ::   ierr(5)        ! Local variables 
     145#endif 
    131146      !!---------------------------------------------------------------------- 
    132147      ierr(:) = 0 
    133148      !*  Biological fluxes for light : shared variables for pisces & lobster 
    134       ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj), xksi(jpi,jpj), STAT=ierr(1) ) 
     149      ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj),    & 
     150      &         heup_01(jpi,jpj), xksi(jpi,jpj), STAT=ierr(1) ) 
    135151      ! 
    136 #if defined key_pisces 
     152#if defined key_pisces || defined key_pisces_quota 
    137153      !*  Biological fluxes for primary production 
    138154      ALLOCATE( xksimax(jpi,jpj)     , biron   (jpi,jpj,jpk),       & 
    139          &      xnanono3(jpi,jpj,jpk), xdiatno3(jpi,jpj,jpk),       & 
    140          &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       & 
    141          &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       & 
    142          &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       & 
    143          &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       & 
    144          &      xlimsi  (jpi,jpj,jpk), concdfe (jpi,jpj,jpk),       & 
    145          &      concnfe (jpi,jpj,jpk),                           STAT=ierr(2) )  
     155#if defined key_ligand 
     156      &         plig(jpi,jpj,jpk)    ,                              & 
     157#endif 
     158         &      STAT=ierr(2) ) 
    146159         ! 
    147160      !*  SMS for the organic matter 
    148       ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac(jpi,jpj,jpk),       & 
    149          &      xlimbac (jpi,jpj,jpk), xdiss  (jpi,jpj,jpk),       &  
    150          &      xlimbacl(jpi,jpj,jpk), prodcal(jpi,jpj,jpk),     STAT=ierr(3) ) 
     161      ALLOCATE( xfracal (jpi,jpj,jpk), nitrfac (jpi,jpj,jpk),      & 
     162         &      orem    (jpi,jpj,jpk),                             & 
     163         &      prodcal(jpi,jpj,jpk),  xdiss   (jpi,jpj,jpk),      &  
     164         &      prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk),       & 
     165         &      prodgoc(jpi,jpj,jpk) , consgoc(jpi,jpj,jpk),     STAT=ierr(3) ) 
    151166 
    152167      !* Variable for chemistry of the CO2 cycle 
    153       ALLOCATE( akb3(jpi,jpj,jpk)    , ak13  (jpi,jpj,jpk) ,       & 
     168      ALLOCATE( ak13  (jpi,jpj,jpk) ,                              & 
    154169         &      ak23(jpi,jpj,jpk)    , aksp  (jpi,jpj,jpk) ,       & 
    155          &      akw3(jpi,jpj,jpk)    , borat (jpi,jpj,jpk) ,       & 
    156170         &      hi  (jpi,jpj,jpk)    , excess(jpi,jpj,jpk) ,     STAT=ierr(4) ) 
    157171         ! 
     
    160174         ! 
    161175#endif 
     176#if defined key_pisces_quota 
     177      !*  Size of phytoplankton cells 
     178      ALLOCATE( sizen   (jpi,jpj,jpk), sizep   (jpi,jpj,jpk),      & 
     179         &      sized   (jpi,jpj,jpk), STAT=ierr(6) ) 
     180         ! 
     181#endif 
     182 
    162183      ! 
    163184      sms_pisces_alloc = MAXVAL( ierr ) 
Note: See TracChangeset for help on using the changeset viewer.