I am new to Fortran90 and I haven't found an answer to a problem I have. I have a module written in Fortran with the some functions inside a module.
Stripped down version:
module vdiStringFunctionsinterface vdiString module procedure vdiString1Char end interface
contains character (128) function vdiString1Char(CSTRING, sVar1) character(*), intent(in) :: CSTRING, sVar1 character(128) :: vdiStringGeneral character(len=128), dimension(0:9) :: stringArray
stringArray(0) = adjustl(sVar1) vdiString1Char= vdiStringGeneral(CSTRING, stringArray) end function vdiString1Char character (128) function vdiStringGeneral(CSTRING, varArray) character(*), intent(in) :: CSTRING character(len=128), dimension(0:9), intent(in) :: varArray vdiStringGeneral = 'bla' end function vdiStringGeneral
end module vdiStringFunctions
When I try to compile with Intel Visual Fortran XE 2011 I get the following error:
error LNK2019: unresolved external symbol _VDISTRINGGENERAL referenced in function _VDISTRINGFUNCTIONS_mp_VDISTRING1CHAR vdiStringFunctions.obj
Because the function vdiStringGeneral is in the same module than the calling vdiString1Char I do not get the problem. When I move the vdiStringGeneral outside of the module it compiles without problems.
Because it should be used in a DLL all functions should be inside the module. How can I get it to work that way?