DISLIN actual argument differs from type of dummy argument

9 views
Skip to first unread message

Roger Moortgat

unread,
Oct 20, 2025, 9:42:50 AMOct 20
to dislin-users



VS 17, ifx compiler, windows 11

Settings:

Release x64

Runtime library: Debug Multithreaded(/libs:static /threads/ dbglibs)

Linker - Input ^Additional dependencies: C:\DISLIN\dl_11_ic\disifl.lib user32.lib gdi32.lib

Fortran - Additional include directories: C:\DISLIN\ifc

 

call SWGBGD(main_win,1.0,1.0,1.0) ! Set background to white using RGB

Generates the following error:

 

error #6633: The type of the actual argument differs from the type of the dummy argument. [1.0]
error #6633: The type of the actual argument differs from the type of the dummy argument. [1.0]
error #6633: The type of the actual argument differs from the type of the dummy argument. [1.0]

 

Manual says:

S W G F G D
The routine SWGBGD changes the foreground colour of a widget.
The call is: CALL SWGFGD (ID, XR, XG, XB)
or: void swgfgd (int id, float xr, float xg, float xb);
ID is the widget ID.
XR, XG, XB are the RGB colour values between 0 and 1.

 

mod file:

 

subroutine swgbgd(id,xr,xg,xb)
implicit none
integer, intent (in) :: id
real, intent (in) :: xr,xg,xb
end subroutine swgbgd

 

Copilot doesn't have a clue and sends me from pillar to post.

 

Roger

Roger Moortgat

unread,
Oct 22, 2025, 4:21:45 AMOct 22
to dislin-users
Intel Customer support is investigating the issue.

Roger

Op maandag 20 oktober 2025 om 15:42:50 UTC+2 schreef Roger Moortgat:

Helmut Michels

unread,
Oct 22, 2025, 4:59:44 AMOct 22
to dislin-users
Dear Roger,

okay, the Intel compiler reports that your current call of swgbgd differs from the interface
definition of swgbgd in the file dislin.f90 in the directory c:\dislin\ifc.
The interface definition for swgbgd for single precision is:
 
  subroutine swgbgd(id,xr,xg,xb)
      implicit none
      integer, intent (in) :: id
      real, intent (in) :: xr,xg,xb
    end subroutine swgbgd

Are the parameters 1.0, 1.0, 1.0 in your call of swgbgd interpreted as double precision values?
Is there any difference if you have:

   real :: xr = 1.0, xg = 1.0, xb = 1.0
   ...
   call swgbgd (main_win, xr, xg, xb)

With best regards,

Helmut

Roger Moortgat

unread,
Oct 23, 2025, 4:01:49 AMOct 23
to dislin...@googlegroups.com

Thank you. Setting the real values to double precision real(8) solved the problem.

 

Kind Regards

 

Roger

--
You received this message because you are subscribed to the Google Groups "dislin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dislin-users...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dislin-users/e363b941-30fa-4d50-b83b-b8d8de96ebaan%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages