Changeset 10806 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traqsr.F90
- Timestamp:
- 2019-03-27T17:55:22+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traqsr.F90
r10425 r10806 75 75 CONTAINS 76 76 77 SUBROUTINE tra_qsr( kt )77 SUBROUTINE tra_qsr( kt, ktlev, kt2lev, pts_rhs ) 78 78 !!---------------------------------------------------------------------- 79 79 !! *** ROUTINE tra_qsr *** … … 102 102 !!---------------------------------------------------------------------- 103 103 INTEGER, INTENT(in) :: kt ! ocean time-step 104 INTEGER, INTENT(in) :: ktlev ! time level index for 3-time-level source terms 105 INTEGER, INTENT(in) :: kt2lev ! time level index for 2-time-level source terms 106 REAL(wp), INTENT( inout), DIMENSION(jpi,jpj,jpk,jpts) :: pts_rhs ! temperature and salinity trends 104 107 ! 105 108 INTEGER :: ji, jj, jk ! dummy loop indices … … 126 129 IF( l_trdtra ) THEN ! trends diagnostic: save the input temperature trend 127 130 ALLOCATE( ztrdt(jpi,jpj,jpk) ) 128 ztrdt(:,:,:) = tsa(:,:,:,jp_tem)131 ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) 129 132 ENDIF 130 133 ! … … 172 175 zze = 568.2 * zCtot**(-0.746) 173 176 IF( zze > 102. ) zze = 200.0 * zCtot**(-0.293) 174 zpsi = gdepw _n(ji,jj,jk) / zze177 zpsi = gdepw(ji,jj,jk,kt2lev) / zze 175 178 ! 176 179 zlogc = LOG( zchl ) … … 218 221 DO jj = 2, jpjm1 219 222 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) )223 zc0 = ze0(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,ktlev) * xsi0r ) 224 zc1 = ze1(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,ktlev) * zekb(ji,jj) ) 225 zc2 = ze2(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,ktlev) * zekg(ji,jj) ) 226 zc3 = ze3(ji,jj,jk-1) * EXP( - e3t(ji,jj,jk-1,ktlev) * zekr(ji,jj) ) 224 227 ze0(ji,jj,jk) = zc0 225 228 ze1(ji,jj,jk) = zc1 … … 248 251 DO jj = 2, jpjm1 249 252 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 )253 zc0 = zz0 * EXP( -gdepw(ji,jj,jk ,kt2lev)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk ,kt2lev)*xsi1r ) 254 zc1 = zz0 * EXP( -gdepw(ji,jj,jk+1,kt2lev)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk+1,kt2lev)*xsi1r ) 252 255 qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0 * wmask(ji,jj,jk) - zc1 * wmask(ji,jj,jk+1) ) 253 256 END DO … … 261 264 DO jj = 2, jpjm1 !-----------------------------! 262 265 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)266 pts_rhs(ji,jj,jk,jp_tem) = pts_rhs(ji,jj,jk,jp_tem) & 267 & + z1_2 * ( qsr_hc_b(ji,jj,jk) + qsr_hc(ji,jj,jk) ) / e3t(ji,jj,jk,ktlev) 265 268 END DO 266 269 END DO … … 295 298 ! 296 299 IF( l_trdtra ) THEN ! qsr tracers trends saved for diagnostics 297 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)300 ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) - ztrdt(:,:,:) 298 301 CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 299 302 DEALLOCATE( ztrdt )
Note: See TracChangeset
for help on using the changeset viewer.