- 积分
- 997
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-5-13
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2014-10-6 15:28:08
|
显示全部楼层
自己改成了free 格式,并且设置了动态数组,但是又出现了其他错误。。。修改后的程序如下:
!水汽通量散度计算程序(计算分析水汽压,比湿,水汽通量散度)
!
!本程序可改变网格点数in,jn,网格距d。
parameter(in=144,jn=73,kn=17,d=2.5,tn=365)
integer i,j,k,t
dimension kp(kn),dp(kn)
data kp/1000,925,850,700,600,500,400,300,250,200,150,100,70,50,30,20,10/
data dp/0.0,0.75,0.75,1.5,1.0,1.0,1.0,1.0,0.5,0.5,0.5,0.5,0.3,0.2,0.2,0.1,0.1/
real,allocatable :: tem(:,:,:,:),u(:,:,:,:),v(:,:,:,:),es(:,:,:,:),e(:,:,:,:),rh(:,:,:,:),q(:,:,:,:),qs(:,:,:,:),qu(:,:,:,:),qv(:,:,:,:),div(:,:,:,:),flux(:,:,:)
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
open(3,file='f:\2013flux\air.grd',form='binary')
open(4,file='f:\2013flux\rhum.grd',form='binary')
open(5,file='f:\2013flux\uwnd.grd',form='binary')
open(6,file='f:\2013flux\vwnd.grd',form='binary')
open(7,file='f:\2013flux\pres.grd',form='binary')
do 10 t=1,tn
do 10 k=1,kn
read(3,*) ((tem(i,j,k,t),i=1,in),j=1,jn)
read(4,*) ((rh(i,j,k,t),i=1,in),j=1,jn)
read(5,*) ((u(i,j,k,t),i=1,in),j=1,jn)
read(6,*) ((v(i,j,k,t),i=1,in),j=1,jn)
10 continue
do 20 k=1,kn
do 20 j=1,jn
do 20 i=1,in
!饱和水汽压
es(i,j,k,t)=6.112*exp(17.67*tem(i,j,k,t)/(tem(i,j,k,t)+243.5))
!饱和比湿q
qs(i,j,k,t)=0.622*es(i,j,k,t)/(kp(k)-0.378*es(i,j,k,t))
!比湿q
q(i,j,k,t)=rh(i,j,k,t)*qs(i,j,k,t)/100
!水汽通量的u,v分量
qu(i,j,k,t)=u(i,j,k,t)*q(i,j,k,t)/9.8
qv(i,j,k,t)=u(i,j,k,t)*q(i,j,k,t)/9.8
20 continue
deallocate(tem,rh,u,v)
!散度
do 50 k=1,kn
do 50 j=2,jn-1
do 50 i=2,in-1
div(i,j,k,t)=((qu(i+1,j,k,t)-qu(i-1,j,k,t))+(qv(i,j+1,k,t)-qv(i,j-1,k,t)))/(2*d)
50 continue
!整层水汽通量散度flux
do 60 j=1,jn
do 60 i=1,in
do 60 k=1,kn
if(k<kn)then
flux(i,j,t)=flux(i,j,t)+0.5*(div(i,j,k,t)+div(i,j,k+1,t))*dp(k+1)
endif
60 continue
open(8,file='flux.grd',form='binary')
write(8,*) (((flux(i,j,t),i=1,in),j=1,jn),t=1,tn)
close(3)
close(4)
close(5)
close(6)
close(7)
close(8)
end
然后它出现的错误如下(看起来是同样的错误):
--------------------Configuration: vapor - Win32 Debug--------------------
Compiling Fortran...
F:\2013flux\vapor.f90
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
----------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-----------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
--------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
---------------------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-------------------------------------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-----------------------------------------------------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
F:\2013flux\vapor.f90(12) : Error: The highest data type rank permitted is INTEGER(KIND=8). [365]
allocate (tem(in,jn,kn,tn),u(in,jn,kn,tn),v(in,jn,kn,tn),es(in,jn,kn,tn),e(in,jn,kn,tn),rh(in,jn,kn,tn),q(in,jn,kn,tn),qs(in,jn,kn,tn),qu(in,jn,kn,tn),qv(in,jn,kn,tn),div(in,jn,kn,tn),flux(in,jn,tn))
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Error executing df.exe.
vapor.obj - 12 error(s), 0 warning(s)
求各位指教啊!
|
|