Changeset 11394 for branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
- Timestamp:
- 2019-08-02T15:14:02+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14_STOPACK/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r6498 r11394 33 33 USE wrk_nemo ! Memory Allocation 34 34 USE timing ! Timing 35 USE stopack 35 36 36 37 IMPLICIT NONE … … 52 53 53 54 ! Module variables 54 REAL(wp) :: xsi0r!: inverse of rn_si055 REAL(wp), ALLOCATABLE :: xsi0r(:,:) !: inverse of rn_si0 55 56 REAL(wp) :: xsi1r !: inverse of rn_si1 56 57 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_chl ! structure of input Chl (file informations, fields read) … … 182 183 ! ! ============================================== ! 183 184 ! 184 ! ! ------------------------- ! 185 ! 186 IF( nn_spp_qsi0 > 0 ) THEN 187 xsi0r = rn_si0 188 CALL spp_gen(kt, xsi0r, nn_spp_qsi0, rn_qsi0_sd, jk_spp_qsi0 ) 189 xsi0r = 1.e0 / xsi0r 190 ENDIF 191 ! ! ------------------------- ! 185 192 IF( ln_qsr_rgb) THEN ! R-G-B light penetration ! 186 193 ! ! ------------------------- ! … … 251 258 !CDIR NOVERRCHK 252 259 DO ji = 1, jpi 253 zc0 = ze0(ji,jj,jk-1) * EXP( - fse3t(ji,jj,jk-1) * xsi0r 260 zc0 = ze0(ji,jj,jk-1) * EXP( - fse3t(ji,jj,jk-1) * xsi0r(ji,jj) ) 254 261 zc1 = ze1(ji,jj,jk-1) * EXP( - fse3t(ji,jj,jk-1) * zekb(ji,jj) ) 255 262 zc2 = ze2(ji,jj,jk-1) * EXP( - fse3t(ji,jj,jk-1) * zekg(ji,jj) ) … … 263 270 END DO 264 271 END DO 272 ! clem: store attenuation coefficient of the first ocean level 273 IF ( ln_qsr_ice ) THEN 274 DO jj = 1, jpj 275 DO ji = 1, jpi 276 zzc0 = rn_abs * EXP( - fse3t(ji,jj,1) * xsi0r(ji,jj) ) 277 zzc1 = zcoef * EXP( - fse3t(ji,jj,1) * zekb(ji,jj) ) 278 zzc2 = zcoef * EXP( - fse3t(ji,jj,1) * zekg(ji,jj) ) 279 zzc3 = zcoef * EXP( - fse3t(ji,jj,1) * zekr(ji,jj) ) 280 fraqsr_1lev(ji,jj) = 1.0 - ( zzc0 + zzc1 + zzc2 + zzc3 ) * tmask(ji,jj,2) 281 END DO 282 END DO 283 ENDIF 265 284 ! 266 285 DO jk = 1, nksr ! compute and add qsr trend to ta … … 310 329 ! ! ------------------------- ! 311 330 ! 312 IF( lk_vvl ) THEN !* variable volume 331 IF( lk_vvl .OR. nn_spp_qsi0 > 0 ) THEN !* variable volume 332 313 333 zz0 = rn_abs * r1_rau0_rcp 314 334 zz1 = ( 1. - rn_abs ) * r1_rau0_rcp … … 316 336 DO jj = 1, jpj 317 337 DO ji = 1, jpi 318 zc0 = zz0 * EXP( -fsdepw(ji,jj,jk )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk )*xsi1r )319 zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r )338 zc0 = zz0 * EXP( -fsdepw(ji,jj,jk )*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,jk )*xsi1r ) 339 zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 320 340 qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0*tmask(ji,jj,jk) - zc1*tmask(ji,jj,jk+1) ) 321 341 END DO … … 326 346 DO jj = 1, jpj 327 347 DO ji = 1, jpi 328 zc0 = zz0 * EXP( -fsdepw(ji,jj,1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,1)*xsi1r )329 zc1 = zz0 * EXP( -fsdepw(ji,jj,2)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,2)*xsi1r )348 zc0 = zz0 * EXP( -fsdepw(ji,jj,1)*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,1)*xsi1r ) 349 zc1 = zz0 * EXP( -fsdepw(ji,jj,2)*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,2)*xsi1r ) 330 350 fraqsr_1lev(ji,jj) = ( zc0*tmask(ji,jj,1) - zc1*tmask(ji,jj,2) ) / r1_rau0_rcp 331 351 END DO … … 490 510 ! ! ===================================== ! 491 511 ! 512 ALLOCATE( xsi0r(jpi,jpj) ) 492 513 xsi0r = 1.e0 / rn_si0 493 514 xsi1r = 1.e0 / rn_si1 … … 544 565 !CDIR NOVERRCHK 545 566 DO ji = 1, jpi 546 zc0 = ze0(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * xsi0r 567 zc0 = ze0(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * xsi0r(ji,jj) ) 547 568 zc1 = ze1(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * zekb(ji,jj) ) 548 569 zc2 = ze2(ji,jj,jk-1) * EXP( - e3t_0(ji,jj,jk-1) * zekg(ji,jj) ) … … 585 606 DO jj = 1, jpj ! top 400 meters 586 607 DO ji = 1, jpi 587 zc0 = zz0 * EXP( -fsdepw(ji,jj,jk )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk )*xsi1r )588 zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r )608 zc0 = zz0 * EXP( -fsdepw(ji,jj,jk )*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,jk )*xsi1r ) 609 zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r(ji,jj) ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 589 610 etot3(ji,jj,jk) = ( zc0 * tmask(ji,jj,jk) - zc1 * tmask(ji,jj,jk+1) ) * tmask(ji,jj,1) 590 611 END DO
Note: See TracChangeset
for help on using the changeset viewer.