|
forums.silverfrost.com Welcome to the Silverfrost forums
|
View previous topic :: View next topic |
Author |
Message |
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Fri Oct 20, 2017 11:21 am Post subject: Latest Builds Availability? |
|
|
Any new builds of 64 bit FTN95 any time soon?
Getting access violation crash compiling code
"The instruction at address 100644d9 attempted to write to location 00000000".
Noticed location 00000000 ? Scary.
A lot of such errors were in earliest versions.
Still happens.
What a true devilry situation:
1) when compiling code in 32bits, the modules, the main and graphics subroutines compile OK but when run the code the OpenGL graphics does not work complaining about some buffers which by unknown reason are not open. Since OpenGL is not a Fortran, though it is adopted by FTN95 to use with Fortran, how to proceed to find the error? No solution /check /debug do not give a clue.Total stop.
2) Compiling the same code with /check in 64bit mode crashes the compilation with the Access Violation at the beginning of the main module somewhere on lines ~3000. In older FTN77 i'd cut the file into smaller files with smaller amount of subroutines but here is a module which works like a black hole sucking with time each and every subroutine and function. How to cut the module into small modules and compile them separately? Will be a total mess. Total stop too.
3) Little bit older versions of the same fortran sources work OK. But what the differences are - the new stuff - was added and placed at the far end of the module at the lines 12000. How come this causes 64bit FTN95 compiler to crash too early?
4) 64bit compilation with /nocheck also works (32bit one still fails at OpenGL) but allows to debug only gradfather's way, 100x slower, via Print*
Last edited by DanRRight on Fri Oct 20, 2017 8:22 pm; edited 5 times in total |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7932 Location: Salford, UK
|
Posted: Fri Oct 20, 2017 11:27 am Post subject: |
|
|
It won't be long now before the next release. Hopefully things will be better for you but porting to 64 bits normally raises issues in your code of one kind or another. |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Sat Oct 21, 2017 11:15 am Post subject: |
|
|
Woke today up and found that OpenGL does not work now with any of my programs and any FTN95 latest versions, 32 or 64. Usual simulations also give me strange results last days.
Can anyone confirm that nothing happened during these two days with their OpenGL? Microsoft automatic updates for example may change something. I did not change anything in my computer but i rebooted it these days (and possibly all my PCs were infected couple times this summer and behaved very irrationally. I cleaned them but who now can guarantee anything when using JavaScript became unavoidable norm). |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Sun Oct 22, 2017 1:53 am Post subject: |
|
|
Here on two pages is the OpenGL test. Compile as usual: FTN95 Progr.f95 /link. Also could be a splash screen
Code: | program Splash
include <clearwin.ins>,nolist
include <opengl.ins>,nolist
double precision spin
integer i,window
integer opengl_proc
external opengl_proc
i=winio@('%es%ca[Rotating Slab]&')
i=winio@('%fn[Arial]%ts&',3.0d0)
i=winio@('%bf&')
i=winio@('%sp%ww[no_border]%pv%^og[double,depth16]%lw',0,0,1050,750,opengl_proc,window)
spin=270. ! 0d0
while(window .LT. 0)do
call spinDisplay(spin)
if(spin.ge.360.d0) goto 1000
endwhile
1000 continue
end program
!.......................................................
subroutine spinDisplay(spin)
include <opengl.ins>,nolist
include <clearwin.ins>,nolist
double precision spin
logical do_draw
common /animate_com/ do_draw
if (do_draw)then
call glClear (OR(GL_COLOR_BUFFER_BIT,GL_DEPTH_BUFFER_BIT))
call glMatrixMode (GL_MODELVIEW)
call glLoadIdentity()
call glTranslated(0d0,0d0,-10d0)
call glRotated(spin,1d0,0d0,0d0)
call glCallList(101)
call swap_opengl_buffers()
spin=spin+3d0
! if(spin.ge.360.d0) goto 1000
! call sleep@(0.5)
endif
1000 call temporary_yield@()
end
!.......................................................
subroutine spinSlab()
logical do_draw
common /animate_com/ do_draw
data do_draw/.TRUE./
do_draw=.TRUE.
end
!.......................................................
subroutine stopSlab()
logical do_draw
common /animate_com/ do_draw
do_draw=.FALSE.
end
!.......................................................
subroutine assemble_list
include <clearwin.ins>,nolist
include <opengl.ins>,nolist
real*4 white_colour(4), grey_colour(4), dark_grey_colour(4)
real*4 red_colour(4), yellow_colour(4), green_colour(4)
real*4 blue_colour(4), purple_colour(4), cyan_colour(4)
real*8 dimension,scale,d,fd,front,back
integer flags,k
integer hdc
logical ok
external opengl_proc
data white_colour/1.0,1.0,1.0,1.0/
data grey_colour/0.5,0.5,0.5,1.0/
data dark_grey_colour/0.3,0.3,0.3,1.0/
data red_colour/1.0,0.0,0.0,1.0/
data yellow_colour/1.0,1.0,0.0,1.0/
data green_colour/0.0,1.0,0.0,1.0/
data blue_colour/0.0,0.0,1.0,1.0/
data purple_colour/1.0,0.0,1.0,1.0/
data cyan_colour/0.0,1.0,1.0,1.0/
data front,back/-0.01d0,-0.5d0/
call glEnable(GL_DEPTH_TEST)
hDC=clearwin_info@('OPENGL_DEVICE_CONTEXT')
call glColor3f(1.0,1.0,0.0)
ibase = glGenLists(96)
! Storage For 96 Characters
! ifont =CreateFont (-122, ! Height Of Font
! * 0, ! Width Of Font
! * 0, ! Angle Of Escapement
! * 0, ! Orientation Angle
! * FW_BOLD, ! Font Weight
! * .TRUE., ! Italic
! * .FALSE., ! Underline
! * .FALSE., ! Strikeout
! * ANSI_CHARSET, ! Character Set Identifier
! * OUT_TT_PRECIS, ! Output Precision
! * CLIP_DEFAULT_PRECIS, ! Clipping Precision
! * ANTIALIASED_QUALITY, ! Output Quality
! * or(FF_DONTCARE,DEFAULT_PITCH), ! Family And Pitch
! * 'Comic Sans MS' )
! & ior(FF_DONTCARE,DEFAULT_PITCH), ! Family And Pitch
!
|
Last edited by DanRRight on Sun Oct 22, 2017 5:59 am; edited 4 times in total |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Sun Oct 22, 2017 1:56 am Post subject: |
|
|
Code: | ! ignor = SelectObject(hDC, ifont) ! Selects The Font We Want
! call glColor3f(1.0,1.0,0.0)
ok=wglUseFontOutlines(hDC, 0, 255, 1000, 0.0, 0.1, WGL_FONT_POLYGONS,core4(0))
call glMatrixMode (GL_MODELVIEW)
call glLoadIdentity()
call glTranslated(0d0,0d0,-10d0)
!... Clear the color and depth buffers.
call glClear (OR(GL_COLOR_BUFFER_BIT,GL_DEPTH_BUFFER_BIT))
dimension=2.2d0
scale=dimension*0.9d0
call glDisable(GL_LIGHTING)
call glNewList(101,GL_COMPILE)
call glColor3fv(red_colour)
call glListBase (1000)
call glTranslated(-3.d0,scale*0.0,0.2d0)
call glScaled(1.5d0,1.5d0,1.5d0)
call glCallLists (9, GL_UNSIGNED_BYTE, 'Clearwin+')
call glEndList()
END
!.......................................................
subroutine myinit()
call assemble_list()
end
!.......................................................
subroutine myreshape(w,h)
include <opengl.ins>,nolist
integer w
integer h
double precision aspect_ratio
if(h.NE.0)then
aspect_ratio=dble(w)/h
call glMatrixMode (GL_PROJECTION)
call glLoadIdentity ()
call gluPerspective (30.0d0,aspect_ratio,1d0,15d0)
call glViewport(0,0,w,h)
endif
end
!.......................................................
integer function opengl_proc()
include <clearwin.ins>,nolist
include <opengl.ins>,nolist
integer w,h
character*256 reason
reason=clearwin_string@('CALL_BACK_REASON')
if(reason.EQ.'SETUP')then
call myinit()
else if(reason.EQ.'RESIZE')then
w=clearwin_info@('OPENGL_WIDTH')
h=clearwin_info@('OPENGL_DEPTH')
call myreshape(w,h)
else if(reason.EQ.'MOUSE_LEFT_CLICK')then
call spinSlab()
else if(reason.EQ.'MOUSE_RIGHT_CLICK')then
call stopSlab()
endif
opengl_proc=2
end |
|
|
Back to top |
|
|
JohnCampbell
Joined: 16 Feb 2006 Posts: 2556 Location: Sydney
|
Posted: Mon Oct 23, 2017 12:08 am Post subject: |
|
|
Hi Dan,
The program ran for me. Check your path ?
John |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Mon Oct 23, 2017 12:04 pm Post subject: |
|
|
Thanks, John,
All paths are OK, codes compiled with FTN95 now work (one letter was deleted somehow which caused other problems. Found it by painful comparison with older versions. Side-by-side comparison is very good at Total Commander. Which comparison tool do you use?) except OpenGL.
I remember some strange NVIDIA Registry keys were quarantined by Antivirus software recently claiming they are not safe. Hell knows how to turn such stuff back besides reinstallation of NVIDIA drivers. |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Tue Oct 24, 2017 6:35 am Post subject: |
|
|
All fixed by itself.
Devilry.
UPDATE
Damn, no it didn't fully fixed. Lost two weeks by missing one single character in large code I do not know how. And losing now more time on some drivers conflicts. Anyone had any problems with OpenGL before? I did not in 20 years. |
|
Back to top |
|
|
JohnCampbell
Joined: 16 Feb 2006 Posts: 2556 Location: Sydney
|
Posted: Tue Oct 24, 2017 8:43 am Post subject: |
|
|
Dan wrote: | one letter was deleted somehow which caused other problems | This is the perfect job for /Implicit_None !! |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Tue Oct 24, 2017 9:01 am Post subject: |
|
|
You probably remember that Paul implemented last year this functionality in compiler switches. If some variable is used but not defined this becomes an error even before the run at compilation time (kind of like an /undef but even better). The devils surprise to me was that it somehow did not work in my case. Trying to get why.
We already discussed few times that implicit none may lead to the errors you will not find in 1000 years when you think the variable looks like integer with its starting ijklmn (many are already indoctrinated with this forever) but it is actually real. |
|
Back to top |
|
|
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2390 Location: Yateley, Hants, UK
|
Posted: Tue Oct 24, 2017 10:52 am Post subject: |
|
|
Dan,
Is that '... lead {you} to {find} errors you will not find {otherwise} ...' - which is the meaning that devotees of IMPLICIT NONE would say, or is it exactly as written? (in which case I would agree).
Incidentally, I just got a black window when I ran your code, but not a problem as I haven't ever used OpenGL. I've got an nVidia card.
Eddie |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Tue Oct 24, 2017 8:28 pm Post subject: |
|
|
Eddie, I decided not to use implicit none after several tries over few decades thanks to the new compilation option now available.
This decision has to be made ones and never change the mind. Otherwise there will be a mess if you gather two approaches in one large code. The compiler switch I was talking about worked fine before by doing the job of implicit none for catching static bugs but not making complete freedom and anarchy inside the Fortran sources so i'm using it now with all my codes. How it missed my error I still did not investigate, because run out of time.
As to opengl test, have you ran it before and it worked ok and only today failed? |
|
Back to top |
|
|
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2390 Location: Yateley, Hants, UK
|
Posted: Wed Oct 25, 2017 9:24 am Post subject: |
|
|
Hi Dan,
No, only ran it when I saw your post.
Regards
Eddie |
|
Back to top |
|
|
DanRRight
Joined: 10 Mar 2008 Posts: 2826 Location: South Pole, Antarctica
|
Posted: Thu Oct 26, 2017 6:58 am Post subject: |
|
|
Eddie,
Hopefully the problem is solved after getting from the NVIDIA site its latest driver. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|