- Timestamp:
- 2012-07-11T13:22:58+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90
r3211 r3432 71 71 !! - save the trends 72 72 !!---------------------------------------------------------------------- 73 USE timing, ONLY: timing_start, timing_stop 73 74 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 74 75 USE oce , ONLY: zwx => ua , zwy => va ! (ua,va) used as workspace … … 108 109 !!---------------------------------------------------------------------- 109 110 111 CALL timing_start('tra_adv_tvd') 112 110 113 IF( wrk_in_use(3, 12,13) ) THEN 111 114 CALL ctl_stop('tra_adv_tvd: requested workspace arrays unavailable') ; RETURN … … 140 143 ! -------------------------------------------------------------------- 141 144 ! upstream tracer flux in the i and j direction 145 CALL timing_start('tvd_upstream') 142 146 #if defined key_z_first 143 147 DO jj = 1, jpjm1 … … 159 163 END DO 160 164 END DO 165 CALL timing_stop('tvd_upstream','section') 161 166 162 167 ! upstream tracer flux in the k direction 163 168 ! Surface value 169 CALL timing_start('tvd_upstreamk') 164 170 IF( lk_vvl ) THEN ; zwz(:,:, 1 ) = 0.e0 ! volume variable 165 171 ELSE ; zwz(:,:, 1 ) = pwn(:,:,1) * ptb(:,:,1,jn) ! linear free surface … … 181 187 END DO 182 188 END DO 189 CALL timing_stop('tvd_upstreamk','section') 183 190 184 191 ! total advective trend 192 CALL timing_start('tvd_tot') 185 193 #if defined key_z_first 186 194 DO jj = 2, jpjm1 … … 205 213 END DO 206 214 END DO 215 CALL timing_stop('tvd_tot','section') 216 207 217 ! ! Lateral boundary conditions on zwi (unchanged sign) 218 CALL timing_start('tvd_lbc') 208 219 CALL lbc_lnk( zwi, 'T', 1. ) 220 CALL timing_stop('tvd_lbc','section') 209 221 210 222 ! ! trend diagnostics (contribution of upstream fluxes) … … 222 234 ! -------------------------------------------------- 223 235 ! antidiffusive flux on i and j 236 CALL timing_start('tvd_antidiff') 224 237 #if defined key_z_first 225 238 DO jj = 1, jpjm1 … … 236 249 END DO 237 250 END DO 251 CALL timing_stop('tvd_antidiff','section') 238 252 239 253 ! antidiffusive flux on k 254 CALL timing_start('tvd_antidiffk') 240 255 #if defined key_z_first 241 256 DO jj = 1, jpj … … 254 269 END DO 255 270 END DO 271 CALL timing_stop('tvd_antidiffk','section') 272 273 CALL timing_start('tvd_lbc') 256 274 CALL lbc_lnk( zwx, 'U', -1. ) ; CALL lbc_lnk( zwy, 'V', -1. ) ! Lateral bondary conditions 257 275 CALL lbc_lnk( zwz, 'W', 1. ) 276 CALL timing_stop('tvd_lbc','section') 258 277 259 278 ! 4. monotonicity algorithm 260 279 ! ------------------------- 280 CALL timing_start('tvd_nonosc') 261 281 CALL nonosc( ptb(:,:,:,jn), zwx, zwy, zwz, zwi, p2dt ) 282 CALL timing_stop('tvd_nonosc','section') 262 283 263 284 264 285 ! 5. final trend with corrected fluxes 265 286 ! ------------------------------------ 287 CALL timing_start('tvd_finaltr') 266 288 #if defined key_z_first 267 289 DO jj = 2, jpjm1 … … 300 322 ENDIF 301 323 ! 324 CALL timing_stop('tvd_finaltr','section') 325 302 326 END DO 303 327 ! … … 308 332 IF( wrk_not_released(3, 12,13) ) CALL ctl_stop('tra_adv_tvd: failed to release workspace arrays') 309 333 ! 334 CALL timing_stop('tra_adv_tvd','section') 310 335 311 336 !! * Reset control of array index permutation … … 334 359 USE wrk_nemo, ONLY: zbetup => wrk_3d_8 , zbetdo => wrk_3d_9 ! 3D workspace 335 360 USE wrk_nemo, ONLY: zbup => wrk_3d_10 , zbdo => wrk_3d_11 ! - - 361 USE timing, ONLY: timing_start, timing_stop 336 362 337 363 !! DCSE_NEMO: need additional directives for renamed module variables … … 418 444 END DO 419 445 END DO 446 CALL timing_start('tvd_lbc') 420 447 CALL lbc_lnk( zbetup, 'T', 1. ) ; CALL lbc_lnk( zbetdo, 'T', 1. ) ! lateral boundary cond. (unchanged sign) 448 CALL timing_stop('tvd_lbc','section') 421 449 422 450 … … 452 480 END DO 453 481 END DO 482 CALL timing_start('tvd_lbc') 454 483 CALL lbc_lnk( paa, 'U', -1. ) ; CALL lbc_lnk( pbb, 'V', -1. ) ! lateral boundary condition (changed sign) 484 CALL timing_stop('tvd_lbc','section') 485 455 486 ! 456 487 IF( wrk_not_released(3, 8,9,10,11) ) CALL ctl_stop('nonosc: failed to release workspace arrays')
Note: See TracChangeset
for help on using the changeset viewer.