- Timestamp:
- 2016-11-30T17:56:53+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r5836 r7403 7 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) F90 8 8 !!---------------------------------------------------------------------- 9 #if defined key_pisces10 !!----------------------------------------------------------------------11 !! 'key_pisces' PISCES bio-model12 !!----------------------------------------------------------------------13 9 !! p4z_mort : Compute the mortality terms for phytoplankton 14 10 !! p4z_mort_init : Initialize the mortality params for phytoplankton … … 17 13 USE trc ! passive tracers common variables 18 14 USE sms_pisces ! PISCES Source Minus Sink variables 19 USE p4zsink ! vertical flux of particulate matter due to sinking20 15 USE p4zprod ! Primary productivity 16 USE p4zlim ! Phytoplankton limitation terms 21 17 USE prtctl_trc ! print control for debugging 22 18 … … 34 30 REAL(wp), PUBLIC :: mprat2 !: 35 31 36 37 32 !!---------------------------------------------------------------------- 38 33 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 73 68 REAL(wp) :: zsizerat, zcompaph 74 69 REAL(wp) :: zfactfe, zfactch, zprcaca, zfracal 75 REAL(wp) :: ztortp , zrespp , zmortp , zstep70 REAL(wp) :: ztortp , zrespp , zmortp 76 71 CHARACTER (len=25) :: charout 77 72 !!--------------------------------------------------------------------- … … 84 79 DO ji = 1, jpi 85 80 zcompaph = MAX( ( trb(ji,jj,jk,jpphy) - 1e-8 ), 0.e0 ) 86 zstep = xstep87 # if defined key_degrad88 zstep = zstep * facvol(ji,jj,jk)89 # endif90 81 ! When highly limited by macronutrients, very small cells 91 82 ! dominate the community. As a consequence, aggregation … … 95 86 ! Squared mortality of Phyto similar to a sedimentation term during 96 87 ! blooms (Doney et al. 1996) 97 zrespp = wchl * 1.e6 * zstep * xdiss(ji,jj,jk) * zcompaph * zsizerat88 zrespp = wchl * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * zsizerat 98 89 99 90 ! Phytoplankton mortality. This mortality loss is slightly … … 119 110 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca 120 111 tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 121 #if defined key_kriest122 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp123 tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp * xkr_dnano + zrespp * xkr_ddiat124 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp * zfactfe125 #else126 112 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zfracal * zmortp 127 113 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + ( 1. - zfracal ) * zmortp 114 prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + ( 1. - zfracal ) * zmortp 115 prodgoc(ji,jj,jk) = prodgoc(ji,jj,jk) + zfracal * zmortp 128 116 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ( 1. - zfracal ) * zmortp * zfactfe 129 117 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zfracal * zmortp * zfactfe 130 #endif131 118 END DO 132 119 END DO … … 153 140 INTEGER :: ji, jj, jk 154 141 REAL(wp) :: zfactfe,zfactsi,zfactch, zcompadi 155 REAL(wp) :: zrespp2, ztortp2, zmortp2 , zstep142 REAL(wp) :: zrespp2, ztortp2, zmortp2 156 143 REAL(wp) :: zlim2, zlim1 157 144 CHARACTER (len=25) :: charout … … 176 163 ! sticky and coagulate to sink quickly out of the euphotic zone 177 164 ! ------------------------------------------------------------ 178 zstep = xstep179 # if defined key_degrad180 zstep = zstep * facvol(ji,jj,jk)181 # endif182 165 ! Phytoplankton respiration 183 166 ! ------------------------ 184 167 zlim2 = xlimdia(ji,jj,jk) * xlimdia(ji,jj,jk) 185 168 zlim1 = 0.25 * ( 1. - zlim2 ) / ( 0.25 + zlim2 ) 186 zrespp2 = 1.e6 * zstep * ( wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia)169 zrespp2 = 1.e6 * xstep * ( wchld + wchldm * zlim1 ) * xdiss(ji,jj,jk) * zcompadi * trb(ji,jj,jk,jpdia) 187 170 188 171 ! Phytoplankton mortality. 189 172 ! ------------------------ 190 ztortp2 = mprat2 * zstep * trb(ji,jj,jk,jpdia) / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi173 ztortp2 = mprat2 * xstep * trb(ji,jj,jk,jpdia) / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi 191 174 192 175 zmortp2 = zrespp2 + ztortp2 … … 202 185 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zmortp2 * zfactsi 203 186 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zmortp2 * zfactsi 204 #if defined key_kriest205 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortp2206 tra(ji,jj,jk,jpnum) = tra(ji,jj,jk,jpnum) + ztortp2 * xkr_ddiat + zrespp2 * xkr_daggr207 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zmortp2 * zfactfe208 #else209 187 tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) + zrespp2 + 0.5 * ztortp2 210 188 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + 0.5 * ztortp2 189 prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + 0.5 * ztortp2 190 prodgoc(ji,jj,jk) = prodgoc(ji,jj,jk) + zrespp2 + 0.5 * ztortp2 211 191 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + 0.5 * ztortp2 * zfactfe 212 192 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ( zrespp2 + 0.5 * ztortp2 ) * zfactfe 213 #endif214 193 END DO 215 194 END DO … … 240 219 !!---------------------------------------------------------------------- 241 220 242 NAMELIST/namp ismort/ wchl, wchld, wchldm, mprat, mprat2221 NAMELIST/namp4zmort/ wchl, wchld, wchldm, mprat, mprat2 243 222 INTEGER :: ios ! Local integer output status for namelist read 244 223 245 224 REWIND( numnatp_ref ) ! Namelist nampismort in reference namelist : Pisces phytoplankton 246 READ ( numnatp_ref, namp ismort, IOSTAT = ios, ERR = 901)247 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp ismort in reference namelist', lwp )225 READ ( numnatp_ref, namp4zmort, IOSTAT = ios, ERR = 901) 226 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp4zmort in reference namelist', lwp ) 248 227 249 228 REWIND( numnatp_cfg ) ! Namelist nampismort in configuration namelist : Pisces phytoplankton 250 READ ( numnatp_cfg, namp ismort, IOSTAT = ios, ERR = 902 )251 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp ismort in configuration namelist', lwp )252 IF(lwm) WRITE ( numonp, namp ismort )229 READ ( numnatp_cfg, namp4zmort, IOSTAT = ios, ERR = 902 ) 230 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namp4zmort in configuration namelist', lwp ) 231 IF(lwm) WRITE ( numonp, namp4zmort ) 253 232 254 233 IF(lwp) THEN ! control print 255 234 WRITE(numout,*) ' ' 256 WRITE(numout,*) ' Namelist parameters for phytoplankton mortality, namp ismort'235 WRITE(numout,*) ' Namelist parameters for phytoplankton mortality, namp4zmort' 257 236 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' 258 237 WRITE(numout,*) ' quadratic mortality of phytoplankton wchl =', wchl … … 265 244 END SUBROUTINE p4z_mort_init 266 245 267 #else268 !!======================================================================269 !! Dummy module : No PISCES bio-model270 !!======================================================================271 CONTAINS272 SUBROUTINE p4z_mort ! Empty routine273 END SUBROUTINE p4z_mort274 #endif275 276 246 !!====================================================================== 277 247 END MODULE p4zmort
Note: See TracChangeset
for help on using the changeset viewer.