最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How do I integrate a C code into a fortran code? - Stack Overflow

programmeradmin2浏览0评论

Does anyone know how I can integrate this into a fortran code? Quite confusing really and I dont even know where to get started. Let us say this program is the template and I would like the C code here to do everything it does:

PROGRAM hello_world_mpi
use, intrinsic :: iso_fortran_env
use mpi
implicit none
integer process_Rank, size_Of_Cluster, ierror, tag, Nx, Ny, Nz, Ngl
real(kind=real64), allocatable, dimension(:) :: array_x, array_y, array_z
real(kind=real64), allocatable, dimension(:,:,:) :: ALPHA, BETA, GAMMA

INTEGER, DIMENSION(3) :: NumProcArr, myCOORDS
LOGICAL, DIMENSION(3) :: PeriodicArr
INTEGER :: MaxDims, CommCart, reorder, myCartRank
INTEGER :: myWest, myEast, mySouth, myNorth, myBack, myFront
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size_Of_Cluster, ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD, process_Rank, ierror)
NumProcArr=(/1,2,2/);
PeriodicArr=(/.false.,.false.,.false./)
reorder=1;
MaxDims=3
print *, 'Hello World from process: ', process_Rank, 'of ', size_Of_Cluster
!! do cartesian mapping
call MPI_Cart_create(MPI_COMM_WORLD, MAXDIMS, NumProcArr,PeriodicArr, reorder, CommCart, ierror)
call MPI_Comm_rank(CommCart,myCartRank ,ierror);
call MPI_Cart_coords(CommCart, myCartRank, MAXDIMS, myCOORDS, ierror);
WRITE(*,*) "I am MPI Process" , myCartRank," out of ", size_Of_Cluster,", and I am located at",myCOORDS
CALL MPI_CART_SHIFT(CommCart, 0, 1, myWest, myEast, ierror)
CALL MPI_CART_SHIFT(CommCart, 1, 1, mySouth, myNorth, ierror)
CALL MPI_CART_SHIFT(CommCart, 2, 1, myBack, myFront, ierror)
CALL MPI_Barrier(CommCart,ierror)
call MPI_FINALIZE(ierror)
END PROGRAM

In this program I would like to use

  • MPIX_Nodecart_create - Like MPI_Cart_create
  • MPIX_Nodecart_shift - Like MPI_Cart_shift
  • MPIX_Nodecart_coords - Like MPI_Cart_coords
  • MPIX_Nodecart_get - Like MPI_Cart_get
  • MPIX_Nodecart_rank - Like MPI_Cart_rank
  • MPIX_Nodecart_dim_get - Like MPI_Cartdim_get
  • MPIX_Nodecart_sub - Like MPI_Cart_sub instead. How do I get started on this?
发布评论

评论列表(0)

  1. 暂无评论