爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3208|回复: 2

fortran程序格式输出

[复制链接]

新浪微博达人勋

发表于 2016-4-16 13:23:59 | 显示全部楼层 |阅读模式
GrADS
系统平台: fortran
问题截图: -
问题概况: 我提取和文本文件资料是网格点形式的,输出时变成了只有一列表达的形式,如何修改?
我看过提问的智慧: 看过
自己思考时长(天): 1

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
PROGRAM zzq
PARAMETER M = 63 !经度格点数
PARAMETER N = 51 !纬度格点数
PARAMETER X1 = 2001 !起始年份
PARAMETER X2 = 2001 !终止年份
PARAMETER Y1 = 1 !起始月份
PARAMETER Y2 = 1 !终止月份
real*8 :: A(N, M), C(N, M)
real*8 :: B(M)
character*30 track,outpath
character*4 year
character*2 month
integer :: i, j, k, t
track='F:\MINE\data\CDR\'    !数据存放的位置
outpath='F:\MINE\result\'  !结果保存的路径
A = 0
C = (X2 - X1 + 1)*(Y2 - Y1 + 1)*1.0
open(3,file=trim(outpath)//'cloud.txt',status='replace')
do k = X1, X2
  write(year, "(i4.4)") k
  do t = Y1, Y2
   write(month, "(i2.2)") t
   open(2,file=trim(track)//trim(year)//trim(month)//trim('.txt'),status='old')
   do i = 1, N
    read(2, *) (B(j), j = 1, M)
    do j = 1, M
     if(B(j) == -9999) then
      C(i, j) = C(i, j) - 1.0
      B(j) = 0.0
     endif
     A(i, j) = A(i, j) + B(j)
    enddo
   enddo
  enddo
  close(2)
enddo
do i = 1, N
  do j = 1, M
   write(3, *) A(i, j)/C(i, j)*0.01
  enddo
enddo
end




密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-16 13:52:13 | 显示全部楼层
改成这样呢:
do j = 1, M
   write(3, *) (A(i, j)/C(i, j)*0.01,i=1,N)
enddo
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-4-16 20:29:29 | 显示全部楼层
一颗梅子在南京 发表于 2016-4-16 13:52
改成这样呢:
do j = 1, M
   write(3, *) (A(i, j)/C(i, j)*0.01,i=1,N)

不行嘢,变成输出格式为3列了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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