write_vti Subroutine

public subroutine write_vti(qunit, ixImin1, ixImin2, ixImin3, ixImax1, ixImax2, ixImax3, ixCmin1, ixCmin2, ixCmin3, ixCmax1, ixCmax2, ixCmax3, ixCCmin1, ixCCmin2, ixCCmin3, ixCCmax1, ixCCmax2, ixCCmax3, ig1, ig2, ig3, nx1, nx2, nx3, normconv, wnamei, wC, wCC)

Uses

  • proc~~write_vti~~UsesGraph proc~write_vti write_vti module~mod_global_parameters mod_global_parameters proc~write_vti->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
integer, intent(in) :: ixImin1
integer, intent(in) :: ixImin2
integer, intent(in) :: ixImin3
integer, intent(in) :: ixImax1
integer, intent(in) :: ixImax2
integer, intent(in) :: ixImax3
integer, intent(in) :: ixCmin1
integer, intent(in) :: ixCmin2
integer, intent(in) :: ixCmin3
integer, intent(in) :: ixCmax1
integer, intent(in) :: ixCmax2
integer, intent(in) :: ixCmax3
integer, intent(in) :: ixCCmin1
integer, intent(in) :: ixCCmin2
integer, intent(in) :: ixCCmin3
integer, intent(in) :: ixCCmax1
integer, intent(in) :: ixCCmax2
integer, intent(in) :: ixCCmax3
integer, intent(in) :: ig1
integer, intent(in) :: ig2
integer, intent(in) :: ig3
integer, intent(in) :: nx1
integer, intent(in) :: nx2
integer, intent(in) :: nx3
double precision, intent(in) :: normconv(0:nw+nwauxio)
character(len=name_len), intent(in) :: wnamei(1:nw+nwauxio)
double precision, dimension(ixMlo1-1:ixMhi1,ixMlo2-1:ixMhi2, ixMlo3-1:ixMhi3,nw+nwauxio) :: wC
double precision, dimension(ixMlo1:ixMhi1,ixMlo2:ixMhi2,ixMlo3:ixMhi3, nw+nwauxio) :: wCC

Called by

proc~~write_vti~~CalledByGraph proc~write_vti write_vti proc~imagedatavtk_mpi ImageDataVtk_mpi proc~imagedatavtk_mpi->proc~write_vti proc~generate_plotfile generate_plotfile proc~generate_plotfile->proc~imagedatavtk_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_vti(qunit,ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,&
     ixCmin1,ixCmin2,ixCmin3,ixCmax1,ixCmax2,ixCmax3,ixCCmin1,ixCCmin2,&
     ixCCmin3,ixCCmax1,ixCCmax2,ixCCmax3,ig1,ig2,ig3,nx1,nx2,nx3,normconv,&
     wnamei,wC,wCC)
    use mod_global_parameters

    integer, intent(in) :: qunit
    integer, intent(in) :: ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,&
       ixCmin1,ixCmin2,ixCmin3,ixCmax1,ixCmax2,ixCmax3,ixCCmin1,ixCCmin2,&
       ixCCmin3,ixCCmax1,ixCCmax2,ixCCmax3
    integer, intent(in) :: ig1,ig2,ig3,nx1,nx2,nx3
    double precision, intent(in) :: normconv(0:nw+nwauxio)
    character(len=name_len), intent(in)::  wnamei(1:nw+nwauxio)
    double precision, dimension(ixMlo1-1:ixMhi1,ixMlo2-1:ixMhi2,&
       ixMlo3-1:ixMhi3,nw+nwauxio)   :: wC
    double precision, dimension(ixMlo1:ixMhi1,ixMlo2:ixMhi2,ixMlo3:ixMhi3,&
       nw+nwauxio)     :: wCC

    integer :: iw,ix1,ix2,ix3
    integer :: extent(1:6)

    extent = 0
     extent(1*2-1) = (ig1-1) * nx1;  extent(2*2-1) = (ig2-1) * nx2
     extent(3*2-1) = (ig3-1) * nx3;
     extent(1*2)   = (ig1)   * nx1;  extent(2*2)   = (ig2)   * nx2
     extent(3*2)   = (ig3)   * nx3;

    select case(convert_type)
      case('vtimpi','pvtimpi')
        ! we write out every grid as one VTK PIECE
        write(qunit,'(a,6(i10),a)') '<Piece Extent="',extent,'">'
        write(qunit,'(a)')'<PointData>'
        do iw=1,nw+nwauxio
          if(iw<=nw) then
             if(.not.w_write(iw)) cycle
          end if
          write(qunit,'(a,a,a)')'<DataArray type="Float64" Name="',&
             TRIM(wnamei(iw)),'" format="ascii">'
          write(qunit,'(200(1pe20.12))') (((wC(ix1,ix2,ix3,iw)*normconv(iw),&
             ix1=ixCmin1,ixCmax1),ix2=ixCmin2,ixCmax2),ix3=ixCmin3,ixCmax3)
          write(qunit,'(a)')'</DataArray>'
        end do
        write(qunit,'(a)')'</PointData>'
      case('vtiCCmpi','pvtiCCmpi')
        ! we write out every grid as one VTK PIECE
        write(qunit,'(a,6(i10),a)') '<Piece Extent="',extent,'">'
        write(qunit,'(a)')'<CellData>'
        do iw=1,nw+nwauxio
          if(iw<=nw) then
            if(.not.w_write(iw)) cycle
          end if
          write(qunit,'(a,a,a)')'<DataArray type="Float64" Name="',&
             TRIM(wnamei(iw)),'" format="ascii">'
          write(qunit,'(200(1pe20.12))') (((wCC(ix1,ix2,ix3,iw)*normconv(iw),&
             ix1=ixCCmin1,ixCCmax1),ix2=ixCCmin2,ixCCmax2),ix3=ixCCmin3,&
             ixCCmax3)
          write(qunit,'(a)')'</DataArray>'
        end do
        write(qunit,'(a)')'</CellData>'
    end select

    write(qunit,'(a)')'</Piece>'

  end subroutine write_vti