- Timestamp:
- 2021-02-03T16:03:34+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p4zopt.F90
r14213 r14385 80 80 ze3(:,:,:) = 0._wp 81 81 ! 82 ! !* attenuation coef. function of Chlorophyll and wavelength (Red-Green-Blue) 83 ! ! -------------------------------------------------------- 82 ! Attenuation coef. function of Chlorophyll and wavelength (Red-Green-Blue) 83 ! Thus the light penetration scheme is based on a decomposition of PAR 84 ! into three wave length domains. This was first officially published 85 ! in Lengaigne et al. (2007). 86 ! -------------------------------------------------------- 84 87 zchl3d(:,:,:) = tr(:,:,:,jpnch,Kbb) + tr(:,:,:,jpdch,Kbb) 85 IF( ln_p5z ) zchl3d(:,:,:) = zchl3d(:,:,:) + tr(:,:,:,jppch,Kbb) 86 ! 88 IF( ln_p5z ) zchl3d(:,:,:) = zchl3d(:,:,:) + tr(:,:,:,jppch,Kbb) 89 ! 90 ! Computation of the light attenuation parameters based on a 91 ! look-up table 87 92 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 88 93 zchl = ( zchl3d(ji,jj,jk) + rtrn ) * 1.e6 … … 94 99 ekr(ji,jj,jk) = rkrgb(3,irgb) * e3t(ji,jj,jk,Kmm) 95 100 END_3D 96 ! !* Photosynthetically Available Radiation (PAR) 97 ! ! -------------------------------------- 101 102 ! Photosynthetically Available Radiation (PAR) 103 ! Two cases are considered in the following : 104 ! (1) An explicit diunal cycle is activated. In that case, mean 105 ! QSR is used as PISCES in its current state has not been parameterized 106 ! for an explicit diurnal cycle 107 ! (2) no diurnal cycle of SW is active and in that case, QSR is used. 108 ! -------------------------------------------- 98 109 IF( l_trcdm2dc ) THEN ! diurnal cycle 99 110 ! 111 ! 112 ! SW over the ice free zone of the grid cell. This assumes that 113 ! SW is zero below sea ice which is a very crude assumption that is 114 ! not fully correct with LIM3 and SI3 but no information is 115 ! currently available to do a better job. SHould be improved in the 116 ! (near) future. 100 117 zqsr_corr(:,:) = qsr_mean(:,:) / ( 1.-fr_i(:,:) + rtrn ) 101 118 ! 102 119 CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 ) 103 120 ! 121 ! Used PAR is computed for each phytoplankton species 122 ! etot_ndcy is PAR at level jk averaged over 24h. 123 ! Due to their size, they have different light absorption characteristics 104 124 DO jk = 1, nksr 105 125 etot_ndcy(:,:,jk) = ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) … … 113 133 ENDIF 114 134 ! 135 ! SW over the ice free zone of the grid cell. This assumes that 136 ! SW is zero below sea ice which is a very crude assumption that is 137 ! not fully correct with LIM3 and SI3 but no information is 138 ! currently available to do a better job. SHould be improved in the 139 ! (near) future. 140 115 141 zqsr_corr(:,:) = qsr(:,:) / ( 1.-fr_i(:,:) + rtrn ) 116 142 ! 117 143 CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3 ) 118 144 ! 145 ! Total PAR computation at level jk that includes the diurnal cycle 119 146 DO jk = 1, nksr 120 147 etot(:,:,jk) = ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) 121 148 END DO 122 149 ! 123 ELSE 124 ! 150 ELSE ! no diurnal cycle 151 ! 152 ! 153 ! SW over the ice free zone of the grid cell. This assumes that 154 ! SW is zero below sea ice which is a very crude assumption that is 155 ! not fully correct with LIM3 and SI3 but no information is 156 ! currently available to do a better job. SHould be improved in the 157 ! (near) future. 125 158 zqsr_corr(:,:) = qsr(:,:) / ( 1.-fr_i(:,:) + rtrn ) 126 159 ! 127 160 CALL p4z_opt_par( kt, Kmm, zqsr_corr, ze1, ze2, ze3, pqsr100 = zqsr100 ) 128 161 ! 162 163 ! Used PAR is computed for each phytoplankton species 164 ! Due to their size, they have different light absorption characteristics 129 165 DO jk = 1, nksr 130 etot (:,:,jk) = ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) 131 enano(:,:,jk) = 1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) 132 ediat(:,:,jk) = 1.62 * ze1(:,:,jk) + 0.74 * ze2(:,:,jk) + 0.63 * ze3(:,:,jk) 166 etot (:,:,jk) = ze1(:,:,jk) + ze2(:,:,jk) + ze3(:,:,jk) ! Total PAR 167 enano(:,:,jk) = 1.85 * ze1(:,:,jk) + 0.69 * ze2(:,:,jk) + 0.46 * ze3(:,:,jk) ! Nanophytoplankton 168 ediat(:,:,jk) = 1.62 * ze1(:,:,jk) + 0.74 * ze2(:,:,jk) + 0.63 * ze3(:,:,jk) ! Diatoms 133 169 END DO 134 170 IF( ln_p5z ) THEN 135 171 DO jk = 1, nksr 136 epico(:,:,jk) = 1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) 172 epico(:,:,jk) = 1.94 * ze1(:,:,jk) + 0.66 * ze2(:,:,jk) + 0.4 * ze3(:,:,jk) ! Picophytoplankton (PISCES-QUOTA) 137 173 END DO 138 174 ENDIF … … 141 177 142 178 179 ! Biophysical feedback part (computation of vertical penetration of SW) 143 180 IF( ln_qsr_bio ) THEN !* heat flux accros w-level (used in the dynamics) 144 181 ! ! ------------------------ … … 151 188 ! ! ------------------------ 152 189 ENDIF 153 ! !* Euphotic depth and level 154 neln (:,:) = 1 ! ------------------------ 190 191 ! Euphotic depth and level 192 ! Two definitions of the euphotic zone are used here. 193 ! (1) The classical definition based on the relative threshold value 194 ! (2) An alternative definition based on a absolute threshold value. 195 ! ------------------------------------------------------------------- 196 neln(:,:) = 1 155 197 heup (:,:) = gdepw(:,:,2,Kmm) 156 198 heup_01(:,:) = gdepw(:,:,2,Kmm) … … 162 204 heup(ji,jj) = gdepw(ji,jj,jk+1,Kmm) ! Euphotic layer depth 163 205 ENDIF 164 IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= 0. 50 ) THEN206 IF( etot_ndcy(ji,jj,jk) * tmask(ji,jj,jk) >= 0.10 ) THEN 165 207 heup_01(ji,jj) = gdepw(ji,jj,jk+1,Kmm) ! Euphotic layer depth (light level definition) 166 208 ENDIF 167 209 END_3D 168 210 ! 211 ! The euphotic depth can not exceed 300 meters. 169 212 heup (:,:) = MIN( 300., heup (:,:) ) 170 213 heup_01(:,:) = MIN( 300., heup_01(:,:) ) 171 ! !* mean light over the mixed layer 172 zdepmoy(:,:) = 0.e0 ! ------------------------------- 214 215 ! Mean PAR over the mixed layer 216 ! ----------------------------- 217 zdepmoy(:,:) = 0.e0 173 218 zetmp1 (:,:) = 0.e0 174 219 zetmp2 (:,:) = 0.e0 … … 176 221 DO_3D( 1, 1, 1, 1, 1, nksr ) 177 222 IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 178 zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! remineralisation179 zetmp2 (ji,jj) = zetmp2 (ji,jj) + etot_ndcy(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production223 zetmp1 (ji,jj) = zetmp1 (ji,jj) + etot (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! Actual PAR for remineralisation 224 zetmp2 (ji,jj) = zetmp2 (ji,jj) + etot_ndcy(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! Par averaged over 24h for production 180 225 zdepmoy(ji,jj) = zdepmoy(ji,jj) + e3t(ji,jj,jk,Kmm) 181 226 ENDIF … … 192 237 ENDIF 193 238 END_3D 194 ! 239 240 ! Computation of the mean usable light for the different phytoplankton 241 ! groups based on their absorption characteristics. 195 242 zdepmoy(:,:) = 0.e0 196 243 zetmp3 (:,:) = 0.e0 … … 199 246 DO_3D( 1, 1, 1, 1, 1, nksr ) 200 247 IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 201 zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production202 zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production248 zetmp3 (ji,jj) = zetmp3 (ji,jj) + enano (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! Nanophytoplankton 249 zetmp4 (ji,jj) = zetmp4 (ji,jj) + ediat (ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! Diatoms 203 250 zdepmoy(ji,jj) = zdepmoy(ji,jj) + e3t(ji,jj,jk,Kmm) 204 251 ENDIF … … 216 263 ! 217 264 IF( ln_p5z ) THEN 265 ! Picophytoplankton when using PISCES-QUOTA 218 266 ALLOCATE( zetmp5(jpi,jpj) ) ; zetmp5 (:,:) = 0.e0 219 267 DO_3D( 1, 1, 1, 1, 1, nksr ) 220 268 IF( gdepw(ji,jj,jk+1,Kmm) <= MIN(hmld(ji,jj), heup_01(ji,jj)) ) THEN 221 zetmp5(ji,jj) = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) ! production269 zetmp5(ji,jj) = zetmp5 (ji,jj) + epico(ji,jj,jk) * e3t(ji,jj,jk,Kmm) 222 270 ENDIF 223 271 END_3D
Note: See TracChangeset
for help on using the changeset viewer.