- Timestamp:
- 2013-11-18T12:57:11+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_CMCC_INGV_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r4148 r4230 84 84 CHARACTER (len=22) :: charout 85 85 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrtrd 86 REAL(wp), POINTER, DIMENSION(:,:,: ,:) :: ztrcdta ! 4D workspace86 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace 87 87 !!---------------------------------------------------------------------- 88 88 ! … … 97 97 IF( nb_trcdta > 0 ) THEN ! Initialisation of tracer from a file that may also be used for damping 98 98 ! 99 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 100 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 99 CALL wrk_alloc( jpi, jpj, jpk, ztrcdta ) ! Memory allocation 101 100 ! ! =========== 102 101 DO jn = 1, jptra ! tracer loop … … 107 106 108 107 jl = n_trc_index(jn) 108 CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) ) ! read tracer data at nit000 109 ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) 109 110 110 111 SELECT CASE ( nn_zdmp_tr ) … … 114 115 DO jj = 2, jpjm1 115 116 DO ji = fs_2, fs_jpim1 ! vector opt. 116 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) - trb(ji,jj,jk,jn) )117 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 117 118 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 118 119 END DO … … 125 126 DO ji = fs_2, fs_jpim1 ! vector opt. 126 127 IF( avt(ji,jj,jk) <= 5.e-4 ) THEN 127 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) - trb(ji,jj,jk,jn) )128 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 128 129 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 129 130 ENDIF … … 137 138 DO ji = fs_2, fs_jpim1 ! vector opt. 138 139 IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 139 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) - trb(ji,jj,jk,jn) )140 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 140 141 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 141 142 END IF … … 155 156 END DO ! tracer loop 156 157 ! ! =========== 157 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta,ztrcdta )158 CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 158 159 ENDIF 159 160 ! … … 184 185 ! 185 186 INTEGER :: ji, jj, jk, jn, jl, jc ! dummy loop indicesa 186 REAL(wp), POINTER, DIMENSION(:,:,: ,:) :: ztrcdta ! 4D workspace187 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace 187 188 188 189 !!---------------------------------------------------------------------- … … 266 267 IF(lwp) WRITE(numout,*) 267 268 ! 268 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 269 ! 270 CALL trc_dta( kt , ztrcdta ) ! read tracer data at nittrc000 269 CALL wrk_alloc( jpi, jpj, jpk, ztrcdta ) ! Memory allocation 271 270 ! 272 271 DO jn = 1, jptra 273 272 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 274 273 jl = n_trc_index(jn) 274 CALL trc_dta( kt, sf_trcdta(jl),rf_trfac(jl) ) ! read tracer data at nit000 275 ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) 275 276 DO jc = 1, npncts 276 277 DO jk = 1, jpkm1 277 278 DO jj = nctsj1(jc), nctsj2(jc) 278 279 DO ji = nctsi1(jc), nctsi2(jc) 279 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk ,jl) * tmask(ji,jj,jk)280 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) * tmask(ji,jj,jk) 280 281 trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 281 282 ENDDO … … 285 286 ENDIF 286 287 ENDDO 287 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta,ztrcdta )288 CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 288 289 ENDIF 289 290 !
Note: See TracChangeset
for help on using the changeset viewer.