- Timestamp:
- 2010-09-10T12:32:58+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_qck.F90
r2034 r2082 25 25 USE in_out_manager ! I/O manager 26 26 USE diaptr ! poleward transport diagnostics 27 USE trc_oce ! share passive tracers/Ocean variables 27 28 28 29 IMPLICIT NONE … … 45 46 CONTAINS 46 47 47 SUBROUTINE tra_adv_qck ( kt, cdtype, p un, pvn, pwn, &48 & ptb, ptn, pta, kjpt )48 SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn, & 49 & ptb, ptn, pta, kjpt ) 49 50 !!---------------------------------------------------------------------- 50 51 !! *** ROUTINE tra_adv_qck *** … … 85 86 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 86 87 INTEGER , INTENT(in ) :: kjpt ! number of tracers 88 REAL(wp) , INTENT(in ), DIMENSION(jpk) :: p2dt ! vertical profile of tracer time-step 87 89 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pun, pvn, pwn ! 3 ocean velocity components 88 90 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb, ptn ! before and now tracer fields 89 91 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 90 !! 91 REAL(wp) :: z2 ! temporary scalar 92 !!---------------------------------------------------------------------- 93 94 IF( kt == nit000 ) THEN 92 !!---------------------------------------------------------------------- 93 94 IF( ( cdtype == 'TRA' .AND. kt == nit000 ) .OR. ( cdtype == 'TRC' .AND. kt == nittrc000 ) ) THEN 95 95 IF(lwp) WRITE(numout,*) 96 IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme '96 IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype 97 97 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 98 98 IF(lwp) WRITE(numout,*) … … 102 102 ENDIF 103 103 104 IF( neuler == 0 .AND. kt == nit000 ) THEN ; z2 = 1.105 ELSE ; z2 = 2.106 ENDIF107 108 104 ! I. The horizontal fluxes are computed with the QUICKEST + ULTIMATE scheme 109 105 !--------------------------------------------------------------------------- 110 106 111 CALL tra_adv_qck_i( kt, cdtype, p un, z2, ptb, ptn, pta, kjpt )112 CALL tra_adv_qck_j( kt, cdtype, p vn, z2, ptb, ptn, pta, kjpt )107 CALL tra_adv_qck_i( kt, cdtype, p2dt, pun, ptb, ptn, pta, kjpt ) 108 CALL tra_adv_qck_j( kt, cdtype, p2dt, pvn, ptb, ptn, pta, kjpt ) 113 109 114 110 ! II. The vertical fluxes are computed with the 2nd order centered scheme … … 119 115 END SUBROUTINE tra_adv_qck 120 116 121 SUBROUTINE tra_adv_qck_i( kt, cdtype, p un, pz2,&122 & ptb, ptn, pta, kjpt )117 SUBROUTINE tra_adv_qck_i( kt, cdtype, p2dt, pun, & 118 & ptb, ptn, pta, kjpt ) 123 119 !!---------------------------------------------------------------------- 124 120 !! … … 129 125 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 130 126 INTEGER , INTENT(in ) :: kjpt ! number of tracers 127 REAL(wp) , INTENT(in ), DIMENSION(jpk) :: p2dt ! vertical profile of tracer time-step 131 128 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pun ! zonal velocity component 132 129 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb, ptn ! before tracer fields 133 130 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 134 REAL(wp) , INTENT(in ) :: pz2135 131 !! 136 132 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 176 172 ! 177 173 DO jk = 1, jpkm1 178 zdt = p z2 * rdttra(jk)174 zdt = p2dt(jk) 179 175 DO jj = 2, jpjm1 180 176 DO ji = fs_2, fs_jpim1 ! vector opt. … … 239 235 END SUBROUTINE tra_adv_qck_i 240 236 241 SUBROUTINE tra_adv_qck_j( kt, cdtype, p vn, pz2, &242 & ptb, ptn, pta, kjpt )237 SUBROUTINE tra_adv_qck_j( kt, cdtype, p2dt, pvn, & 238 & ptb, ptn, pta, kjpt ) 243 239 !!---------------------------------------------------------------------- 244 240 !! … … 250 246 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 251 247 INTEGER , INTENT(in ) :: kjpt ! number of tracers 248 REAL(wp) , INTENT(in ), DIMENSION(jpk) :: p2dt ! vertical profile of tracer time-step 252 249 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pvn ! meridional velocity component 253 250 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb, ptn ! before tracer fields 254 251 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 255 REAL(wp) , INTENT(in ) :: pz2256 252 !! 257 253 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 296 292 ! 297 293 DO jk = 1, jpkm1 298 zdt = p z2 * rdttra(jk)294 zdt = p2dt(jk) 299 295 DO jj = 2, jpjm1 300 296 DO ji = fs_2, fs_jpim1 ! vector opt.
Note: See TracChangeset
for help on using the changeset viewer.