- 积分
- 218
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-3-17
- 最后登录
- 1970-1-1

|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 洁雪纷飞 于 2012-5-10 15:33 编辑
我想把一年的366天的数据按月分成12个文件:
program main
implicit none
character month,INTYR
integer var(638,370)
integer YROD,MMMM
integer d, yearday, y4 ,y100, y400
integer i
integer,parameter:: irow=637
do YROD = 1,12
MMMM=0+YROD
month=INTYR(MMMM)
PRINT*,month
open(21,file='2004x')
open(3, file = 't2004/'//month)
d = 370
do i = 1, 1
read(21,*)
end do
do i=1,irow
read(2,fmt="(370f8.2)") var(i,1:d)
select case(MMMM)
case(1)
write(3,fmt="(35f8.2)") var(i,1:35)
case(2)
write(3,fmt="(33f8.2)") var(i,1:4), var(i,36:64)
case(3)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,65:95)
case(4)
write(3,fmt="(34f8.2)") var(i,1:4), var(i,96:125)
case(5)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,126:156)
case(6)
write(3,fmt="(34f8.2)") var(i,1:4), var(i,157:186)
case(7)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,187:217)
case(8)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,218:248)
case(9)
write(3,fmt="(34f8.2)") var(i,1:4), var(i,249:278)
case(10)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,279:309)
case(11)
write(3,fmt="(34f8.2)") var(i,1:4), var(i,310:339)
case(12)
write(3,fmt="(35f8.2)") var(i,1:4), var(i,340:370)
case default
print *, "输入错误"
stop
end select
end do
close(21)
end do
close(3)
stop
end
!*----------------------------------------------------------------------*
!* FUNCTIONS *
!*----------------------------------------------------------------------*
!*----------------------------------------------------------------------*
!* Integer into character *
!*----------------------------------------------------------------------*
function INTYR(MMMM)
integer length, loc, iint, MMMM
parameter (length = 4)
character INTYR*(length)
iint = MMMM
do loc = 1, length
INTYR(loc:loc) = ' '
enddo
loc = length
30 INTYR(loc:loc) = char(ichar('0') + mod(iint,10))
iint = iint/10
loc = loc - 1
if (iint .gt. 0) goto 30
return
end
输出后显示:
应该怎么修改啊?哪里有错误?求高手帮忙……
|
|