coupler Module

Interfaces

public interface CPL_send

  • private subroutine CPL_send_3d(temp, icmin_send, icmax_send, jcmin_send, jcmax_send, kcmin_send, kcmax_send, send_flag)

    Arguments

    Type IntentOptional AttributesName
    real(kind=kind(0.d0)), intent(in), dimension(:,:,:):: temp
    integer, intent(in), optional :: icmin_send
    integer, intent(in), optional :: icmax_send
    integer, intent(in), optional :: jcmin_send
    integer, intent(in), optional :: jcmax_send
    integer, intent(in), optional :: kcmin_send
    integer, intent(in), optional :: kcmax_send
    logical, intent(out), optional :: send_flag

    Description

    CPL_send_data wrapper for 3d arrays see CPL_send_xd for input description @see coupler#subroutine_CPL_send_xd

  • private subroutine CPL_send_4d(asend, icmin_send, icmax_send, jcmin_send, jcmax_send, kcmin_send, kcmax_send, send_flag)

    Arguments

    Type IntentOptional AttributesName
    real(kind=kind(0.d0)), intent(in), dimension(:,:,:,:):: asend
    integer, intent(in), optional :: icmin_send
    integer, intent(in), optional :: icmax_send
    integer, intent(in), optional :: jcmin_send
    integer, intent(in), optional :: jcmax_send
    integer, intent(in), optional :: kcmin_send
    integer, intent(in), optional :: kcmax_send
    logical, intent(out), optional :: send_flag

    Description

    CPL_send_data wrapper for 4d arrays see CPL_send_xd for input description @see coupler#subroutine_CPL_send_xd

public interface CPL_recv

  • private subroutine CPL_recv_3d(temp, icmin_recv, icmax_recv, jcmin_recv, jcmax_recv, kcmin_recv, kcmax_recv, recv_flag)

    Arguments

    Type IntentOptional AttributesName
    real(kind=kind(0.d0)), intent(inout), dimension(:,:,:):: temp
    integer, intent(in), optional :: icmin_recv
    integer, intent(in), optional :: icmax_recv
    integer, intent(in), optional :: jcmin_recv
    integer, intent(in), optional :: jcmax_recv
    integer, intent(in), optional :: kcmin_recv
    integer, intent(in), optional :: kcmax_recv
    logical, intent(out), optional :: recv_flag

    Description

    CPL_recv_xd wrapper for 3d arrays see CPL_recv_xd for input description @see coupler#subroutine_CPL_recv_xd

  • private subroutine CPL_recv_4d(arecv, icmin_recv, icmax_recv, jcmin_recv, jcmax_recv, kcmin_recv, kcmax_recv, recv_flag)

    Arguments

    Type IntentOptional AttributesName
    real(kind=kind(0.d0)), intent(out), dimension(:,:,:,:):: arecv
    integer, intent(in), optional :: icmin_recv
    integer, intent(in), optional :: icmax_recv
    integer, intent(in), optional :: jcmin_recv
    integer, intent(in), optional :: jcmax_recv
    integer, intent(in), optional :: kcmin_recv
    integer, intent(in), optional :: kcmax_recv
    logical, intent(out), optional :: recv_flag

    Description

    CPL_recv_xd wrapper for 4d arrays See CPL_recv_xd for input description @see coupler#subroutine_CPL_recv_xd


Functions

public function CPL_overlap()

Arguments

None

Return Value logical

Description

Check if current processor is in the overlap region

public function CPL_comm_style()

Arguments

None

Return Value integer

Description

public function CPL_realm()

Arguments

None

Return Value integer

Description

public function globalise(r)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in) :: r(3)

Return Value real(kind=kind(0.d0)) (3)

Description

Get molecule's global position from position local to processor.

public function localise(r)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in) :: r(3)

Return Value real(kind=kind(0.d0)) (3)

Description

Get local position on processor from molecule's global position.

public function map_md2cfd_global(r)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in) :: r(3)

Return Value real(kind=kind(0.d0)) (3)

Description

Map global MD position to global CFD coordinate frame

