j'obtiens cette erreur de compilation avec gfortran 5.4 et un code .f90expression non variable dans la définition des variables d'erreur de compilation contexte
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)
L'appel de méthode qui génère l'erreur de compilation est présentée ci-dessous et l'erreur est le 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)
La fonction get_ab_dat est représentée ci-dessous
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
Quelqu'un peut-il expliquer ce que cette erreur signifie et comment je peux le réparer?
S'il vous plaît montrer le code complet et le message d'erreur complet. Où (1) dans le message d'erreur pointe-t-il? –
BTW, votre code n'est pas Fortran 90, mais Fortran 2003, donc la balise fortran90 est confuse. L'extension de fichier .f90 ne signifie pas Fortran 90, cela signifie une source de formulaire fixe. –
peut-être associé à 'abc_output', montrez cela. – agentp