- Timestamp:
- 2019-11-22T15:29:17+01:00 (5 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/TOP/TRP/trcsink.F90
r11536 r11949 35 35 !!---------------------------------------------------------------------- 36 36 37 SUBROUTINE trc_sink ( kt, pwsink, psinkflx, jp_tra, rsfact )37 SUBROUTINE trc_sink ( kt, Kbb, Kmm, pwsink, psinkflx, jp_tra, rsfact ) 38 38 !!--------------------------------------------------------------------- 39 39 !! *** ROUTINE trc_sink *** … … 45 45 !!--------------------------------------------------------------------- 46 46 INTEGER , INTENT(in) :: kt 47 INTEGER , INTENT(in) :: Kbb, Kmm 47 48 INTEGER , INTENT(in) :: jp_tra ! tracer index index 48 49 REAL(wp), INTENT(in) :: rsfact ! time step duration … … 75 76 DO jk = 1, jpkm1 76 77 IF( tmask(ji,jj,jk) == 1.0 ) THEN 77 zwsmax = 0.5 * e3t _n(ji,jj,jk) * rday / rsfact78 zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 78 79 iiter(ji,jj) = MAX( iiter(ji,jj), INT( pwsink(ji,jj,jk) / zwsmax ) ) 79 80 ENDIF … … 88 89 DO ji = 1, jpi 89 90 IF( tmask(ji,jj,jk) == 1.0 ) THEN 90 zwsmax = 0.5 * e3t _n(ji,jj,jk) * rday / rsfact91 zwsmax = 0.5 * e3t(ji,jj,jk,Kmm) * rday / rsfact 91 92 zwsink(ji,jj,jk) = MIN( pwsink(ji,jj,jk), zwsmax * REAL( iiter(ji,jj), wp ) ) 92 93 ELSE … … 104 105 ! Compute the sedimentation term using trc_sink2 for the considered sinking particle 105 106 ! ----------------------------------------------------- 106 CALL trc_sink2( zwsink, psinkflx, jp_tra, iiter, rsfact )107 CALL trc_sink2( Kbb, Kmm, zwsink, psinkflx, jp_tra, iiter, rsfact ) 107 108 ! 108 109 IF( ln_timing ) CALL timing_stop('trc_sink') … … 110 111 END SUBROUTINE trc_sink 111 112 112 SUBROUTINE trc_sink2( pwsink, psinkflx, jp_tra, kiter, rsfact )113 SUBROUTINE trc_sink2( Kbb, Kmm, pwsink, psinkflx, jp_tra, kiter, rsfact ) 113 114 !!--------------------------------------------------------------------- 114 115 !! *** ROUTINE trc_sink2 *** … … 121 122 !! transport term, i.e. div(u*tra). 122 123 !!--------------------------------------------------------------------- 124 INTEGER, INTENT(in ) :: Kbb, Kmm ! time level indices 123 125 INTEGER, INTENT(in ) :: jp_tra ! tracer index index 124 126 REAL(wp), INTENT(in ) :: rsfact ! duration of time step … … 136 138 ztraz(:,:,:) = 0.e0 137 139 zakz (:,:,:) = 0.e0 138 ztrb (:,:,:) = tr b(:,:,:,jp_tra)140 ztrb (:,:,:) = tr(:,:,:,jp_tra,Kbb) 139 141 140 142 DO jk = 1, jpkm1 … … 153 155 ! 154 156 DO jk = 2, jpkm1 155 ztraz(ji,jj,jk) = ( tr b(ji,jj,jk-1,jp_tra) - trb(ji,jj,jk,jp_tra) ) * tmask(ji,jj,jk)157 ztraz(ji,jj,jk) = ( tr(ji,jj,jk-1,jp_tra,Kbb) - tr(ji,jj,jk,jp_tra,Kbb) ) * tmask(ji,jj,jk) 156 158 END DO 157 159 ztraz(ji,jj,1 ) = 0.0 … … 172 174 ! vertical advective flux 173 175 DO jk = 1, jpkm1 174 zigma = zwsink2(ji,jj,jk+1) * zstep / e3w _n(ji,jj,jk+1)176 zigma = zwsink2(ji,jj,jk+1) * zstep / e3w(ji,jj,jk+1,Kmm) 175 177 zew = zwsink2(ji,jj,jk+1) 176 psinkflx(ji,jj,jk+1) = -zew * ( tr b(ji,jj,jk,jp_tra) - 0.5 * ( 1 + zigma ) * zakz(ji,jj,jk) ) * zstep178 psinkflx(ji,jj,jk+1) = -zew * ( tr(ji,jj,jk,jp_tra,Kbb) - 0.5 * ( 1 + zigma ) * zakz(ji,jj,jk) ) * zstep 177 179 END DO 178 180 ! … … 182 184 183 185 DO jk=1,jpkm1 184 zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t _n(ji,jj,jk)185 tr b(ji,jj,jk,jp_tra) = trb(ji,jj,jk,jp_tra) + zflx186 zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 187 tr(ji,jj,jk,jp_tra,Kbb) = tr(ji,jj,jk,jp_tra,Kbb) + zflx 186 188 END DO 187 189 END DO … … 192 194 DO jj = 1,jpj 193 195 DO ji = 1, jpi 194 zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t _n(ji,jj,jk)196 zflx = ( psinkflx(ji,jj,jk) - psinkflx(ji,jj,jk+1) ) / e3t(ji,jj,jk,Kmm) 195 197 ztrb(ji,jj,jk) = ztrb(ji,jj,jk) + 2. * zflx 196 198 END DO … … 198 200 END DO 199 201 200 tr b(:,:,:,jp_tra) = ztrb(:,:,:)202 tr(:,:,:,jp_tra,Kbb) = ztrb(:,:,:) 201 203 psinkflx(:,:,:) = 2. * psinkflx(:,:,:) 202 204 !
Note: See TracChangeset
for help on using the changeset viewer.