Changeset 455 for trunk/NEMO/OPA_SRC/DYN/dynldf_lap.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_lap.F90
r258 r455 18 18 USE trdmod_oce ! ocean variables trends 19 19 USE ldfslp ! iso-neutral slopes 20 USE prtctl ! Print control21 20 22 21 IMPLICIT NONE … … 51 50 !! difu = 1/e1u di[ahmt hdivb] - 1/(e2u*e3u) dj-1[e3f ahmf rotb] 52 51 !! difv = 1/e2v dj[ahmt hdivb] + 1/(e1v*e3v) di-1[e3f ahmf rotb] 53 !! If 'key_s_coord' key is not activated, the vertical scale factor54 !! i s simplified in the rotational part of the diffusion.52 !! If lk_zco=T, e3f=e3u=e3v, the vertical scale factor are simplified 53 !! in the rotational part of the diffusion. 55 54 !! Add this before trend to the general trend (ua,va): 56 55 !! (ua,va) = (ua,va) + (diffu,diffv) … … 60 59 !! ** Action : - Update (ua,va) with the before iso-level harmonic 61 60 !! mixing trend. 62 !! - Save in (ztdua,ztdva) arrays the trends ('key_trddyn')63 61 !! 64 62 !! History : … … 69 67 !! 9.0 ! 04-08 (C. Talandier) New trends organization 70 68 !!---------------------------------------------------------------------- 71 !! * Modules used72 USE oce, ONLY : ztdua => ta, & ! use ta as 3D workspace73 ztdva => sa ! use sa as 3D workspace74 75 69 !! * Arguments 76 70 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 88 82 ENDIF 89 83 90 ! Save ua and va trends91 IF( l_trddyn ) THEN92 ztdua(:,:,:) = ua(:,:,:)93 ztdva(:,:,:) = va(:,:,:)94 ENDIF95 96 84 ! ! =============== 97 85 DO jk = 1, jpkm1 ! Horizontal slab … … 99 87 DO jj = 2, jpjm1 100 88 DO ji = fs_2, fs_jpim1 ! vector opt. 101 #if defined key_s_coord || defined key_partial_steps 89 #if defined key_zco 90 ! horizontal diffusive trends 91 ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk) 92 ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 93 zua = - ( ze2u - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk) ) / e2u(ji,jj) & 94 + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v ) / e1u(ji,jj) 95 96 zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk) ) / e1v(ji,jj) & 97 + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v ) / e2v(ji,jj) 98 #else 102 99 ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk)*fse3f(ji,jj,jk) 103 100 ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) … … 108 105 zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)*fse3f(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) ) & 109 106 + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v ) / e2v(ji,jj) 110 #else111 ! horizontal diffusive trends112 ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk)113 ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk)114 zua = - ( ze2u - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk) ) / e2u(ji,jj) &115 + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v ) / e1u(ji,jj)116 117 zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk) ) / e1v(ji,jj) &118 + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v ) / e2v(ji,jj)119 107 #endif 120 108 … … 128 116 ! ! =============== 129 117 130 ! save the lateral diffusion trends for diagnostic131 ! momentum trends132 IF( l_trddyn ) THEN133 ztdua(:,:,:) = ua(:,:,:) - ztdua(:,:,:)134 ztdva(:,:,:) = va(:,:,:) - ztdva(:,:,:)135 136 CALL trd_mod(ztdua, ztdva, jpdtdldf, 'DYN', kt)137 ENDIF138 139 IF(ln_ctl) THEN ! print sum trends (used for debugging)140 CALL prt_ctl(tab3d_1=ua, clinfo1=' ldf - Ua: ', mask1=umask, &141 & tab3d_2=va, clinfo2=' Va: ', mask2=vmask, clinfo3='dyn')142 ENDIF143 144 118 END SUBROUTINE dyn_ldf_lap 145 119
Note: See TracChangeset
for help on using the changeset viewer.