Bonjour,


J'ai des fichiers , exemple: maps000001, maps000002:


maps000001:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 0.0000000E+00   0.9000000E+02  -0.3228331E+5
  0.0000000E+00   0.8800000E+02  -0.1468246E-14
  0.0000000E+00   0.8600000E+02   0.1261635E-12
  0.0000000E+00   0.8400000E+02   0.3256342E-14
  0.0000000E+00   0.8200000E+02   0.3353514E-15
  0.0000000E+00   0.8000000E+02   0.1879126E-1
  0.0000000E+00   0.7800000E+02   0.2759277E+15
  0.0000000E+00   0.7600000E+02  -0.2333509E-13
  0.0000000E+00   0.7400000E+02   0.2687527E-15
  0.0000000E+00   0.7200000E+02   0.5729601E-15
maps000002
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
0.0000000E+00   0.9000000E+02  -0.3228331E+1
  0.0000000E+00   0.8800000E+02  -0.1468246E-12
  0.0000000E+00   0.8600000E+02   0.1261635E-5
  0.0000000E+00   0.8400000E+02   0.3256342E+2
  0.0000000E+00   0.8200000E+02   0.3353514E-15
  0.0000000E+00   0.8000000E+02   0.1879126E-1
  0.0000000E+00   0.7800000E+02   0.2759277E-15
  0.0000000E+00   0.7600000E+02  -0.2333509E-13
  0.0000000E+00   0.7400000E+02   0.2687527E-15
  0.0000000E+00   0.7200000E+02   0.5729601E-15
J'ai calcule des valeurs maximum du troisieme colum des fichier maps. J'arrive a imprime sur l'ecran.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
maximum du fichier1: 0.0000000E+00   0.9000000E+02  -0.3228331E+5
maximum du fichier 2 : 0.0000000E+00   0.8400000E+02   0.3256342E+2
Je voudrai ecrire dans un fichier maps_max comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
maps_max:
1   0.0000000E+00   0.9000000E+02  -0.3228331E+5
 2   0.0000000E+00   0.8400000E+02   0.3256342E+2
Mais les resultats (de mon conde) sont ecrit seulement la valeurs maximum de dernier fichier (c'est a dire fichier maps000002, n = nmax).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
maps_max:
    2  0.0000000E+00   0.8400000E+02   0.3256342E+2
Voici le code j'ai ecrit

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
program maxxi_map
  implicit none
 
! Declaration
  character(len=4)      :: map="maps"
  character(len=9)      :: some_maps
  character(len=2)      :: nd
  character(len=6)      :: nf
  character(len=2)      :: Fa="a_"
  character(len=9)      :: map_sorti="map_stack"
  character(len=8)      :: maps_max
  integer               :: i,j,k,nmax,ncol,nlign, n, m,ll
  real, allocatable     :: l1(:),l2(:),l3(:), l4(:),latn(:),longn(:)
  real                  :: tr,maxxi,lat,long
 
  print*,"enter value of maps nmax"
  read*,nmax
! arrays' size with the first file
 nlign = 0
!
open(10,file="maps000001",status="old",action="read")
 do
   read(10,*,end=40) tr,tr,tr
   nlign = nlign+1
  end do
40  close(10)
write(*,*) nlign," lines read"
 
! allocations
 allocate(l1(nlign),l2(nlign),l3(nlign),l4(nlign))
 
 
!! boucle
         do n=1,nmax
 
           write(nf,"(i6.6)")n
                 open(10, file="maps"//nf,status="old",action="read")
                       do j = 1,nlign
                       read(10,*) l1(j),l2(j),l3(j)
                          l4(j) = abs (l3(j))
                       end do
                     maxxi = l4(1)
                     do i=1,nlign
                           if ( l4(i) .gt. maxxi)  then
                                maxxi = l4(i)
                                lat = l1(i)
                                long = l2(i)
                           else
                                maxxi = maxxi
                                lat = l1(i)
                                long = l2(i)
                           endif
                    enddo
                 do k = 1,nlign
                      if ( l4(k) .eq. maxxi)  then
                           lat = l1(k)
                           long = l2(k)
                      endif
                   enddo
                    print*,'maximum of maps number ',n,lat,long,maxxi
                      open(20,file="maps_max",action="write",status="replace")
                      write(20,"(i2.2,1x,e14.7,1x,e14.7,1xe14.7)"),n,lat,long,maxxi
             close(10)
                      close(20)
          end do
 
! Deallocations
deallocate(l1,l2,l3,l4)
 
end program maxxi_map
Est-ce qu'il y a quelqu'un qui connait ou a autre solution a resoudre ce probleme

Merci votre aide,

Chip.