public function map_cfd2md_global(r)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in) :: r(3)

Return Value real(kind=kind(0.d0)) (3)

Description

Map global CFD position in global MD coordinate frame

public function coupler_md_get_save_period()

Arguments

None

Return Value integer

Description

public function coupler_md_get_average_period()

Arguments

None

Return Value integer

Description

Arguments

None

Return Value integer

Description

public function coupler_md_get_nsteps()

Arguments

None

Return Value integer

Description

public function coupler_md_get_dt_cfd()

Arguments

None

Return Value real(kind=kind(0.d0))

Description


Subroutines

public subroutine CPL_gather(gatherarray, npercell, limits, recvarray)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in), dimension(:,:,:,:):: gatherarray
integer, intent(in) :: npercell
integer, intent(in) :: limits(6)
real(kind=kind(0.d0)), intent(inout), dimension(:,:,:,:):: recvarray

Description

Perform gather operation on CPL_OLAP_COMM communicator. The CFD processor is the root process. The gathered data is effectively "slotted" into the correct part of the recvarray, and is intented for use in providing the CFD simulation boundary conditions with data obtained from the MD simulation.

public subroutine CPL_scatter(scatterarray, npercell, limits, recvarray)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in), dimension(:,:,:,:):: scatterarray
integer, intent(in) :: npercell
integer, intent(in) :: limits(6)
real(kind=kind(0.d0)), intent(inout), dimension(:,:,:,:):: recvarray

Description

Scatter cell-wise data from CFD processor to corresponding MD processors on the overlap communicator CPL_OLAP_COMM.

public subroutine CPL_pack(unpacked, packed, realm, icmax_pack, icmin_pack, jcmax_pack, jcmin_pack, kcmax_pack, kcmin_pack)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(in), dimension(:,:,:,:):: unpacked
real(kind=kind(0.d0)), intent(out), dimension(:), allocatable:: packed
integer, intent(in) :: realm
integer, intent(in), optional :: icmax_pack
integer, intent(in), optional :: icmin_pack
integer, intent(in), optional :: jcmax_pack
integer, intent(in), optional :: jcmin_pack
integer, intent(in), optional :: kcmax_pack
integer, intent(in), optional :: kcmin_pack

Description

public subroutine CPL_unpack(packed, unpacked, realm)

Arguments

Type IntentOptional AttributesName
real(kind=kind(0.d0)), intent(inout), dimension(:), allocatable:: packed
real(kind=kind(0.d0)), intent(out), dimension(:,:,:,:), allocatable:: unpacked
integer, intent(in) :: realm

Description

public subroutine CPL_proc_extents(coord, realm, extents, ncells)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: coord(3)
integer, intent(in) :: realm
integer, intent(out) :: extents(6)
integer, intent(out), optional :: ncells

Description

Gets maximum and minimum cells for processor coordinates

public subroutine CPL_olap_extents(coord, realm, extents, ncells)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: coord(3)
integer, intent(in) :: realm
integer, intent(out) :: extents(6)
integer, intent(out), optional :: ncells

Description

Get maximum and minimum cells for current communicator within the overlapping region only

public subroutine CPL_proc_portion(coord, realm, limits, portion, ncells)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: coord(3)
integer, intent(in) :: realm
integer, intent(in) :: limits(6)
integer, intent(out) :: portion(6)
integer, intent(out), optional :: ncells

Description

Get maximum and minimum cell indices, i.e. the 'portion', of the input cell extents 'limits' that is contributed by the current overlapping processor.

public subroutine CPL_Cart_coords(COMM, rank, realm, maxdims, coords, ierr)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: COMM
integer, intent(in) :: rank
integer, intent(in) :: realm
integer, intent(in) :: maxdims
integer, intent(out) :: coords(maxdims)
integer, intent(out) :: ierr

Description

Determines process coords in appropriate realm's cartesian topology given a rank in any communicator

public subroutine CPL_get_rank(COMM, rank)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: COMM
integer, intent(out) :: rank

Description

