Changeset 1353 for palm/trunk/SOURCE/subsidence.f90
- Timestamp:
- Apr 8, 2014 3:21:23 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/subsidence.f90
r1321 r1353 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! REAL constants provided with KIND-attribute 23 23 ! 24 24 ! Former revisions: … … 89 89 IF ( .NOT. ALLOCATED( w_subs )) THEN 90 90 ALLOCATE( w_subs(nzb:nzt+1) ) 91 w_subs = 0.0 91 w_subs = 0.0_wp 92 92 ENDIF 93 93 … … 102 102 !-- using the given gradients 103 103 i = 1 104 gradient = 0.0 105 ws_surface = 0.0 104 gradient = 0.0_wp 105 ws_surface = 0.0_wp 106 106 107 107 … … 110 110 IF ( i < 11 ) THEN 111 111 IF ( subs_vertical_gradient_level(i) < zu(k) .AND. & 112 subs_vertical_gradient_level(i) >= 0.0 ) THEN113 gradient = subs_vertical_gradient(i) / 100.0 112 subs_vertical_gradient_level(i) >= 0.0_wp ) THEN 113 gradient = subs_vertical_gradient(i) / 100.0_wp 114 114 subs_vertical_gradient_level_i(i) = k - 1 115 115 i = i + 1 116 116 ENDIF 117 117 ENDIF 118 IF ( gradient /= 0.0 ) THEN118 IF ( gradient /= 0.0_wp ) THEN 119 119 IF ( k /= 1 ) THEN 120 120 w_subs(k) = w_subs(k-1) + dzu(k) * gradient 121 121 ELSE 122 w_subs(k) = ws_surface + 0.5 * dzu(k) * gradient122 w_subs(k) = ws_surface + 0.5_wp * dzu(k) * gradient 123 123 ENDIF 124 124 ELSE … … 130 130 !-- In case of no given gradients for the subsidence/ascent velocity, 131 131 !-- choose zero gradient 132 IF ( subs_vertical_gradient_level(1) == -9999999.9 ) THEN133 subs_vertical_gradient_level(1) = 0.0 132 IF ( subs_vertical_gradient_level(1) == -9999999.9_wp ) THEN 133 subs_vertical_gradient_level(1) = 0.0_wp 134 134 ENDIF 135 135 … … 171 171 DO j = nys, nyn 172 172 DO k = nzb_s_inner(j,i)+1, nzt 173 IF ( w_subs(k) < 0.0 ) THEN ! large-scale subsidence173 IF ( w_subs(k) < 0.0_wp ) THEN ! large-scale subsidence 174 174 tendency(k,j,i) = tendency(k,j,i) - w_subs(k) * & 175 175 ( var(k+1,j,i) - var(k,j,i) ) * ddzu(k+1) … … 187 187 188 188 DO k = nzb, nzt 189 IF ( w_subs(k) < 0.0 ) THEN ! large-scale subsidence189 IF ( w_subs(k) < 0.0_wp ) THEN ! large-scale subsidence 190 190 var_mod(k) = var_init(k) - dt_3d * w_subs(k) * & 191 191 ( var_init(k+1) - var_init(k) ) * ddzu(k+1) … … 195 195 !-- At the upper boundary, the initial profile is shifted with aid of 196 196 !-- the gradient tmp_grad. (This is ok if the gradients are linear.) 197 IF ( w_subs(nzt) < 0.0 ) THEN197 IF ( w_subs(nzt) < 0.0_wp ) THEN 198 198 tmp_grad = ( var_init(nzt+1) - var_init(nzt) ) * ddzu(nzt+1) 199 199 var_mod(nzt+1) = var_init(nzt+1) - & … … 203 203 204 204 DO k = nzt+1, nzb+1, -1 205 IF ( w_subs(k) >= 0.0 ) THEN ! large-scale ascent205 IF ( w_subs(k) >= 0.0_wp ) THEN ! large-scale ascent 206 206 var_mod(k) = var_init(k) - dt_3d * w_subs(k) * & 207 207 ( var_init(k) - var_init(k-1) ) * ddzu(k) … … 213 213 214 214 215 IF ( w_subs(nzb+1) >= 0.0 ) THEN215 IF ( w_subs(nzb+1) >= 0.0_wp ) THEN 216 216 var_mod(nzb) = var_init(nzb) 217 217 ENDIF … … 253 253 !-- Influence of w_subsidence on the current tendency term 254 254 DO k = nzb_s_inner(j,i)+1, nzt 255 IF ( w_subs(k) < 0.0 ) THEN ! large-scale subsidence255 IF ( w_subs(k) < 0.0_wp ) THEN ! large-scale subsidence 256 256 tendency(k,j,i) = tendency(k,j,i) - w_subs(k) * & 257 257 ( var(k+1,j,i) - var(k,j,i) ) * ddzu(k+1) … … 269 269 270 270 DO k = nzb, nzt 271 IF ( w_subs(k) < 0.0 ) THEN ! large-scale subsidence271 IF ( w_subs(k) < 0.0_wp ) THEN ! large-scale subsidence 272 272 var_mod(k) = var_init(k) - dt_3d * w_subs(k) * & 273 273 ( var_init(k+1) - var_init(k) ) * ddzu(k+1) … … 277 277 !-- At the upper boundary, the initial profile is shifted with aid of 278 278 !-- the gradient tmp_grad. (This is ok if the gradients are linear.) 279 IF ( w_subs(nzt) < 0.0 ) THEN279 IF ( w_subs(nzt) < 0.0_wp ) THEN 280 280 tmp_grad = ( var_init(nzt+1) - var_init(nzt) ) * ddzu(nzt+1) 281 281 var_mod(nzt+1) = var_init(nzt+1) - & … … 285 285 286 286 DO k = nzt+1, nzb+1, -1 287 IF ( w_subs(k) >= 0.0 ) THEN ! large-scale ascent287 IF ( w_subs(k) >= 0.0_wp ) THEN ! large-scale ascent 288 288 var_mod(k) = var_init(k) - dt_3d * w_subs(k) * & 289 289 ( var_init(k) - var_init(k-1) ) * ddzu(k) … … 295 295 296 296 297 IF ( w_subs(nzb+1) >= 0.0 ) THEN297 IF ( w_subs(nzb+1) >= 0.0_wp ) THEN 298 298 var_mod(nzb) = var_init(nzb) 299 299 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.