Changeset 4694
- Timestamp:
- Sep 23, 2020 3:09:19 PM (4 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/land_surface_model_mod.f90
r4671 r4694 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Fix reading of surface data from MPI restart file 28 ! 29 ! 4671 2020-09-09 20:27:58Z pavelkrc 27 30 ! Implementation of downward facing USM and LSM surfaces for RTM 4.1 28 31 ! Author: J. Resler (Institute of Computer Science, Prague) … … 7611 7614 INTEGER(iwp) :: l !< running index surface orientation 7612 7615 7613 INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) :: end_index7616 !INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) :: end_index 7614 7617 INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) :: global_start 7615 INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) :: start_index7618 !INTEGER(iwp), DIMENSION(nys:nyn,nxl:nxr) :: start_index 7616 7619 7617 7620 LOGICAL :: array_found … … 7690 7693 global_start ) 7691 7694 7695 IF ( MAXVAL( surf_lsm_h(l)%end_index ) <= 0 ) CYCLE 7696 7692 7697 CALL rrd_mpi_io_surface( 't_soil_h(' // dum // ')', t_soil_h(l)%var_2d ) 7693 7698 CALL rrd_mpi_io_surface( 'm_soil_h(' // dum // ')', m_soil_h(l)%var_2d ) … … 7705 7710 !kk Has to be discussed with the developpers 7706 7711 7707 CALL rrd_mpi_io( 'lsm_start_index_v_' // dum, s tart_index )7708 CALL rrd_mpi_io( 'lsm_end_index_v_' // dum, end_index )7712 CALL rrd_mpi_io( 'lsm_start_index_v_' // dum, surf_lsm_v(l)%start_index ) 7713 CALL rrd_mpi_io( 'lsm_end_index_v_' // dum, surf_lsm_v(l)%end_index ) 7709 7714 CALL rrd_mpi_io( 'lsm_global_start_index_v_' // dum , global_start ) 7710 7715 7711 CALL rd_mpi_io_surface_filetypes( s tart_index,end_index, ldum, global_start )7712 7713 IF ( MAXVAL( end_index ) <= 0 ) CYCLE7716 CALL rd_mpi_io_surface_filetypes( surf_lsm_v(l)%start_index, surf_lsm_v(l)%end_index, ldum, global_start ) 7717 7718 IF ( MAXVAL( surf_lsm_v(l)%end_index ) <= 0 ) CYCLE 7714 7719 7715 7720 CALL rrd_mpi_io_surface( 't_soil_v(' // dum // ')', t_soil_v(l)%var_2d ) -
palm/trunk/SOURCE/radiation_model_mod.f90
r4686 r4694 28 28 ! ----------------- 29 29 ! $Id$ 30 ! Bugfix for tracing of maximum radiative fluxes 31 ! 32 ! 4686 2020-09-18 11:59:57Z pavelkrc 30 33 ! Silence compiler warning about unused variable in serial build 31 34 ! … … 6421 6424 CALL radiation_print_debug_surf( 'surfinl after reflected pass', surfinl, refstep ) 6422 6425 CALL radiation_print_debug_surf( 'surfins after reflected pass', surfins, refstep ) 6423 CALL radiation_print_debug_pcb( 'pcbinlw after reflected pass', pcbinlw, refstep ) 6424 CALL radiation_print_debug_pcb( 'pcbinsw after reflected pass', pcbinsw, refstep ) 6426 IF ( npcbl > 0 ) THEN 6427 CALL radiation_print_debug_pcb( 'pcbinlw after reflected pass', pcbinlw, refstep ) 6428 CALL radiation_print_debug_pcb( 'pcbinsw after reflected pass', pcbinsw, refstep ) 6429 ENDIF 6425 6430 ENDIF 6426 6431 -
palm/trunk/SOURCE/restart_data_mpi_io_mod.f90
r4629 r4694 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Fix name of subroutine in message 28 ! 29 ! 4629 2020-07-29 09:37:56Z raasch 27 30 ! support for MPI Fortran77 interface (mpif.h) removed 28 31 ! … … 3136 3139 3137 3140 message_string = 'surface array "' // TRIM( name ) // '" not found in restart file' 3138 CALL message( 'rrd_mpi_io_ global_array_int_1d', 'PA0722', 3, 2, 0, 6, 0 )3141 CALL message( 'rrd_mpi_io_surface', 'PA0722', 3, 2, 0, 6, 0 ) 3139 3142 3140 3143 ENDIF -
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 -
palm/trunk/SOURCE/urban_surface_mod.f90
r4693 r4694 27 27 ! ----------------- 28 28 ! $Id$ 29 ! Fix writing and reading of surface data to/from MPI restart file 30 ! 31 ! 4693 2020-09-22 19:47:04Z maronga 29 32 ! Bugfix for last commit 30 33 ! … … 6498 6501 global_start ) 6499 6502 6503 IF ( MAXVAL( surf_usm_h(l)%end_index ) <= 0 ) CYCLE 6504 6500 6505 IF ( .NOT. ALLOCATED( t_surf_wall_h_1(l)%val ) ) & 6501 6506 ALLOCATE( t_surf_wall_h_1(l)%val(1:surf_usm_h(l)%ns) ) … … 6510 6515 CALL rrd_mpi_io_surface( 't_surf_green_h(' // dum // ')', t_surf_green_h_1(l)%val ) 6511 6516 6517 IF ( .NOT. ALLOCATED( m_liq_usm_h_1(l)%val ) ) & 6518 ALLOCATE( m_liq_usm_h_1(l)%val(1:surf_usm_h(l)%ns) ) 6519 CALL rrd_mpi_io_surface( 'm_liq_usm_h(' // dum // ')', m_liq_usm_h_1(l)%val ) 6520 6521 IF ( indoor_model ) THEN 6522 IF ( .NOT. ALLOCATED( surf_usm_h(l)%waste_heat ) ) & 6523 ALLOCATE( surf_usm_h(l)%waste_heat(1:surf_usm_h(l)%ns) ) 6524 CALL rrd_mpi_io_surface( 'waste_heat_h(' // dum // ')', surf_usm_h(l)%waste_heat ) 6525 ENDIF 6526 6512 6527 ENDDO 6513 6528 DO l = 0, 3 … … 6522 6537 global_start ) 6523 6538 6539 IF ( MAXVAL( surf_usm_v(l)%end_index ) <= 0 ) CYCLE 6540 6524 6541 IF ( .NOT. ALLOCATED( t_surf_wall_v_1(l)%val ) ) & 6525 6542 ALLOCATE( t_surf_wall_v_1(l)%val(1:surf_usm_v(l)%ns) ) … … 6547 6564 global_start ) 6548 6565 6566 IF ( MAXVAL( surf_usm_h(l)%end_index ) <= 0 ) CYCLE 6567 6549 6568 IF ( .NOT. ALLOCATED( t_wall_h_1(l)%val ) ) & 6550 6569 ALLOCATE( t_wall_h_1(l)%val(nzb_wall:nzt_wall+1,1:surf_usm_h(l)%ns) ) … … 6558 6577 ALLOCATE( t_green_h_1(l)%val(nzb_wall:nzt_wall+1,1:surf_usm_h(l)%ns) ) 6559 6578 CALL rrd_mpi_io_surface( 't_green_h(' // dum // ')', t_green_h_1(l)%val ) 6579 6560 6580 ENDDO 6561 6581 … … 6570 6590 CALL rd_mpi_io_surface_filetypes( surf_usm_v(l)%start_index, surf_usm_v(l)%end_index, ldum, & 6571 6591 global_start ) 6592 6593 IF ( MAXVAL( surf_usm_v(l)%end_index ) <= 0 ) CYCLE 6572 6594 6573 6595 IF ( .NOT. ALLOCATED( t_wall_v_1(l)%val ) ) & … … 7392 7414 WRITE( dum, '(I1)') l 7393 7415 7394 END DO7395 7416 CALL rd_mpi_io_surface_filetypes( surf_usm_h(l)%start_index, surf_usm_h(l)%end_index, & 7396 7417 surface_data_to_write, global_start_index ) … … 7400 7421 CALL wrd_mpi_io( 'usm_global_start_h_' // dum, global_start_index ) 7401 7422 7402 CALL wrd_mpi_io_surface( 't_surf_wall_h_' // dum, t_surf_wall_h(l)%val ) 7403 CALL wrd_mpi_io_surface( 't_surf_window_h_' // dum, t_surf_window_h(l)%val ) 7404 CALL wrd_mpi_io_surface( 't_surf_green_h_' // dum, t_surf_green_h(l)%val ) 7405 7406 CALL wrd_mpi_io_surface( 'm_liq_usm_h_' // dum, m_liq_usm_h(l)%val ) 7423 IF ( .NOT. surface_data_to_write ) CYCLE 7424 7425 CALL wrd_mpi_io_surface( 't_surf_wall_h(' // dum // ')', t_surf_wall_h(l)%val ) 7426 CALL wrd_mpi_io_surface( 't_surf_window_h(' // dum // ')', t_surf_window_h(l)%val ) 7427 CALL wrd_mpi_io_surface( 't_surf_green_h(' // dum // ')', t_surf_green_h(l)%val ) 7428 7429 CALL wrd_mpi_io_surface( 'm_liq_usm_h(' // dum // ')', m_liq_usm_h(l)%val ) 7407 7430 IF ( indoor_model ) THEN 7408 CALL wrd_mpi_io_surface( 'waste_heat_h_' // dum, surf_usm_h(l)%waste_heat ) ! NEED TO BE CHECKED!!!!! 7409 ENDIF 7431 CALL wrd_mpi_io_surface( 'waste_heat_h(' // dum // ')', surf_usm_h(l)%waste_heat ) ! NEED TO BE CHECKED!!!!! 7432 ENDIF 7433 7434 ENDDO 7410 7435 7411 7436 DO l = 0, 3 … … 7439 7464 CALL wrd_mpi_io( 'usm_global_start_h_2_' // dum, global_start_index ) 7440 7465 7441 CALL wrd_mpi_io_surface( 't_wall_h_' // dum, t_wall_h(l)%val ) 7442 CALL wrd_mpi_io_surface( 't_window_h_' // dum, t_window_h(l)%val ) 7443 CALL wrd_mpi_io_surface( 't_green_h_' // dum, t_green_h(l)%val ) 7466 IF ( .NOT. surface_data_to_write ) CYCLE 7467 7468 CALL wrd_mpi_io_surface( 't_wall_h(' // dum // ')', t_wall_h(l)%val ) 7469 CALL wrd_mpi_io_surface( 't_window_h(' // dum // ')', t_window_h(l)%val ) 7470 CALL wrd_mpi_io_surface( 't_green_h(' // dum // ')', t_green_h(l)%val ) 7444 7471 7445 7472 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.