Changeset 4694 for palm/trunk/SOURCE/surface_mod.f90
- Timestamp:
- Sep 23, 2020 3:09:19 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/surface_mod.f90
r4682 r4694 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Fix reading of surface data from MPI restart file 28 ! 29 ! 4682 2020-09-17 14:13:27Z pavelkrc 27 30 ! Fix indexing of horizontal surfaces in write restart for full-3D cases 28 31 ! … … 5626 5629 DO j = nys, nyn 5627 5630 surf_match_def = surf_def_h(l)%end_index(j,i) >= surf_def_h(l)%start_index(j,i) 5631 IF ( l < 2 ) THEN 5632 surf_match_lsm = surf_lsm_h(l)%end_index(j,i) >= surf_lsm_h(l)%start_index(j,i) 5633 surf_match_usm = surf_usm_h(l)%end_index(j,i) >= surf_usm_h(l)%start_index(j,i) 5634 ELSE 5635 surf_match_lsm = .FALSE. 5636 surf_match_usm = .FALSE. 5637 ENDIF 5628 5638 IF ( surf_match_def ) THEN 5629 5639 ! … … 5640 5650 ENDDO 5641 5651 ENDIF 5652 !-- Natural- and urban-like horizontal surfaces. 5653 IF ( surf_match_lsm ) THEN 5654 mm = surf_lsm_h(l)%start_index(j,i) 5655 DO m = surf_h(l)%start_index(j,i), surf_h(l)%end_index(j,i) 5656 IF ( surf_lsm_h(l)%end_index(j,i) >= mm ) & 5657 CALL restore_surface_elements( surf_lsm_h(l), mm, surf_h(l), m ) 5658 mm = mm + 1 5659 ENDDO 5660 ENDIF 5661 IF ( surf_match_usm ) THEN 5662 mm = surf_usm_h(l)%start_index(j,i) 5663 DO m = surf_h(l)%start_index(j,i), surf_h(l)%end_index(j,i) 5664 IF ( surf_usm_h(l)%end_index(j,i) >= mm ) & 5665 CALL restore_surface_elements( surf_usm_h(l), mm, surf_h(l), m ) 5666 mm = mm + 1 5667 ENDDO 5668 ENDIF 5642 5669 ENDDO 5643 ENDDO5644 ENDDO5645 !5646 !-- Natural- and urban-like horizontal surfaces.5647 DO i = nxl, nxr5648 DO j = nys, nyn5649 surf_match_lsm = surf_lsm_h(l)%end_index(j,i) >= surf_lsm_h(l)%start_index(j,i)5650 surf_match_usm = surf_usm_h(l)%end_index(j,i) >= surf_usm_h(l)%start_index(j,i)5651 5652 IF ( surf_match_lsm ) THEN5653 mm = surf_lsm_h(l)%start_index(j,i)5654 DO m = surf_h(0)%start_index(j,i), surf_h(0)%end_index(j,i)5655 IF ( surf_lsm_h(l)%end_index(j,i) >= mm ) &5656 CALL restore_surface_elements( surf_lsm_h(l), mm, surf_h(0), m )5657 mm = mm + 15658 ENDDO5659 ENDIF5660 5661 IF ( surf_match_usm ) THEN5662 mm = surf_usm_h(l)%start_index(j,i)5663 DO m = surf_h(0)%start_index(j,i), surf_h(0)%end_index(j,i)5664 IF ( surf_usm_h(l)%end_index(j,i) >= mm ) &5665 CALL restore_surface_elements( surf_usm_h(l), mm, surf_h(0), m )5666 mm = mm + 15667 ENDDO5668 ENDIF5669 5670 ENDDO 5670 5671 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.