Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r2528 r2715 14 14 USE oce ! ocean dynamics and tracers 15 15 USE dom_oce ! ocean space and time domain 16 USE in_out_manager ! I/O manager17 16 USE trdmod ! ocean dynamics trends 18 17 USE trdmod_oce ! ocean variables trends 18 USE in_out_manager ! I/O manager 19 USE lib_mpp ! MPP library 19 20 USE prtctl ! Print control 20 21 … … 29 30 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 30 31 !! $Id$ 31 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)32 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 32 33 !!---------------------------------------------------------------------- 33 34 34 CONTAINS 35 35 … … 52 52 !! - save this trends (l_trddyn=T) for post-processing 53 53 !!---------------------------------------------------------------------- 54 USE oce, ONLY : ztrdu => ta ! use ta as 3D workspace 55 USE oce, ONLY : ztrdv => sa ! use sa as 3D workspace 54 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 55 USE oce , ONLY: ztrdu => ta , ztrdv => sa ! (ta,sa) used as 3D workspace 56 USE wrk_nemo, ONLY: zhke => wrk_3d_1 ! 3D workspace 56 57 !! 57 58 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 59 60 INTEGER :: ji, jj, jk ! dummy loop indices 60 61 REAL(wp) :: zu, zv ! temporary scalars 61 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zhke ! temporary 3D workspace62 62 !!---------------------------------------------------------------------- 63 64 IF( wrk_in_use(3,1) ) THEN 65 CALL ctl_stop('dyn_key: requested workspace array is unavailable') ; RETURN 66 ENDIF 63 67 64 68 IF( kt == nit000 ) THEN … … 83 87 & + vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) 84 88 zhke(ji,jj,jk) = zv + zu 89 !!gm simplier coding ==>> ~ faster 90 ! don't forget to suppress local zu zv scalars 91 ! zhke(ji,jj,jk) = 0.25 * ( un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 92 ! & + un(ji ,jj ,jk) * un(ji ,jj ,jk) & 93 ! & + vn(ji ,jj-1,jk) * vn(ji ,jj-1,jk) & 94 ! & + vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) 95 !!gm end <<== 85 96 END DO 86 97 END DO … … 91 102 END DO 92 103 END DO 104 !!gm idea to be tested ==>> is it faster on scalar computers ? 105 ! DO jj = 2, jpjm1 ! add the gradient of kinetic energy to the general momentum trends 106 ! DO ji = fs_2, fs_jpim1 ! vector opt. 107 ! ua(ji,jj,jk) = ua(ji,jj,jk) - 0.25 * ( + un(ji+1,jj ,jk) * un(ji+1,jj ,jk) & 108 ! & + vn(ji+1,jj-1,jk) * vn(ji+1,jj-1,jk) & 109 ! & + vn(ji+1,jj ,jk) * vn(ji+1,jj ,jk) & 110 ! ! 111 ! & - un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 112 ! & - vn(ji ,jj-1,jk) * vn(ji ,jj-1,jk) & 113 ! & - vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) / e1u(ji,jj) 114 ! ! 115 ! va(ji,jj,jk) = va(ji,jj,jk) - 0.25 * ( un(ji-1,jj+1,jk) * un(ji-1,jj+1,jk) & 116 ! & + un(ji ,jj+1,jk) * un(ji ,jj+1,jk) & 117 ! & + vn(ji ,jj+1,jk) * vn(ji ,jj+1,jk) & 118 ! ! 119 ! & - un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 120 ! & - un(ji ,jj ,jk) * un(ji ,jj ,jk) & 121 ! & - vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) / e2v(ji,jj) 122 ! END DO 123 ! END DO 124 !!gm en idea <<== 93 125 ! ! =============== 94 126 END DO ! End of slab … … 104 136 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 105 137 ! 138 IF( wrk_not_released(3, 1) ) CALL ctl_stop('dyn_key: failed to release workspace array') 139 ! 106 140 END SUBROUTINE dyn_keg 107 141
Note: See TracChangeset
for help on using the changeset viewer.