Changeset 6140 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap_blp.F90
- Timestamp:
- 2015-12-21T12:35:23+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap_blp.F90
r5861 r6140 4 4 !! Ocean dynamics: lateral viscosity trend (laplacian and bilaplacian) 5 5 !!====================================================================== 6 !! History : OPA ! 1990-09 (G. Madec) Original code 7 !! 4.0 ! 1991-11 (G. Madec) 8 !! 6.0 ! 1996-01 (G. Madec) statement function for e3 and ahm 9 !! NEMO 1.0 ! 2002-06 (G. Madec) F90: Free form and module 10 !! - ! 2004-08 (C. Talandier) New trends organization 11 !! 3.7 ! 2014-01 (F. Lemarie, G. Madec) restructuration/simplification of ahm specification, 12 !! ! add velocity dependent coefficient and optional read in file 6 !! History : 3.7 ! 2014-01 (G. Madec, S. Masson) Original code, re-entrant laplacian 13 7 !!---------------------------------------------------------------------- 14 8 … … 35 29 36 30 !! * Substitutions 37 # include "domzgr_substitute.h90"38 31 # include "vectopt_loop_substitute.h90" 39 32 !!---------------------------------------------------------------------- … … 87 80 DO ji = fs_2, jpi ! vector opt. 88 81 ! ! ahm * e3 * curl (computed from 1 to jpim1/jpjm1) 89 !!gm open question here : fse3f at before or now ? probably now...82 !!gm open question here : e3f at before or now ? probably now... 90 83 !!gm note that ahmf has already been multiplied by fmask 91 zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * fse3f(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1) &84 zcur(ji-1,jj-1) = ahmf(ji-1,jj-1,jk) * e3f_n(ji-1,jj-1,jk) * r1_e1e2f(ji-1,jj-1) & 92 85 & * ( e2v(ji ,jj-1) * pvb(ji ,jj-1,jk) - e2v(ji-1,jj-1) * pvb(ji-1,jj-1,jk) & 93 & - e1u(ji-1,jj ) * pub(ji-1,jj ,jk) + e1u(ji-1,jj-1) * pub(ji-1,jj-1,jk) ) 86 & - e1u(ji-1,jj ) * pub(ji-1,jj ,jk) + e1u(ji-1,jj-1) * pub(ji-1,jj-1,jk) ) 94 87 ! ! ahm * div (computed from 2 to jpi/jpj) 95 zdiv(ji,jj) = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / fse3t_b(ji,jj,jk) * tmask(ji,jj,jk) & 96 & * ( e2u(ji,jj)*fse3u_b(ji,jj,jk) * pub(ji,jj,jk) - e2u(ji-1,jj)*fse3u_b(ji-1,jj,jk) * pub(ji-1,jj,jk) & 97 & + e1v(ji,jj)*fse3v_b(ji,jj,jk) * pvb(ji,jj,jk) - e1v(ji,jj-1)*fse3v_b(ji,jj-1,jk) * pvb(ji,jj-1,jk) ) 88 !!gm note that ahmt has already been multiplied by tmask 89 zdiv(ji,jj) = ahmt(ji,jj,jk) * r1_e1e2t(ji,jj) / e3t_b(ji,jj,jk) & 90 & * ( e2u(ji,jj)*e3u_b(ji,jj,jk) * pub(ji,jj,jk) - e2u(ji-1,jj)*e3u_b(ji-1,jj,jk) * pub(ji-1,jj,jk) & 91 & + e1v(ji,jj)*e3v_b(ji,jj,jk) * pvb(ji,jj,jk) - e1v(ji,jj-1)*e3v_b(ji,jj-1,jk) * pvb(ji,jj-1,jk) ) 98 92 END DO 99 93 END DO … … 101 95 DO jj = 2, jpjm1 ! - curl( curl) + grad( div ) 102 96 DO ji = fs_2, fs_jpim1 ! vector opt. 103 pua(ji,jj,jk) = pua(ji,jj,jk) + zsign * ( 104 & - ( zcur(ji ,jj) - zcur(ji,jj-1) ) / ( e2u(ji,jj) * fse3u(ji,jj,jk)) &97 pua(ji,jj,jk) = pua(ji,jj,jk) + zsign * ( & 98 & - ( zcur(ji ,jj) - zcur(ji,jj-1) ) * r1_e2u(ji,jj) / e3u_n(ji,jj,jk) & 105 99 & + ( zdiv(ji+1,jj) - zdiv(ji,jj ) ) * r1_e1u(ji,jj) ) 106 100 ! 107 pva(ji,jj,jk) = pva(ji,jj,jk) + zsign * ( 108 & ( zcur(ji,jj ) - zcur(ji-1,jj) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk)) &101 pva(ji,jj,jk) = pva(ji,jj,jk) + zsign * ( & 102 & ( zcur(ji,jj ) - zcur(ji-1,jj) ) * r1_e1v(ji,jj) / e3v_n(ji,jj,jk) & 109 103 & + ( zdiv(ji,jj+1) - zdiv(ji ,jj) ) * r1_e2v(ji,jj) ) 110 104 END DO
Note: See TracChangeset
for help on using the changeset viewer.