| 86 | [[BR]] |
| 87 | |
| 88 | '''(3)''' Apply to the passive tracers [[BR]][[BR]] |
| 89 | |
| 90 | |
| 91 | |
| 92 | {{{ |
| 93 | SUBROUTINE trc_adv( kt ) |
| 94 | !!---------------------------------------------------------------------- |
| 95 | !! *** ROUTINE trc_adv *** |
| 96 | !! |
| 97 | !! ** Purpose : |
| 98 | !! |
| 99 | !! ** Method : |
| 100 | !!---------------------------------------------------------------------- |
| 101 | INTEGER, INTENT( in ) :: kt ! ocean time-step index |
| 102 | !! |
| 103 | INTEGER :: jk ! dummy loop index |
| 104 | REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn ! effective transports |
| 105 | !!---------------------------------------------------------------------- |
| 106 | |
| 107 | ! ! effective transport |
| 108 | DO jk = 1, jpkm1 |
| 109 | #if defined key_trcbbl_adv |
| 110 | ! ! eulerian + bbl transport |
| 111 | zun(:,:,jk) = e2u(:,:) * fse3u(:,:,jk) * ( un(:,:,jk) - u_trc_bbl(:,:,jk) ) |
| 112 | zvn(:,:,jk) = e1v(:,:) * fse3v(:,:,jk) * ( vn(:,:,jk) - v_trc_bbl(:,:,jk) ) |
| 113 | zwn(:,:,jk) = e1t(:,:) * e2t(:,:) * ( wn(:,:,jk) + w_trc_bbl(:,:,jk) ) |
| 114 | #else |
| 115 | ! ! eulerian transport only |
| 116 | zun(:,:,jk) = e2u(:,:) * fse3u(:,:,jk) * un(:,:,jk) |
| 117 | zvn(:,:,jk) = e1v(:,:) * fse3v(:,:,jk) * vn(:,:,jk) |
| 118 | zwn(:,:,jk) = e1t(:,:) * e2t(:,:) * wn(:,:,jk) |
| 119 | #endif |
| 120 | END DO |
| 121 | zwn(:,:,jpk) = 0.e0 ! no transport trough the bottom |
| 122 | |
| 123 | ! ! add the eiv transport (if necessary) |
| 124 | IF( lk_trcldf_eiv ) CALL trc_adv_eiv( kt, zun, zvn, zwn ) |
| 125 | |
| 126 | CALL tra_adv_cen2( kt, 'TRC', zun, zvn, zwn, trb, trn, tra ) ! 2nd order centered |
| 127 | }}} |