Fortran Coder

查看: 6308|回复: 4
打印 上一主题 下一主题

[通用算法] 排序

[复制链接]

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
跳转到指定楼层
楼主
发表于 2014-5-5 11:32:26 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我想把输出的数据进行排序,当Zr=2,4,6,8,10时所对应的ref的最小值,以及所对应的daltf的值显示出来,求指导,谢谢,底下是我自己编的一个排序的子程序,可以运行,但是不能输出!

program tu11
implicit none
real*8 A,B,C,D,Z0,Zi
real*8 E,H,ref
real*8 A2,A3,A4,As,Al,A1
real,parameter::pi=3.14159
character(len=80)::filename="data.txt"
integer,parameter::fileid=10
real*8::Zr=0.0
integer k
real*8::daltf=0.0
integer i
integer,parameter::n=int(0.35/0.0001)
common /group1/Zi
common /group2/Z0
!!!!!!!!!
Z0=50.0
Zi=-3.0
!Zr=2.0
!!!!!!!!
open(10,file="data.txt")
do i=1,n
   daltf=daltf+0.0001
  do k=1,5
    Zr=Zr+2.0
call Get_ref(daltf,A1,A2,A3,A4,Zr,E,H,ref)
write(*,"('Zr:'F8.5,'ref:'F8.5,'daltf:'F8.5)")Zr, ref,daltf

  call selection_sort(ref,k,n)
write(*,"('Zr:'F8.5,'ref:'F8.5,'daltf:'F8.5)")Zr, ref,daltf
write(10,"('Zr:'F8.5,'ref:'F8.5,'daltf:'F8.5)")Zr,ref,daltf
end do
close(fileid)
stop
end
!!!paixu
subroutine selection_sort(ref,n)
implicit none
integer n
real*8 ref(n)
integer m,l
real*8 min
real*8 temp
do m=1,n
min=ref(m)
do l=m+1,n
   if(min>ref(l)) then
    temp=ref(l)
        ref(m)=temp
        min=ref(m)
        end if
end do
end do

return
end


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
沙发
 楼主| 发表于 2014-5-5 15:28:28 | 显示全部楼层
vvt 发表于 2014-5-5 13:03
关于排序,本站有很多现成程序代码可以使用的

谢谢你的回答,我也是参考来的
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-7 23:55

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表