Changeset 216 for trunk/NEMO/OPA_SRC/TRA/trazdf_imp.F90
- Timestamp:
- 2005-03-17T15:02:38+01:00 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r20 r216 13 13 USE dom_oce ! ocean space and time domain 14 14 USE zdf_oce ! ocean vertical physics 15 USE ldftra_oce ! ???15 USE ldftra_oce ! ocean active tracers: lateral physics 16 16 USE zdfddm ! ocean vertical physics: double diffusion 17 USE trdtra_oce ! tracers trends diagnostics 17 USE trdmod ! ocean active tracers trends 18 USE trdmod_oce ! ocean variables trends 18 19 USE in_out_manager ! I/O manager 19 20 … … 67 68 !! ! 00-08 (G. Madec) double diffusive mixing 68 69 !! 8.5 ! 02-08 (G. Madec) F90: Free form and module 70 !! 9.0 ! 04-08 (C. Talandier) New trends organization 69 71 !!--------------------------------------------------------------------- 72 !! * Modules used 73 USE oce, ONLY : ztdta => ua, & ! use ua as 3D workspace 74 ztdsa => va ! use va as 3D workspace 75 70 76 !! * Arguments 71 77 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 74 80 INTEGER :: ji, jj, jk ! dummy loop indices 75 81 INTEGER :: ikst, ikenm2, ikstp1 82 REAL(wp) :: zta, zsa ! temporary scalars 76 83 REAL(wp), DIMENSION(jpi,jpk) :: & 77 84 zwd, zws, zwi, & ! ??? 78 85 zwx, zwy, zwz, zwt ! ??? 79 #if defined key_trdtra || defined key_trdmld80 REAL(wp) :: zta, zsa ! temporary scalars81 #endif82 86 !!--------------------------------------------------------------------- 83 87 … … 93 97 ENDIF 94 98 99 ! Save ta and sa trends 100 IF( l_trdtra ) THEN 101 ztdta(:,:,:) = ta(:,:,:) 102 ztdsa(:,:,:) = sa(:,:,:) 103 ENDIF 104 95 105 ! ! =============== 96 106 DO jj = 2, jpjm1 ! Vertical slab … … 131 141 # include "zdf.matrixsolver.h90" 132 142 133 #if defined key_trdtra || defined key_trdmld134 ! Compute and save the vertical diffusive temperature trends135 IF( l_traldf_iso ) THEN136 DO jk = 1, jpkm1137 DO ji = 2, jpim1138 zta = ( zwx(ji,jk) - tb(ji,jj,jk) ) / r2dt(jk)139 ttrd(ji,jj,jk,4) = zta - ta(ji,jj,jk) + ttrd(ji,jj,jk,4)140 END DO141 END DO142 ELSE143 DO jk = 1, jpkm1144 DO ji = 2, jpim1145 zta = ( zwx(ji,jk) - tb(ji,jj,jk) ) / r2dt(jk)146 ttrd(ji,jj,jk,4) = zta - ta(ji,jj,jk)147 END DO148 END DO149 ENDIF150 151 #endif152 153 143 ! Save the masked temperature after in ta 154 144 ! (c a u t i o n: temperature not its trend, Leap-frog scheme done … … 197 187 # include "zdf.matrixsolver.h90" 198 188 199 #if defined key_trdtra || defined key_trdmld200 ! Compute and save the vertical diffusive salinity trends201 IF( l_traldf_iso ) THEN202 DO jk = 1, jpkm1203 DO ji = 2, jpim1204 zsa = ( zwx(ji,jk) - sb(ji,jj,jk) ) / r2dt(jk)205 strd(ji,jj,jk,4) = zsa - sa(ji,jj,jk) + strd(ji,jj,jk,4)206 END DO207 END DO208 ELSE209 DO jk = 1, jpkm1210 DO ji = 2, jpim1211 zsa = ( zwx(ji,jk) - sb(ji,jj,jk) ) / r2dt(jk)212 strd(ji,jj,jk,4) = zsa - sa(ji,jj,jk)213 END DO214 END DO215 ENDIF216 #endif217 189 218 190 ! Save the masked salinity after in sa … … 229 201 ! ! =============== 230 202 203 ! save the trends for diagnostic 204 ! Compute and save the vertical diffusive temperature & salinity trends 205 IF( l_trdtra ) THEN 206 ! compute the vertical diffusive trends in substracting the previous 207 ! trends ztdta()/ztdsa() to the new one computed (dT/dt or dS/dt) 208 ! with the new temperature/salinity ta/sa 209 DO jk = 1, jpkm1 210 ztdta(:,:,jk) = ( ( ta(:,:,jk) - tb(:,:,jk) ) / r2dt(jk) ) & ! new trend 211 & - ztdta(:,:,jk) ! old trend 212 ztdsa(:,:,jk) = ( ( sa(:,:,jk) - sb(:,:,jk) ) / r2dt(jk) ) & ! new trend 213 & - ztdsa(:,:,jk) ! old trend 214 END DO 215 216 CALL trd_mod(ztdta, ztdsa, jpttdzdf, 'TRA', kt) 217 ENDIF 218 219 IF(l_ctl) THEN ! print mean trends (used for debugging) 220 zta = SUM( ta(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 221 zsa = SUM( sa(2:nictl,2:njctl,1:jpkm1) * tmask(2:nictl,2:njctl,1:jpkm1) ) 222 WRITE(numout,*) ' zdf - Ta: ', zta-t_ctl, ' Sa: ', zsa-s_ctl 223 t_ctl = zta ; s_ctl = zsa 224 ENDIF 225 231 226 END SUBROUTINE tra_zdf_imp 232 227
Note: See TracChangeset
for help on using the changeset viewer.