Changeset 1073 for trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90
- Timestamp:
- 2008-06-05T14:15:34+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/PISCES/p4zprod.F90
r935 r1073 16 16 USE oce_trc ! 17 17 USE trp_trc ! 18 USE sms ! 19 USE p4zday ! 18 USE sms_pisces ! 20 19 USE prtctl_trc 21 20 USE p4zint … … 29 28 30 29 !! * Shared module variables 31 REAL(wp), PUBLIC :: pislope = 3.0_wp , & !: 32 & pislope2 = 3.0_wp , & !: 33 & excret = 10.e-5_wp , & !: 34 & excret2 = 0.05_wp , & !: 35 & chlcnm = 0.033_wp , & !: 36 & chlcdm = 0.05_wp , & !: 37 & fecnm = 10.E-6_wp , & !: 38 & fecdm = 15.E-6_wp , & !: 39 & grosip = 0.151_wp 30 REAL(wp), PUBLIC :: & 31 pislope = 3.0_wp , & !: 32 pislope2 = 3.0_wp , & !: 33 excret = 10.e-5_wp , & !: 34 excret2 = 0.05_wp , & !: 35 chlcnm = 0.033_wp , & !: 36 chlcdm = 0.05_wp , & !: 37 fecnm = 10.E-6_wp , & !: 38 fecdm = 15.E-6_wp , & !: 39 grosip = 0.151_wp 40 40 41 41 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: & … … 43 43 44 44 REAL(wp) :: & 45 tpp = 0. !: Total primary production 45 texcret , & !: 1 - excret 46 texcret2 , & !: 1 - excret2 47 rpis180 , & !: rpi / 180 48 tpp = 0. !: Total primary production 46 49 47 50 !!* Substitution … … 69 72 REAL(wp) :: zprdiachl, zprbiochl, zsilim, ztn, zadap, zadap2 70 73 REAL(wp) :: zlim, zsilfac2, zsiborn, zprod, zetot2, zmax, zproreg, zproreg2 71 REAL(wp) :: zmxltst, zmxlday, zlim1 , zexcret, zexcret274 REAL(wp) :: zmxltst, zmxlday, zlim1 72 75 REAL(wp) :: zpislopen , zpislope2n 76 REAL(wp) :: zrum, zcodel, zargu 73 77 REAL(wp), DIMENSION(jpi,jpj) :: zmixnano , zmixdiat, zstrn 74 78 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopead , zpislopead2 … … 98 102 nspyr = INT( raass / rdt ) 99 103 100 zexcret = 1. - excret101 zexcret2 = 1. - excret2102 104 103 105 ! Computation of the optimal production … … 110 112 # endif 111 113 112 CALL p4z_day ! Computation of the day length 114 ! compute the day length depending on latitude and the day 115 !-------------------------------------------------------- 116 IF(lwp) write(numout,*) 117 IF(lwp) write(numout,*) 'p4zday : - Julian day ', nday_year 118 IF(lwp) write(numout,*) '~~~~~~' 119 120 IF( nleapy == 1 .AND. MOD( nyear, 4 ) == 0 ) THEN 121 zrum = FLOAT( nday_year - 80 ) / 366. 122 ELSE 123 zrum = FLOAT( nday_year - 80 ) / 365. 124 ENDIF 125 zcodel = ASIN( SIN( zrum * rpi * 2. ) * SIN( rpis180 * 23.5 ) ) 126 127 ! day length in hours 128 zstrn(:,:) = 0. 129 DO jj = 1, jpj 130 DO ji = 1, jpi 131 zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rpis180 ) 132 zargu = MAX( -1., MIN( 1., zargu ) ) 133 zstrn(ji,jj) = MAX( 0.0, 24. - 2. * ACOS( zargu ) / rpis180 / 15. ) 134 END DO 135 END DO 136 113 137 114 138 !CDIR NOVERRCHK … … 210 234 ! Computation of the fractionnal day length 211 235 ! ----------------------------------------- 212 zstrn(:,:) = strn(:,:) 213 214 DO jj = 1, jpj 215 DO ji = 1, jpi 216 236 ! zstrn(:,:) = strn(:,:) 237 238 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 239 zstrn(:,:) = 24. / zstrn(:,:) 240 ! DO jj = 1, jpj 241 ! DO ji = 1, jpi 242 ! 217 243 ! Computation of the maximum light intensity 218 244 ! ------------------------------------------ 219 IF( zstrn(ji,jj) < 1.e0 ) zstrn(ji,jj) = 24.220 zstrn(ji,jj) = 24./zstrn(ji,jj)221 END DO222 END DO245 ! IF( zstrn(ji,jj) < 1.e0 ) zstrn(ji,jj) = 24. 246 ! zstrn(ji,jj) = 24. / zstrn(ji,jj) 247 ! END DO 248 ! END DO 223 249 224 250 !CDIR NOVERRCHK … … 304 330 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) - zpronew(ji,jj,jk) - zpronewd(ji,jj,jk) 305 331 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) - zproreg - zproreg2 306 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zprorca(ji,jj,jk) * zexcret307 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) + zprochln(ji,jj,jk) * zexcret308 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) + zprofen(ji,jj,jk) * zexcret309 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) + zprorcad(ji,jj,jk) * zexcret2310 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) + zprochld(ji,jj,jk) * zexcret2311 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) + zprofed(ji,jj,jk) * zexcret2312 tra(ji,jj,jk,jpbsi) = tra(ji,jj,jk,jpbsi) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * zexcret2332 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zprorca(ji,jj,jk) * texcret 333 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) + zprochln(ji,jj,jk) * texcret 334 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) + zprofen(ji,jj,jk) * texcret 335 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) + zprorcad(ji,jj,jk) * texcret2 336 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) + zprochld(ji,jj,jk) * texcret2 337 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) + zprofed(ji,jj,jk) * texcret2 338 tra(ji,jj,jk,jpbsi) = tra(ji,jj,jk,jpbsi) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * texcret2 313 339 tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + & 314 340 & excret2 * zprorcad(ji,jj,jk) + excret * zprorca(ji,jj,jk) … … 316 342 & + ( o2ut + o2nit ) * ( zpronew(ji,jj,jk) + zpronewd(ji,jj,jk) ) 317 343 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) & 318 & - zexcret * zprofen(ji,jj,jk) - zexcret2 * zprofed(ji,jj,jk)344 & - texcret * zprofen(ji,jj,jk) - texcret2 * zprofed(ji,jj,jk) 319 345 tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) & 320 & - zexcret2 * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk)346 & - texcret2 * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) 321 347 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprorca(ji,jj,jk) - zprorcad(ji,jj,jk) 322 348 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) & … … 405 431 ENDIF 406 432 433 rpis180 = rpi / 180. 434 texcret = 1.0 - excret 435 texcret2 = 1.0 - excret2 436 407 437 END SUBROUTINE p4z_prod_init 408 438
Note: See TracChangeset
for help on using the changeset viewer.