Changeset 455 for trunk/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
- Timestamp:
- 2006-05-10T18:53:54+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DYN/dynldf_bilap.F90
r258 r455 17 17 USE trdmod_oce ! ocean variables trends 18 18 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 19 USE prtctl ! Print control20 19 21 20 IMPLICIT NONE … … 61 60 !! diffu = 1/e1u di[ zut ] - 1/(e2u*e3u) dj-1[ e3f zuf ] 62 61 !! diffv = 1/e2v dj[ zut ] + 1/(e1v*e3v) di-1[ e3f zuf ] 63 !! If l k_sco=F and lk_zps=F, the vertical scale factors in the62 !! If ln_sco=F and ln_zps=F, the vertical scale factors in the 64 63 !! rotational part of the diffusion are simplified 65 64 !! Add this before trend to the general trend (ua,va): … … 70 69 !! ** Action : - Update (ua,va) with the before iso-level biharmonic 71 70 !! mixing trend. 72 !! - Save in (ztdua,ztdva) the trends ('key_trddyn')73 71 !! 74 72 !! History : … … 81 79 !! 9.0 ! 04-08 (C. Talandier) New trends organization 82 80 !!---------------------------------------------------------------------- 83 !! * Modules used84 USE oce, ONLY : ztdua => ta, & ! use ta as 3D workspace85 ztdva => sa ! use sa as 3D workspace86 87 81 !! * Arguments 88 82 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 107 101 zlv(:,:) = 0.e0 108 102 109 ! Save ua and va trends110 IF( l_trddyn ) THEN111 ztdua(:,:,:) = ua(:,:,:)112 ztdva(:,:,:) = va(:,:,:)113 ENDIF114 103 ! ! =============== 115 104 DO jk = 1, jpkm1 ! Horizontal slab … … 118 107 ! --------- 119 108 120 IF( l k_sco .OR. lk_zps ) THEN ! s-coordinate or z-coordinate with partial steps109 IF( ln_sco .OR. ln_zps ) THEN ! s-coordinate or z-coordinate with partial steps 121 110 zuf(:,:) = rotb(:,:,jk) * fse3f(:,:,jk) 122 111 DO jj = 2, jpjm1 … … 129 118 END DO 130 119 END DO 131 ELSE ! z-coordinate 120 ELSE ! z-coordinate - full step 132 121 DO jj = 2, jpjm1 133 122 DO ji = fs_2, fs_jpim1 ! vector opt. … … 162 151 zuf(ji,jj) = fmask(ji,jj,jk) * ( zcv(ji+1,jj ) - zcv(ji,jj) & 163 152 & - zcu(ji ,jj+1) + zcu(ji,jj) ) & 164 #if defined key_s_coord || defined key_partial_steps 153 #if defined key_zco 154 & / ( e1f(ji,jj)*e2f(ji,jj) ) 155 #else 165 156 & * fse3f(ji,jj,jk) / ( e1f(ji,jj)*e2f(ji,jj) ) 166 #else167 & / ( e1f(ji,jj)*e2f(ji,jj) )168 157 #endif 169 158 END DO … … 173 162 DO jj = 1, jpjm1 174 163 DO ji = 1, fs_jpim1 ! vector opt. 175 #if defined key_s_coord || defined key_partial_steps 164 #if defined key_zco 165 zlu(ji,jj) = e2u(ji,jj) * zlu(ji,jj) 166 zlv(ji,jj) = e1v(ji,jj) * zlv(ji,jj) 167 #else 176 168 zlu(ji,jj) = e2u(ji,jj) * fse3u(ji,jj,jk) * zlu(ji,jj) 177 169 zlv(ji,jj) = e1v(ji,jj) * fse3v(ji,jj,jk) * zlv(ji,jj) 178 #else179 zlu(ji,jj) = e2u(ji,jj) * zlu(ji,jj)180 zlv(ji,jj) = e1v(ji,jj) * zlv(ji,jj)181 170 #endif 182 171 END DO … … 186 175 DO jj = 2, jpj 187 176 DO ji = fs_2, jpi ! vector opt. 188 #if defined key_s_coord || defined key_partial_steps 177 #if defined key_zco 178 zbt = e1t(ji,jj) * e2t(ji,jj) 179 #else 189 180 zbt = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 190 #else191 zbt = e1t(ji,jj) * e2t(ji,jj)192 181 #endif 193 182 zut(ji,jj) = ( zlu(ji,jj) - zlu(ji-1,jj ) & … … 207 196 DO jj = 2, jpjm1 208 197 DO ji = fs_2, fs_jpim1 ! vector opt. 209 #if defined key_s_coord || defined key_partial_steps 198 #if defined key_zco 199 ze2u = e2u(ji,jj) 200 ze2v = e1v(ji,jj) 201 #else 210 202 ze2u = e2u(ji,jj) * fse3u(ji,jj,jk) 211 203 ze2v = e1v(ji,jj) * fse3v(ji,jj,jk) 212 #else213 ze2u = e2u(ji,jj)214 ze2v = e1v(ji,jj)215 204 #endif 216 205 ! horizontal biharmonic diffusive trends … … 229 218 END DO ! End of slab 230 219 ! ! =============== 231 ! save the lateral diffusion trends for diagnostic232 ! momentum trends233 IF( l_trddyn ) THEN234 ztdua(:,:,:) = ua(:,:,:) - ztdua(:,:,:)235 ztdva(:,:,:) = va(:,:,:) - ztdva(:,:,:)236 237 CALL trd_mod(ztdua, ztdva, jpdtdldf, 'DYN', kt)238 ENDIF239 240 IF(ln_ctl) THEN ! print sum trends (used for debugging)241 CALL prt_ctl(tab3d_1=ua, clinfo1=' ldf - Ua: ', mask1=umask, &242 & tab3d_2=va, clinfo2=' Va: ', mask2=vmask, clinfo3='dyn')243 ENDIF244 220 245 221 END SUBROUTINE dyn_ldf_bilap
Note: See TracChangeset
for help on using the changeset viewer.