и т.д., но для «нормального» использования я надеюсь, что это ответит на ваш вопрос.

я есть код, похожий на:

Module C_sys

  use class_A

   implicit none

    Private

    Type, public :: C_sys_type

  private

   logical   :: Ao_set = .false. 

   type(A) :: Ao

 Contains

 Private

    Procedure, public :: get_Ao
    Procedure, public :: set_Ao

 End Type C_sys_type

  interface C_sys_type

   Procedure C_sys_type_constructor

  end interface C_sys_type

 Contains

type(C_sys_type) elemental function C_sys_type_constructor(Ao) result(C_sys)

   type(A), intent(in), optional :: Ao

    C_sys % Ao = Ao
   C_sys % Ao_set = .true.

end function C_sys_type_constructor

type(A) elemental function get_Ao 
  class(C_sys_type), intent(in) :: this

   get_Ao = this % Ao
 end function get_Ao

 subroutine set_Ao(this, Ao)

 class(C_sys_type), intent(inout) :: this
 type(Ao), intent(in)             :: Ao

   this % Ao     = Ao  
   this % Ao_set = .true.

end subroutine set_Ao

End Module C_sys

Я не уверен, где в подпрограмме set_Ao тип (Ao), intent (in) :: Ao следует оставить таким же образом или вместо этого иметь класс (Ao), intent (in) :: Ao. Я знаю, что класс (Ao) делает переменную полиморфной и получает доступ к типу данных A. Но я не знаю, когда нужно использовать один или другой.

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос