Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Fortran subModule for OOP meethods

Masrul
Beginner
503 Views

 

Dear All:

 

I am trying subModule for OOP methods in Fortran as test case. Followings are code snippets:

Module:

Module declarations
    type::Car
        character(len=10)::Name
        character(len=10)::Make
        contains
          procedure::print=>Print_CarInfo
    end type Car

    interface
        module subroutine Print_CarInfo(self)
            class(Car)::self
        end subroutine
    end interface
End Module declarations

subModule:

subModule (declarations) definitions
  contains
    module subroutine Print_CarInfo(self)
        class(Car)::self
        print*,self%Name
        print*,self%Make
    end subroutine Print_CarInfo
end subModule definitions

mainProgram:

program testOOP
    use declarations
    type(Car)::MyFirstCar

    MyFirstCar%Name='MyCar'
    MyFirstCar%Make='Hyundai'
    call MyFirstCar%print()
end program testOOP

Compile Note: ifort module.f90 submodule.f90 main.f90

Error:

Undefined symbols for architecture x86_64:
  "_declarations_mp_print_", referenced from:
      _MAIN__ in iforteEEioN.o
     (maybe you meant: _declarations_mp_print_carinfo_)
ld: symbol(s) not found for architecture x86_64

But same things compiled correctly with gfortran-6. By the way i am using ifort-18

Thanks in Advance,

Masrul

 

 

 

0 Kudos
0 Replies
Reply