- Timestamp:
- 2013-03-30T09:49:26+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r3829 r3856 54 54 !!---------------------------------------------------------------------- 55 55 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 56 !! $Id: p4zmeso.F90 3 295 2012-01-30 15:49:07Z cetlod $56 !! $Id: p4zmeso.F90 3160 2011-11-20 14:27:18Z cetlod $ 57 57 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 58 58 !!---------------------------------------------------------------------- … … 72 72 REAL(wp) :: zcompadi, zcompaph, zcompapoc, zcompaz, zcompam 73 73 REAL(wp) :: zgraze2 , zdenom, zdenom2, zncratio 74 REAL(wp) :: zfact , zstep, zfood, zfoodlim 74 REAL(wp) :: zfact , zstep, zfood, zfoodlim, zproport 75 REAL(wp) :: zmortzgoc, zfrac, zfracfe, zratio, zratio2 75 76 REAL(wp) :: zepshert, zepsherv, zgrarsig, zgraztot, zgraztotf 76 REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, z mortzgoc, zgrasrat77 REAL(wp) :: zgrarem2, zgrafer2, zgrapoc2, zprcaca, zmortz2, zgrasrat 77 78 #if defined key_kriest 78 79 REAL znumpoc … … 80 81 REAL(wp) :: zrespz2, ztortz2, zgrazd, zgrazz, zgrazpof 81 82 REAL(wp) :: zgrazn, zgrazpoc, zgraznf, zgrazf 82 REAL(wp) :: zgrazfff, zgrazffe 83 REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 84 CHARACTER (len=25) :: charout 83 85 REAL(wp) :: zrfact2 84 86 REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing 85 CHARACTER (len=25) :: charout 87 86 88 !!--------------------------------------------------------------------- 87 89 ! 88 90 IF( nn_timing == 1 ) CALL timing_start('p4z_meso') 89 91 ! 90 IF( ln_diatrc .AND. lk_iomput ) CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 91 ! 92 IF( ln_diatrc .AND. lk_iomput ) THEN 93 CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 94 zgrazing(:,:,:) = 0._wp 95 ENDIF 96 92 97 DO jk = 1, jpkm1 93 98 DO jj = 1, jpj … … 118 123 119 124 zfood = xprefc * zcompadi + xprefz * zcompaz + xprefp * zcompaph + xprefpoc * zcompapoc 120 zfoodlim = MAX( 0., zfood - MIN( 0.5 * zfood 125 zfoodlim = MAX( 0., zfood - MIN( 0.5 * zfood, xthresh2 ) ) 121 126 zdenom = zfoodlim / ( xkgraz2 + zfoodlim ) 122 127 zdenom2 = zdenom / ( zfood + rtrn ) … … 135 140 ! ---------------------------------- 136 141 # if ! defined key_kriest 137 zgrazffe = grazflux * zstep * wsbio4(ji,jj,jk) & 138 & * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 139 zgrazfff = zgrazffe * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 142 zgrazffeg = grazflux * zstep * wsbio4(ji,jj,jk) & 143 ! & * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 144 & * 2. * trn(ji,jj,jk,jpgoc) * trn(ji,jj,jk,jpmes) 145 zgrazfffg = zgrazffeg * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 146 # endif 147 zgrazffep = grazflux * zstep * wsbio3(ji,jj,jk) & 148 ! & * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 149 & * 2. * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 150 zgrazfffp = zgrazffep * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn) 151 ! 152 # if ! defined key_kriest 153 zgraztot = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 154 ! Compute the proportion of filter feeders 155 zproport = (zgrazffep + zgrazffeg)/(rtrn + zgraztot) 156 zratio = trn(ji,jj,jk,jpgsi) / ( trn(ji,jj,jk,jpgoc) + rtrn ) 157 zratio2 = zratio * zratio 158 ! zfrac = zproport * 0.15 * zstep * & 159 ! ( 0.2 + 0.8 * zratio2 / ( 1.5**2 + zratio2 ) ) & 160 ! *trn(ji,jj,jk,jpmes)/3E-7 *trn(ji,jj,jk,jpgoc) 161 zfrac = zproport * grazflux * zstep * wsbio4(ji,jj,jk) & 162 & * ( 0.1 + 3.9 * zratio2 / ( 1.**2 + zratio2 ) ) & 163 & * 2. * trn(ji,jj,jk,jpmes) * trn(ji,jj,jk,jpgoc) 164 165 zfracfe = zfrac * trn(ji,jj,jk,jpbfe) / (trn(ji,jj,jk,jpgoc) + rtrn) 166 167 zgrazffep = zproport * zgrazffep 168 zgrazffeg = zproport * zgrazffeg 169 zgrazfffp = zproport * zgrazfffp 170 zgrazfffg = zproport * zgrazfffg 171 zgraztot = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 172 zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 140 173 # else 141 zgrazffe = grazflux * zstep * wsbio3(ji,jj,jk) & 142 & * tgfunc2(ji,jj,jk) * trn(ji,jj,jk,jppoc) * trn(ji,jj,jk,jpmes) 143 zgrazfff = zgrazffe * trn(ji,jj,jk,jpsfe) / (trn(ji,jj,jk,jppoc) + rtrn) 174 zgraztot = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep 175 ! Compute the proportion of filter feeders 176 zproport = zgrazffep / ( zgraztot + rtrn ) 177 zgrazffep = zproport * zgrazffep 178 zgrazfffp = zproport * zgrazfffp 179 zgraztot = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep 180 zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp 144 181 # endif 145 !146 zgraztot = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffe147 zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfff148 182 149 183 ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) … … 179 213 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zgraztotf * unass2 180 214 #else 181 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zgrapoc2 182 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgraztotf * unass2 215 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zgrapoc2 - zfrac 216 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zfrac 217 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgraztotf * unass2 - zfracfe 218 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zfracfe 219 183 220 #endif 184 221 zmortz2 = ztortz2 + zrespz2 … … 205 242 #if defined key_kriest 206 243 znumpoc = trn(ji,jj,jk,jpnum) / ( trn(ji,jj,jk,jppoc) + rtrn ) 207 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffe 244 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortzgoc - zgrazpoc - zgrazffep 208 245 tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) - zgrazpoc * znumpoc & 209 & + zmortzgoc * xkr_dmeso - zgrazffe* znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn )210 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfff - zgrazpof246 & + zmortzgoc * xkr_dmeso - zgrazffep * znumpoc * wsbio4(ji,jj,jk) / ( wsbio3(ji,jj,jk) + rtrn ) 247 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz2 - zgrazfffp - zgrazpof 211 248 #else 212 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc 213 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffe 214 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof 215 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfff 249 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep 250 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zmortzgoc - zgrazffeg 251 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp 252 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg 216 253 #endif 217 254
Note: See TracChangeset
for help on using the changeset viewer.