- Timestamp:
- 2015-02-17T10:06:39+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO3_masked_damping/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r4624 r5086 21 21 USE sbc_oce ! surface boundary condition: ocean 22 22 USE trc_oce ! share SMS/Ocean variables 23 USE trd mod_oce ! ocean variables trends24 USE trdtra ! ocean active tracers trends23 USE trd_oce ! trends: ocean variables 24 USE trdtra ! trends manager: tracers 25 25 USE in_out_manager ! I/O manager 26 26 USE phycst ! physical constants … … 129 129 IF( kt == nit000 ) THEN ! Set the forcing field at nit000 - 1 130 130 ! ! ----------------------------------- 131 qsr_hc(:,:,:) = 0.e0 132 ! 131 133 IF( ln_rstart .AND. & ! Restart: read in restart file 132 134 & iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN … … 167 169 DO ji = 1, jpi 168 170 IF ( qsr(ji,jj) /= 0._wp ) THEN 169 oatte(ji,jj) = ( qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) ) 170 iatte(ji,jj) = oatte(ji,jj) 171 fraqsr_1lev(ji,jj) = ( qsr_hc(ji,jj,1) / ( r1_rau0_rcp * qsr(ji,jj) ) ) 171 172 ENDIF 172 173 END DO … … 239 240 zzc2 = zcoef * EXP( - fse3t(ji,jj,1) * zekg(ji,jj) ) 240 241 zzc3 = zcoef * EXP( - fse3t(ji,jj,1) * zekr(ji,jj) ) 241 oatte(ji,jj) = 1.0 - ( zzc0 + zzc1 + zzc2 + zzc3 ) * tmask(ji,jj,2) 242 iatte(ji,jj) = 1.0 - ( zzc0 + zzc1 + zcoef + zcoef ) * tmask(ji,jj,2) 242 fraqsr_1lev(ji,jj) = 1.0 - ( zzc0 + zzc1 + zzc2 + zzc3 ) * tmask(ji,jj,2) 243 243 END DO 244 244 END DO … … 257 257 ! clem: store attenuation coefficient of the first ocean level 258 258 IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 259 oatte(:,:) = etot3(:,:,1) / r1_rau0_rcp 260 iatte(:,:) = oatte(:,:) 259 fraqsr_1lev(:,:) = etot3(:,:,1) / r1_rau0_rcp 261 260 ENDIF 262 261 ENDIF … … 285 284 zc0 = zz0 * EXP( -fsdepw(ji,jj,1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,1)*xsi1r ) 286 285 zc1 = zz0 * EXP( -fsdepw(ji,jj,2)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,2)*xsi1r ) 287 oatte(ji,jj) = ( zc0*tmask(ji,jj,1) - zc1*tmask(ji,jj,2) ) / r1_rau0_rcp 288 iatte(ji,jj) = oatte(ji,jj) 286 fraqsr_1lev(ji,jj) = ( zc0*tmask(ji,jj,1) - zc1*tmask(ji,jj,2) ) / r1_rau0_rcp 289 287 END DO 290 288 END DO … … 294 292 DO jj = 2, jpjm1 295 293 DO ji = fs_2, fs_jpim1 ! vector opt. 296 qsr_hc(ji,jj,jk) = etot3(ji,jj,jk) * qsr(ji,jj) 294 ! (ISF) no light penetration below the ice shelves 295 qsr_hc(ji,jj,jk) = etot3(ji,jj,jk) * qsr(ji,jj) * tmask(ji,jj,1) 297 296 END DO 298 297 END DO … … 300 299 ! clem: store attenuation coefficient of the first ocean level 301 300 IF ( lk_lim3 .AND. ln_qsr_ice ) THEN 302 oatte(:,:) = etot3(:,:,1) / r1_rau0_rcp 303 iatte(:,:) = oatte(:,:) 301 fraqsr_1lev(:,:) = etot3(:,:,1) / r1_rau0_rcp 304 302 ENDIF 305 303 ! … … 332 330 IF( l_trdtra ) THEN ! qsr tracers trends saved for diagnostics 333 331 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 334 CALL trd_tra( kt, 'TRA', jp_tem, jptra_ trd_qsr, ztrdt )332 CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 335 333 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt ) 336 334 ENDIF … … 382 380 IF( nn_timing == 1 ) CALL timing_start('tra_qsr_init') 383 381 ! 384 ! clem init for oatte and iatte382 ! Default value for fraqsr_1lev 385 383 IF( .NOT. ln_rstart ) THEN 386 oatte(:,:) = 1._wp 387 iatte(:,:) = 1._wp 384 fraqsr_1lev(:,:) = 1._wp 388 385 ENDIF 389 386 ! … … 520 517 ! 521 518 DO jk = 1, nksr 522 etot3(:,:,jk) = r1_rau0_rcp * ( zea(:,:,jk) - zea(:,:,jk+1) ) 519 ! (ISF) no light penetration below the ice shelves 520 etot3(:,:,jk) = r1_rau0_rcp * ( zea(:,:,jk) - zea(:,:,jk+1) ) * tmask(:,:,1) 523 521 END DO 524 522 etot3(:,:,nksr+1:jpk) = 0.e0 ! below 400m set to zero … … 548 546 zc0 = zz0 * EXP( -fsdepw(ji,jj,jk )*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk )*xsi1r ) 549 547 zc1 = zz0 * EXP( -fsdepw(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -fsdepw(ji,jj,jk+1)*xsi1r ) 550 etot3(ji,jj,jk) = ( zc0 * tmask(ji,jj,jk) - zc1 * tmask(ji,jj,jk+1) ) 548 etot3(ji,jj,jk) = ( zc0 * tmask(ji,jj,jk) - zc1 * tmask(ji,jj,jk+1) ) * tmask(ji,jj,1) 551 549 END DO 552 550 END DO
Note: See TracChangeset
for help on using the changeset viewer.