Changeset 642 for trunk/NEMO/OPA_SRC/TRA/tranxt.F90
- Timestamp:
- 2007-03-15T12:17:58+01:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/tranxt.F90
r592 r642 86 86 INTEGER, INTENT(in) :: kt ! ocean time-step index 87 87 !! 88 INTEGER :: ji, jj, jk ! dummy loop indices89 REAL(wp) :: zt, zs 90 REAL(wp) :: zfact ! temporary scalar88 INTEGER :: ji, jj, jk ! dummy loop indices 89 REAL(wp) :: zt, zs, zssh1 ! temporary scalars 90 REAL(wp) :: zfact ! temporary scalar 91 91 !! Variable volume 92 REAL(wp) :: zssh ! temporary scalars92 REAL(wp), DIMENSION(jpi,jpj) :: zssh ! temporary scalars 93 93 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zfse3tb, zfse3tn, zfse3ta ! 3D workspace 94 94 … … 100 100 ! Scale factors at before and after time step 101 101 ! ------------------------------------------- 102 DO jk = 1, jpkm1 103 zfse3tb(:,:,jk) = fsve3t(:,:,jk) * ( 1 + sshb(:,:) * mut(:,:,jk) ) 104 zfse3ta(:,:,jk) = fsve3t(:,:,jk) * ( 1 + ssha(:,:) * mut(:,:,jk) ) 105 END DO 102 zfse3tb(:,:,:) = sfe3( sshb, 'T' ) ; zfse3ta(:,:,:) = sfe3( ssha, 'T' ) 106 103 107 104 ! Asselin filtered scale factor at now time step 108 105 ! ---------------------------------------------- 109 106 IF( (neuler == 0 .AND. kt == nit000) .OR. lk_dynspg_ts ) THEN 110 zfse3tn(:,:,:) = fse3t(:,:,:)107 zfse3tn(:,:,:) = sfe3ini( 'T' ) 111 108 ELSE 112 DO jk = 1, jpkm1 113 DO jj = 1, jpj 114 DO ji = 1, jpi 115 zssh = atfp * ( sshb(ji,jj) + ssha(ji,jj) ) + atfp1 * sshn(ji,jj) 116 zfse3tn(ji,jj,jk) = fsve3t(ji,jj,jk) * ( 1 + zssh * mut(ji,jj,jk) ) 117 END DO 109 zssh(:,:) = atfp * ( sshb(:,:) + ssha(:,:) ) + atfp1 * sshn(:,:) 110 zfse3tn(:,:,:) = sfe3( zssh, 'T' ) 111 ENDIF 112 113 ! Thickness weighting 114 ! ------------------- 115 DO jk = 1, jpkm1 116 DO jj = 1, jpj 117 DO ji = 1, jpi 118 ta(ji,jj,jk) = ta(ji,jj,jk) * fse3t(ji,jj,jk) 119 sa(ji,jj,jk) = sa(ji,jj,jk) * fse3t(ji,jj,jk) 120 121 tn(ji,jj,jk) = tn(ji,jj,jk) * fse3t(ji,jj,jk) 122 sn(ji,jj,jk) = sn(ji,jj,jk) * fse3t(ji,jj,jk) 123 124 tb(ji,jj,jk) = tb(ji,jj,jk) * zfse3tb(ji,jj,jk) 125 sb(ji,jj,jk) = sb(ji,jj,jk) * zfse3tb(ji,jj,jk) 118 126 END DO 119 127 END DO 120 ENDIF 121 122 ! Thickness weighting 123 ! ------------------- 124 ta(:,:,1:jpkm1) = ta(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 125 sa(:,:,1:jpkm1) = sa(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 126 127 tn(:,:,1:jpkm1) = tn(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 128 sn(:,:,1:jpkm1) = sn(:,:,1:jpkm1) * fse3t (:,:,1:jpkm1) 129 130 tb(:,:,1:jpkm1) = tb(:,:,1:jpkm1) * zfse3tb(:,:,1:jpkm1) 131 sb(:,:,1:jpkm1) = sb(:,:,1:jpkm1) * zfse3tb(:,:,1:jpkm1) 128 END DO 132 129 133 130 ENDIF … … 221 218 DO jj = 1, jpj 222 219 DO ji = 1, jpi 223 zssh = tmask(ji,jj,jk) / fse3t(ji,jj,jk)224 tb(ji,jj,jk) = tn(ji,jj,jk) * zssh * tmask(ji,jj,jk)225 sb(ji,jj,jk) = sn(ji,jj,jk) * zssh * tmask(ji,jj,jk)226 zssh = tmask(ji,jj,jk) / zfse3ta(ji,jj,jk)227 tn(ji,jj,jk) = ta(ji,jj,jk) * zssh * tmask(ji,jj,jk)228 sn(ji,jj,jk) = sa(ji,jj,jk) * zssh * tmask(ji,jj,jk)220 zssh1 = tmask(ji,jj,jk) / fse3t(ji,jj,jk) 221 tb(ji,jj,jk) = tn(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 222 sb(ji,jj,jk) = sn(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 223 zssh1 = tmask(ji,jj,jk) / zfse3ta(ji,jj,jk) 224 tn(ji,jj,jk) = ta(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 225 sn(ji,jj,jk) = sa(ji,jj,jk) * zssh1 * tmask(ji,jj,jk) 229 226 END DO 230 227 END DO … … 255 252 DO jj = 1, jpj 256 253 DO ji = 1, jpi 257 zssh = tmask(ji,jj,jk) / zfse3tn(ji,jj,jk)254 zssh1 = tmask(ji,jj,jk) / zfse3tn(ji,jj,jk) 258 255 tb(ji,jj,jk) = ( atfp * ( tb(ji,jj,jk) + ta(ji,jj,jk) ) & 259 & + atfp1 * tn(ji,jj,jk) ) * zssh 256 & + atfp1 * tn(ji,jj,jk) ) * zssh1 260 257 sb(ji,jj,jk) = ( atfp * ( sb(ji,jj,jk) + sa(ji,jj,jk) ) & 261 & + atfp1 * sn(ji,jj,jk) ) * zssh 262 zssh = tmask(ji,jj,1) / zfse3ta(ji,jj,jk)263 tn(ji,jj,jk) = ta(ji,jj,jk) * zssh 264 sn(ji,jj,jk) = sa(ji,jj,jk) * zssh 258 & + atfp1 * sn(ji,jj,jk) ) * zssh1 259 zssh1 = tmask(ji,jj,1) / zfse3ta(ji,jj,jk) 260 tn(ji,jj,jk) = ta(ji,jj,jk) * zssh1 261 sn(ji,jj,jk) = sa(ji,jj,jk) * zssh1 265 262 END DO 266 263 END DO
Note: See TracChangeset
for help on using the changeset viewer.