- Timestamp:
- 2014-01-28T14:55:35+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r4050_NOC_WaD/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90
r3764 r4375 76 76 !! - Save the trend (l_trddyn=T) 77 77 !!---------------------------------------------------------------------- 78 INTEGER, INTENT(in) :: kt ! ocean time-step index 78 INTEGER, INTENT(in) :: kt ! ocean time-step index 79 INTEGER :: ji, jj, jk ! dummy loop indices 80 REAL :: zcpx, zcpy ! gravity filter for W/D 81 REAL :: zij, zim1j, zijm1, zim1jm1 ! local variables 82 REAL :: dij, dim1j, dijm1, dim1jm1 ! local variables 79 83 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrdu, ztrdv 80 84 !!---------------------------------------------------------------------- … … 82 86 IF( nn_timing == 1 ) CALL timing_start('dyn_hpg') 83 87 ! 84 IF( l_trddyn ) THEN ! Temporary saving of ua and va trends (l_trddyn) 88 89 IF( l_trddyn .OR. ln_wad ) THEN ! Temporary saving of ua and va trends (l_trddyn) 85 90 CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 86 91 ztrdu(:,:,:) = ua(:,:,:) 87 92 ztrdv(:,:,:) = va(:,:,:) 88 93 ENDIF 94 89 95 ! 90 96 SELECT CASE ( nhpg ) ! Hydrostatic pressure gradient computation … … 95 101 CASE ( 4 ) ; CALL hpg_prj ( kt ) ! s-coordinate (Pressure Jacobian scheme) 96 102 END SELECT 103 104 !! Gravity filter for W/D 105 IF(ln_wad) THEN 106 DO jk = 2, jpkm1 107 DO jj = 2, jpjm1 108 DO ji = fs_2, fs_jpim1 ! vector opt. 109 zij = sshn(ji , jj ) 110 zim1j = sshn(ji- 1, jj ) 111 zijm1 = sshn(ji , jj- 1) 112 zim1jm1 = sshn(ji-1 , jj- 1) 113 dij = bathy(ji , jj ) 114 dim1j = bathy(ji- 1, jj ) 115 dijm1 = bathy(ji , jj- 1) 116 dim1jm1 = bathy(ji-1 , jj- 1) 117 118 zcpx = 0.5_wp + sign(0.5_wp, min(zij,zim1j) - max(-dij,-dim1j)) 119 zcpy = 0.5_wp + sign(0.5_wp, min(zij,zijm1) - max(-dij,-dijm1)) 120 121 ua(ji,jj,jk) = ztrdu(ji,jj,jk) + zcpx * ( ua(ji,jj,jk) - ztrdu(ji,jj,jk)) 122 va(ji,jj,jk) = ztrdv(ji,jj,jk) + zcpy * ( va(ji,jj,jk) - ztrdv(ji,jj,jk)) 123 END DO 124 END DO 125 END DO 126 END IF 97 127 ! 98 128 IF( l_trddyn ) THEN ! save the hydrostatic pressure gradient trends for momentum trend diagnostics … … 100 130 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 101 131 CALL trd_mod( ztrdu, ztrdv, jpdyn_trd_hpg, 'DYN', kt ) 132 ENDIF 133 134 IF( l_trddyn .OR. ln_wad ) THEN 102 135 CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 103 136 ENDIF 137 104 138 ! 105 139 IF(ln_ctl) CALL prt_ctl( tab3d_1=ua, clinfo1=' hpg - Ua: ', mask1=umask, &
Note: See TracChangeset
for help on using the changeset viewer.