Output Subroutine

subroutine Output(is_final)

Uses

  • proc~~output~~UsesGraph proc~output Output module~basicmod basicmod proc~output->module~basicmod module~config config proc~output->module~config module~mpiiomod mpiiomod proc~output->module~mpiiomod module~mpimod mpimod proc~output->module~mpimod module~basicmod->module~config module~mpiiomod->module~basicmod module~mpimod->module~config mpi mpi module~mpimod->mpi

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: is_final

Calls

proc~~output~~CallsGraph proc~output Output asc_write asc_write proc~output->asc_write proc~mpi_io_pack MPI_IO_Pack proc~output->proc~mpi_io_pack proc~mpi_io_write MPI_IO_Write proc~output->proc~mpi_io_write proc~writexdmf WriteXDMF proc~output->proc~writexdmf makedirs makedirs proc~mpi_io_pack->makedirs mpi_comm_split mpi_comm_split proc~mpi_io_write->mpi_comm_split mpi_file_close mpi_file_close proc~mpi_io_write->mpi_file_close mpi_file_open mpi_file_open proc~mpi_io_write->mpi_file_open mpi_file_set_view mpi_file_set_view proc~mpi_io_write->mpi_file_set_view mpi_file_write_all mpi_file_write_all proc~mpi_io_write->mpi_file_write_all mpi_type_commit mpi_type_commit proc~mpi_io_write->mpi_type_commit mpi_type_create_subarray mpi_type_create_subarray proc~mpi_io_write->mpi_type_create_subarray

Source Code

subroutine Output(is_final)
  use mpimod
  use basicmod
  use mpiiomod
  use config, only: asciiout
  implicit none

  logical, intent(in):: is_final

  real(8),save:: tout
  data tout / 0.0d0 /
  integer,save:: nout
  data nout / 1 /
  
  logical, save:: is_inited
  data is_inited /.false./

  if(time .lt. tout+dtout .and. .not. is_final) return

!$acc update host (d,v1,v2,v3)
!$acc update host (p,ei,cs)
!$acc update host (b1,b2,b3,bp)
!$acc update host (gp)
!$acc update host (Xcomp)

  call MPI_IO_Pack(nout)
  call MPI_IO_Write(nout)
  if(myid_w==0) call WriteXDMF(time,nout)
  
  if(asciiout) then
     call ASC_WRITE(nout)
  endif
  
  if(myid_w==0) print *, "output:",nout,time
          
  nout=nout+1
  tout=time
  
  return
  !         write(6,*) "bpf2",nflux2(mbps,i,j,k)
end subroutine Output