- Timestamp:
- 2015-05-13T10:37:43+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r4624 r5266 9 9 !! 3.4 ! 2011-06 (O. Aumont, C. Ethe) Improve light availability of nano & diat 10 10 !!---------------------------------------------------------------------- 11 #if defined key_pisces 11 #if defined key_pisces || defined key_pisces_quota 12 12 !!---------------------------------------------------------------------- 13 13 !! 'key_pisces' PISCES bio-model … … 41 41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: par_varsw !: PAR fraction of shortwave 42 42 43 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enano, ediat !: PAR for phyto, nano and diat 43 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: enano, ediat !: PAR for nano and diat 44 #if defined key_pisces_quota 45 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: epico !: PAR for pico 46 #endif 44 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: emoy !: averaged PAR in the mixed layer 45 48 … … 74 77 REAL(wp) :: zc0 , zc1 , zc2, zc3, z1_dep 75 78 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp, zetmp1, zetmp2 79 #if defined key_pisces_quota 80 REAL(wp), POINTER, DIMENSION(:,: ) :: zetmp3 81 #endif 76 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zekg, zekr, zekb, ze0, ze1, ze2, ze3 77 83 !!--------------------------------------------------------------------- … … 82 88 CALL wrk_alloc( jpi, jpj, zdepmoy, zetmp, zetmp1, zetmp2 ) 83 89 CALL wrk_alloc( jpi, jpj, jpk, zekg, zekr, zekb, ze0, ze1, ze2, ze3 ) 90 #if defined key_pisces_quota 91 CALL wrk_alloc( jpi, jpj, zetmp3 ) 92 #endif 84 93 85 94 IF( jnt == 1 .AND. ln_varpar ) CALL p4z_optsbc( kt ) … … 97 106 !CDIR NOVERRCHK 98 107 DO ji = 1, jpi 108 #if defined key_pisces_quota 109 zchl = ( trn(ji,jj,jk,jpnch) + trn(ji,jj,jk,jpdch) + trn(ji,jj,jk,jppch) + rtrn ) * 1.e6 110 #else 99 111 zchl = ( trn(ji,jj,jk,jpnch) + trn(ji,jj,jk,jpdch) + rtrn ) * 1.e6 112 #endif 100 113 zchl = MIN( 10. , MAX( 0.05, zchl ) ) 101 114 irgb = NINT( 41 + 20.* LOG10( zchl ) + rtrn ) … … 132 145 enano(ji,jj,1) = ( 2.1 * zc1 + 0.42 * zc2 + 0.4 * zc3 ) 133 146 ediat(ji,jj,1) = ( 1.6 * zc1 + 0.69 * zc2 + 0.7 * zc3 ) 147 #if defined key_pisces_quota 148 epico(ji,jj,1) = ( 2.1 * zc1 + 0.42 * zc2 + 0.4 * zc3 ) 149 #endif 134 150 END DO 135 151 END DO … … 150 166 enano(ji,jj,jk) = ( 2.1 * zc1 + 0.42 * zc2 + 0.4 * zc3 ) 151 167 ediat(ji,jj,jk) = ( 1.6 * zc1 + 0.69 * zc2 + 0.7 * zc3 ) 168 #if defined key_pisces_quota 169 epico(ji,jj,jk) = ( 2.1 * zc1 + 0.42 * zc2 + 0.4 * zc3 ) 170 #endif 152 171 END DO 153 172 END DO 154 173 END DO 155 174 156 175 IF( ln_qsr_bio ) THEN !* heat flux accros w-level (used in the dynamics) 157 176 ! ! ------------------------ … … 219 238 zetmp1 (:,:) = 0.e0 220 239 zetmp2 (:,:) = 0.e0 240 #if defined key_pisces_quota 241 zetmp3 (:,:) = 0.e0 242 #endif 221 243 222 244 DO jk = 1, nksrp … … 229 251 zetmp1 (ji,jj) = zetmp1 (ji,jj) + enano(ji,jj,jk) * fse3t(ji,jj,jk) 230 252 zetmp2 (ji,jj) = zetmp2 (ji,jj) + ediat(ji,jj,jk) * fse3t(ji,jj,jk) 253 #if defined key_pisces_quota 254 zetmp3 (ji,jj) = zetmp3 (ji,jj) + epico(ji,jj,jk) * fse3t(ji,jj,jk) 255 #endif 231 256 zdepmoy(ji,jj) = zdepmoy(ji,jj) + fse3t(ji,jj,jk) 232 257 ENDIF … … 247 272 enano(ji,jj,jk) = zetmp1(ji,jj) * z1_dep 248 273 ediat(ji,jj,jk) = zetmp2(ji,jj) * z1_dep 274 #if defined key_pisces_quota 275 epico(ji,jj,jk) = zetmp3(ji,jj) * z1_dep 276 #endif 249 277 ENDIF 250 278 END DO … … 268 296 CALL wrk_dealloc( jpi, jpj, zdepmoy, zetmp, zetmp1, zetmp2 ) 269 297 CALL wrk_dealloc( jpi, jpj, jpk, zekg, zekr, zekb, ze0, ze1, ze2, ze3 ) 298 #if defined key_pisces_quota 299 CALL wrk_dealloc( jpi, jpj, zetmp3 ) 300 #endif 270 301 ! 271 302 IF( nn_timing == 1 ) CALL timing_stop('p4z_opt') … … 376 407 etot (:,:,:) = 0._wp 377 408 enano(:,:,:) = 0._wp 409 #if defined key_pisces_quota 410 epico(:,:,:) = 0._wp 411 #endif 378 412 ediat(:,:,:) = 0._wp 379 413 IF( ln_qsr_bio ) etot3(:,:,:) = 0._wp … … 388 422 !! *** ROUTINE p4z_opt_alloc *** 389 423 !!---------------------------------------------------------------------- 390 ALLOCATE( enano(jpi,jpj,jpk), ediat(jpi,jpj,jpk), emoy (jpi,jpj,jpk), STAT=p4z_opt_alloc ) 424 #if defined key_pisces_quota 425 ALLOCATE( enano(jpi,jpj,jpk), ediat(jpi,jpj,jpk), emoy (jpi,jpj,jpk), epico(jpi,jpj,jpk), & 426 & STAT=p4z_opt_alloc ) 427 #else 428 ALLOCATE( enano(jpi,jpj,jpk), ediat(jpi,jpj,jpk), emoy (jpi,jpj,jpk), & 429 & STAT=p4z_opt_alloc ) 430 #endif 391 431 ! 392 432 IF( p4z_opt_alloc /= 0 ) CALL ctl_warn('p4z_opt_alloc : failed to allocate arrays.')
Note: See TracChangeset
for help on using the changeset viewer.