- Timestamp:
- 2011-12-11T16:00:26+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/TRD/trdtra.F90
r2715 r3211 25 25 26 26 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: trdtx, trdty, trdt !: 27 28 !! * Control permutation of array indices 29 # include "dom_oce_ftrans.h90" 30 !! These are all private to the module, 31 !! so we do not need a separate file of ftrans directives 32 !FTRANS trdtx trdty trdt :I :I :z 27 33 28 34 !! * Substitutions … … 63 69 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 64 70 USE wrk_nemo, ONLY: ztrds => wrk_3d_10 ! 3D workspace 71 !! DCSE_NEMO: Need additional directives for renamed module variables 72 !FTRANS ztrds :I :I :z 73 65 74 ! 66 75 INTEGER , INTENT(in) :: kt ! time step … … 68 77 INTEGER , INTENT(in) :: ktra ! tracer index 69 78 INTEGER , INTENT(in) :: ktrd ! tracer trend index 70 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrd ! tracer trend or flux 71 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: pun ! velocity 72 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! Tracer variable 79 80 !! DCSE_NEMO: This style defeats ftrans 81 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrd ! tracer trend or flux 82 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: pun ! velocity 83 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! Tracer variable 84 85 !FTRANS ptrd pun ptra :I :I :z 86 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpk) ! tracer trend or flux 87 REAL(wp), INTENT(in), OPTIONAL :: pun(jpi,jpj,jpk) ! velocity 88 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpk) ! Tracer variable 73 89 !!---------------------------------------------------------------------- 74 90 … … 142 158 END SUBROUTINE trd_tra 143 159 160 !! * Reset control of array index permutation 161 !FTRANS CLEAR 162 # include "dom_oce_ftrans.h90" 163 !FTRANS trdtx trdty trdt :I :I :z 144 164 145 165 SUBROUTINE trd_tra_adv( pf, pun, ptn, cdir, ptrd ) … … 153 173 !! k-advective trends = -un. di+1[T] = -( dk+1[fi] - tn dk+1[un] ) 154 174 !!---------------------------------------------------------------------- 155 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pf ! advective flux in one direction 156 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pun ! now velocity in one direction 157 REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: ptn ! now or before tracer 175 176 !! DCSE_NEMO: This style defeats ftrans 177 ! REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pf ! advective flux in one direction 178 ! REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: pun ! now velocity in one direction 179 ! REAL(wp) , INTENT(in ), DIMENSION(jpi,jpj,jpk) :: ptn ! now or before tracer 180 181 !FTRANS pf pun ptn :I :I :z 182 REAL(wp) , INTENT(in ) :: pf(jpi,jpj,jpk) ! advective flux in one direction 183 REAL(wp) , INTENT(in ) :: pun(jpi,jpj,jpk) ! now velocity in one direction 184 REAL(wp) , INTENT(in ) :: ptn(jpi,jpj,jpk) ! now or before tracer 158 185 CHARACTER(len=1), INTENT(in ) :: cdir ! X/Y/Z direction 159 REAL(wp) , INTENT(out), DIMENSION(jpi,jpj,jpk) :: ptrd ! advective trend in one direction 186 187 ! REAL(wp) , INTENT(out), DIMENSION(jpi,jpj,jpk) :: ptrd ! advective trend in one direction 188 !FTRANS ptrd :I :I :z 189 REAL(wp) , INTENT(out) :: ptrd(jpi,jpj,jpk) ! advective trend in one direction 160 190 ! 161 191 INTEGER :: ji, jj, jk ! dummy loop indices … … 176 206 ! 177 207 ! 208 #if defined key_z_first 209 DO jj = 2, jpjm1 210 DO ji = 2, jpim1 211 DO jk = 1, jpkm1 212 #else 178 213 DO jk = 1, jpkm1 179 214 DO jj = 2, jpjm1 180 215 DO ji = fs_2, fs_jpim1 ! vector opt. 216 #endif 181 217 zbtr = 1.e0/ ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 182 218 ptrd(ji,jj,jk) = - zbtr * ( pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik) & … … 200 236 INTEGER , INTENT(in) :: ktra ! tracer index 201 237 INTEGER , INTENT(in) :: ktrd ! tracer trend index 202 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrd ! tracer trend 203 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: pu ! velocity 204 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! Tracer variable 238 !! DCSE_NEMO: This style defeats ftrans 239 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: ptrd ! tracer trend or flux 240 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: pu ! velocity 241 ! REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! Tracer variable 242 243 !FTRANS ptrd pu ptra :I :I :z 244 REAL(wp), INTENT(in) :: ptrd(jpi,jpj,jpk) ! tracer trend or flux 245 REAL(wp), INTENT(in), OPTIONAL :: pu(jpi,jpj,jpk) ! velocity 246 REAL(wp), INTENT(in), OPTIONAL :: ptra(jpi,jpj,jpk) ! Tracer variable 247 205 248 WRITE(*,*) 'trd_3d: You should not have seen this print! error ?', ptrd(1,1,1), ptra(1,1,1), pu(1,1,1), & 206 249 & ktrd, ktra, ctype, kt
Note: See TracChangeset
for help on using the changeset viewer.