注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

AlexYoung

做好大家都必须要做的事,发展自己感兴趣的事,结束圣人所不齿的事...

 
 
 

日志

 
 

MPI发送&接收的子例行程序@[CVF6.6.0+MPICH_NT_1.2.5]  

2012-08-30 21:30:21|  分类: CVF6.6.0+MPICH_N |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

注意

      1. 0进程将一个数据发送给1号进程,1号进程接收从0进程发送的数据;

      2. 子例行子程序中,也要加头文件包含。

源程序

program main
  implicit none
  include 'mpif90.h'
  integer::myid, ierr,status(MPI_STATUS_SIZE)
  real(kind=8)::i, j
  i = 3.14159
  j = 4.22222
  call mpi_init(ierr)
  call mpi_comm_rank(MPI_COMM_WORLD,myid,ierr)
  if(myid.eq.0) then
    call MySend(i)
  else
    call MyRecv(j)
  endif
  print *,'i,j:',i,j, 'of process',myid
  call MPI_finalize(ierr)
end

subroutine MySend(ii)
  implicit none
  include 'mpif90.h'
  integer::ierr
  real(kind=8)::ii
  call MPI_Send(ii,1,MPI_DOUBLE_PRECISION,1,99,MPI_COMM_WORLD,ierr)
  print *,'sending',ii
end

subroutine MyRecv(jj)
  implicit none
  include 'mpif90.h'
  integer::ierr, status(MPI_STATUS_SIZE)
  real(kind=8)::jj
  jj = 3.3333333
  call MPI_Recv(jj,1,MPI_DOUBLE_PRECISION,0,99,MPI_COMM_WORLD,status,ierr)
  print*,'receiving',jj
end

 

运行结果

 sending   3.14159011840820
 i,j:   3.14159011840820        4.22221994400024      of process           0
 receiving   3.14159011840820
 i,j:   3.14159011840820        3.14159011840820      of process           1

 

讨论

      子程序参数的传递应该可以更清晰了,这种情况下参数是可以改变值的。但是如果在子程序中加入intent属性则可以很方便地分辨出是输入参数还是输出参数。

  评论这张
 
阅读(225)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017