2
我正在與gfortran 5.4此編譯錯誤和.F90代碼非可變表達
call abc_output(struc,nx,ny,nz,'AB' ,get_ab_dat(p_f),&
1
Error: Non-variable expression in variable definition context (actual argument to INTENT = OUT/INOUT) at (1)
正在生成編譯錯誤的方法調用如下所示 和誤差上get_ab_dat
type(b_f) :: p_f
call abc_output(struc,nx,ny,nz,'AB' ,get_ab_dat(p_f),&
'BD' ,get_bc_dat(p_f),&
'EF' , aaa)
功能get_ab_dat如下所示
function get_ab_dat(bf) result(qx_arr)
type(b_f),intent(in) :: bf
real,dimension(:,:,:),allocatable :: qx_arr
qx_arr = bf%qx
end function get_ab_dat
subroutine abc_output (struc,nx,ny,nz,dname1,data1,&
dname2,data2,dname3,data3,dname4,data4)
type(c_s),intent(in) :: struc
integer,intent(in) :: nx,ny,nz
character(len=*),intent(in) :: dname1
real,dimension(:,:,:),allocatable,intent(inout) :: data1
character(len=*),intent(in),optional :: dname2,dname3,dname4
real,dimension(:,:,:),allocatable,intent(inout),optional :: data2,data3,data4
有人可以解釋那個錯誤意味着什麼以及我如何解決它?
請顯示完整的代碼和完整的錯誤信息。錯誤消息中的(1)指向哪裏? –
順便說一句,你的代碼不是Fortran 90,而是Fortran 2003,所以fortran90標籤很混亂。文件擴展名.f90並不意味着Fortran 90,而是指固定格式的源文件。可能與'abc_output'關聯的 –
表明。 – agentp