Changeset 6607 for trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
- Timestamp:
- 2016-05-23T17:18:38+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/TRP/trcdmp.F90
r6309 r6607 38 38 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: restotr ! restoring coeff. on tracers (s-1) 39 39 40 INTEGER, PARAMETER :: npncts = 5! number of closed sea40 INTEGER, PARAMETER :: npncts = 8 ! number of closed sea 41 41 INTEGER, DIMENSION(npncts) :: nctsi1, nctsj1 ! south-west closed sea limits (i,j) 42 42 INTEGER, DIMENSION(npncts) :: nctsi2, nctsj2 ! north-east closed sea limits (i,j) … … 100 100 ! ! =========== 101 101 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 102 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 102 103 ! 103 104 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 104 105 ! 105 106 jl = n_trc_index(jn) 106 CALL trc_dta( kt, sf_trcdta(jl) ) ! read tracer data at nit000107 ztrcdta(:,:,:) = sf_trcdta(jl)%fnow(:,:,:) * tmask(:,:,:) * rf_trfac(jl)108 107 ! 109 108 SELECT CASE ( nn_zdmp_tr ) … … 113 112 DO jj = 2, jpjm1 114 113 DO ji = fs_2, fs_jpim1 ! vector opt. 115 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) )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) ) 116 115 END DO 117 116 END DO … … 123 122 DO ji = fs_2, fs_jpim1 ! vector opt. 124 123 IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 125 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) )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) ) 126 125 ENDIF 127 126 END DO … … 134 133 DO ji = fs_2, fs_jpim1 ! vector opt. 135 134 IF( gdept_n(ji,jj,jk) >= hmlp (ji,jj) ) THEN 136 tra(ji,jj,jk,jn) = tra(ji,jj,jk,jn) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - trb(ji,jj,jk,jn) )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) ) 137 136 END IF 138 137 END DO … … 239 238 !! nctsi2(), nctsj2() : north-east Closed sea limits (i,j) 240 239 !!---------------------------------------------------------------------- 241 INTEGER, INTENT( in ) :: kt ! ocean time-step index 242 ! 243 INTEGER :: ji , jj, jk, jn, jl, jc ! dummy loop indicesa 244 INTEGER :: isrow ! local index 245 !!---------------------------------------------------------------------- 246 ! 240 INTEGER, INTENT( in ) :: kt ! ocean time-step index 241 ! 242 INTEGER :: ji , jj, jk, jn, jl, jc ! dummy loop indicesa 243 INTEGER :: isrow ! local index 244 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrcdta ! 3D workspace 245 246 !!---------------------------------------------------------------------- 247 247 248 IF( kt == nit000 ) THEN 248 249 ! initial values … … 262 263 ! 263 264 ! Caspian Sea 264 nctsi1(1) = 332 ; nctsj1(1) = 243 - isrow 265 nctsi2(1) = 344 ; nctsj2(1) = 275 - isrow 266 ! 265 nctsi1(1) = 333 ; nctsj1(1) = 243 - isrow 266 nctsi2(1) = 342 ; nctsj2(1) = 274 - isrow 267 ! ! Lake Superior 268 nctsi1(2) = 198 ; nctsj1(2) = 258 - isrow 269 nctsi2(2) = 204 ; nctsj2(2) = 262 - isrow 270 ! ! Lake Michigan 271 nctsi1(3) = 201 ; nctsj1(3) = 250 - isrow 272 nctsi2(3) = 203 ; nctsj2(3) = 256 - isrow 273 ! ! Lake Huron 274 nctsi1(4) = 204 ; nctsj1(4) = 252 - isrow 275 nctsi2(4) = 209 ; nctsj2(4) = 256 - isrow 276 ! ! Lake Erie 277 nctsi1(5) = 206 ; nctsj1(5) = 249 - isrow 278 nctsi2(5) = 209 ; nctsj2(5) = 251 - isrow 279 ! ! Lake Ontario 280 nctsi1(6) = 210 ; nctsj1(6) = 252 - isrow 281 nctsi2(6) = 212 ; nctsj2(6) = 252 - isrow 282 ! ! Victoria Lake 283 nctsi1(7) = 321 ; nctsj1(7) = 180 - isrow 284 nctsi2(7) = 322 ; nctsj2(7) = 189 - isrow 285 ! ! Baltic Sea 286 nctsi1(8) = 297 ; nctsj1(8) = 270 - isrow 287 nctsi2(8) = 308 ; nctsj2(8) = 293 - isrow 288 267 289 ! ! ======================= 268 290 CASE ( 2 ) ! ORCA_R2 configuration … … 332 354 IF(lwp) WRITE(numout,*) 333 355 ! 356 CALL wrk_alloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 357 CALL trc_dta( kt, ztrcdta ) ! read tracer data at nit000 358 ! 334 359 DO jn = 1, jptra 335 360 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file 336 361 jl = n_trc_index(jn) 337 CALL trc_dta( kt, sf_trcdta(jl) ) ! read tracer data at nit000362 IF(lwp) WRITE(numout,*) 338 363 DO jc = 1, npncts 339 364 DO jk = 1, jpkm1 340 365 DO jj = nctsj1(jc), nctsj2(jc) 341 366 DO ji = nctsi1(jc), nctsi2(jc) 342 trn(ji,jj,jk,jn) = sf_trcdta(jl)%fnow(ji,jj,jk) * tmask(ji,jj,jk) * rf_trfac(jl)367 trn(ji,jj,jk,jn) = ztrcdta(ji,jj,jk,jl) * rf_trfac(jl) 343 368 trb(ji,jj,jk,jn) = trn(ji,jj,jk,jn) 344 369 ENDDO … … 348 373 ENDIF 349 374 ENDDO 350 ! 375 CALL wrk_dealloc( jpi, jpj, jpk, nb_trcdta, ztrcdta ) ! Memory allocation 376 ! 351 377 ENDIF 352 378 ! 353 379 END SUBROUTINE trc_dmp_clo 354 380 381 355 382 #else 356 383 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.