Quantcast
Channel: Intel® Fortran Compiler for Linux* and macOS*
Viewing all articles
Browse latest Browse all 2583

Fortran subModule for OOP methods

$
0
0

 

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 and output as expected. By the way i am using ifort-18

Thanks in Advance,

Masrul

 

 


Viewing all articles
Browse latest Browse all 2583

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>