- Timestamp:
- 2011-02-27T17:36:24+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynkeg.F90
r2590 r2625 29 29 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 30 30 !! $Id$ 31 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)31 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 32 32 !!---------------------------------------------------------------------- 33 34 33 CONTAINS 35 34 … … 52 51 !! - save this trends (l_trddyn=T) for post-processing 53 52 !!---------------------------------------------------------------------- 54 USE oce, ONLY : ztrdu => ta ! use ta as 3D workspace 55 USE oce, ONLY : ztrdv => sa ! use sa as 3D workspace 56 USE wrk_nemo, ONLY: wrk_use, wrk_release 57 USE wrk_nemo, ONLY: zhke => wrk_3d_1 53 USE wrk_nemo, ONLY: wrk_use, wrk_release 54 USE oce , ONLY: ztrdu => ta , ztrdv => sa ! (ta,sa) used as 3D workspace 55 USE wrk_nemo, ONLY: zhke => wrk_3d_1 ! 3D workspace 58 56 !! 59 57 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 63 61 !!---------------------------------------------------------------------- 64 62 65 IF(.NOT. wrk_use(3,1) )THEN66 CALL ctl_stop('dyn_key: requested workspace array is unavailable.') 67 END 63 IF(.NOT. wrk_use(3,1) ) THEN 64 CALL ctl_stop('dyn_key: requested workspace array is unavailable.') ; RETURN 65 ENDIF 68 66 69 67 IF( kt == nit000 ) THEN … … 88 86 & + vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) 89 87 zhke(ji,jj,jk) = zv + zu 88 !!gm simplier coding ==>> ~ faster 89 ! don't forget to suppress local zu zv scalars 90 ! zhke(ji,jj,jk) = 0.25 * ( un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 91 ! & + un(ji ,jj ,jk) * un(ji ,jj ,jk) & 92 ! & + vn(ji ,jj-1,jk) * vn(ji ,jj-1,jk) & 93 ! & + vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) 94 !!gm end <<== 90 95 END DO 91 96 END DO … … 96 101 END DO 97 102 END DO 103 !!gm idea to be tested ==>> is it faster on scalar computers ? 104 ! DO jj = 2, jpjm1 ! add the gradient of kinetic energy to the general momentum trends 105 ! DO ji = fs_2, fs_jpim1 ! vector opt. 106 ! ua(ji,jj,jk) = ua(ji,jj,jk) - 0.25 * ( + un(ji+1,jj ,jk) * un(ji+1,jj ,jk) & 107 ! & + vn(ji+1,jj-1,jk) * vn(ji+1,jj-1,jk) & 108 ! & + vn(ji+1,jj ,jk) * vn(ji+1,jj ,jk) & 109 ! ! 110 ! & - un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 111 ! & - vn(ji ,jj-1,jk) * vn(ji ,jj-1,jk) & 112 ! & - vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) / e1u(ji,jj) 113 ! ! 114 ! va(ji,jj,jk) = va(ji,jj,jk) - 0.25 * ( un(ji-1,jj+1,jk) * un(ji-1,jj+1,jk) & 115 ! & + un(ji ,jj+1,jk) * un(ji ,jj+1,jk) & 116 ! & + vn(ji ,jj+1,jk) * vn(ji ,jj+1,jk) & 117 ! ! 118 ! & - un(ji-1,jj ,jk) * un(ji-1,jj ,jk) & 119 ! & - un(ji ,jj ,jk) * un(ji ,jj ,jk) & 120 ! & - vn(ji ,jj ,jk) * vn(ji ,jj ,jk) ) / e2v(ji,jj) 121 ! END DO 122 ! END DO 123 !!gm en idea <<== 98 124 ! ! =============== 99 125 END DO ! End of slab … … 109 135 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 110 136 ! 111 IF(.NOT. wrk_release(3,1))THEN 112 CALL ctl_stop('dyn_key: failed to release workspace array.') 113 END IF 114 137 IF(.NOT. wrk_release(3, 1) ) CALL ctl_stop('dyn_key: failed to release workspace array') 138 ! 115 139 END SUBROUTINE dyn_keg 116 140
Note: See TracChangeset
for help on using the changeset viewer.