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 12537 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/sms_pisces.F90 – NEMO

Ignore:
Timestamp:
2020-03-11T16:02:54+01:00 (4 years ago)
Author:
aumont
Message:

Comments in routines have been revised and significantly augmented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/sms_pisces.F90

    r12349 r12537  
    22   !!---------------------------------------------------------------------- 
    33   !!                     ***  sms_pisces.F90  ***   
    4    !! TOP :   PISCES Source Minus Sink variables 
     4   !! TOP :   PISCES Source Minus Sink variables are declared and allocated 
    55   !!---------------------------------------------------------------------- 
    66   !! History :   1.0  !  2000-02 (O. Aumont) original code 
     
    1313   PUBLIC 
    1414 
    15    INTEGER ::   numnatp_ref = -1           !! Logical units for namelist pisces 
    16    INTEGER ::   numnatp_cfg = -1           !! Logical units for namelist pisces 
    17    INTEGER ::   numonp      = -1           !! Logical unit for namelist pisces output 
    18  
    19    !                                                       !:  PISCES  : silicon dependant half saturation 
     15   INTEGER ::   numnatp_ref = -1  !: Logical units for namelist pisces 
     16   INTEGER ::   numnatp_cfg = -1  !: Logical units for namelist pisces 
     17   INTEGER ::   numonp      = -1  !: Logical unit for namelist pisces output 
    2018 
    2119   !!* Model used 
     
    2725 
    2826   !!*  Time variables 
    29    INTEGER  ::   nrdttrc           !: ??? 
    30    REAL(wp) ::   rfact , rfactr    !: ??? 
    31    REAL(wp) ::   rfact2, rfact2r   !: ??? 
    32    REAL(wp) ::   xstep             !: Time step duration for biology 
    33    REAL(wp) ::   ryyss             !: number of seconds per year  
    34    REAL(wp) ::   r1_ryyss          !: inverse number of seconds per year  
    35  
     27   INTEGER  ::   nrdttrc          !: ??? 
     28   REAL(wp) ::   rfact , rfactr   !: time step duration (in seconds) 
     29   REAL(wp) ::   rfact2, rfact2r  !: time step duration (in seconds) when timesplitting is activated for PISCES 
     30   REAL(wp) ::   xstep            !: Time step duration for biology 
     31   REAL(wp) ::   ryyss            !: number of seconds per year  
     32   REAL(wp) ::   r1_ryyss         !: inverse number of seconds per year  
    3633 
    3734   !!*  Biological parameters  
    38    REAL(wp) ::   rno3              !: ??? 
    39    REAL(wp) ::   o2ut              !: ??? 
    40    REAL(wp) ::   po4r              !: ??? 
    41    REAL(wp) ::   rdenit            !: ??? 
    42    REAL(wp) ::   rdenita           !: ??? 
    43    REAL(wp) ::   o2nit             !: ??? 
    44    REAL(wp) ::   wsbio, wsbio2     !: ??? 
    45    REAL(wp) ::   wsbio2max         !: ??? 
    46    REAL(wp) ::   wsbio2scale       !: ??? 
    47    REAL(wp) ::   xkmort            !: ??? 
    48    REAL(wp) ::   ferat3            !: ??? 
    49    REAL(wp) ::   ldocp             !: ??? 
    50    REAL(wp) ::   ldocz             !: ??? 
    51    REAL(wp) ::   lthet             !: ??? 
    52    REAL(wp) ::   no3rat3           !: ??? 
    53    REAL(wp) ::   po4rat3           !: ??? 
    54  
     35   REAL(wp) ::   rno3             !: C/N stoichiometric ratio 
     36   REAL(wp) ::   o2ut             !: O2/N stoichiometric ratio for ammonification 
     37   REAL(wp) ::   po4r             !: C/P stoichiometric ratio 
     38   REAL(wp) ::   rdenit           !: C/N ratio for denitrification 
     39   REAL(wp) ::   rdenita          !: C/N ratio for denitrification 
     40   REAL(wp) ::   o2nit            !: O2/N ratio for nitrification 
     41   REAL(wp) ::   wsbio, wsbio2    !: Sinking speeds of particles 
     42   REAL(wp) ::   wsbio2max        !: Maximum sinking speed of the largest particles 
     43   REAL(wp) ::   wsbio2scale      !: Length scale for the variations of wsbio2 
     44   REAL(wp) ::   xkmort           !: Mortality half-saturation constant 
     45   REAL(wp) ::   ferat3           !: Fe/C in heterotrophic organisms 
     46   REAL(wp) ::   ldocp            !: Ligand production ratio during PP 
     47   REAL(wp) ::   ldocz            !: Ligand production ratio by grazing 
     48   REAL(wp) ::   lthet            !: Uptake of ligand by phytoplankton 
     49   REAL(wp) ::   no3rat3          !: C/N ratio of zooplankton 
     50   REAL(wp) ::   po4rat3          !: C/P ratio of zooplankton 
    5551 
    5652   !!*  diagnostic parameters  
    57    REAL(wp) ::  tpp                !: total primary production 
    58    REAL(wp) ::  t_oce_co2_exp      !: total carbon export 
    59    REAL(wp) ::  t_oce_co2_flx      !: Total ocean carbon flux 
    60    REAL(wp) ::  t_oce_co2_flx_cum  !: Cumulative Total ocean carbon flux 
    61    REAL(wp) ::  t_atm_co2_flx      !: global mean of atmospheric pco2 
     53   REAL(wp) ::  tpp               !: total primary production 
     54   REAL(wp) ::  t_oce_co2_exp     !: total carbon export 
     55   REAL(wp) ::  t_oce_co2_flx     !: Total ocean carbon flux 
     56   REAL(wp) ::  t_oce_co2_flx_cum !: Cumulative Total ocean carbon flux 
     57   REAL(wp) ::  t_atm_co2_flx     !: global mean of atmospheric pco2 
    6258 
    6359   !!* restoring 
    64    LOGICAL  ::  ln_pisdmp          !: restoring or not of nutrients to a mean value 
    65    INTEGER  ::  nn_pisdmp          !: frequency of relaxation or not of nutrients to a mean value 
     60   LOGICAL  ::  ln_pisdmp         !: restoring or not of nutrients to a mean value 
     61   INTEGER  ::  nn_pisdmp         !: frequency of relaxation or not of nutrients to a mean value 
    6662 
    6763   !!* Mass conservation 
    68    LOGICAL  ::  ln_check_mass      !: Flag to check mass conservation 
    69    LOGICAL , PUBLIC ::   ln_ironice   !: boolean for Fe input from sea ice 
     64   LOGICAL  ::  ln_check_mass     !: Flag to check mass conservation 
     65   LOGICAL, PUBLIC ::   ln_ironice   !: boolean for Fe input from sea ice 
    7066 
    7167   !!*  Biological fluxes for light : variables shared by pisces & lobster 
     
    7571   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  etot_ndcy      !: PAR over 24h in case of diurnal cycle 
    7672   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  enano, ediat   !: PAR for phyto, nano and diat  
    77    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  enanom, ediatm !: PAR for phyto, nano and diat  
     73   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  enanom, ediatm !: mean PAR for phyto, nano and diat  
    7874   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  epico          !: PAR for pico 
    79    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  epicom         !: PAR for pico 
     75   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  epicom         !: mean PAR for pico 
    8076   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  emoy           !: averaged PAR in the mixed layer 
    8177   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  heup_01 !: Absolute euphotic layer depth 
    82    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  xksi  !:  LOBSTER : zooplakton closure 
     78   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  xksi  !:  Half-saturation con,stant for diatoms 
    8379 
    8480   !!*  Biological fluxes for primary production 
    85    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)    ::   xksimax    !: ??? 
     81   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:)    ::   xksimax    !: Maximum half-saturation constant over the year (Si) 
    8682   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   biron      !: bioavailable fraction of iron 
    8783   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   plig       !: proportion of iron organically complexed 
     
    9288 
    9389   !!*  SMS for the organic matter 
    94    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: ?? 
    95    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: ?? 
    96    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac2   !: ?? 
    97    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   orem       !: ?? 
    98    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: ?? 
     90   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xfracal    !: Fraction of nanophytoplankton that are calcifying organisms 
     91   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac    !: OMZ  
     92   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   nitrfac2   !: N depleted indice 
     93   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   orem       !: oxic remineralisation 
     94   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   xdiss      !: Shear rate 
    9995   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodcal    !: Calcite production 
    100    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodpoc    !: Calcite production 
    101    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   conspoc    !: Calcite production 
    102    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodgoc    !: Calcite production 
    103    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   consgoc    !: Calcite production 
     96   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodpoc    !: POC production 
     97   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   conspoc    !: POC consumption 
     98   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodgoc    !: GOC production 
     99   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   consgoc    !: GOC consumption 
    104100   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   blim       !: bacterial production factor 
    105101   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sizen      !: size of nanophyto 
     
    111107 
    112108   !!* Variable for chemistry of the CO2 cycle 
    113    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak13       !: ??? 
    114    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak23       !: ??? 
    115    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aksp       !: ??? 
    116    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hi         !: ??? 
    117    REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   excess     !: ??? 
     109   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak13       !: Carbonate chemistry constant 
     110   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ak23       !: Carbonate chemistry constant 
     111   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aksp       !: Solubility product of CaCO3 
     112   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   hi         !: Proton concentration 
     113   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   excess     !: CO3 saturation 
    118114   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   aphscale   !:  
    119115 
     
    139135      !!---------------------------------------------------------------------- 
    140136      ierr(:) = 0 
    141       !*  Biological fluxes for light : shared variables for pisces & lobster 
    142137      ALLOCATE( etot(jpi,jpj,jpk), neln(jpi,jpj), heup(jpi,jpj),    & 
    143138        &       heup_01(jpi,jpj) , xksi(jpi,jpj)               ,  STAT=ierr(1) ) 
     
    145140   
    146141      IF( ln_p4z .OR. ln_p5z ) THEN 
    147          !*  Biological fluxes for light  
     142 
     143         !* Optics 
    148144         ALLOCATE(  enano(jpi,jpj,jpk)    , ediat(jpi,jpj,jpk) ,   & 
    149145           &        enanom(jpi,jpj,jpk)   , ediatm(jpi,jpj,jpk),   & 
    150146           &        etot_ndcy(jpi,jpj,jpk), emoy(jpi,jpj,jpk)  ,  STAT=ierr(2) )  
    151147 
    152          !*  Biological fluxes for primary production 
     148         !* Biological SMS 
    153149         ALLOCATE( xksimax(jpi,jpj)  , biron(jpi,jpj,jpk)      ,  STAT=ierr(3) ) 
    154          ! 
    155          !*  SMS for the organic matter 
     150 
     151         ! Biological SMS 
    156152         ALLOCATE( xfracal (jpi,jpj,jpk), orem(jpi,jpj,jpk)    ,    & 
    157             &      nitrfac(jpi,jpj,jpk), nitrfac2(jpi,jpj,jpk) ,    & 
     153            &      nitrfac(jpi,jpj,jpk) , nitrfac2(jpi,jpj,jpk),    & 
    158154            &      prodcal(jpi,jpj,jpk) , xdiss   (jpi,jpj,jpk),    & 
    159155            &      prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk) ,    & 
     
    161157            &      blim   (jpi,jpj,jpk) ,                         STAT=ierr(4) ) 
    162158 
    163          !* Variable for chemistry of the CO2 cycle 
    164          ALLOCATE( ak13  (jpi,jpj,jpk) ,                            & 
     159         !* Carbonate chemistry 
     160         ALLOCATE( ak13  (jpi,jpj,jpk)  ,                           & 
    165161            &      ak23(jpi,jpj,jpk)    , aksp  (jpi,jpj,jpk) ,     & 
    166162            &      hi  (jpi,jpj,jpk)    , excess(jpi,jpj,jpk) ,     & 
    167163            &      aphscale(jpi,jpj,jpk),                         STAT=ierr(5) ) 
    168164         ! 
    169          !* Temperature dependancy of SMS terms 
     165         !* Temperature dependency of SMS terms 
    170166         ALLOCATE( tgfunc (jpi,jpj,jpk) , tgfunc2(jpi,jpj,jpk),     & 
    171167            &      tgfunc3(jpi,jpj,jpk) , STAT=ierr(6) ) 
    172168         ! 
    173          !* Sinkong speed 
     169         !* Sinking speed 
    174170         ALLOCATE( wsbio3 (jpi,jpj,jpk) , wsbio4 (jpi,jpj,jpk),     & 
    175171            &                             STAT=ierr(7) )    
    176172         !  
     173         !* Prognostic ligand 
    177174         IF( ln_ligand ) THEN 
    178175           ALLOCATE( plig(jpi,jpj,jpk)  ,                         STAT=ierr(8) ) 
     
    181178      ! 
    182179      IF( ln_p5z ) THEN 
    183          !        
     180         ! PISCES-QUOTA specific part       
    184181         ALLOCATE( epico(jpi,jpj,jpk)   , epicom(jpi,jpj,jpk) ,   STAT=ierr(9) )  
    185182 
Note: See TracChangeset for help on using the changeset viewer.