Changeset 3446 for branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
- Timestamp:
- 2012-08-10T13:13:55+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r3443 r3446 19 19 USE sms_pisces ! PISCES variables 20 20 USE p4zopt ! Optical 21 USE iom ! I/O manager 21 22 22 23 IMPLICIT NONE … … 33 34 REAL(wp), PUBLIC :: concnfer = 1.e-9_wp !: Iron half saturation for nanophyto 34 35 REAL(wp), PUBLIC :: concdfer = 2.e-9_wp !: Iron half saturation for diatoms 36 REAL(wp), PUBLIC :: concbno3 = 2.5e-7_wp !: NO3 half saturation for bacteria 37 REAL(wp), PUBLIC :: concbnh4 = 2.5e-8_wp !: NH4 half saturation for bacteria 35 38 REAL(wp), PUBLIC :: xsizedia = 5.e-7_wp !: Minimum size criteria for diatoms 36 39 REAL(wp), PUBLIC :: xsizephy = 1.e-6_wp !: Minimum size criteria for nanophyto … … 59 62 CONTAINS 60 63 61 SUBROUTINE p4z_lim( kt )64 SUBROUTINE p4z_lim( kt, jnt ) 62 65 !!--------------------------------------------------------------------- 63 66 !! *** ROUTINE p4z_lim *** … … 69 72 !!--------------------------------------------------------------------- 70 73 ! 71 INTEGER, INTENT(in) :: kt 74 INTEGER, INTENT(in) :: kt, jnt 72 75 ! 73 76 INTEGER :: ji, jj, jk … … 89 92 zno3 = trn(ji,jj,jk,jpno3) / 40.e-6 90 93 zferlim = MAX( 3e-11 * zno3 * zno3, 5e-12 ) 91 zferlim = MIN( zferlim, 3e-11 )94 zferlim = MIN( zferlim, 5e-11 ) 92 95 trn(ji,jj,jk,jpfer) = MAX( trn(ji,jj,jk,jpfer), zferlim ) 93 96 … … 110 113 zconc0nnh4 = MAX( concnnh4, ( zconcn2 * concnnh4 + concnnh4 * xsizern * zconcn ) * z1_trnphy ) 111 114 115 ! Michaelis-Menten Limitation term for nutrients Small bacteria 116 ! ------------------------------------------------------------- 117 zdenom = 1. / ( concbno3 * concbnh4 + concbnh4 * trn(ji,jj,jk,jpno3) + concbno3 * trn(ji,jj,jk,jpnh4) ) 118 xnanono3(ji,jj,jk) = trn(ji,jj,jk,jpno3) * concbnh4 * zdenom 119 xnanonh4(ji,jj,jk) = trn(ji,jj,jk,jpnh4) * concbno3 * zdenom 120 ! 121 zlim1 = xnanono3(ji,jj,jk) + xnanonh4(ji,jj,jk) 122 zlim2 = trn(ji,jj,jk,jppo4) / ( trn(ji,jj,jk,jppo4) + concbnh4 ) 123 zlim3 = trn(ji,jj,jk,jpfer) / ( concbfe + trn(ji,jj,jk,jpfer) ) 124 zlim4 = trn(ji,jj,jk,jpdoc) / ( xkdoc + trn(ji,jj,jk,jpdoc) ) 125 xlimbacl(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) 126 xlimbac (ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) * zlim4 127 112 128 ! Michaelis-Menten Limitation term for nutrients Small flagellates 113 129 ! ----------------------------------------------- … … 124 140 xlimphy(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) 125 141 ! 126 zlim3 = trn(ji,jj,jk,jpfer) / ( concbfe + trn(ji,jj,jk,jpfer) )127 zlim4 = trn(ji,jj,jk,jpdoc) / ( xkdoc + trn(ji,jj,jk,jpdoc) )128 xlimbac(ji,jj,jk) = MIN( zlim1, zlim2, zlim3 ) * zlim4129 130 142 ! Michaelis-Menten Limitation term for nutrients Diatoms 131 143 ! ---------------------------------------------- … … 137 149 zlim2 = trn(ji,jj,jk,jppo4) / ( trn(ji,jj,jk,jppo4) + zconc1dnh4 ) 138 150 zlim3 = trn(ji,jj,jk,jpsil) / ( trn(ji,jj,jk,jpsil) + xksi(ji,jj) ) 139 zratio = trn(ji,jj,jk,jpdfe) /(trn(ji,jj,jk,jpdia)+rtrn)151 zratio = trn(ji,jj,jk,jpdfe) * z1_trndia 140 152 zironmin = xcoef1 * trn(ji,jj,jk,jpdch) * z1_trndia + xcoef2 * zlim1 + xcoef3 * xdiatno3(ji,jj,jk) 141 153 zlim4 = MAX( 0., ( zratio - zironmin ) / qdfelim ) … … 155 167 & / ( concnno3 * concnnh4 + concnnh4 * trn(ji,jj,jk,jpno3) + concnno3 * trn(ji,jj,jk,jpnh4) ) 156 168 zlim2 = trn(ji,jj,jk,jppo4) / ( trn(ji,jj,jk,jppo4) + concnnh4 ) 157 zlim3 = trn(ji,jj,jk,jpfer) / ( trn(ji,jj,jk,jpfer) + concbfe)169 zlim3 = trn(ji,jj,jk,jpfer) / ( trn(ji,jj,jk,jpfer) + 5.E-11 ) 158 170 ztem1 = MAX( 0., tsn(ji,jj,jk,jp_tem) ) 159 171 ztem2 = tsn(ji,jj,jk,jp_tem) - 10. 160 172 zetot1 = MAX( 0., etot(ji,jj,jk) - 1.) / ( 4. + etot(ji,jj,jk) ) 161 zetot2 = 1. / ( 30. + etot(ji,jj,jk) )173 zetot2 = 30. / ( 30. + etot(ji,jj,jk) ) 162 174 163 175 xfracal(ji,jj,jk) = caco3r * MIN( zlim1, zlim2, zlim3 ) & 164 176 & * ztem1 / ( 0.1 + ztem1 ) & 165 177 & * MAX( 1., trn(ji,jj,jk,jpphy) * 1.e6 / 2. ) & 166 & * 2.325 * zetot1 * 30.* zetot2 &178 & * zetot1 * zetot2 & 167 179 & * ( 1. + EXP(-ztem2 * ztem2 / 25. ) ) & 168 180 & * MIN( 1., 50. / ( hmld(ji,jj) + rtrn ) ) … … 173 185 END DO 174 186 ! 187 IF( ln_diatrc .AND. lk_iomput .AND. jnt == nrdttrc ) THEN ! save output diagnostics 188 ! 189 CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) ) ! euphotic layer deptht 190 CALL iom_put( "LNnut" , xlimphy(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term 191 CALL iom_put( "LDnut" , xlimdia(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term 192 CALL iom_put( "LNFe" , xlimnfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 193 CALL iom_put( "LDFe" , xlimdfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term 194 ! 195 ENDIF 196 197 ! 175 198 IF( nn_timing == 1 ) CALL timing_stop('p4z_lim') 176 199 ! … … 192 215 193 216 NAMELIST/nampislim/ concnno3, concdno3, concnnh4, concdnh4, concnfer, concdfer, concbfe, & 194 & xsizedia, xsizephy, xsizern, xsizerd, xksi1, xksi2, xkdoc,&195 & qnfelim, qdfelim, caco3r217 & concbno3, concbnh4, xsizedia, xsizephy, xsizern, xsizerd, & 218 & xksi1, xksi2, xkdoc, qnfelim, qdfelim, caco3r 196 219 197 220 REWIND( numnatp ) ! read numnat … … 203 226 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 204 227 WRITE(numout,*) ' mean rainratio caco3r = ', caco3r 205 WRITE(numout,*) ' NO3 half saturation of nanophyto concnno3 = 206 WRITE(numout,*) ' NO3 half saturation of diatoms concdno3 = 228 WRITE(numout,*) ' NO3 half saturation of nanophyto concnno3 = ', concnno3 229 WRITE(numout,*) ' NO3 half saturation of diatoms concdno3 = ', concdno3 207 230 WRITE(numout,*) ' NH4 half saturation for phyto concnnh4 = ', concnnh4 208 231 WRITE(numout,*) ' NH4 half saturation for diatoms concdnh4 = ', concdnh4 … … 214 237 WRITE(numout,*) ' size ratio for nanophytoplankton xsizern = ', xsizern 215 238 WRITE(numout,*) ' size ratio for diatoms xsizerd = ', xsizerd 239 WRITE(numout,*) ' NO3 half saturation of bacteria concbno3 = ', concbno3 240 WRITE(numout,*) ' NH4 half saturation for bacteria concbnh4 = ', concbnh4 216 241 WRITE(numout,*) ' Minimum size criteria for diatoms xsizedia = ', xsizedia 217 242 WRITE(numout,*) ' Minimum size criteria for nanophyto xsizephy = ', xsizephy
Note: See TracChangeset
for help on using the changeset viewer.