簡體   English   中英

Fortran 77並將數組傳遞給子例程

[英]Fortran 77 and passing an array to a subroutine

我有以下代碼:

parameter (maxprt=25)
dimension pt(maxprt)
impt  = maxprt

call rdprob(delt,denr,denw,ders,des,ecapr,ecapw,ein,erb0,erock,ext,iflim,ifmax,ifseg,ilim,ilpt,impt,iout,irlim,ismax,itstep,maxrk,pt,qexto,qfrac,qin,qnxt,qtot,rockr,rockv,t0,te0,tend,ter0,tstart,vol,xin,xs,ir1)

subroutine rdprob(delt,denr,denw,ders,des,ecapr,ecapw,ein,erb0,erock,ext,iflim,ifmax,ifseg,ilim,ilpt,impt,iout,irlim,ismox,itstep,maxrk,pt(25),qexto,qfrac,qin,qnxt,qtot,rockr,rockv,t0,te0,tend,ter0,tstart,vol,xin,xs,ir1)

當我去編譯鏈接時,我得到指示pt是一個問題

borehole.for: In program `MAIN__':
borehole.for:111: 
   call rdprob(delt,denr,denw,ders,des,ecapr,ecapw,ein,erb0,erock,ext,iflim,ifmax,ifseg,ilim,ilpt,impt,iout,irlim,ismax,itstep,maxrk,pt
                                                                                                                                     ^
Expression at (^) has incorrect data type or rank for its context

關於如何解決此問題或在傳遞數組時正確調用子例程的任何想法

這是您聲明數組參數的方式:

parameter (maxprt=25)
dimension pt(maxprt)

call test(pt)

還有其他地方

subroutine test(a)
dimension a(25)

end subroutine

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM