
if(temple0001) exit
写成一行
或者
if(temple0001) then
exit
end if
如果 0001 后面还有1个点,请删除
子程序和主程序写在同一个文件里就可以了。
如果分开写,那么分别编译,然后一起链接。代码上不需要任何改动。跟同一个文件一模一样。
至于如何建立工程,这是 *** 作的问题。
Fortran 是一门语言,本身没有任何 *** 作问题。
全球支持Fortran语言的编译器有数十种,不同的编译器又使用若干种不同的编译环境。
例如 Compaq Visual Fortran,Intel Fortran 分别使用 VC6 和 VS 作为编译环境。Ftn95有自己的集成环境,叫Plato。甚至一些开源的,开放的编译环境经过配置,都可以使用Fortran的各种编译器。
这些 *** 作方法问题,也因为不同的编译环境而不同。
你的问题,就好像问:“英语如何查短句” 一样。英语本身是语言,不存在 *** 作问题。
如果你要问,也应该类似这样问:“金山词霸如何查短句”??
类似的,你的问题,也应该是类似:“Compaq Visual Fortran 怎么建立工程” 或者其他编译器如何如何。
program dataread
implicit none
integer::I,J,K
integer::Mx1,Mx2,N1,N2
character(len=20)::file1,file2,file3
character ans
real,dimension(:),allocatable::data1,data2
file1="1txt"
file2="2txt"
file3="3txt"
open(11,file= trim(file1),status="old",err=998)
open(12,file= trim(file2),status="old",err=998)
open(13,file= trim(file3))
Mx1=0
N1=0
do
read(11,,end=22)I
write(,)"1",I
if (Mx1<I) Mx1=I
N1=N1+1
enddo
22 Mx2=0
N2=0
do
read(12,,end=23)I
write(,)"2",I
if (Mx2<I) Mx2=I
N2=N2+1
enddo
if(N1neN2) then
write(,)"Data Numbers in two files are not the same, do you still wanna continue(Y/N)"
read(,)ans
if(anseq"N") stop " Sorry, merge data can not be finished"
endif
23 allocate(data1(N1),data2(N2))
rewind 11
rewind 12
do I=1,min(N1,N2)
read(11,)J,data1(I)
read(12,)K,data2(I)
if(JneK) then
write(,) "Warning, numbers are not the same in two files"
endif
write(13,"(2F103)")data1(I),data2(I)
enddo
goto 999
998 stop "File can not be found!"
999 stop "Normal End"
end
由于不是很了解数据到底是什么样的,所以在写程序的时候并没有前面编号不一致的情况,但是扩展性还是留下了,那个Mx1和Mx2目的就是为了防止楼主万一要拓展,要求用编号控制对应的数字或者编号不是按照对应顺序的。反正这个代码是基本能实现楼主的要求了。如果1和2文件中的数字个数不一致的话,程序会提醒并询问是否继续,要是继续的话就按照个数最小的那个文件个数来排序。
FORTRAN语言程序设计
(一)FORTRAN程序的结构、书写规则
1。FORTRAN程序的构成(主程序和子程序)。
2。FORTRAN源程序的书写格式。
(二)、数据类型及其运算
1。常量和变量的类型(整型、实型、双精度型、复型、逻辑型、字符型)
2。定义变量类型的方法(用I——N规则隐式说明和显示说明)。
3。符号常量及其定义方法(PARAMETER语句)。
4。运算符及运算优先级。
5。表达式(算术表达式、关系表达式、逻辑表达式和字符表达式)及其求值规则。不同类型数据的混合运算。
(三)最基本的语句
1。赋值语句(算术、逻辑和字符型赋值语句)。
2。表控格式的输入和输出。
3。格式输入与输出。
(1)格式编辑符(X、H、I、F、E、D、A、L、/),格式的重复作用。
(2)格式语句与输入输出语句(包括READ,WRITE语句)的相互作用。
(3)在输入输出语句中包括含格式说明的方法。
4。暂停语句(STOP)语句,停语句(END语句)。
5。赋初值语句(DATA语句)。
6。转移语句(GOTO语句)。
(四)选择结构程序设计
1。逻辑IF语句。
2。块IF结构。
3。选择结构的嵌套。
(五)循环结构程序设计
1。当型循环与直到型循环。
2。用DO语句实现循环:
(1)用DO语句时循环次数的计算。
(2)循环体的概念。
(3)循环终端语句和CONTINUE语句。
3。用块IF和GOTO语句实现循环。
4。循环的嵌套。
(六)数组的应用
1。定义数组的方法(用DIMENSION语句和类型语句定义一维或多维数组)。
2。数组元素的正确引用。
3。数组在内存中存储顺序(按列存储)。
4。对数组赋初值的方法。
5。数组的输入与输出。
6。可调数组。
(七)函数和子程序
1。内部函数的调用方法。
2。语句函数的定义及引用方法。
3。函数子程序(FUNCTION子程序)的结构及调用方法。
4。子例行程序(SUBROUTINE子程序)的结构及调用方法。
5。模块间的数据传递(虚实结合)。
(八)数据联系
1。公用语句(COMMON语句),无名公用区和有名公用区。
2。数据块子程序。
(九)字符处理
1。字符串、字符型变量和字符型数组。
2。字符型数据的赋值和运算。
3。字符型数据的输入与输出。
(十)文件
1。文件与记录的概念。
2。文件的打开与关闭。
3。顺序文件的存取方法。
4。直接文件的存取方法。
程序:
program fangbianpao
implicit none
real:: t1=4,t2=5,t3=6,t4=7
real, parameter:: n=10
real:: i,j
real:: counter=0
real:: T_1(n),T_2(n),T_3(n),T_4(n),T(4n)
do i=1,n
T_1(i)=t1(i-1)
T_2(i)=t2(i-1)
T_3(i)=t3(i-1)
T_4(i)=t4(i-1)
enddo
T=[T_1,T_2,T_3,T_4]
do i=0,63
do j=1,size(T)
if (i==T(j)) then
counter=counter+1
write(,) '第',counter,'次响声:',T(j)
exit
endif
enddo
enddo
write(,) counter
end program fangbianpao
以上就是关于fortran程序全部的内容,包括:fortran程序、fortran怎么编写包含子程序的主程序子程序和主程序是两个独立的文件,这该怎么编写怎么建立工程、求用fortran语言帮我编个小程序:程序实现将第1,2文档的第二列数据读入,然后将其整理为两列输出如3所示等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)