- Timestamp:
- 2016-11-03T16:41:10+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r6966 r7180 81 81 REAL(wp) :: zprod, zproreg, zproreg2, zprochln, zprochld 82 82 REAL(wp) :: zmaxday, zdocprod, zpislopen, zpisloped 83 REAL(wp) :: zrum, zcodel, zargu, zval, zfeup 83 REAL(wp) :: zmxltst, zmxlday 84 REAL(wp) :: zrum, zcodel, zargu, zval, zfeup, chlcnm_n, chlcdm_n 84 85 REAL(wp) :: zfact 85 86 CHARACTER (len=25) :: charout 86 REAL(wp), POINTER, DIMENSION(:,: ) :: zstrn, zw2d 87 REAL(wp), POINTER, DIMENSION(:,: ) :: zstrn, zw2d, zmixnano, zmixdiat 87 88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt, zw3d 88 89 REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd … … 93 94 ! 94 95 ! Allocate temporary workspace 95 CALL wrk_alloc( jpi, jpj, z strn )96 CALL wrk_alloc( jpi, jpj, zmixnano, zmixdiat, zstrn ) 96 97 CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt ) 97 98 CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) … … 104 105 105 106 ! Computation of the optimal production 106 prmax(:,:,:) = 0. 6_wp * r1_rday * tgfunc(:,:,:)107 prmax(:,:,:) = 0.8_wp * r1_rday * tgfunc(:,:,:) 107 108 IF( lk_degrad ) prmax(:,:,:) = prmax(:,:,:) * facvol(:,:,:) 108 109 … … 127 128 IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 128 129 zval = MAX( 1., zstrn(ji,jj) ) 129 zmxl_fac(ji,jj,jk) = zval 130 IF( fsdept(ji,jj,jk) <= hmld(ji,jj) ) THEN 131 zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 132 ENDIF 130 133 zmxl_chl(ji,jj,jk) = zval / 24. 131 IF( fsdepw(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 132 zval = MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 133 zmxl_fac(ji,jj,jk) = zmxl_fac(ji,jj,jk) * zval 134 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) * zval 135 ENDIF 136 zmxl_fac(ji,jj,jk) = ( 1. - exp( -0.2 * zmxl_fac(ji,jj,jk) ) ) 137 zmxl_chl(ji,jj,jk) = zmxl_chl(ji,jj,jk) 134 zmxl_fac(ji,jj,jk) = 1.5 * zval / ( 12. + zval ) 138 135 ENDIF 139 136 END DO … … 143 140 zprbio(:,:,:) = prmax(:,:,:) * zmxl_fac(:,:,:) 144 141 zprdia(:,:,:) = zprbio(:,:,:) 142 143 ! Maximum light intensity 144 WHERE( zstrn(:,:) < 1.e0 ) zstrn(:,:) = 24. 145 145 146 146 ! Computation of the P-I slope for nanos and diatoms … … 253 253 END DO 254 254 255 ! Mixed-layer effect on production 255 256 ! Sea-ice effect on production 256 257 257 258 DO jk = 1, jpkm1 258 zprbio(:,:,jk) = zprbio(:,:,jk) * ( 1. - fr_i(:,:) ) 259 zprdia(:,:,jk) = zprdia(:,:,jk) * ( 1. - fr_i(:,:) ) 260 END DO 261 259 DO jj = 1, jpj 260 DO ji = 1, jpi 261 zprbio(ji,jj,jk) = zprbio(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 262 zprdia(ji,jj,jk) = zprdia(ji,jj,jk) * ( 1. - fr_i(ji,jj) ) 263 END DO 264 END DO 265 END DO 262 266 263 267 ! Computation of the various production terms … … 303 307 zprod = rday * zprorcan(ji,jj,jk) * zprnch(ji,jj,jk) * xlimphy(ji,jj,jk) 304 308 zprochln = chlcmin * 12. * zprorcan (ji,jj,jk) 305 zprochln = zprochln + (chlcnm-chlcmin) * 12. * zprod / & 309 chlcnm_n = MIN ( chlcnm, ( chlcnm / (1. - 1.14 / 43.4 *tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 310 zprochln = zprochln + (chlcnm_n-chlcmin) * 12. * zprod / & 306 311 & ( zpislopeadn(ji,jj,jk) * znanotot +rtrn) 307 312 ! production terms for diatoms ( chlorophyll ) … … 309 314 zprod = rday * zprorcad(ji,jj,jk) * zprdch(ji,jj,jk) * xlimdia(ji,jj,jk) 310 315 zprochld = chlcmin * 12. * zprorcad(ji,jj,jk) 311 zprochld = zprochld + (chlcdm-chlcmin) * 12. * zprod / & 316 chlcdm_n = MIN ( chlcdm, ( chlcdm / (1. - 1.14 / 43.4 * tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 317 zprochld = zprochld + (chlcdm_n-chlcmin) * 12. * zprod / & 312 318 & ( zpislopeadd(ji,jj,jk) * zdiattot +rtrn ) 313 319 ! Update the arrays TRA which contain the Chla sources and sinks … … 485 491 ENDIF 486 492 ! 487 CALL wrk_dealloc( jpi, jpj, zstrn )493 CALL wrk_dealloc( jpi, jpj, zmixnano, zmixdiat, zstrn ) 488 494 CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadd, zprdia, zprbio, zprdch, zprnch, zysopt ) 489 495 CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl )
Note: See TracChangeset
for help on using the changeset viewer.