Ignore:
Timestamp:
Sep 23, 2020 3:09:19 PM (4 years ago)
Author:
pavelkrc
Message:

Fix writing and reading of surface data to/from MPI restart file + small fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/urban_surface_mod.f90

    r4693 r4694  
    2727! -----------------
    2828! $Id$
     29! Fix writing and reading of surface data to/from MPI restart file
     30!
     31! 4693 2020-09-22 19:47:04Z maronga
    2932! Bugfix for last commit
    3033!
     
    64986501                                         global_start )
    64996502
     6503       IF ( MAXVAL( surf_usm_h(l)%end_index ) <= 0 )  CYCLE
     6504
    65006505       IF ( .NOT.  ALLOCATED( t_surf_wall_h_1(l)%val ) )                                             &
    65016506          ALLOCATE( t_surf_wall_h_1(l)%val(1:surf_usm_h(l)%ns) )
     
    65106515       CALL rrd_mpi_io_surface( 't_surf_green_h(' // dum // ')', t_surf_green_h_1(l)%val )
    65116516
     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
    65126527    ENDDO
    65136528    DO  l = 0, 3
     
    65226537                                         global_start )
    65236538
     6539       IF ( MAXVAL( surf_usm_v(l)%end_index ) <= 0 )  CYCLE
     6540
    65246541       IF ( .NOT.  ALLOCATED( t_surf_wall_v_1(l)%val ) )                                             &
    65256542          ALLOCATE( t_surf_wall_v_1(l)%val(1:surf_usm_v(l)%ns) )
     
    65476564                                         global_start )
    65486565
     6566       IF ( MAXVAL( surf_usm_h(l)%end_index ) <= 0 )  CYCLE
     6567
    65496568       IF ( .NOT.  ALLOCATED( t_wall_h_1(l)%val ) )                                                          &
    65506569          ALLOCATE( t_wall_h_1(l)%val(nzb_wall:nzt_wall+1,1:surf_usm_h(l)%ns) )
     
    65586577          ALLOCATE( t_green_h_1(l)%val(nzb_wall:nzt_wall+1,1:surf_usm_h(l)%ns) )
    65596578       CALL rrd_mpi_io_surface( 't_green_h(' // dum // ')', t_green_h_1(l)%val )
     6579
    65606580    ENDDO
    65616581
     
    65706590       CALL rd_mpi_io_surface_filetypes( surf_usm_v(l)%start_index, surf_usm_v(l)%end_index, ldum, &
    65716591                                         global_start )
     6592
     6593       IF ( MAXVAL( surf_usm_v(l)%end_index ) <= 0 )  CYCLE
    65726594
    65736595       IF ( .NOT. ALLOCATED( t_wall_v_1(l)%val ) )                                                   &
     
    73927414          WRITE( dum, '(I1)')  l
    73937415
    7394           END DO
    73957416          CALL rd_mpi_io_surface_filetypes( surf_usm_h(l)%start_index, surf_usm_h(l)%end_index,             &
    73967417                                            surface_data_to_write, global_start_index )
     
    74007421          CALL wrd_mpi_io( 'usm_global_start_h_' // dum, global_start_index )
    74017422
    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 )
    74077430          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
    74107435
    74117436       DO  l = 0, 3
     
    74397464          CALL wrd_mpi_io( 'usm_global_start_h_2_' // dum, global_start_index )
    74407465
    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 )
    74447471
    74457472       ENDDO
Note: See TracChangeset for help on using the changeset viewer.