青衣巷 发表于 2022-4-14 17:10 懂了,谢谢指教 |
Rookie 发表于 2022-4-14 16:50 没关系的,Fortran不区分单双引号。 只要间隔开就行了。 比如你用 " 开头,里面就要用 ',例如 "I ' m fcode" 而用 ' 开头,里面就要用 " ,例如 ' I "m fcode ' |
li913 发表于 2017-4-8 18:23 请问第19和28行的 write语句括号中的 format 部分,所用的单引号、双引号,刚好反过来了。这是什么原因呢? |
fcode 发表于 2017-4-10 17:20 按照上面的代码复制了,但是因为原文件有些数据是空缺的,生成的文件空缺的地方自动补充了,请问您有什么解决办法嘛~ [Fortran] 查看源码 复制源码 program wheat_area
implicit none
integer m,i
integer,allocatable::alloc_key(:)
real,allocatable::whea(:), whea_h(:),whea_l(:)
real,allocatable::whea_i(:),whea_s(:)
open(10,file="/home/iga_qtong/fortran_xcao/gae_c/spam_p.csv")
open(11,file="/home/iga_qtong/fortran_xcao/gae_c/whout.csv")
m=792305
allocate(alloc_key(m),whea(m),whea_h(m))
allocate(whea_l(m),whea_i(m),whea_s(m))
do i=1,1
read(10,*)
end do
do i=1,m
read(10,*)
write(11,*) (alloc_key(i),whea(i),whea_h(i),whea_l(i),&
whea_i(i),whea_s(i))
end do
close(10)
close(11)
end program wheat_area |
山水 发表于 2017-10-7 11:06 请放弃 PowerStation 这种古老的编译器。 |
|
[Fortran] 查看源码 复制源码 program test
implicit none
integer,parameter::nCol = 949
integer i, j
character(10000) str(nCol)
character(*),parameter:: strHead(9)=['date','hour','type','1142A','1143A','1144A','1145A', '1146A','1147A']
logical L(nCol)
open(10,file='E:\shuju\zhandian\20140513-20141231\china_sites_20141201.csv')
open(11,file='E:\shuju\china_sites_20141201.csv')
!读取表头
read(10,*) str
!判断需要读取的列
L = .false.
do i = 1,nCol
str(i) = adjustl( str(i) )
if( any(trim(str(i))==strHead) ) then
L(i) = .true.
write(11,"(a,',')",advance='no') trim( str(i) ) !输出新表头
end if
end do
write(11,*)
do
read(10,*,iostat=j) str
if(j/=0) exit
do i =1, nCol
if(.NOT.L(i)) cycle
write(11,'(a,",")',advance='no') trim( str(i) )
end do
write(11,*)
end do
end program test我复制粘贴后按照自己需要的修改了一下,不管是定义1个变量还是3个甚至更多变量,都会出现这样一个错误:error FOR3852: syntax error detected between = and ['Province'],想问一下是什么原因呢 ![]() |
pasuka 发表于 2017-4-10 22:11 谢谢,非常感谢 |
| 太长了可以续行 |
桂圆莲子汤 发表于 2017-4-10 21:51 *.f格式最大列数不超过80,把文件后缀名改成*.f90 活学活用,急用先学并不代表本站的视频教程和彭国伦的书无关紧要啊 |
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2025-12-16 04:00