Re: [問題] 有關fortran寫法

看板Programming作者時間18年前 (2007/12/14 02:01), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串5/6 (看更多)
subroutine rotate(xlat,xlon,count,sm,theta,rota,ctime) dimension count(401,401,8) real rota character fti*10 character ctime*12,tt*2,ati*10 read(ctime(9:10),'(i2)')itime if(itime.ge.3.and.itime.lt.9)then itime=6 elseif(itime.ge.9.and.itime.lt.15)then itime=12 elseif(itime.ge.15)then itime=18 else itime=0 endif write(tt,'(i2)')itime if(itime.lt.10)tt='0'//tt(2:2) ctime=ctime(1:8)//tt k=1 do i=1,1000 read(5,31,end=335)ati,ro if(ctime(1:10).eq.ati)then do while( k.le.7) read(5,'(11x,f3.0)',end=335)ro rota=ro write(9,'(f3.0)') rota k=k+1 enddo endif 31 format(a10,1x,f3.0) enddo 335 continue do i = 1 , 401 do j = 1 , 401 call cir(i,j,lat,lon,dir,dis) if(dis.gt.500.) cycle do k = 2 , 8 dir=dir+rota !rotation angle dx=sm*cos(theta*3.14159/180)*(k-2) dy=sm*sin(theta*3.14159/180)*(k-2) i2=lat+int(dx+0.5) j2=lon+int(dy+0.5) count(m,n,k)=count(i,j,1) enddo enddo enddo return end =========================================== 2005080518 03. 2005080519 02. 2005080520 02. 2005080521 04. 2005080522 03. 2005080523 03. 2005080600 02. 2005080601 02. 2005080602 03. 以上這些資料是編號5的檔案所截取部份 ================================================ 上面是一個副程式,假設ctime(1:10)=ati= 2005080518時,接著我就做我用紅色標示 第一個區塊,可以讀出變數rota的資料為 02. 02. 04. 03. 03. 02. 02. 然後我想把這些資料分別丟進 dir=dir+rota 去計算,但是我現在只抓到最後一個rota 變數資料 02. ,意思就是變成程式只抓到02.資料,每次計算都是用02. 資料去計算, 我是要讓程式每次分別去抓不同的rota值,變成每次計算依序抓 02. 02. 04. 03. 03. .....不同資料,這是我現在碰到困難處,我要把用紅色標示第一個區塊的rota值丟 到用紅色標示的第二個區塊,麻煩大家能給我ㄧ些提示方向,謝謝 -- 〒作者:chuee 來自:140.115.111.196 ◎二進位的世界【140.115.50.50‧bbs.ncu.cc】

01/08 14:36, , 1F
看某 不知道怎麼改
01/08 14:36, 1F
文章代碼(AID): #17ONDW00 (Programming)
文章代碼(AID): #17ONDW00 (Programming)