Changeset 9173 for branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
- Timestamp:
- 2018-01-03T14:19:47+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_8356/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r6487 r9173 27 27 !!---------------------------------------------------------------------- 28 28 USE oce_trc ! ocean dynamics and tracers variables 29 USE domvvl ! variable volume 29 30 USE trc ! ocean passive tracers variables 30 31 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 31 32 USE prtctl_trc ! Print control for debbuging 33 USE trcnam_trp ! passive tracers transport namelist variables 32 34 USE trd_oce 33 35 USE trdtra … … 45 47 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt 46 48 49 !! * Substitutions 50 # include "domzgr_substitute.h90" 47 51 !!---------------------------------------------------------------------- 48 52 !! NEMO/TOP 3.3 , NEMO Consortium (2010) … … 124 128 IF( l_trdtrc ) THEN 125 129 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrdt ) !* store now fields before applying the Asselin filter 126 ztrdt(:,:,:,:) = trn(:,:,:,:) 130 ztrdt(:,:,jpk,:) = 0._wp 131 IF( ln_trcldf_iso ) THEN ! diagnose the "pure" Kz diffusive trend 132 DO jn = 1, jptra 133 CALL trd_tra( kt, 'TRC', jn, jptra_zdfp, ztrdt(:,:,:,jn) ) 134 ENDDO 135 ENDIF 136 ! total trend for the non-time-filtered variables. 137 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn 138 ! cancel from tsn terms 139 IF( lk_vvl ) THEN 140 DO jn = 1, jptra 141 DO jk = 1, jpkm1 142 zfact = 1.0 / rdttrc(jk) 143 ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn)*fse3t_a(:,:,jk) / fse3t_n(:,:,jk) - & 144 trn(:,:,jk,jn) ) * zfact 145 END DO 146 END DO 147 ELSE 148 DO jn = 1, jptra 149 DO jk = 1, jpkm1 150 zfact = 1.0 / rdttrc(jk) 151 ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn) - trn(:,:,jk,jn) ) * zfact 152 END DO 153 END DO 154 END IF 155 DO jn = 1, jptra 156 CALL trd_tra( kt, 'TRC', jn, jptra_tot, ztrdt(:,:,:,jn) ) 157 ENDDO 158 IF( .NOT.lk_vvl ) THEN 159 ! Store now fields before applying the Asselin filter 160 ! in order to calculate Asselin filter trend later. 161 ztrdt(:,:,:,:) = trn(:,:,:,:) 162 ENDIF 127 163 ENDIF 128 164 ! Leap-Frog + Asselin filter time stepping … … 134 170 END DO 135 171 END DO 172 IF (l_trdtrc.AND.lk_vvl) THEN ! Zero Asselin filter contribution 173 ! must be explicitly written out since for vvl 174 ! Asselin filter is output by 175 ! tra_nxt_vvl that is not called on 176 ! this time step 177 ztrdt(:,:,:,:) = 0._wp 178 DO jn = 1, jptra 179 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 180 ENDDO 181 END IF 182 136 183 ! 137 184 ELSE … … 144 191 145 192 ! trends computation 146 IF( l_trdtrc 193 IF( l_trdtrc.AND..NOT.lk_vvl) THEN ! trends 147 194 DO jn = 1, jptra 148 195 DO jk = 1, jpkm1 149 196 zfact = 1.e0 / r2dt(jk) 150 197 ztrdt(:,:,jk,jn) = ( trb(:,:,jk,jn) - ztrdt(:,:,jk,jn) ) * zfact 151 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt )152 END DO198 END DO 199 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 153 200 END DO 154 CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrdt )155 201 END IF 202 ! 203 IF( l_trdtrc) CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrdt ) 156 204 ! 157 205 IF(ln_ctl) THEN ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.