1
아래 열거 된 Fortran 함수는 ifort 11.1을 사용하여 예상대로 컴파일되고 실행됩니다.Fortran에서 파생 형 포인터와 다형성 대상 사용
THIS_NML => THIS
Error: Different types in pointer assignment at (1); attempted assignment of CLASS(UNIT) to TYPE(UNIT).
포트란 코드 :
FUNCTION PROCESS_COMMAND(THIS, CMD, DATA) RESULT(RET)
CLASS(UNIT), INTENT(INOUT), TARGET :: THIS
CHARACTER(LEN = *), INTENT(IN) :: CMD
CHARACTER(LEN = *), INTENT(IN) :: DATA
CHARACTER(LEN = 200) :: STRING
INTEGER :: IOS
TYPE(UNIT), POINTER :: THIS_NML
! CREATE A NAMELIST
NAMELIST /VARS/ THIS_NML
THIS_NML => THIS
RET = 0
STRING = '&VARS THIS_NML%' // TRIM(CMD) // ' = ' // TRIM(DATA) // ' /'
! READ CMD AND DATA
READ(STRING, NML=VARS, IOSTAT=IOS)
RET = IOS
END FUNCTION PROCESS_COMMAND
이름 목록의이 다형성 객체를 사용하여 생성 할 수 없기 때문에, 파생 형 포인터 THIS_NML
이 이름 목록을 생성하는 데 사용되는 그러나 4.6 반환 컴파일러 오류를 GFortran. 어떤 아이디어라도 GFortran과 함께이 작업을 수행하는 방법은 무엇입니까?
감사합니다. 이 컴파일은 gfortran 4.6과 ifort 11.1에서 모두 실행되고 실행됩니다. – mannyburet