Bonjour,

Voici un bout de code en Fortran 77, que j'essaie de compiler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
	  open(3,file='VP/rayden'//depth//'.xyz') ! open outputfile
	  dx=sei_xp(1)-sei_xp(2)
	  dy=sei_yp(1)-sei_yp(2)
	  do iy=1,sei_ny
	   do ix=1,sei_nx
c now determine 4 clases for ray distribution
	   qual=0
	   if ((ev(k,2)/ev(k,3)).gt.rtio1.and.(ev(k,1)/ev(k,3)).gt.rtio1) then
            qual=1
	    goto 90
	   endif
	   if ((ev(k,2)/ev(k,3)).gt.rtio1.and.(ev(k,1)/ev(k,3)).lt.rtio1) then
	    qual=2
	    goto 90
	   endif
	   if ((ev(k,2)/ev(k,3)).gt.rtio2.and.(ev(k,1)/ev(k,3)).lt.rtio1) then
	    qual=3
	    goto 90
	   endif
	   if ((ev(k,2)/ev(k,3)).lt.rtio2.and.(ev(k,1)/ev(k,3)).lt.rtio2) then
	    qual=4
	   endif
90         continue
c calculate projection of vector onto xy-plane
	   if (qual.eq.2) then
	    do l=2,3     ! two main directions, print both on output
	     projx=sei_xp(ix)+(vec(l,k,1)*dx/2) 
	     projy=sei_yp(iy)+(vec(l,k,2)*dy/2)
	     call km2deg(sei_xp(ix),sei_yp(iy),lat,lon)
	     call km2deg(projx,projy,projlat,projlon)
	     write(3,1050)qual,k,blwray(k),lon,lat,projlon,projlat,
     &       sei_xp(ix),sei_yp(iy),projx,projy
	    enddo
	   else
	    projx=sei_xp(ix)+(vec(3,k,1)*dx/2)
	    projy=sei_yp(iy)+(vec(3,k,2)*dy/2)
	    call km2deg(sei_xp(ix),sei_yp(iy),lat,lon)
	    call km2deg(projx,projy,projlat,projlon)
	    write(3,1050)qual,k,blwray(k),lon,lat,projlon,projlat,
     &      sei_xp(ix),sei_yp(iy),projx,projy
	   endif  !qual.eq.2
	   do m=1,invlay  ! if first block of layer skip nex
	      if (k.eq.inv_bloc(m).and.iy.eq.1) ix=ix+1
	   enddo
	   k=k+1  ! next block
1050       format(i2,1x,i4,1x,f8.2,1x,2(f8.4,1x),2(f8.4,1x),4(f7.2,1x))
           enddo !ix
	  enddo !iy
	  close(3)
Mon soucis est l'incrémentation de la variable ix. Ca ne passe pas avec mon compilateur. Je ne sais pas trop par quoi le remplacer. Pour l'instant j'utilise cycle ix_loop (en nommant la boucle sur ix, ix_loop), mais je ne sais pas si cela produit le même résultat...

Merci pour votre aide