Changeset 6701 for trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
- Timestamp:
- 2016-06-13T17:29:32+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r6607 r6701 100 100 ! ! =========== 101 101 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 102 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000103 102 ! 104 103 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 105 104 ! 106 105 jl = n_trc_index(jn) 106 CALL trc_dta( kt, sf_trcdta(jl), rf_trfac(jl), ztrcdta ) ! read tracer data at nit000 107 107 ! 108 108 SELECT CASE ( nn_zdmp_tr ) … … 112 112 DO jj = 2, jpjm1 113 113 DO ji = fs_2, fs_jpim1 ! vector opt. 114 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) * rf_trfac(jl)- trb(ji,jj,jk,jn) )114 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 115 115 END DO 116 116 END DO … … 122 122 DO ji = fs_2, fs_jpim1 ! vector opt. 123 123 IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 124 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) * rf_trfac(jl)- trb(ji,jj,jk,jn) )124 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 125 125 ENDIF 126 126 END DO … … 133 133 DO ji = fs_2, fs_jpim1 ! vector opt. 134 134 IF( gdept_n(ji,jj,jk) >= hmlp (ji,jj) ) THEN 135 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) * rf_trfac(jl)- trb(ji,jj,jk,jn) )135 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) ) 136 136 END IF 137 137 END DO … … 180 180 !!---------------------------------------------------------------------- 181 181 ! 182 IF( nn_timing == 1 ) CALL timing_start('trc_dmp_ini t')182 IF( nn_timing == 1 ) CALL timing_start('trc_dmp_ini') 183 183 ! 184 184 REWIND( numnat_ref ) ! Namelist namtrc_dmp in reference namelist : Passive tracers newtonian damping … … 199 199 WRITE(numout,*) ' Restoration coeff file cn_resto_tr = ', cn_resto_tr 200 200 ENDIF 201 ! ! Allocate arrays 202 IF( trc_dmp_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trc_dmp_ini: unable to allocate arrays' ) 201 203 ! 202 204 IF( lzoom .AND. .NOT.lk_c1d ) nn_zdmp_tr = 0 ! restoring to climatology at closed north or south boundaries … … 240 242 INTEGER, INTENT( in ) :: kt ! ocean time-step index 241 243 ! 242 INTEGER :: ji , jj, jk, jn, jl, jc 244 INTEGER :: ji , jj, jk, jn, jl, jc ! dummy loop indicesa 243 245 INTEGER :: isrow ! local index 244 REAL(wp), POINTER, DIMENSION(:,:,: ,:) :: ztrcdta! 3D workspace246 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace 245 247 246 248 !!---------------------------------------------------------------------- … … 286 288 nctsi1(8) = 297 ; nctsj1(8) = 270 - isrow 287 289 nctsi2(8) = 308 ; nctsj2(8) = 293 - isrow 288 290 ! 289 291 ! ! ======================= 290 292 CASE ( 2 ) ! ORCA_R2 configuration … … 354 356 IF(lwp) WRITE(numout,*) 355 357 ! 356 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 357 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 358 CALL wrk_alloc( jpi, jpj, jpk, ztrcdta ) ! Memory allocation 358 359 ! 359 360 DO jn = 1, jptra 360 361 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 361 362 jl = n_trc_index(jn) 362 IF(lwp) WRITE(numout,*)363 CALL trc_dta( kt, sf_trcdta(jl), rf_trfac(jl), ztrcdta ) ! read tracer data at nit000 363 364 DO jc = 1, npncts 364 365 DO jk = 1, jpkm1 365 366 DO jj = nctsj1(jc), nctsj2(jc) 366 367 DO ji = nctsi1(jc), nctsi2(jc) 367 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk ,jl) * rf_trfac(jl)368 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk) 368 369 trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 369 370 ENDDO … … 373 374 ENDIF 374 375 ENDDO 375 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 376 ! 376 CALL wrk_dealloc( jpi, jpj, jpk, ztrcdta ) 377 377 ENDIF 378 378 !
Note: See TracChangeset
for help on using the changeset viewer.