- Timestamp:
- 2019-11-22T15:29:17+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Property svn:mergeinfo deleted
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traqsr.F90
r11536 r11949 75 75 CONTAINS 76 76 77 SUBROUTINE tra_qsr( kt )77 SUBROUTINE tra_qsr( kt, Kmm, pts, Krhs ) 78 78 !!---------------------------------------------------------------------- 79 79 !! *** ROUTINE tra_qsr *** … … 101 101 !! Morel, A. et Berthon, JF, 1989, Limnol Oceanogr 34(8), 1545-1562 102 102 !!---------------------------------------------------------------------- 103 INTEGER, INTENT(in) :: kt ! ocean time-step 103 INTEGER, INTENT(in ) :: kt ! ocean time-step 104 INTEGER, INTENT(in ) :: Kmm, Krhs ! time level indices 105 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts ! active tracers and RHS of tracer equation 104 106 ! 105 107 INTEGER :: ji, jj, jk ! dummy loop indices … … 126 128 IF( l_trdtra ) THEN ! trends diagnostic: save the input temperature trend 127 129 ALLOCATE( ztrdt(jpi,jpj,jpk) ) 128 ztrdt(:,:,:) = tsa(:,:,:,jp_tem)130 ztrdt(:,:,:) = pts(:,:,:,jp_tem,Krhs) 129 131 ENDIF 130 132 ! … … 172 174 zze = 568.2 * zCtot**(-0.746) 173 175 IF( zze > 102. ) zze = 200.0 * zCtot**(-0.293) 174 zpsi = gdepw _n(ji,jj,jk) / zze176 zpsi = gdepw(ji,jj,jk,Kmm) / zze 175 177 ! 176 178 zlogc = LOG( zchl ) … … 218 220 DO jj = 2, jpjm1 219 221 DO ji = fs_2, fs_jpim1 220 zc0 = ze0(ji,jj,jk-1) * EXP( - e3t _n(ji,jj,jk-1) * xsi0r )221 zc1 = ze1(ji,jj,jk-1) * EXP( - e3t _n(ji,jj,jk-1) * zekb(ji,jj) )222 zc2 = ze2(ji,jj,jk-1) * EXP( - e3t _n(ji,jj,jk-1) * zekg(ji,jj) )223 zc3 = ze3(ji,jj,jk-1) * EXP( - e3t _n(ji,jj,jk-1) * zekr(ji,jj) )222 zc0 = ze0(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,Kmm) * xsi0r ) 223 zc1 = ze1(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,Kmm) * zekb(ji,jj) ) 224 zc2 = ze2(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,Kmm) * zekg(ji,jj) ) 225 zc3 = ze3(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,Kmm) * zekr(ji,jj) ) 224 226 ze0(ji,jj,jk) = zc0 225 227 ze1(ji,jj,jk) = zc1 … … 248 250 DO jj = 2, jpjm1 249 251 DO ji = fs_2, fs_jpim1 250 zc0 = zz0 * EXP( -gdepw _n(ji,jj,jk )*xsi0r ) + zz1 * EXP( -gdepw_n(ji,jj,jk)*xsi1r )251 zc1 = zz0 * EXP( -gdepw _n(ji,jj,jk+1)*xsi0r ) + zz1 * EXP( -gdepw_n(ji,jj,jk+1)*xsi1r )252 zc0 = zz0 * EXP( -gdepw(ji,jj,jk ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk ,Kmm)*xsi1r ) 253 zc1 = zz0 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi1r ) 252 254 qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0 * wmask(ji,jj,jk) - zc1 * wmask(ji,jj,jk+1) ) 253 255 END DO … … 261 263 DO jj = 2, jpjm1 !-----------------------------! 262 264 DO ji = fs_2, fs_jpim1 ! vector opt. 263 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) &264 & + z1_2 * ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) / e3t_n(ji,jj,jk)265 pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs) & 266 & + z1_2 * ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) / e3t(ji,jj,jk,Kmm) 265 267 END DO 266 268 END DO … … 295 297 ! 296 298 IF( l_trdtra ) THEN ! qsr tracers trends saved for diagnostics 297 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)298 CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt )299 ztrdt(:,:,:) = pts(:,:,:,jp_tem,Krhs) - ztrdt(:,:,:) 300 CALL trd_tra( kt, Kmm, Krhs, 'TRA', jp_tem, jptra_qsr, ztrdt ) 299 301 DEALLOCATE( ztrdt ) 300 302 ENDIF 301 303 ! ! print mean trends (used for debugging) 302 IF(ln_ctl) CALL prt_ctl( tab3d_1= tsa(:,:,:,jp_tem), clinfo1=' qsr - Ta: ', mask1=tmask, clinfo3='tra-ta' )304 IF(ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' qsr - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 303 305 ! 304 306 IF( ln_timing ) CALL timing_stop('tra_qsr')
Note: See TracChangeset
for help on using the changeset viewer.