g77 -v = Thread model : win32 gcc version 3.3.1 (mingw special 20030804-1) This short example has the bug : subroutine fichbuf(fichier,fichhlp,buffer,numero,numerp,lligne, *nprio,nomlig,iundo,mligne,nomlih) parameter(nligne = 85) parameter(n2 = 72,m1 = n2 + 9) character buffer(0:m1,0:nligne) character*(m1) fichier(mligne) save mumero = numero do 100 i = 2,nomlig do j = 1,m1 buffer(j,i) = fichier(mumero)(j:j) ! the bug is in this line end do mumero = mumero + 1 100 continue return end In your Makefile put the line : test.o:test.f g77 -ffortran-bounds-check -g -Wa,-alhs,-L -c test.f In a DOS window, go to the correct directory and tape : make test.o > test.asm examine carefully the code line : buffer(j,i) = fichier(mumero)(j:j) in the file test.asm and read the generated assembler lines in Windows and in Linux a big difference : approximately 20 lines of assembler code are suppressed in Windows The assembler lines of windows cannot work and automatically generate a segmentation fault if you execute this code There is only 3 call _s_rnge to test 2 arrays with 2 indice each.
Can you try a later version of gcc, say like 3.3.3 as the one you are using is one not from the FSF and two looks to be a based on a prerelease.
no feedback in 3 months (T-2 days).