Changeset 4130 for palm/trunk
- Timestamp:
- Aug 1, 2019 1:04:13 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/init_3d_model.f90
r4090 r4130 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Effectively reduce 3D initialization to 1D initial profiles. This is because 28 ! 3D initialization produces structures in the w-component that are correlated 29 ! with the processor grid for some unknown reason 30 ! 31 ! 4090 2019-07-11 15:06:47Z Giersch 27 32 ! Unused variables removed 28 33 ! … … 1191 1196 1192 1197 ! 1193 !-- Write initial profiles onto 3D arrays. Note, only in case of lod = 1, 1194 !-- for lod = 2 data is already on 3D arrays. 1198 !-- Write initial profiles onto 3D arrays. 1199 !-- Work-around, 3D initialization of u,v,w creates artificial 1200 !-- structures wich correlate with the processor grid. The reason 1201 !-- for this is still unknown. To work-around this, 3D initialization 1202 !-- will be effectively reduce to a 1D initialization where no such 1203 !-- artificial structures appear. 1195 1204 DO i = nxlg, nxrg 1196 1205 DO j = nysg, nyng 1197 IF( init_3d%lod_u == 1 ) u(:,j,i) = u_init(:) 1198 IF( init_3d%lod_v == 1 ) v(:,j,i) = v_init(:) 1199 IF( .NOT. neutral .AND. init_3d%lod_pt == 1 ) & 1206 IF( init_3d%lod_u == 1 .OR. init_3d%lod_u == 2 ) & 1207 u(:,j,i) = u_init(:) 1208 IF( init_3d%lod_v == 1 .OR. init_3d%lod_u == 2 ) & 1209 v(:,j,i) = v_init(:) 1210 IF( .NOT. neutral .AND. & 1211 ( init_3d%lod_pt == 1 .OR. init_3d%lod_pt == 2 ) ) & 1200 1212 pt(:,j,i) = pt_init(:) 1201 IF( humidity .AND. init_3d%lod_q == 1 ) q(:,j,i) = q_init(:) 1213 IF( humidity .AND. & 1214 ( init_3d%lod_q == 1 .OR. init_3d%lod_q == 2 ) ) & 1215 q(:,j,i) = q_init(:) 1202 1216 ENDDO 1203 1217 ENDDO 1204 !1205 !-- Exchange ghost points and set boundary conditions in case of1206 !-- level-of-detail = 21207 IF( init_3d%lod_u == 2 ) CALL exchange_horiz( u, nbgp )1208 IF( init_3d%lod_v == 2 ) CALL exchange_horiz( v, nbgp )1209 IF( init_3d%lod_w == 2 ) CALL exchange_horiz( w, nbgp )1210 IF( .NOT. neutral .AND. init_3d%lod_pt == 2 ) &1211 CALL exchange_horiz( pt, nbgp )1212 IF( humidity .AND. init_3d%lod_q == 2 ) &1213 CALL exchange_horiz( q, nbgp )1214 1215 IF ( bc_dirichlet_l ) THEN1216 DO j = nysg, nyng1217 DO k = nzb, nzt+11218 IF( init_3d%lod_u == 2 ) u(k,j,nxlg:nxl) = u(k,j,nxlu)1219 IF( init_3d%lod_v == 2 ) v(k,j,nxlg:nxl-1) = v(k,j,nxl)1220 IF( init_3d%lod_w == 2 ) w(k,j,nxlg:nxl-1) = w(k,j,nxl)1221 IF( .NOT. neutral .AND. init_3d%lod_pt == 2 ) &1222 pt(k,j,nxlg:nxl-1) = pt(k,j,nxl)1223 IF( humidity .AND. init_3d%lod_q == 2 ) &1224 q(k,j,nxlg:nxl-1) = q(k,j,nxl)1225 ENDDO1226 ENDDO1227 ENDIF1228 IF ( bc_dirichlet_r ) THEN1229 DO j = nysg, nyng1230 DO k = nzb, nzt+11231 IF( init_3d%lod_u == 2 ) u(k,j,nxr+1:nxrg) = u(k,j,nxr)1232 IF( init_3d%lod_v == 2 ) v(k,j,nxr+1:nxrg) = v(k,j,nxr)1233 IF( init_3d%lod_w == 2 ) w(k,j,nxr+1:nxrg) = w(k,j,nxr)1234 IF( .NOT. neutral .AND. init_3d%lod_pt == 2 ) &1235 pt(k,j,nxr+1:nxrg) = pt(k,j,nxr)1236 IF( humidity .AND. init_3d%lod_q == 2 ) &1237 q(k,j,nxr+1:nxrg) = q(k,j,nxr)1238 ENDDO1239 ENDDO1240 ENDIF1241 IF ( bc_dirichlet_s ) THEN1242 DO i = nxlg, nxrg1243 DO k = nzb, nzt+11244 IF( init_3d%lod_u == 2 ) u(k,nysg:nys-1,i) = u(k,nys,i)1245 IF( init_3d%lod_v == 2 ) v(k,nysg:nys,i) = v(k,nysv,i)1246 IF( init_3d%lod_w == 2 ) w(k,nysg:nys-1,i) = w(k,nys,i)1247 IF( .NOT. neutral .AND. init_3d%lod_pt == 2 ) &1248 pt(k,nysg:nys-1,i) = pt(k,nys,i)1249 IF( humidity .AND. init_3d%lod_q == 2 ) &1250 q(k,nysg:nys-1,i) = q(k,nys,i)1251 ENDDO1252 ENDDO1253 ENDIF1254 IF ( bc_dirichlet_n ) THEN1255 DO i = nxlg, nxrg1256 DO k = nzb, nzt+11257 IF( init_3d%lod_u == 2 ) u(k,nyn+1:nyng,i) = u(k,nyn,i)1258 IF( init_3d%lod_v == 2 ) v(k,nyn+1:nyng,i) = v(k,nyn,i)1259 IF( init_3d%lod_w == 2 ) w(k,nyn+1:nyng,i) = w(k,nyn,i)1260 IF( .NOT. neutral .AND. init_3d%lod_pt == 2 ) &1261 pt(k,nyn+1:nyng,i) = pt(k,nyn,i)1262 IF( humidity .AND. init_3d%lod_q == 2 ) &1263 q(k,nyn+1:nyng,i) = q(k,nyn,i)1264 ENDDO1265 ENDDO1266 ENDIF1267 1218 ! 1268 1219 !-- Set geostrophic wind components.
Note: See TracChangeset
for help on using the changeset viewer.