Changeset 3294 for trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
- Timestamp:
- 2012-01-28T17:44:18+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90
r2715 r3294 93 93 REAL(wp) :: zfact ! temporary scalar 94 94 CHARACTER (len=22) :: charout 95 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE:: ztrdt95 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrdt 96 96 !!---------------------------------------------------------------------- 97 98 IF( kt == nit000 .AND. lwp ) THEN 97 ! 98 IF( nn_timing == 1 ) CALL timing_start('trc_nxt') 99 ! 100 IF( kt == nittrc000 .AND. lwp ) THEN 99 101 WRITE(numout,*) 100 102 WRITE(numout,*) 'trc_nxt : time stepping on passive tracers' … … 119 121 120 122 ! set time step size (Euler/Leapfrog) 121 IF( neuler == 0 .AND. kt == nit 000) THEN ; r2dt(:) = rdttrc(:) ! at nit000 (Euler)122 ELSEIF( kt <= nit 000 + 1 )THEN ; r2dt(:) = 2.* rdttrc(:) ! at nit000 or nit000+1 (Leapfrog)123 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ; r2dt(:) = rdttrc(:) ! at nittrc000 (Euler) 124 ELSEIF( kt <= nittrc000 + 1 ) THEN ; r2dt(:) = 2.* rdttrc(:) ! at nit000 or nit000+1 (Leapfrog) 123 125 ENDIF 124 126 125 127 ! trends computation initialisation 126 128 IF( l_trdtrc ) THEN 127 ALLOCATE( ztrdt(jpi,jpj,jpk,jptra)) !* store now fields before applying the Asselin filter129 CALL wrk_alloc( jpi, jpj, jpk, jptra, ztrdt ) !* store now fields before applying the Asselin filter 128 130 ztrdt(:,:,:,:) = trn(:,:,:,:) 129 131 ENDIF 130 132 ! Leap-Frog + Asselin filter time stepping 131 IF( neuler == 0 .AND. kt == nit 000 ) THEN ! Euler time-stepping at first time-step132 ! ! (only swap)133 IF( neuler == 0 .AND. kt == nittrc000 ) THEN ! Euler time-stepping at first time-step 134 ! ! (only swap) 133 135 DO jn = 1, jptra 134 136 DO jk = 1, jpkm1 … … 139 141 ELSE 140 142 ! Leap-Frog + Asselin filter time stepping 141 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, 'TRC', trb, trn, tra, jptra ) ! variable volume level (vvl)142 ELSE ; CALL tra_nxt_fix( kt, 'TRC', trb, trn, tra, jptra ) ! fixed volume level143 IF( lk_vvl ) THEN ; CALL tra_nxt_vvl( kt, nittrc000, 'TRC', trb, trn, tra, jptra ) ! variable volume level (vvl) 144 ELSE ; CALL tra_nxt_fix( kt, nittrc000, 'TRC', trb, trn, tra, jptra ) ! fixed volume level 143 145 ENDIF 144 146 ENDIF … … 158 160 END DO 159 161 END DO 160 DEALLOCATE( ztrdt )162 CALL wrk_dealloc( jpi, jpj, jpk, jptra, ztrdt ) 161 163 END IF 162 164 ! … … 166 168 CALL prt_ctl_trc(tab4d=trn, mask=tmask, clinfo=ctrcnm) 167 169 ENDIF 170 ! 171 IF( nn_timing == 1 ) CALL timing_stop('trc_nxt') 168 172 ! 169 173 END SUBROUTINE trc_nxt
Note: See TracChangeset
for help on using the changeset viewer.