qmxf03.F90

Path: Qmxlib/qmxf03.F90
Last Update: Wed Jan 18 16:14:50 +0900 2012
iso_c_binding qmxf03_module dot/f_7.png

This file provides the following module.

Required files

Methods

Included Modules

iso_C_binding

Public Instance methods

Subroutine :
size :integer(C_INT), value
sdat(size) :character(C_CHAR)

[Source]

  subroutine f_qmx_allgather_char(size, sdat, rdat) bind(C,name='qmx_allgather_char')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    character(C_CHAR)     :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_FLOAT)

[Source]

  subroutine f_qmx_allgather_cmplx(size, sdat, rdat) bind(C,name='qmx_allgather_cmplx')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_FLOAT)      :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_DOUBLE)

[Source]

  subroutine f_qmx_allgather_dcmplx(size, sdat, rdat) bind(C,name='qmx_allgather_dcmplx')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_DOUBLE)     :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_DOUBLE)

[Source]

  subroutine f_qmx_allgather_double(size, sdat, rdat) bind(C,name='qmx_allgather_double')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_DOUBLE)        :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_FLOAT)

[Source]

  subroutine f_qmx_allgather_float(size, sdat, rdat) bind(C,name='qmx_allgather_float')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_FLOAT)         :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :integer(C_INT)

[Source]

  subroutine f_qmx_allgather_int(size, sdat, rdat) bind(C,name='qmx_allgather_int')
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    integer(C_INT)        :: sdat(size)
    TYPE(C_PTR),    value :: rdat
  end subroutine
Main Program :

[Source]

end interface

contains

subroutine qmx_allgather_int(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  integer(C_INT),         intent(in)    :: sdat(size)
  integer(C_INT), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_int(size, sdat, rdat_ptr)
  return
end subroutine

subroutine qmx_allgather_char(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  character(C_CHAR),         intent(in)    :: sdat(size)
  character(C_CHAR), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_char(size, sdat, rdat_ptr)
  return
end subroutine

subroutine qmx_allgather_float(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  real(C_FLOAT),         intent(in)    :: sdat(size)
  real(C_FLOAT), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_float(size, sdat, rdat_ptr)
  return
end subroutine

subroutine qmx_allgather_double(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  real(C_DOUBLE),         intent(in)    :: sdat(size)
  real(C_DOUBLE), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_double(size, sdat, rdat_ptr)
  return
end subroutine

subroutine qmx_allgather_cmplx(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  complex(C_FLOAT),         intent(in)    :: sdat(size)
  complex(C_FLOAT), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_cmplx(size, sdat, rdat_ptr)
  return
end subroutine

subroutine qmx_allgather_dcmplx(size, sdat, rdat)
  implicit none
  integer, intent(in) :: size
  complex(C_DOUBLE),         intent(in)    :: sdat(size)
  complex(C_DOUBLE), target, intent(inout) :: rdat(size,0:qmx_get_rank_size()-1)
  type(C_PTR) :: rdat_ptr
  rdat_ptr = C_LOC(rdat)
  call f_qmx_allgather_dcmplx(size, sdat, rdat_ptr)
  return
end subroutine

end module
Subroutine :

[Source]

  subroutine qmx_barrier() bind(C)
    use iso_C_binding
    implicit none
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :character(C_CHAR)

[Source]

  subroutine qmx_bcast_char(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    character(C_CHAR)     :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_FLOAT)

[Source]

  subroutine qmx_bcast_cmplx(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_FLOAT)      :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_DOUBLE)

[Source]

  subroutine qmx_bcast_dcmplx(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_DOUBLE)     :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_DOUBLE)

[Source]

  subroutine qmx_bcast_double(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_DOUBLE)        :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_FLOAT)

[Source]

  subroutine qmx_bcast_float(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_FLOAT)         :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :integer(C_INT)

[Source]

  subroutine qmx_bcast_int(size, sdat, rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    integer(C_INT)        :: sdat(size)
    integer(C_INT), value :: rank
  end subroutine
Subroutine :

[Source]

  subroutine qmx_finalize() bind(C)
    use iso_C_binding
    implicit none
  end subroutine
Function :
qmx_get_1d_next_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_1d_next_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_1d_prev_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_1d_prev_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_local_rank_x :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_local_rank_x() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_local_rank_y :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_local_rank_y() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_next_x_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_next_x_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_next_y_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_next_y_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_prev_x_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_prev_x_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_2d_prev_y_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_2d_prev_y_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Function :
qmx_get_local_rank :integer(C_INT)

[Source]

  integer(C_INT) function qmx_get_local_rank() bind(C)
    use iso_C_binding
    implicit none
  end function
Subroutine :

[Source]

  subroutine qmx_init() bind(C)
    use iso_C_binding
    implicit none
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :character(C_CHAR)
to_rank :integer(C_INT), value
rdat(size) :character(C_CHAR)

[Source]

  subroutine qmx_sendrecv_char(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    character(C_CHAR)     :: sdat(size)
    integer(C_INT), value :: to_rank
    character(C_CHAR)     :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_FLOAT)
to_rank :integer(C_INT), value
rdat(size) :complex(C_FLOAT)

[Source]

  subroutine qmx_sendrecv_cmplx(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_FLOAT)      :: sdat(size)
    integer(C_INT), value :: to_rank
    complex(C_FLOAT)      :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :complex(C_DOUBLE)
to_rank :integer(C_INT), value
rdat(size) :complex(C_DOUBLE)

[Source]

  subroutine qmx_sendrecv_dcmplx(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_DOUBLE)     :: sdat(size)
    integer(C_INT), value :: to_rank
    complex(C_DOUBLE)     :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_DOUBLE)
to_rank :integer(C_INT), value
rdat(size) :real(C_DOUBLE)

[Source]

  subroutine qmx_sendrecv_double(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_DOUBLE)        :: sdat(size)
    integer(C_INT), value :: to_rank
    real(C_DOUBLE)        :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :real(C_FLOAT)
to_rank :integer(C_INT), value
rdat(size) :real(C_FLOAT)

[Source]

  subroutine qmx_sendrecv_float(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_FLOAT)         :: sdat(size)
    integer(C_INT), value :: to_rank
    real(C_FLOAT)         :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value
sdat(size) :integer(C_INT)
to_rank :integer(C_INT), value
rdat(size) :integer(C_INT)

[Source]

  subroutine qmx_sendrecv_int(size, sdat, to_rank, rdat, from_rank) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    integer(C_INT)        :: sdat(size)
    integer(C_INT), value :: to_rank
    integer(C_INT)        :: rdat(size)
    integer(C_INT), value :: from_rank
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_char(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    character(C_CHAR)     :: sdat(size)
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_cmplx(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_FLOAT)       :: sdat(size)
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_dcmplx(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    complex(C_DOUBLE)     :: sdat(size)
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_double(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_DOUBLE)        :: sdat(size)
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_float(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    real(C_FLOAT)         :: sdat(size)
  end subroutine
Subroutine :
size :integer(C_INT), value

[Source]

  subroutine qmx_sumcast_int(size, sdat) bind(C)
    use iso_C_binding
    implicit none
    integer(C_INT), value :: size
    integer(C_INT)        :: sdat(size)
  end subroutine