- Timestamp:
- 2020-04-17T00:17:29+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zlim.F90
r12537 r12759 61 61 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: concdfe !: Limitation of diatoms uptake of Fe 62 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: concnfe !: Limitation of Nano uptake of Fe 63 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xnanofer !: Limitation of Fe uptake by nanophyto 64 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xdiatfer !: Limitation of Fe uptake by diatoms 63 65 64 66 ! Coefficient for iron limitation following Flynn and Hipkin (1999) … … 86 88 ! 87 89 INTEGER :: ji, jj, jk 88 REAL(wp) :: zlim1, zlim2, zlim3, zlim4, zno3, zferlim 89 REAL(wp) :: zconcd, zconcd2, zconcn, zconcn2 90 REAL(wp) :: zlim1, zlim2, zlim3, zlim4, zno3, zferlim, zcoef 90 91 REAL(wp) :: z1_trbdia, z1_trbphy, ztem1, ztem2, zetot1, zetot2 91 92 REAL(wp) :: zdenom, zratio, zironmin 92 93 REAL(wp) :: zconc1d, zconc1dnh4, zconc0n, zconc0nnh4 94 REAL(wp) :: fananof, fadiatf, znutlim, zfalim 93 95 !!--------------------------------------------------------------------- 94 96 ! 95 97 IF( ln_timing ) CALL timing_start('p4z_lim') 98 ! 99 sizena(:,:,:) = 0.0 ; sizeda(:,:,:) = 0.0 96 100 ! 97 101 DO jk = 1, jpkm1 … … 110 114 ! that increasing biomass is made of generally bigger cells 111 115 !------------------------------------------------------------ 112 zconcd = MAX( 0.e0 , trb(ji,jj,jk,jpdia) - xsizedia )113 zconcd2 = trb(ji,jj,jk,jpdia) - zconcd114 zconcn = MAX( 0.e0 , trb(ji,jj,jk,jpphy) - xsizephy )115 zconcn2 = trb(ji,jj,jk,jpphy) - zconcn116 116 z1_trbphy = 1. / ( trb(ji,jj,jk,jpphy) + rtrn ) 117 117 z1_trbdia = 1. / ( trb(ji,jj,jk,jpdia) + rtrn ) 118 118 119 concdfe(ji,jj,jk) = MAX( concdfer, ( zconcd2 * concdfer + concdfer * xsizerd * zconcd ) * z1_trbdia ) 120 zconc1d = MAX( concdno3, ( zconcd2 * concdno3 + concdno3 * xsizerd * zconcd ) * z1_trbdia ) 121 zconc1dnh4 = MAX( concdnh4, ( zconcd2 * concdnh4 + concdnh4 * xsizerd * zconcd ) * z1_trbdia ) 122 123 concnfe(ji,jj,jk) = MAX( concnfer, ( zconcn2 * concnfer + concnfer * xsizern * zconcn ) * z1_trbphy ) 124 zconc0n = MAX( concnno3, ( zconcn2 * concnno3 + concnno3 * xsizern * zconcn ) * z1_trbphy ) 125 zconc0nnh4 = MAX( concnnh4, ( zconcn2 * concnnh4 + concnnh4 * xsizern * zconcn ) * z1_trbphy ) 119 concnfe(ji,jj,jk) = concnfer * sizen(ji,jj,jk)**0.81 120 zconc0n = concnno3 * sizen(ji,jj,jk)**0.81 121 zconc0nnh4 = concnnh4 * sizen(ji,jj,jk)**0.81 122 123 concdfe(ji,jj,jk) = concdfer * sized(ji,jj,jk)**0.81 124 zconc1d = concdno3 * sized(ji,jj,jk)**0.81 125 zconc1dnh4 = concdnh4 * sized(ji,jj,jk)**0.81 126 127 ! Computation of the optimal allocation parameters 128 ! Based on the different papers by Pahlow et al., and 129 ! Smith et al. 130 ! --------------------------------------------------- 131 132 ! Nanophytoplankton 133 znutlim = biron(ji,jj,jk) / concnfe(ji,jj,jk) 134 fananof = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 135 136 ! Diatoms 137 znutlim = biron(ji,jj,jk) / concdfe(ji,jj,jk) 138 fadiatf = MAX(0.01, MIN(0.99, 1. / ( SQRT(znutlim) + 1.) ) ) 126 139 127 140 ! Michaelis-Menten Limitation term by nutrients of … … 144 157 ! Michaelis-Menten Limitation term by nutrients: Nanophyto 145 158 ! -------------------------------------------------------- 159 ! Limitation of Fe uptake 160 zfalim = (1.-fananof) / fananof 161 xnanofer(ji,jj,jk) = (1. - fananof) * biron(ji,jj,jk) / ( biron(ji,jj,jk) + zfalim * concnfe(ji,jj,jk) ) 162 163 ! Limitation of nanophytoplankton growth 146 164 zdenom = 1. / ( zconc0n * zconc0nnh4 + zconc0nnh4 * trb(ji,jj,jk,jpno3) + zconc0n * trb(ji,jj,jk,jpnh4) ) 147 165 xnanono3(ji,jj,jk) = trb(ji,jj,jk,jpno3) * zconc0nnh4 * zdenom … … 163 181 ! Michaelis-Menten Limitation term by nutrients : Diatoms 164 182 ! ------------------------------------------------------- 183 ! Limitation of Fe uptake 184 zfalim = (1.-fadiatf) / fadiatf 185 xdiatfer(ji,jj,jk) = (1. - fadiatf) * biron(ji,jj,jk) / ( biron(ji,jj,jk) + zfalim * concdfe(ji,jj,jk) ) 186 187 ! Limitation of diatoms growth 165 188 zdenom = 1. / ( zconc1d * zconc1dnh4 + zconc1dnh4 * trb(ji,jj,jk,jpno3) + zconc1d * trb(ji,jj,jk,jpnh4) ) 166 189 xdiatno3(ji,jj,jk) = trb(ji,jj,jk,jpno3) * zconc1dnh4 * zdenom … … 184 207 END DO 185 208 END DO 209 210 ! Size estimation of phytoplankton based on total biomass 211 ! Assumes that larger biomass implies addition of larger cells 212 ! ------------------------------------------------------------ 213 DO jk = 1, jpkm1 214 DO jj = 1, jpj 215 DO ji = 1, jpi 216 zcoef = trb(ji,jj,jk,jpphy) - MIN(xsizephy, trb(ji,jj,jk,jpphy) ) 217 sizena(ji,jj,jk) = 1. + ( xsizern -1.0 ) * zcoef / ( xsizephy + zcoef ) 218 zcoef = trb(ji,jj,jk,jpdia) - MIN(xsizedia, trb(ji,jj,jk,jpdia) ) 219 sizeda(ji,jj,jk) = 1. + ( xsizerd - 1.0 ) * zcoef / ( xsizedia + zcoef ) 220 221 END DO 222 END DO 223 END DO 224 186 225 187 226 ! Compute the fraction of nanophytoplankton that is made of calcifiers … … 235 274 IF( iom_use( "LNFe" ) ) CALL iom_put( "LNFe" , xlimnfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 236 275 IF( iom_use( "LDFe" ) ) CALL iom_put( "LDFe" , xlimdfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 276 IF( iom_use( "SIZEN" ) ) CALL iom_put( "SIZEN" , sizen(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 277 IF( iom_use( "SIZED" ) ) CALL iom_put( "SIZED" , sized(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 237 278 ENDIF 238 279 ! … … 315 356 & xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk), & 316 357 & xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk), & 358 & xnanofer(jpi,jpj,jpk), xdiatfer(jpi,jpj,jpk), & 317 359 & xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk), & 318 360 & xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk), &
Note: See TracChangeset
for help on using the changeset viewer.