回 帖 发 新 帖 刷新版面

主题:数组输出格式问题,请指点下,谢谢!

大家好!
    有个双精度型数组,我希望在输出的时候,每行输出16个,请问应该怎么做,我弄了好久,好像还是有问题,请指点下,谢谢!


read(1,*) (vapt(i),i=1,np)    !读取数据                    
        ii=0
      do k=1,nz
        do j=1,ny
            do i=1,nx
                ii=ii+1
            zT=13.5-(z(k)+30)*dwtd/100
    if (vapt(ii)>zt+2 .and. zt>hgt) then    
        vapt(ii)=zt+dift            
elseif (vapt(ii)>hgt+1 .and. zt<hgt) then    
    vapt(ii)=zt+dift        

end if 
    WRITE(3,111)  vapt(ii)  !此处输出,应该怎么做?[em10]写入数据,每行输出16个数据应该怎么做?
111    format(16F15.3,\)  
            end do
        end do
    end do

回复列表 (共7个回复)

沙发

好乱啊,不过我想去掉那个(ii)应该就行了
WRITE(3,111)  vapt
另外format里的“\”是不必要的

板凳

[quote]好乱啊,不过我想去掉那个(ii)应该就行了
WRITE(3,111)  vapt
另外format里的“\”是不必要的[/quote]

额,“\”是表示连续输出的意思。我想在每行输16个,这16个数据不要换行输出。
那个ii是数组输出的序号

3 楼

比较着急,还要回家煮饭吃……
呜呜

4 楼

全部算完再输出,放在循环体外。

5 楼

read(1,*) (vapt(i),i=1,np)    !读取数据                    
        ii=0
      do k=1,nz
        do j=1,ny
            do i=1,nx
                ii=ii+1
            zT=13.5-(z(k)+30)*dwtd/100
    if (vapt(ii)>zt+2 .and. zt>hgt) then    
        vapt(ii)=zt+dift            
elseif (vapt(ii)>hgt+1 .and. zt<hgt) then    
    vapt(ii)=zt+dift        

end if 
               end do
        end do
    end do

    WRITE(3,111)  (vapt(i),i=1,np)
111        format(16F15.3,\) 


我改成这样后,好像格式不大对

6 楼

弄好了,我搞错了。应该写成这样    WRITE(3,"(16F15.3)")  (vapt(i),i=1,np)

谢谢jstzhurj老师!一语点醒梦中人啊!
我老是犯傻o(∩_∩)o...!!!

7 楼

不要/,逗号要用引号。format(16(f15.3,`,`))

我来回复

您尚未登录,请登录后再回复。点此登录或注册