- Timestamp:
- 2016-06-13T14:50:45+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r6606 r6688 85 85 CHARACTER (len=22) :: charout 86 86 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrtrd 87 REAL(wp), POINTER, DIMENSION(:,:,: ,:) :: ztrcdta ! 3D workspace87 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace 88 88 !!---------------------------------------------------------------------- 89 89 ! … … 98 98 IF( nb_trcdta > 0 ) THEN ! Initialisation of tracer from a file that may also be used for damping 99 99 ! 100 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 101 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 100 CALL wrk_alloc( jpi, jpj, jpk, ztrcdta ) ! Memory allocation 102 101 ! ! =========== 103 102 DO jn = 1, jptra ! tracer loop … … 106 105 ! 107 106 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 107 108 108 jl = n_trc_index(jn) 109 CALL trc_dta( kt, sf_trcdta(jl), rf_trfac(jl), ztrcdta ) ! read tracer data at nit000 110 109 111 SELECT CASE ( nn_zdmp_tr ) 110 112 ! … … 113 115 DO jj = 2, jpjm1 114 116 DO ji = fs_2, fs_jpim1 ! vector opt. 115 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) * rf_trfac(jl) - trb(ji,jj,jk,jn) )117 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 116 118 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 117 119 END DO … … 124 126 DO ji = fs_2, fs_jpim1 ! vector opt. 125 127 IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 126 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) * rf_trfac(jl) - trb(ji,jj,jk,jn) )128 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 127 129 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 128 130 ENDIF … … 136 138 DO ji = fs_2, fs_jpim1 ! vector opt. 137 139 IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 138 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk ,jl) * rf_trfac(jl) - trb(ji,jj,jk,jn) )140 ztra = restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 139 141 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + ztra 140 142 END IF … … 154 156 END DO ! tracer loop 155 157 ! ! =========== 156 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta,ztrcdta )158 CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 157 159 ENDIF 158 160 ! … … 184 186 INTEGER :: ji , jj, jk, jn, jl, jc ! dummy loop indicesa 185 187 INTEGER :: isrow ! local index 186 REAL(wp), POINTER, DIMENSION(:,:,: ,:) :: ztrcdta! 3D workspace188 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace 187 189 188 190 !!---------------------------------------------------------------------- … … 228 230 nctsi1(8) = 297 ; nctsj1(8) = 270 - isrow 229 231 nctsi2(8) = 308 ; nctsj2(8) = 293 - isrow 230 232 ! 231 233 ! ! ======================= 232 234 CASE ( 2 ) ! ORCA_R2 configuration … … 296 298 IF(lwp) WRITE(numout,*) 297 299 ! 298 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 299 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 300 CALL wrk_alloc( jpi, jpj, jpk, ztrcdta ) ! Memory allocation 300 301 ! 301 302 DO jn = 1, jptra 302 303 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 303 304 jl = n_trc_index(jn) 304 IF(lwp) WRITE(numout,*)305 CALL trc_dta( kt, sf_trcdta(jl), rf_trfac(jl), ztrcdta ) ! read tracer data at nit000 305 306 DO jc = 1, npncts 306 307 DO jk = 1, jpkm1 307 308 DO jj = nctsj1(jc), nctsj2(jc) 308 309 DO ji = nctsi1(jc), nctsi2(jc) 309 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk ,jl) * rf_trfac(jl)310 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) 310 311 trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 311 312 ENDDO … … 315 316 ENDIF 316 317 ENDDO 317 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 318 ! 318 CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 319 319 ENDIF 320 320 ! … … 336 336 IF( nn_timing == 1 ) CALL timing_start('trc_dmp_init') 337 337 ! 338 !Allocate arrays 339 IF( trc_dmp_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trc_dmp_init: unable to allocate arrays' ) 338 340 339 341 IF( lzoom ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries
Note: See TracChangeset
for help on using the changeset viewer.