Changeset 5385 for trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
- Timestamp:
- 2015-06-09T15:50:42+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r4996 r5385 60 60 CONTAINS 61 61 62 SUBROUTINE p4z_meso( kt, jnt )62 SUBROUTINE p4z_meso( kt, knt ) 63 63 !!--------------------------------------------------------------------- 64 64 !! *** ROUTINE p4z_meso *** … … 68 68 !! ** Method : - ??? 69 69 !!--------------------------------------------------------------------- 70 INTEGER, INTENT(in) :: kt, jnt ! ocean time step70 INTEGER, INTENT(in) :: kt, knt ! ocean time step 71 71 INTEGER :: ji, jj, jk 72 72 REAL(wp) :: zcompadi, zcompaph, zcompapoc, zcompaz, zcompam … … 97 97 DO jj = 1, jpj 98 98 DO ji = 1, jpi 99 zcompam = MAX( ( tr n(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 )99 zcompam = MAX( ( trb(ji,jj,jk,jpmes) - 1.e-9 ), 0.e0 ) 100 100 # if defined key_degrad 101 101 zstep = xstep * facvol(ji,jj,jk) … … 107 107 ! Respiration rates of both zooplankton 108 108 ! ------------------------------------- 109 zrespz2 = resrat2 * zfact * tr n(ji,jj,jk,jpmes) / ( xkmort + trn(ji,jj,jk,jpmes) ) &109 zrespz2 = resrat2 * zfact * trb(ji,jj,jk,jpmes) / ( xkmort + trb(ji,jj,jk,jpmes) ) & 110 110 & + resrat2 * zfact * 3. * nitrfac(ji,jj,jk) 111 111 … … 113 113 ! no real reason except that it seems to be more stable and may mimic predation 114 114 ! --------------------------------------------------------------- 115 ztortz2 = mzrat2 * 1.e6 * zfact * tr n(ji,jj,jk,jpmes)115 ztortz2 = mzrat2 * 1.e6 * zfact * trb(ji,jj,jk,jpmes) 116 116 ! 117 zcompadi = MAX( ( tr n(ji,jj,jk,jpdia) - xthresh2dia ), 0.e0 )118 zcompaz = MAX( ( tr n(ji,jj,jk,jpzoo) - xthresh2zoo ), 0.e0 )117 zcompadi = MAX( ( trb(ji,jj,jk,jpdia) - xthresh2dia ), 0.e0 ) 118 zcompaz = MAX( ( trb(ji,jj,jk,jpzoo) - xthresh2zoo ), 0.e0 ) 119 119 ! Size effect of nanophytoplankton on grazing : the smaller it is, the less prone 120 120 ! it is to predation by mesozooplankton 121 121 ! ------------------------------------------------------------------------------- 122 zcompaph = MAX( ( tr n(ji,jj,jk,jpphy) - xthresh2phy ), 0.e0 ) &122 zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - xthresh2phy ), 0.e0 ) & 123 123 & * MIN(1., MAX( 0., ( quotan(ji,jj,jk) - 0.2) / 0.3 ) ) 124 zcompapoc = MAX( ( tr n(ji,jj,jk,jppoc) - xthresh2poc ), 0.e0 )124 zcompapoc = MAX( ( trb(ji,jj,jk,jppoc) - xthresh2poc ), 0.e0 ) 125 125 126 126 zfood = xprefc * zcompadi + xprefz * zcompaz + xprefp * zcompaph + xprefpoc * zcompapoc … … 128 128 zdenom = zfoodlim / ( xkgraz2 + zfoodlim ) 129 129 zdenom2 = zdenom / ( zfood + rtrn ) 130 zgraze2 = grazrat2 * zstep * tgfunc2(ji,jj,jk) * tr n(ji,jj,jk,jpmes)130 zgraze2 = grazrat2 * zstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpmes) 131 131 132 132 zgrazd = zgraze2 * xprefc * zcompadi * zdenom2 … … 135 135 zgrazpoc = zgraze2 * xprefpoc * zcompapoc * zdenom2 136 136 137 zgraznf = zgrazn * tr n(ji,jj,jk,jpnfe) / ( trn(ji,jj,jk,jpphy) + rtrn)138 zgrazf = zgrazd * tr n(ji,jj,jk,jpdfe) / ( trn(ji,jj,jk,jpdia) + rtrn)139 zgrazpof = zgrazpoc * tr n(ji,jj,jk,jpsfe) / ( trn(ji,jj,jk,jppoc) + rtrn)137 zgraznf = zgrazn * trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) + rtrn) 138 zgrazf = zgrazd * trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) + rtrn) 139 zgrazpof = zgrazpoc * trb(ji,jj,jk,jpsfe) / ( trb(ji,jj,jk,jppoc) + rtrn) 140 140 141 141 ! Mesozooplankton flux feeding on GOC … … 144 144 # if ! defined key_kriest 145 145 zgrazffeg = grazflux * zstep * wsbio4(ji,jj,jk) & 146 & * tgfunc2(ji,jj,jk) * tr n(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes)147 zgrazfffg = zgrazffeg * tr n(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn)146 & * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes) 147 zgrazfffg = zgrazffeg * trb(ji,jj,jk,jpbfe) / (trb(ji,jj,jk,jpgoc) + rtrn) 148 148 # endif 149 149 zgrazffep = grazflux * zstep * wsbio3(ji,jj,jk) & 150 & * tgfunc2(ji,jj,jk) * tr n(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes)151 zgrazfffp = zgrazffep * tr n(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn)150 & * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jppoc) * trb(ji,jj,jk,jpmes) 151 zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 152 152 ! 153 153 # if ! defined key_kriest … … 158 158 ! diatoms based aggregates are more prone to fractionation 159 159 ! since they are more porous (marine snow instead of fecal pellets) 160 zratio = tr n(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn )160 zratio = trb(ji,jj,jk,jpgsi) / ( trb(ji,jj,jk,jpgoc) + rtrn ) 161 161 zratio2 = zratio * zratio 162 162 zfrac = zproport * grazflux * zstep * wsbio4(ji,jj,jk) & 163 & * tr n(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) &163 & * trb(ji,jj,jk,jpgoc) * trb(ji,jj,jk,jpmes) & 164 164 & * ( 0.2 + 3.8 * zratio2 / ( 1.**2 + zratio2 ) ) 165 zfracfe = zfrac * tr n(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn)165 zfracfe = zfrac * trb(ji,jj,jk,jpbfe) / (trb(ji,jj,jk,jpgoc) + rtrn) 166 166 167 167 zgrazffep = zproport * zgrazffep … … 215 215 tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) - zgrazz 216 216 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgrazn 217 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgrazn * tr n(ji,jj,jk,jpnch) / ( trn(ji,jj,jk,jpphy) + rtrn )218 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazd * tr n(ji,jj,jk,jpdch) / ( trn(ji,jj,jk,jpdia) + rtrn )219 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazd * tr n(ji,jj,jk,jpdsi) / ( trn(ji,jj,jk,jpdia) + rtrn )220 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazd * tr n(ji,jj,jk,jpdsi) / ( trn(ji,jj,jk,jpdia) + rtrn )217 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgrazn * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) + rtrn ) 218 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazd * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn ) 219 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazd * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 220 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazd * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 221 221 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zgraznf 222 222 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazf … … 231 231 tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 232 232 #if defined key_kriest 233 znumpoc = tr n(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn )233 znumpoc = trb(ji,jj,jk,jpnum) / ( trb(ji,jj,jk,jppoc) + rtrn ) 234 234 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep + zgrapoc2 235 235 tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc + zgrapoc2 * xkr_dmeso & … … 248 248 END DO 249 249 ! 250 IF( lk_iomput .AND. jnt == nrdttrc ) THEN250 IF( lk_iomput .AND. knt == nrdttrc ) THEN 251 251 CALL wrk_alloc( jpi, jpj, jpk, zw3d ) 252 252 IF( iom_use( "GRAZ2" ) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.