Changeset 12377 for NEMO/trunk/src/OCE/DYN/dynspg_exp.F90
- Timestamp:
- 2020-02-12T15:39:06+01:00 (4 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEAD ext/AGRIF5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL
-
- Property svn:externals
-
NEMO/trunk/src/OCE/DYN/dynspg_exp.F90
r10068 r12377 30 30 31 31 !! * Substitutions 32 # include " vectopt_loop_substitute.h90"32 # include "do_loop_substitute.h90" 33 33 !!---------------------------------------------------------------------- 34 34 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 38 38 CONTAINS 39 39 40 SUBROUTINE dyn_spg_exp( kt )40 SUBROUTINE dyn_spg_exp( kt, Kmm, puu, pvv, Krhs ) 41 41 !!---------------------------------------------------------------------- 42 42 !! *** routine dyn_spg_exp *** … … 48 48 !! ** Method : Explicit free surface formulation. Add to the general 49 49 !! momentum trend the surface pressure gradient : 50 !! (u a,va) = (ua,va) + (spgu,spgv)51 !! where spgu = -1/rau0 d/dx(ps) = -g/e1u di( ssh n)52 !! spgv = -1/rau0 d/dy(ps) = -g/e2v dj( ssh n)50 !! (uu(rhs),vv(rhs)) = (uu(rhs),vv(rhs)) + (spgu,spgv) 51 !! where spgu = -1/rau0 d/dx(ps) = -g/e1u di( ssh(now) ) 52 !! spgv = -1/rau0 d/dy(ps) = -g/e2v dj( ssh(now) ) 53 53 !! 54 !! ** Action : ( ua,va) trend of horizontal velocity increased by54 !! ** Action : (puu(:,:,:,Krhs),pvv(:,:,:,Krhs)) trend of horizontal velocity increased by 55 55 !! the surf. pressure gradient trend 56 56 !!--------------------------------------------------------------------- 57 INTEGER, INTENT(in) :: kt ! ocean time-step index 57 INTEGER , INTENT( in ) :: kt ! ocean time-step index 58 INTEGER , INTENT( in ) :: Kmm, Krhs ! ocean time level indices 59 REAL(wp), DIMENSION(jpi,jpj,jpk,jpt), INTENT(inout) :: puu, pvv ! ocean velocities and RHS of momentum equation 58 60 !! 59 61 INTEGER :: ji, jj, jk ! dummy loop indices … … 72 74 IF( ln_linssh ) THEN !* linear free surface : add the surface pressure gradient trend 73 75 ! 74 DO jj = 2, jpjm1 ! now surface pressure gradient 75 DO ji = fs_2, fs_jpim1 ! vector opt. 76 spgu(ji,jj) = - grav * ( sshn(ji+1,jj) - sshn(ji,jj) ) * r1_e1u(ji,jj) 77 spgv(ji,jj) = - grav * ( sshn(ji,jj+1) - sshn(ji,jj) ) * r1_e2v(ji,jj) 78 END DO 79 END DO 76 DO_2D_00_00 77 spgu(ji,jj) = - grav * ( ssh(ji+1,jj,Kmm) - ssh(ji,jj,Kmm) ) * r1_e1u(ji,jj) 78 spgv(ji,jj) = - grav * ( ssh(ji,jj+1,Kmm) - ssh(ji,jj,Kmm) ) * r1_e2v(ji,jj) 79 END_2D 80 80 ! 81 DO jk = 1, jpkm1 ! Add it to the general trend 82 DO jj = 2, jpjm1 83 DO ji = fs_2, fs_jpim1 ! vector opt. 84 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) 85 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) 86 END DO 87 END DO 88 END DO 81 DO_3D_00_00( 1, jpkm1 ) 82 puu(ji,jj,jk,Krhs) = puu(ji,jj,jk,Krhs) + spgu(ji,jj) 83 pvv(ji,jj,jk,Krhs) = pvv(ji,jj,jk,Krhs) + spgv(ji,jj) 84 END_3D 89 85 ! 90 86 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.