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

Ignore:
Timestamp:
2020-07-02T20:34:16+02:00 (4 years ago)
Author:
aumont
Message:

update of the PISCES comments

File:
1 edited

Legend:

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

    r11536 r13233  
    8080      ze2(:,:,:) = 0._wp 
    8181      ze3(:,:,:) = 0._wp 
    82       ! 
    83       !                                        !* attenuation coef. function of Chlorophyll and wavelength (Red-Green-Blue) 
    84       !                                        !  -------------------------------------------------------- 
     82 
     83      ! Attenuation coef. function of Chlorophyll and wavelength (Red-Green-Blue) 
     84      ! Thus the light penetration scheme is based on a decomposition of PAR 
     85      ! into three wave length domains. This was first officially published 
     86      ! in Lengaigne et al. (2007). 
     87      ! -------------------------------------------------------- 
    8588                     zchl3d(:,:,:) = trb(:,:,:,jpnch) + trb(:,:,:,jpdch) 
    8689      IF( ln_p5z )   zchl3d(:,:,:) = zchl3d(:,:,:)    + trb(:,:,:,jppch) 
    8790      ! 
     91      ! Computation of the light attenuation parameters based on a  
     92      ! look-up table 
    8893      DO jk = 1, jpkm1    
    8994         DO jj = 1, jpj 
     
    99104         END DO 
    100105      END DO 
    101       !                                        !* Photosynthetically Available Radiation (PAR) 
    102       !                                        !  -------------------------------------- 
     106 
     107      ! Photosynthetically Available Radiation (PAR) 
     108      ! Two cases are considered in the following :  
     109      ! (1) An explicit diunal cycle is activated. In that case, mean  
     110      ! QSR is used as PISCES in its current state has not been parameterized 
     111      ! for an explicit diurnal cycle 
     112      ! (2) no diurnal cycle of SW is active and in that case, QSR is used. 
     113      ! -------------------------------------------- 
    103114      IF( l_trcdm2dc ) THEN                     !  diurnal cycle 
    104115         ! 
     116         ! SW over the ice free zone of the grid cell. This assumes that 
     117         ! SW is zero below sea ice which is a very crude assumption that is  
     118         ! not fully correct with LIM3 and SI3 but no information is  
     119         ! currently available to do a better job. SHould be improved in the  
     120         ! (near) future. 
    105121         zqsr_corr(:,:) = qsr_mean(:,:) / ( 1.-fr_i(:,:) + rtrn ) 
    106122         ! 
    107123         CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 )  
    108124         ! 
     125         ! Used PAR is computed for each phytoplankton species 
     126         ! etot_ndcy is PAR at level jk averaged over 24h. 
     127         ! Due to their size, they have different light absorption characteristics 
    109128         DO jk = 1, nksrp       
    110129            etot_ndcy(:,:,jk) =        ze1(:,:,jk) +        ze2(:,:,jk) +       ze3(:,:,jk) 
     
    117136            END DO 
    118137         ENDIF 
    119          ! 
     138 
     139         ! SW over the ice free zone of the grid cell. This assumes that 
     140         ! SW is zero below sea ice which is a very crude assumption that is  
     141         ! not fully correct with LIM3 and SI3 but no information is  
     142         ! currently available to do a better job. SHould be improved in the  
     143         ! (near) future. 
    120144         zqsr_corr(:,:) = qsr(:,:) / ( 1.-fr_i(:,:) + rtrn ) 
    121145         ! 
    122146         CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3 )  
    123          ! 
     147 
     148         ! Total PAR computation at level jk that includes the diurnal cycle 
    124149         DO jk = 1, nksrp       
    125150            etot(:,:,jk) =  ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) 
    126151         END DO 
    127152         ! 
    128       ELSE 
    129          ! 
     153      ELSE ! no diurnal cycle 
     154         ! 
     155         ! SW over the ice free zone of the grid cell. This assumes that 
     156         ! SW is zero below sea ice which is a very crude assumption that is  
     157         ! not fully correct with LIM3 and SI3 but no information is  
     158         ! currently available to do a better job. SHould be improved in the  
     159         ! (near) future. 
    130160         zqsr_corr(:,:) = qsr(:,:) / ( 1.-fr_i(:,:) + rtrn ) 
    131          ! 
     161 
    132162         CALL p4z_opt_par( kt, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100  )  
    133          ! 
     163 
     164         ! Used PAR is computed for each phytoplankton species 
     165         ! Due to their size, they have different light absorption characteristics 
    134166         DO jk = 1, nksrp       
    135             etot (:,:,jk) =        ze1(:,:,jk) +        ze2(:,:,jk) +       ze3(:,:,jk) 
    136             enano(:,:,jk) =  1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) 
    137             ediat(:,:,jk) =  1.62 * ze1(:,:,jk) + 0.74 * ze2(:,:,jk) + 0.63 * ze3(:,:,jk) 
     167            etot (:,:,jk) =        ze1(:,:,jk) +        ze2(:,:,jk) +       ze3(:,:,jk) ! Total PAR 
     168            enano(:,:,jk) =  1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) ! Nanophytoplankton 
     169            ediat(:,:,jk) =  1.62 * ze1(:,:,jk) + 0.74 * ze2(:,:,jk) + 0.63 * ze3(:,:,jk) ! Diatoms 
    138170         END DO 
    139171         IF( ln_p5z ) THEN 
    140172            DO jk = 1, nksrp       
    141               epico(:,:,jk) =  1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) 
     173              epico(:,:,jk) =  1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) ! Picophytoplankton (PISCES-QUOTA) 
    142174            END DO 
    143175         ENDIF 
     
    146178 
    147179 
     180      ! Biophysical feedback part (computation of vertical penetration of SW) 
    148181      IF( ln_qsr_bio ) THEN                    !* heat flux accros w-level (used in the dynamics) 
    149182         !                                     !  ------------------------ 
     
    154187            etot3(:,:,jk) =  ( ze0(:,:,jk) + ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) ) * tmask(:,:,jk) 
    155188         END DO 
    156          !                                     !  ------------------------ 
    157       ENDIF 
    158       !                                        !* Euphotic depth and level 
    159       neln   (:,:) = 1                            !  ------------------------ 
     189 
     190      ENDIF 
     191 
     192      ! Euphotic depth and level 
     193      ! Two definitions of the euphotic zone are used here.  
     194      ! (1) The classical definition based on the relative threshold value 
     195      ! (2) An alternative definition based on a absolute threshold value. 
     196      ! ------------------------------------------------------------------- 
    160197      heup   (:,:) = gdepw_n(:,:,2) 
    161198      heup_01(:,:) = gdepw_n(:,:,2) 
     
    176213      END DO 
    177214      ! 
     215      ! The euphotic depth can not exceed 300 meters. 
    178216      heup   (:,:) = MIN( 300., heup   (:,:) ) 
    179217      heup_01(:,:) = MIN( 300., heup_01(:,:) ) 
    180       !                                        !* mean light over the mixed layer 
    181       zdepmoy(:,:)   = 0.e0                    !  ------------------------------- 
     218 
     219      ! Mean PAR over the mixed layer 
     220      ! ----------------------------- 
     221      zdepmoy(:,:)   = 0.e0 
    182222      zetmp1 (:,:)   = 0.e0 
    183223      zetmp2 (:,:)   = 0.e0 
     
    187227            DO ji = 1, jpi 
    188228               IF( gdepw_n(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 
    189                   zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t_n(ji,jj,jk) ! remineralisation 
    190                   zetmp2 (ji,jj) = zetmp2 (ji,jj) + etot_ndcy(ji,jj,jk) * e3t_n(ji,jj,jk) ! production 
     229                  zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot     (ji,jj,jk) * e3t_n(ji,jj,jk) ! Actual PAR 
     230                  zetmp2 (ji,jj) = zetmp2 (ji,jj) + etot_ndcy(ji,jj,jk) * e3t_n(ji,jj,jk) ! Par averaged over 24h 
    191231                  zdepmoy(ji,jj) = zdepmoy(ji,jj) +                       e3t_n(ji,jj,jk) 
    192232               ENDIF 
     
    195235      END DO 
    196236      ! 
    197       emoy(:,:,:) = etot(:,:,:)       ! remineralisation 
     237      emoy(:,:,:) = etot(:,:,:)       ! PAR 
    198238      zpar(:,:,:) = etot_ndcy(:,:,:)  ! diagnostic : PAR with no diurnal cycle  
    199239      ! 
     
    209249         END DO 
    210250      END DO 
    211       ! 
     251 
     252      ! Computation of the mean usable light for the different phytoplankton 
     253      ! groups based on their absorption characteristics. 
    212254      zdepmoy(:,:)   = 0.e0 
    213255      zetmp3 (:,:)   = 0.e0 
     
    218260            DO ji = 1, jpi 
    219261               IF( gdepw_n(ji,jj,jk+1) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    220                   zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t_n(ji,jj,jk) ! production 
    221                   zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat    (ji,jj,jk) * e3t_n(ji,jj,jk) ! production 
     262                  zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano    (ji,jj,jk) * e3t_n(ji,jj,jk) ! Nanophytoplankton 
     263                  zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat    (ji,jj,jk) * e3t_n(ji,jj,jk) ! Diatoms  
    222264                  zdepmoy(ji,jj) = zdepmoy(ji,jj) +                       e3t_n(ji,jj,jk) 
    223265               ENDIF 
     
    241283      ! 
    242284      IF( ln_p5z ) THEN 
     285         ! Picophytoplankton when using PISCES-QUOTA 
    243286         zetmp5 (:,:) = 0.e0 
    244287         DO jk = 1, nksrp 
     
    246289               DO ji = 1, jpi 
    247290                  IF( gdepw_n(ji,jj,jk+1) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 
    248                      zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t_n(ji,jj,jk) ! production 
     291                     zetmp5(ji,jj)  = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t_n(ji,jj,jk) 
    249292                  ENDIF 
    250293               END DO 
     
    265308         END DO 
    266309      ENDIF 
     310 
     311      ! Output of the diagnostics 
    267312      IF( lk_iomput ) THEN 
    268313        IF( knt == nrdttrc ) THEN 
Note: See TracChangeset for help on using the changeset viewer.