Changeset 1320 for palm/trunk/SOURCE/advec_v_up.f90
- Timestamp:
- Mar 20, 2014 8:40:49 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/advec_v_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 ! j loop is starting from nysv (needed for non-cyclic boundary conditions)33 !34 ! 75 2007-03-22 09:54:05Z raasch35 ! vynp eliminated36 !37 ! RCS Log replace by Id keyword, revision history cleaned up38 !39 ! Revision 1.12 2006/02/23 09:46:37 raasch40 ! nzb_2d replaced by nzb_v_inner41 35 ! 42 36 ! Revision 1.1 1997/08/29 08:56:05 raasch … … 67 61 SUBROUTINE advec_v_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: nxl, nxr, nyn, nysv, nzb_v_inner, nzt 74 75 USE kinds 76 73 77 74 78 IMPLICIT NONE 75 79 76 INTEGER :: i, j, k 77 REAL :: ukomp, vkomp, wkomp 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 !: 78 87 79 88 … … 83 92 ! 84 93 !-- x-direction 85 ukomp = 0.25 * ( u(k,j,i) + u(k,j-1,i) + &94 ukomp = 0.25 * ( u(k,j,i) + u(k,j-1,i) + & 86 95 u(k,j,i+1) + u(k,j-1,i+1) ) - u_gtrans 87 96 IF ( ukomp > 0.0 ) THEN 88 tend(k,j,i) = tend(k,j,i) - ukomp * &97 tend(k,j,i) = tend(k,j,i) - ukomp * & 89 98 ( v(k,j,i) - v(k,j,i-1) ) * ddx 90 99 ELSE 91 tend(k,j,i) = tend(k,j,i) - ukomp * &100 tend(k,j,i) = tend(k,j,i) - ukomp * & 92 101 ( v(k,j,i+1) - v(k,j,i) ) * ddx 93 102 ENDIF … … 96 105 vkomp = v(k,j,i) - v_gtrans 97 106 IF ( vkomp > 0.0 ) THEN 98 tend(k,j,i) = tend(k,j,i) - vkomp * &107 tend(k,j,i) = tend(k,j,i) - vkomp * & 99 108 ( v(k,j,i) - v(k,j-1,i) ) * ddy 100 109 ELSE 101 tend(k,j,i) = tend(k,j,i) - vkomp * &110 tend(k,j,i) = tend(k,j,i) - vkomp * & 102 111 ( v(k,j+1,i) - v(k,j,i) ) * ddy 103 112 ENDIF 104 113 ! 105 114 !-- z-direction 106 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) + & 107 116 w(k,j-1,i) + w(k-1,j-1,i) ) 108 117 IF ( wkomp > 0.0 ) THEN 109 tend(k,j,i) = tend(k,j,i) - wkomp * &118 tend(k,j,i) = tend(k,j,i) - wkomp * & 110 119 ( v(k,j,i) - v(k-1,j,i) ) * ddzu(k) 111 120 ELSE 112 tend(k,j,i) = tend(k,j,i) - wkomp * &121 tend(k,j,i) = tend(k,j,i) - wkomp * & 113 122 ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1) 114 123 ENDIF … … 126 135 SUBROUTINE advec_v_up_ij( i, j ) 127 136 128 USE arrays_3d 129 USE control_parameters 130 USE grid_variables 131 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_v_inner, nzt 148 149 USE kinds 150 132 151 133 152 IMPLICIT NONE 134 153 135 INTEGER :: i, j, k 136 137 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 !: 138 161 139 162 … … 141 164 ! 142 165 !-- x-direction 143 ukomp = 0.25 * ( u(k,j,i) + u(k,j-1,i) + u(k,j,i+1) + u(k,j-1,i+1) &166 ukomp = 0.25 * ( u(k,j,i) + u(k,j-1,i) + u(k,j,i+1) + u(k,j-1,i+1) & 144 167 ) - u_gtrans 145 168 IF ( ukomp > 0.0 ) THEN 146 tend(k,j,i) = tend(k,j,i) - ukomp * &169 tend(k,j,i) = tend(k,j,i) - ukomp * & 147 170 ( v(k,j,i) - v(k,j,i-1) ) * ddx 148 171 ELSE 149 tend(k,j,i) = tend(k,j,i) - ukomp * &172 tend(k,j,i) = tend(k,j,i) - ukomp * & 150 173 ( v(k,j,i+1) - v(k,j,i) ) * ddx 151 174 ENDIF … … 154 177 vkomp = v(k,j,i) - v_gtrans 155 178 IF ( vkomp > 0.0 ) THEN 156 tend(k,j,i) = tend(k,j,i) - vkomp * &179 tend(k,j,i) = tend(k,j,i) - vkomp * & 157 180 ( v(k,j,i) - v(k,j-1,i) ) * ddy 158 181 ELSE 159 tend(k,j,i) = tend(k,j,i) - vkomp * &182 tend(k,j,i) = tend(k,j,i) - vkomp * & 160 183 ( v(k,j+1,i) - v(k,j,i) ) * ddy 161 184 ENDIF … … 164 187 wkomp = 0.25 * ( w(k,j,i) + w(k-1,j,i) + w(k,j-1,i) + w(k-1,j-1,i) ) 165 188 IF ( wkomp > 0.0 ) THEN 166 tend(k,j,i) = tend(k,j,i) - wkomp * &189 tend(k,j,i) = tend(k,j,i) - wkomp * & 167 190 ( v(k,j,i) - v(k-1,j,i) ) * ddzu(k) 168 191 ELSE 169 tend(k,j,i) = tend(k,j,i) - wkomp * &192 tend(k,j,i) = tend(k,j,i) - wkomp * & 170 193 ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1) 171 194 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.