write_pvtu Subroutine

public subroutine write_pvtu(qunit)

Uses

  • proc~~write_pvtu~~UsesGraph proc~write_pvtu write_pvtu module~mod_calculate_xw mod_calculate_xw proc~write_pvtu->module~mod_calculate_xw module~mod_global_parameters mod_global_parameters proc~write_pvtu->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

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: qunit

Calls

proc~~write_pvtu~~CallsGraph proc~write_pvtu write_pvtu proc~getheadernames getheadernames proc~write_pvtu->proc~getheadernames proc~mpistop mpistop proc~getheadernames->proc~mpistop mpi_abort mpi_abort proc~mpistop->mpi_abort

Called by

proc~~write_pvtu~~CalledByGraph proc~write_pvtu write_pvtu proc~punstructuredvtk_mpi punstructuredvtk_mpi proc~punstructuredvtk_mpi->proc~write_pvtu proc~punstructuredvtkb_mpi punstructuredvtkB_mpi proc~punstructuredvtkb_mpi->proc~write_pvtu proc~generate_plotfile generate_plotfile proc~generate_plotfile->proc~punstructuredvtk_mpi proc~generate_plotfile->proc~punstructuredvtkb_mpi proc~main main proc~main->proc~generate_plotfile proc~timeintegration timeintegration proc~main->proc~timeintegration proc~saveamrfile saveamrfile proc~saveamrfile->proc~generate_plotfile proc~timeintegration->proc~saveamrfile program~agile agile program~agile->proc~main

Source Code

  subroutine write_pvtu(qunit)
    use mod_global_parameters
    use mod_calculate_xw

    integer, intent(in) :: qunit

    character(len=name_len)   :: wnamei(1:nw+nwauxio),&
       xandwnamei(1:ndim+nw+nwauxio),outtype
    character(len=1024) :: outfilehead
    character(len=80)   :: filename,pfilename
    integer             :: filenr,iw,ipe,iscalars
    logical             :: fileopen

    select case(convert_type)
    case('pvtumpi','pvtuBmpi')
       outtype="PPointData"
    case('pvtuCCmpi','pvtuBCCmpi')
       outtype="PCellData"
    end select
    inquire(qunit,opened=fileopen)
    if(.not.fileopen)then
       ! generate filename
       filenr=snapshotini
       if (autoconvert) filenr=snapshotnext
       write(filename,'(a,i4.4,a)') TRIM(base_filename),filenr,".pvtu"
       ! Open the file
       open(qunit,file=filename,status='unknown',form='formatted')
    end if

    call getheadernames(wnamei,xandwnamei,outfilehead)
    ! Get the default selection:
    iscalars=1
    do iw=nw,1, -1
       if (w_write(iw)) iscalars=iw
    end do
    ! generate xml header
    write(qunit,'(a)')'<?xml version="1.0"?>'
    write(qunit,'(a)',advance='no') '<VTKFile type="PUnstructuredGrid"'
    write(qunit,'(a)')' version="0.1" byte_order="LittleEndian">'
    write(qunit,'(a)')'  <PUnstructuredGrid GhostLevel="0">'
    ! Either celldata or pointdata:
    write(qunit,'(a,a,a,a,a)')'    <',TRIM(outtype),' Scalars="',&
       TRIM(wnamei(iscalars))//'">'
    do iw=1,nw
      if(.not.w_write(iw))cycle
      write(qunit,'(a,a,a)')'      <PDataArray type="Float32" Name="',&
         TRIM(wnamei(iw)),'"/>'
    end do
    do iw=nw+1,nw+nwauxio
      write(qunit,'(a,a,a)')'      <PDataArray type="Float32" Name="',&
         TRIM(wnamei(iw)),'"/>'
    end do
    write(qunit,'(a,a,a)')'    </',TRIM(outtype),'>'
    write(qunit,'(a)')'    <PPoints>'
    write(qunit,'(a)'&
       )'      <PDataArray type="Float32" NumberOfComponents="3"/>'
    write(qunit,'(a)')'    </PPoints>'

    do ipe=0,npe-1
      write(pfilename,'(a,i4.4,a,i4.4,a)') TRIM(base_filename(INDEX &
         (base_filename, '/', BACK = .TRUE.)+1:LEN(base_filename))),filenr,"p",&
         ipe,".vtu"
      write(qunit,'(a,a,a)')'    <Piece Source="',TRIM(pfilename),'"/>'
    end do
    write(qunit,'(a)')'  </PUnstructuredGrid>'
    write(qunit,'(a)')'</VTKFile>'
    close(qunit)

  end subroutine write_pvtu