Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Important Update: Community Platform Migration​. Learn more​>

Fortran Module Wizard

dannycat
New Contributor I
1,579 Views

I've just tried to generate the com interfaces for the Microsft Access 11.0 Object Libary. The code is generated in a fortan file MSACC.f90. When I try to compile this file I get several errors relating to "no matching specific subroutine to thisgeneric subroutine[AUTOADDARG]. I've included one example interface where such an error occurs (Bold text).

[cpp]  			FUNCTION $BoundObjectFrame__Evaluate($OBJECT, bstrExpr, ppsa, $STATUS)
				IMPLICIT NONE
	
				INTEGER(INT_PTR_KIND()), INTENT(IN)	:: $OBJECT	 ! Object Pointer
				!DEC$ ATTRIBUTES VALUE	:: $OBJECT
				CHARACTER(LEN=*), INTENT(IN)	:: bstrExpr	! BSTR
				TYPE (VARIANT), DIMENSION(:), INTENT(IN)	:: ppsa	! (SafeArray)
				!DEC$ ATTRIBUTES REFERENCE	:: ppsa
				INTEGER(4), INTENT(OUT), OPTIONAL	:: $STATUS	 ! Method status
				!DEC$ ATTRIBUTES REFERENCE			:: $STATUS
				TYPE (VARIANT), VOLATILE :: $RETURN
				TYPE (VARIANT) $BoundObjectFrame__Evaluate
				INTEGER(4) $$STATUS
				INTEGER(INT_PTR_KIND()) invokeargs
				invokeargs = AUTOALLOCATEINVOKEARGS()
				CALL AUTOADDARG(invokeargs, '$RETURN', $RETURN, AUTO_ARG_OUT)
				CALL AUTOADDARG(invokeargs, '$ARG1', bstrExpr, AUTO_ARG_IN, VT_BSTR)
				CALL AUTOADDARG(invokeargs, '$ARG2', ppsa, AUTO_ARG_IN)
				$$STATUS = AUTOINVOKE($OBJECT, -5, invokeargs)
				IF (PRESENT($STATUS)) $STATUS = $$STATUS
				$BoundObjectFrame__Evaluate = $RETURN
				CALL AUTODEALLOCATEINVOKEARGS (invokeargs)
			END FUNCTION $BoundObjectFrame__Evaluate
[/cpp]

Does anyone know why this is the case?

0 Kudos
3 Replies
Paul_Curtis
Valued Contributor I
1,579 Views

Your module calling AUTOADDARG() needs to USE IFAUTO.f90

0 Kudos
dannycat
New Contributor I
1,579 Views
Quoting - Paul Curtis

Your module calling AUTOADDARG() needs to USE IFAUTO.f90

Paul, I do have "use ifauto" in the full file. The listing in the above post is an extract, besides which the previous AUTOADDARG call is not listed in the error messages. This file was created by the Intel Module Wizard so it should include all the necessary statements.

The line which is supposed to be bold has inserted at the beginning. I tried to use the forum paste code feature but it doesn't seem to work properly. The list of formats includes most programming languages EXCEPT, ironically, FORTRAN so I tried the C++ option.

0 Kudos
Steven_L_Intel1
Employee
1,579 Views

I haven't looked to see if this is the case here, but if the argument is INTEGER(1) you will have this problem since there is not yet support for that. I have been promised that this will be resolved in the next release.

0 Kudos
Reply