Changeset 4196 for palm/trunk/SOURCE/ocean_mod.f90
- Timestamp:
- Aug 29, 2019 11:02:06 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/ocean_mod.f90
r4182 r4196 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Consider rotation of model domain for calculating the Stokes drift 28 ! 29 ! 4182 2019-08-22 15:20:23Z scharf 27 30 ! Corrected "Former revisions" section 28 31 ! … … 2126 2129 v_stokes_zw, w, tend 2127 2130 2131 USE basic_constants_and_equations_mod, & 2132 ONLY: pi 2133 2128 2134 USE control_parameters, & 2129 ONLY: f, fs, message_string 2135 ONLY: f, fs, message_string, rotation_angle 2130 2136 2131 2137 USE grid_variables, & … … 2137 2143 IMPLICIT NONE 2138 2144 2139 INTEGER(iwp) :: component !< component of momentum equation 2140 INTEGER(iwp) :: i !< loop index along x 2141 INTEGER(iwp) :: j !< loop index along y 2142 INTEGER(iwp) :: k !< loop index along z 2143 2145 INTEGER(iwp) :: component !< component of momentum equation 2146 INTEGER(iwp) :: i !< loop index along x 2147 INTEGER(iwp) :: j !< loop index along y 2148 INTEGER(iwp) :: k !< loop index along z 2149 2150 REAL(wp) :: cos_rot_angle !< cosine of model rotation angle 2151 REAL(wp) :: sin_rot_angle !< sine of model rotation angle 2144 2152 2145 2153 ! … … 2182 2190 !-- w-component 2183 2191 CASE ( 3 ) 2192 2193 ! 2194 !-- Precalculate cosine and sine of rotation angle 2195 cos_rot_angle = COS( rotation_angle * pi / 180.0_wp ) 2196 sin_rot_angle = SIN( rotation_angle * pi / 180.0_wp ) 2197 2184 2198 DO i = nxl, nxr 2185 2199 DO j = nys, nyn … … 2197 2211 + v(k+1,j+1,i) - v(k,j+1,i) & 2198 2212 ) * ddzu(k) ) & 2199 + fs * u_stokes_zw(k) 2213 + fs * ( & 2214 sin_rot_angle * v_stokes_zw(k) & 2215 + cos_rot_angle * u_stokes_zw(k) & 2216 ) 2200 2217 ENDDO 2201 2218 ENDDO … … 2226 2243 v_stokes_zw, w, tend 2227 2244 2245 USE basic_constants_and_equations_mod, & 2246 ONLY: pi 2247 2228 2248 USE control_parameters, & 2229 ONLY: f, fs, message_string 2249 ONLY: f, fs, message_string, rotation_angle 2230 2250 2231 2251 USE grid_variables, & … … 2237 2257 IMPLICIT NONE 2238 2258 2239 INTEGER(iwp) :: component !< component of momentum equation 2240 INTEGER(iwp) :: i !< loop index along x 2241 INTEGER(iwp) :: j !< loop index along y 2242 INTEGER(iwp) :: k !< loop incex along z 2243 2259 INTEGER(iwp) :: component !< component of momentum equation 2260 INTEGER(iwp) :: i !< loop index along x 2261 INTEGER(iwp) :: j !< loop index along y 2262 INTEGER(iwp) :: k !< loop incex along z 2263 2264 REAL(wp) :: cos_rot_angle !< cosine of model rotation angle 2265 REAL(wp) :: sin_rot_angle !< sine of model rotation angle 2244 2266 2245 2267 ! … … 2273 2295 !-- w-component 2274 2296 CASE ( 3 ) 2297 2298 ! 2299 !-- Precalculate cosine and sine of rotation angle 2300 cos_rot_angle = COS( rotation_angle * pi / 180.0_wp ) 2301 sin_rot_angle = SIN( rotation_angle * pi / 180.0_wp ) 2302 2275 2303 DO k = nzb+1, nzt 2276 2304 tend(k,j,i) = tend(k,j,i) + u_stokes_zw(k) * ( & … … 2286 2314 + v(k+1,j+1,i) - v(k,j+1,i) & 2287 2315 ) * ddzu(k) ) & 2288 + fs * u_stokes_zw(k) 2316 + fs * ( sin_rot_angle * v_stokes_zw(k) & 2317 + cos_rot_angle * u_stokes_zw(k) & 2318 ) 2289 2319 ENDDO 2290 2320
Note: See TracChangeset
for help on using the changeset viewer.