Return rank of current processor in specified COMM

public subroutine CPL_get(icmax_olap, icmin_olap, jcmax_olap, jcmin_olap, kcmax_olap, kcmin_olap, density_cfd, density_md, dt_cfd, dt_MD, dx, dy, dz, ncx, ncy, ncz, xg, yg, zg, xL_md, xL_cfd, yL_md, yL_cfd, zL_md, zL_cfd, constraint_algo, constraint_CVflag, constraint_OT, constraint_NCER, constraint_Flekkoy, constraint_off, constraint_CV, icmin_cnst, icmax_cnst, jcmin_cnst, jcmax_cnst, kcmin_cnst, kcmax_cnst, md_cfd_match_cellsize, staggered_averages, cpl_cfd_bc_slice, cpl_md_bc_slice, cpl_cfd_bc_x, cpl_cfd_bc_y, cpl_cfd_bc_z, timestep_ratio, comm_style)

Arguments

Type IntentOptional AttributesName
integer, intent(out), optional :: icmax_olap
integer, intent(out), optional :: icmin_olap
integer, intent(out), optional :: jcmax_olap
integer, intent(out), optional :: jcmin_olap
integer, intent(out), optional :: kcmax_olap
integer, intent(out), optional :: kcmin_olap
real(kind=kind(0.d0)), intent(out), optional :: density_cfd
real(kind=kind(0.d0)), intent(out), optional :: density_md
real(kind=kind(0.d0)), intent(out), optional :: dt_cfd
real(kind=kind(0.d0)), intent(out), optional :: dt_MD
real(kind=kind(0.d0)), intent(out), optional :: dx
real(kind=kind(0.d0)), intent(out), optional :: dy
real(kind=kind(0.d0)), intent(out), optional :: dz
integer, intent(out), optional :: ncx
integer, intent(out), optional :: ncy
integer, intent(out), optional :: ncz
real(kind=kind(0.d0)), intent(out), optional dimension(:,:), allocatable:: xg
real(kind=kind(0.d0)), intent(out), optional dimension(:,:), allocatable:: yg
real(kind=kind(0.d0)), intent(out), optional dimension(:), allocatable:: zg
real(kind=kind(0.d0)), intent(out), optional :: xL_md
real(kind=kind(0.d0)), intent(out), optional :: xL_cfd
real(kind=kind(0.d0)), intent(out), optional :: yL_md
real(kind=kind(0.d0)), intent(out), optional :: yL_cfd
real(kind=kind(0.d0)), intent(out), optional :: zL_md
real(kind=kind(0.d0)), intent(out), optional :: zL_cfd
integer, intent(out), optional :: constraint_algo
integer, intent(out), optional :: constraint_CVflag
integer, intent(out), optional :: constraint_OT
integer, intent(out), optional :: constraint_NCER
integer, intent(out), optional :: constraint_Flekkoy
integer, intent(out), optional :: constraint_off
integer, intent(out), optional :: constraint_CV
integer, intent(out), optional :: icmin_cnst
integer, intent(out), optional :: icmax_cnst
integer, intent(out), optional :: jcmin_cnst
integer, intent(out), optional :: jcmax_cnst
integer, intent(out), optional :: kcmin_cnst
integer, intent(out), optional :: kcmax_cnst
integer, intent(out), optional :: md_cfd_match_cellsize
logical, intent(out), optional dimension(3):: staggered_averages
integer, intent(out), optional :: cpl_cfd_bc_slice
integer, intent(out), optional :: cpl_md_bc_slice
integer, intent(out), optional :: cpl_cfd_bc_x
integer, intent(out), optional :: cpl_cfd_bc_y
integer, intent(out), optional :: cpl_cfd_bc_z
integer, intent(out), optional :: timestep_ratio
integer, intent(out), optional :: comm_style

Description

Wrapper to retrieve (read only) parameters from the coupler_module Note - this ensures all variable in the coupler are protected from corruption by either CFD or MD codes


© 2015 Fortran Program was written by Edward Smith David Trevelyan.
Documentation generated by FORD.