Bonjour j’écris le programme ci-dessous mais au cours de la compilation j'ai eu un retour d'un message d’erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Error: The number of subscripts is incorrect.   [Z]
z(i)=  (dz/(2.0D0))+((i-1)*dz)
 
Error: The number of subscripts is incorrect.   [R]
r(j)= (dr/(2.D0))-(j*dr)+R_e
^
s'il vous plait quelqu'un peut me renseigner l'erreur est du à quoi ,j'ai pas en compris
merci

Module Mod_DONNEES
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
implicit none
 
real(8),parameter :: Pi= 3.1415926535897932D0
real(8),parameter :: q_evap=176E4
real(8),parameter :: T_inf=293.D0
real(8),parameter :: conds=380.0D0
real(8),parameter :: coef=500.0D0
real(8),parameter :: R_e=5E-03
real(8),parameter :: R_i=4E-03
real(8),parameter :: Lt=0.2D0
real(8),parameter :: L_evap=4.E-02
real(8),parameter :: L_adiab=11.8E-02
real(8),parameter :: L_cond=4.2E-02
 
 
integer(8), parameter ::n=3
integer(8), parameter ::m=3
end  Mod_DONNEES
 
PROGRAM MAIN
 
USE Mod_DONNEES
implicit none
 
 
 
REAL*8, ALLOCATABLE, DIMENSION(:,:)	:: r
REAL*8, ALLOCATABLE, DIMENSION(:,:)	:: z
 
REAL*8 :: dr,dz
 
INTEGER::i,j
 
ALLOCATE(r(1:m,1), z(1:n,1) )
 
 
open (10,file='r(j).dat')
open (11,file='z(i).dat')
 
call grille(dr,dz,r,z)
 
!***** sauvegarder r(j)*************
do j=1,m
write(10,*) r(j)
end do
!***********************************
!****** sauvegarder z(i)************
do i=1,n
write(11,*) z(i)
end do
!************************************
CONTAINS
 
!************maillage********************
subroutine grille(dr,dz,r,z)
implicit none
 
 
REAL*8, ALLOCATABLE, DIMENSION(:,:)	:: r
REAL*8, ALLOCATABLE, DIMENSION(:,:)	:: z
integer:: i,j
REAL*8	:: dr,dz
 
ALLOCATE  (r(1:m,1))
ALLOCATE  (z(1:n,1) )
!les pas dans l'espace
dr=(R_e-R_i)/m
dz=Lt/n
 
 
!calcul de z(i)
do i=1,n
z(i)=  (dz/(2.0D0))+((i-1)*dz)
end do
 
!calcul de r(j)
 
do j=1,m
 
r(j)= (dr/(2.D0))-(j*dr)+R_e
end do
return
end subroutine grille
 
close(10)
close(11)
 
end