Fortran Coder

查看: 6297|回复: 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


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

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2014-5-5 13:03:09 来自移动端 | 只看该作者
关于排序,本站有很多现成程序代码可以使用的

17

帖子

5

主题

0

精华

入门

F 币
86 元
贡献
52 点
板凳
 楼主| 发表于 2014-5-5 15:28:28 | 只看该作者
vvt 发表于 2014-5-5 13:03
关于排序,本站有很多现成程序代码可以使用的

谢谢你的回答,我也是参考来的

136

帖子

3

主题

0

精华

版主

F 币
1964 元
贡献
1677 点

帅哥勋章管理勋章爱心勋章新人勋章热心勋章元老勋章

地板
发表于 2014-5-5 21:47:50 | 只看该作者

66

帖子

5

主题

2

精华

版主

院士级水师

F 币
481 元
贡献
273 点

管理勋章帅哥勋章爱心勋章规矩勋章

QQ
5#
发表于 2014-6-9 22:13:24 | 只看该作者
围观大神恢复,顺便学点经验
科研穷三代,读博毁一生
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-27 02:23

Powered by Tencent X3.4

© 2013-2024 Tencent

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