create_output_file Subroutine

public subroutine create_output_file(fh, ix, extension, suffix)

Uses

  • proc~~create_output_file~~UsesGraph proc~create_output_file create_output_file module~mod_comm_lib mod_comm_lib proc~create_output_file->module~mod_comm_lib module~mod_global_parameters mod_global_parameters proc~create_output_file->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Standard method for creating a new output file

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: fh

File handle

integer, intent(in) :: ix

Index of file

character(len=*), intent(in) :: extension

Extension of file

character(len=*), intent(in), optional :: suffix

Optional suffix


Calls

proc~~create_output_file~~CallsGraph proc~create_output_file create_output_file mpi_file_open mpi_file_open proc~create_output_file->mpi_file_open proc~mpistop mpistop proc~create_output_file->proc~mpistop mpi_abort mpi_abort proc~mpistop->mpi_abort

Called by

proc~~create_output_file~~CalledByGraph proc~create_output_file create_output_file proc~convert_dat_generic convert_dat_generic proc~convert_dat_generic->proc~create_output_file proc~write_snapshot write_snapshot proc~write_snapshot->proc~create_output_file proc~convert_all convert_all proc~convert_all->proc~convert_dat_generic proc~saveamrfile saveamrfile proc~saveamrfile->proc~write_snapshot proc~timeintegration timeintegration proc~timeintegration->proc~saveamrfile proc~main main proc~main->proc~timeintegration program~agile agile program~agile->proc~main

Source Code

  subroutine create_output_file(fh, ix, extension, suffix)
    use mod_global_parameters
    use mod_comm_lib, only: mpistop
    integer, intent(out)         :: fh
    !< File handle
    integer, intent(in)          :: ix
    !< Index of file
    character(len=*), intent(in) :: extension
    !< Extension of file
    character(len=*), intent(in), optional :: suffix
    !< Optional suffix
    character(len=std_len)       :: filename
    integer :: amode

    if (ix >= 10000) then
      call mpistop("Number of output files is limited to 10000 (0...9999)")
    end if

    if (present(suffix)) then
       write(filename,"(a,a,i4.4,a)") trim(base_filename), trim(suffix), ix,&
           extension
    else
       write(filename,"(a,i4.4,a)") trim(base_filename), ix, extension
    end if

    ! MPI cannot easily replace existing files
    open(unit=unitsnapshot,file=filename,status='replace')
    close(unitsnapshot, status='delete')

    amode = ior(MPI_MODE_CREATE, MPI_MODE_WRONLY)
    call MPI_FILE_OPEN(MPI_COMM_SELF,filename,amode, MPI_INFO_NULL, fh,&
        ierrmpi)

    if (ierrmpi /= 0) then
      print *, "Error, cannot create file ", trim(filename)
      call mpistop("Fatal error")
    end if

  end subroutine create_output_file