Ich erhalte diese Kompilierungsfehler mit gfortran 5.4 und einen .f90 CodeNicht variable Ausdruck in Variablendefinition Kontext Kompilierungsfehler
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)
Der Methodenaufruf, der die Kompilierung Fehler generiert wird unter und der Fehler angezeigt auf 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)
Die Funktion wird unten 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
gezeigt
Kann jemand erklären, was dieser Fehler bedeutet und wie ich ihn beheben kann?
Bitte zeigen Sie den vollständigen Code und die vollständige Fehlermeldung an. Wo zeigt (1) in der Fehlermeldung auf? –
BTW, Ihr Code ist nicht Fortran 90, sondern Fortran 2003, also ist das Fortran90-Tag verwirrend. Die Dateiendung .f90 bedeutet nicht Fortran 90, sondern eine feste Formquelle. –
vielleicht mit 'abc_output' verbunden, zeigen Sie das. – agentp