Changeset 1320 for palm/trunk/SOURCE/advec_u_up.f90
- Timestamp:
- Mar 20, 2014 8:40:49 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/advec_u_up.f90
r1310 r1320 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! ONLY-attribute added to USE-statements, 23 ! kind-parameters added to all INTEGER and REAL declaration statements, 24 ! kinds are defined in new module kinds, 25 ! revision history before 2012 removed, 26 ! comment fields (!:) to be used for variable explanations added to 27 ! all variable declaration statements 23 28 ! 24 29 ! Former revisions: … … 28 33 ! 1036 2012-10-22 13:43:42Z raasch 29 34 ! code put under GPL (PALM 3.9) 30 !31 ! 106 2007-08-16 14:30:26Z raasch32 ! i loop is starting from nxlu (needed for non-cyclic boundary conditions)33 !34 ! 75 2007-03-22 09:54:05Z raasch35 ! uxrp eliminated36 !37 ! RCS Log replace by Id keyword, revision history cleaned up38 !39 ! Revision 1.12 2006/02/23 09:45:04 raasch40 ! nzb_2d replaced by nzb_u_inner41 35 ! 42 36 ! Revision 1.1 1997/08/29 08:55:25 raasch … … 67 61 SUBROUTINE advec_u_up 68 62 69 USE arrays_3d 70 USE control_parameters 71 USE grid_variables 72 USE indices 63 USE arrays_3d, & 64 ONLY: ddzu, tend, u, v, w 65 66 USE control_parameters, & 67 ONLY: u_gtrans, v_gtrans 68 69 USE grid_variables, & 70 ONLY: ddx, ddy 71 72 USE indices, & 73 ONLY: nxlu, nxr, nyn, nys, nzb_u_inner, nzt 74 75 USE kinds 76 73 77 74 78 IMPLICIT NONE 75 79 76 INTEGER :: i, j, k 77 78 REAL :: ukomp, vkomp, wkomp 79 80 80 INTEGER(iwp) :: i !: 81 INTEGER(iwp) :: j !: 82 INTEGER(iwp) :: k !: 83 84 REAL(wp) :: ukomp !: 85 REAL(wp) :: vkomp !: 86 REAL(wp) :: wkomp !: 87 88 81 89 DO i = nxlu, nxr 82 90 DO j = nys, nyn … … 86 94 ukomp = u(k,j,i) - u_gtrans 87 95 IF ( ukomp > 0.0 ) THEN 88 tend(k,j,i) = tend(k,j,i) - ukomp * &96 tend(k,j,i) = tend(k,j,i) - ukomp * & 89 97 ( u(k,j,i) - u(k,j,i-1) ) * ddx 90 98 ELSE 91 tend(k,j,i) = tend(k,j,i) - ukomp * &99 tend(k,j,i) = tend(k,j,i) - ukomp * & 92 100 ( u(k,j,i+1) - u(k,j,i) ) * ddx 93 101 ENDIF 94 102 ! 95 103 !-- y-direction 96 vkomp = 0.25 * ( v(k,j,i) + v(k,j+1,i) + &104 vkomp = 0.25 * ( v(k,j,i) + v(k,j+1,i) + & 97 105 v(k,j,i-1) + v(k,j+1,i-1) ) - v_gtrans 98 106 IF ( vkomp > 0.0 ) THEN 99 tend(k,j,i) = tend(k,j,i) - vkomp * &107 tend(k,j,i) = tend(k,j,i) - vkomp * & 100 108 ( u(k,j,i) - u(k,j-1,i) ) * ddy 101 109 ELSE 102 tend(k,j,i) = tend(k,j,i) - vkomp * &110 tend(k,j,i) = tend(k,j,i) - vkomp * & 103 111 ( u(k,j+1,i) - u(k,j,i) ) * ddy 104 112 ENDIF 105 113 ! 106 114 !-- z-direction 107 wkomp = 0.25 * ( w(k,j,i) + w(k-1,j,i) + &115 wkomp = 0.25 * ( w(k,j,i) + w(k-1,j,i) + & 108 116 w(k,j,i-1) + w(k-1,j,i-1) ) 109 117 IF ( wkomp > 0.0 ) THEN 110 tend(k,j,i) = tend(k,j,i) - wkomp * &118 tend(k,j,i) = tend(k,j,i) - wkomp * & 111 119 ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) 112 120 ELSE 113 tend(k,j,i) = tend(k,j,i) - wkomp * &121 tend(k,j,i) = tend(k,j,i) - wkomp * & 114 122 ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) 115 123 ENDIF … … 127 135 SUBROUTINE advec_u_up_ij( i, j ) 128 136 129 USE arrays_3d 130 USE control_parameters 131 USE grid_variables 132 USE indices 137 USE arrays_3d, & 138 ONLY: ddzu, tend, u, v, w 139 140 USE control_parameters, & 141 ONLY: u_gtrans, v_gtrans 142 143 USE grid_variables, & 144 ONLY: ddx, ddy 145 146 USE indices, & 147 ONLY: nzb_u_inner, nzt 148 149 USE kinds 150 133 151 134 152 IMPLICIT NONE 135 153 136 INTEGER :: i, j, k 137 138 REAL :: ukomp, vkomp, wkomp 154 INTEGER(iwp) :: i !: 155 INTEGER(iwp) :: j !: 156 INTEGER(iwp) :: k !: 157 158 REAL(wp) :: ukomp !: 159 REAL(wp) :: vkomp !: 160 REAL(wp) :: wkomp !: 139 161 140 162 … … 144 166 ukomp = u(k,j,i) - u_gtrans 145 167 IF ( ukomp > 0.0 ) THEN 146 tend(k,j,i) = tend(k,j,i) - ukomp * &168 tend(k,j,i) = tend(k,j,i) - ukomp * & 147 169 ( u(k,j,i) - u(k,j,i-1) ) * ddx 148 170 ELSE 149 tend(k,j,i) = tend(k,j,i) - ukomp * &171 tend(k,j,i) = tend(k,j,i) - ukomp * & 150 172 ( u(k,j,i+1) - u(k,j,i) ) * ddx 151 173 ENDIF 152 174 ! 153 175 !-- y-direction 154 vkomp = 0.25 * ( v(k,j,i) + v(k,j+1,i) + v(k,j,i-1) + v(k,j+1,i-1) &176 vkomp = 0.25 * ( v(k,j,i) + v(k,j+1,i) + v(k,j,i-1) + v(k,j+1,i-1) & 155 177 ) - v_gtrans 156 178 IF ( vkomp > 0.0 ) THEN 157 tend(k,j,i) = tend(k,j,i) - vkomp * &179 tend(k,j,i) = tend(k,j,i) - vkomp * & 158 180 ( u(k,j,i) - u(k,j-1,i) ) * ddy 159 181 ELSE 160 tend(k,j,i) = tend(k,j,i) - vkomp * &182 tend(k,j,i) = tend(k,j,i) - vkomp * & 161 183 ( u(k,j+1,i) - u(k,j,i) ) * ddy 162 184 ENDIF … … 165 187 wkomp = 0.25 * ( w(k,j,i) + w(k-1,j,i) + w(k,j,i-1) + w(k-1,j,i-1) ) 166 188 IF ( wkomp > 0.0 ) THEN 167 tend(k,j,i) = tend(k,j,i) - wkomp * &189 tend(k,j,i) = tend(k,j,i) - wkomp * & 168 190 ( u(k,j,i) - u(k-1,j,i) ) * ddzu(k) 169 191 ELSE 170 tend(k,j,i) = tend(k,j,i) - wkomp * &192 tend(k,j,i) = tend(k,j,i) - wkomp * & 171 193 ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) 172 194 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.