Ignore:
Timestamp:
Apr 13, 2020 8:11:20 PM (4 years ago)
Author:
raasch
Message:

restart data handling with MPI-IO added, first part

File:
1 edited

Legend:

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

    r4444 r4495  
    2525! -----------------
    2626! $Id$
     27! restart data handling with MPI-IO added
     28!
     29! 4444 2020-03-05 15:59:50Z raasch
    2730! bugfix: cpp-directives for serial mode added
    2831!
     
    108111   USE control_parameters,                                                     &
    109112       ONLY:  coupling_char, data_output_during_spinup, end_time,              &
    110               message_string, run_description_header, simulated_time_at_begin, &
     113              message_string, restart_data_format_output, run_description_header, simulated_time_at_begin, &
    111114              spinup_time, surface_output
    112115
     
    130133
    131134   USE pegrid
     135
     136   USE restart_data_mpi_io_mod,                                                                    &
     137       ONLY:  rrd_mpi_io, wrd_mpi_io
    132138
    133139   USE surface_mod,                                                            &
     
    237243
    238244   INTERFACE  surface_data_output_rrd_global
    239       MODULE PROCEDURE surface_data_output_rrd_global
     245      MODULE PROCEDURE surface_data_output_rrd_global_ftn
     246      MODULE PROCEDURE surface_data_output_rrd_global_mpi
    240247   END INTERFACE  surface_data_output_rrd_global
    241248
     
    45074514    END SUBROUTINE surface_data_output_last_action
    45084515
     4516
    45094517!------------------------------------------------------------------------------!
    45104518! Description:
    45114519! ------------
    4512 !> This routine reads globally used restart data.
     4520!> Read module-specific global restart data (Fortran binary format).
    45134521!------------------------------------------------------------------------------!
    4514     SUBROUTINE surface_data_output_rrd_global( found )
     4522    SUBROUTINE surface_data_output_rrd_global_ftn( found )
    45154523
    45164524
     
    45364544
    45374545
    4538     END SUBROUTINE surface_data_output_rrd_global
     4546    END SUBROUTINE surface_data_output_rrd_global_ftn
     4547
     4548
     4549!------------------------------------------------------------------------------!
     4550! Description:
     4551! ------------
     4552!> Read module-specific global restart data (MPI-IO).
     4553!------------------------------------------------------------------------------!
     4554    SUBROUTINE surface_data_output_rrd_global_mpi
     4555
     4556       CALL rrd_mpi_io( 'average_count_surf', average_count_surf )
     4557
     4558    END SUBROUTINE surface_data_output_rrd_global_mpi
     4559
    45394560
    45404561!------------------------------------------------------------------------------!
     
    45814602       IMPLICIT NONE
    45824603
    4583        CALL wrd_write_string( 'average_count_surf' )
    4584        WRITE ( 14 )  average_count_surf
     4604       IF ( TRIM( restart_data_format_output ) == 'fortran_binary' )  THEN
     4605
     4606          CALL wrd_write_string( 'average_count_surf' )
     4607          WRITE ( 14 )  average_count_surf
     4608
     4609       ELSEIF ( TRIM( restart_data_format_output ) == 'mpi' )  THEN
     4610
     4611         CALL wrd_mpi_io( 'average_count_surf', average_count_surf )
     4612
     4613       ENDIF
    45854614
    45864615    END SUBROUTINE surface_data_output_wrd_global
     
    45954624       IMPLICIT NONE
    45964625
    4597          IF ( ALLOCATED( surfaces%var_av ) )  THEN
    4598             CALL wrd_write_string( 'surfaces%var_av' )
    4599             WRITE ( 14 )  surfaces%var_av
    4600          ENDIF
    4601 
     4626       IF ( TRIM( restart_data_format_output ) == 'fortran_binary' )  THEN
     4627
     4628          IF ( ALLOCATED( surfaces%var_av ) )  THEN
     4629             CALL wrd_write_string( 'surfaces%var_av' )
     4630             WRITE ( 14 )  surfaces%var_av
     4631          ENDIF
     4632
     4633       ELSEIF ( TRIM( restart_data_format_output ) == 'mpi' )  THEN
     4634
     4635          IF ( ALLOCATED( surfaces%var_av ) )  CALL wrd_mpi_io( 'surfaces%var_av', surfaces%var_av )
     4636
     4637       ENDIF
    46024638
    46034639    END SUBROUTINE surface_data_output_wrd_local
Note: See TracChangeset for help on using the changeset viewer.