use module, ONLY:
문을 사용하여 모듈간에 파생 데이터 유형 (변수가 아닌 유형)을 포함하는 방법은 무엇입니까?정의 전에 사용 된 포트란 파생 데이터 유형
내 설명 : 내 module1
에서이 데이터 형식의 파생 데이터 형식 (my_datatype이라고 부름)과 일부 데이터 (my_data라고 부름)를 정의했습니다. 내 module2
에서 my_data
을 사용해야합니다. 내 모듈 1에는 module2
이 필요하지 않은 많은 절차가 들어 있기 때문에 my_data
만 포함하려면 ONLY
문을 사용하고 싶습니다. 내가 그것을 통과하지 않았기 때문에 module2
가 module1
에 정의 my_datatype
을 인식하지 못하는 것은 분명하다
Derive datatype 'my_type' is used before defined at "type(my_type),intent(out)::A"
: 그러나, 데이터 유형을 포함하지 않고 그것은 나에게 오류를 제공 할 것입니다. 그러나 파생 된 유형을 '모듈 만 사용'문에 포함시키는 구문은 무엇입니까? 나는 그래, 포트란 2003
module step1
implicit none
type my_type
integer::id
integer,dimension(2)::my_data
end type my_type
type(my_type)::A
end module step1
module step2
use step1,only:A
implicit none
contains
subroutine change_A(A)
type(my_type),intent(inout)::A
A%id = 1
A%my_data(1) = 1
A%my_data(2) = 2
end subroutine change_A
end module step2
program test
! program is in a different folder
use step1
use step2
implicit none
call change_A(A)
end program test
환영합니다. 귀하의 질문에 * 실제 코드 *를 게시하십시오. 특히 오류 메시지를 표시 할 때 그렇게하십시오. 또한 * complete * 오류 메시지를 표시하십시오. [ask] 및 [mcve]를 참조하십시오. 난센스를 제거하고'my_data % i = 1'을'do_something_to_my_data'에 추가하면 여러분이 보여주는 코드가 잘 컴파일됩니다. 변수로 작업하려면 범위에 데이터 유형이 필요하지 않습니다. –
블라디미르 감사합니다. 제안 된대로 질문을 수정했습니다. –