- Timestamp:
- 2018-11-16T15:59:30+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO4_beta_mirror/src/TOP/TRP/trcnxt.F90
r9950 r10321 48 48 49 49 !!---------------------------------------------------------------------- 50 !! NEMO/TOP 3.3, NEMO Consortium (2018)50 !! NEMO/TOP 4.0 , NEMO Consortium (2018) 51 51 !! $Id$ 52 !! Software governed by the CeCILL licen ce (./LICENSE)52 !! Software governed by the CeCILL license (see ./LICENSE) 53 53 !!---------------------------------------------------------------------- 54 54 CONTAINS … … 103 103 IF( l_trdtrc ) THEN ! trends: store now fields before the Asselin filter application 104 104 ALLOCATE( ztrdt(jpi,jpj,jpk,jptra) ) 105 ztrdt(:,:,:,:) = trn(:,:,:,:) 105 ztrdt(:,:,:,:) = 0._wp 106 IF( ln_traldf_iso ) THEN ! diagnose the "pure" Kz diffusive trend 107 DO jn = 1, jptra 108 CALL trd_tra( kt, 'TRC', jn, jptra_zdfp, ztrdt(:,:,:,jn) ) 109 ENDDO 110 ENDIF 111 112 ! total trend for the non-time-filtered variables. 113 zfact = 1.0 / rdttrc 114 ! G Nurser 23 Mar 2017. Recalculate trend as Delta(e3t*T)/e3tn; e3tn cancel from tsn terms 115 IF( ln_linssh ) THEN ! linear sea surface height only 116 DO jn = 1, jptra 117 DO jk = 1, jpkm1 118 ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn)*e3t_a(:,:,jk) / e3t_n(:,:,jk) - trn(:,:,jk,jn)) * zfact 119 END DO 120 END DO 121 ELSE 122 DO jn = 1, jptra 123 DO jk = 1, jpkm1 124 ztrdt(:,:,jk,jn) = ( tra(:,:,jk,jn) - trn(:,:,jk,jn) ) * zfact 125 END DO 126 END DO 127 ENDIF 128 ! 129 DO jn = 1, jptra 130 CALL trd_tra( kt, 'TRC', jn, jptra_tot, ztrdt(:,:,:,jn) ) 131 ENDDO 132 ! 133 IF( ln_linssh ) THEN ! linear sea surface height only 134 ! Store now fields before applying the Asselin filter 135 ! in order to calculate Asselin filter trend later. 136 ztrdt(:,:,:,:) = trn(:,:,:,:) 137 ENDIF 138 106 139 ENDIF 107 140 ! ! Leap-Frog + Asselin filter time stepping … … 113 146 END DO 114 147 END DO 148 IF (l_trdtrc .AND. .NOT. ln_linssh ) THEN ! Zero Asselin filter contribution must be explicitly written out since for vvl 149 ! ! Asselin filter is output by tra_nxt_vvl that is not called on this time step 150 ztrdt(:,:,:,:) = 0._wp 151 DO jn = 1, jptra 152 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 153 ENDDO 154 END IF 155 ! 115 156 ELSE 116 157 IF( .NOT. l_offline ) THEN ! Leap-Frog + Asselin filter time stepping … … 126 167 ENDIF 127 168 ! 128 IF( l_trdtrc ) THEN ! trends: send Asselin filter trends to trdtra manager for further diagnostics169 IF( l_trdtrc .AND. ln_linssh ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt ) 129 170 DO jn = 1, jptra 130 171 DO jk = 1, jpkm1 131 172 zfact = 1._wp / r2dttrc 132 173 ztrdt(:,:,jk,jn) = ( trb(:,:,jk,jn) - ztrdt(:,:,jk,jn) ) * zfact 133 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt )134 END DO174 END DO 175 CALL trd_tra( kt, 'TRC', jn, jptra_atf, ztrdt(:,:,:,jn) ) 135 176 END DO 136 DEALLOCATE( ztrdt )137 177 END IF 178 IF( l_trdtrc ) DEALLOCATE( ztrdt ) 138 179 ! 139 180 IF(ln_ctl) THEN ! print mean trends (used for debugging)
Note: See TracChangeset
for help on using the changeset viewer.