Bonsoir
Je suis Gustave, Etudiant à l’Université de Douala au Cameroun.
Je suis très ravi d’avoir trouvé cette plate forme d’informaticien, de savoir qu'il y a des gens qui s'y connaissent en Fortran et je vous écris pour solliciter votre aide.
En effet, je fais dans le bâtiment et travaux publics donc je découvre la programmation à vrai dire. Mais je la découvre en fin de formation car ce travail est une partie de mon mémoire.

Nous travaillons dans le cadre de notre mémoire sur le comportement d’un matériau (bois lamellé collé) sollicité en flexion, que nous devons programmer sur fortran afin de tirer des conclusions.
Il est question de simuler 1000 échantillons de poutres de mêmes dimensions, pour voir l’endommagement progressif de chaque lamelle qui constitue chacun de ces échantillons de poutre en bois. Le programme devra :

1* afficher certains messages en cas d’omission de certaines données,
2*tracer sur un même graphe les courbes effort-flèchede 3 fibres consécutives d’une poutre quelconque, puis les courbes endommagement-flèche de ces mêmes fibres.
3* trier et afficher dans un tableau, les valeurs maximales des flèches et des efforts de chaque échantillon puis, utiliser ces valeurs maximales pour tracer une courbe effort-flèche.
4* afficher un tableau qui présente en 12 classes, les effectifs et les fréquences de ces max des flèches et de ces max des efforts puis afficher un l’histogramme de ces effortset l’histogramme de ces flèches.
5*refaire le 2, 3 et 4 lorsqu’on fait varier les dimensions des échantillons notamment le volume (3Vo; 7Vo et 12Vo). ------------------------- !
Exemple de tableau à afficher : (voir à la fin du document)

Voici Notre Programme sur FORTRAN
Celui-ci aurait fait tous les calculs jusqu’au tri et à l’affichage des données puis, tracer les courbes et les statistiques dans Excel.

!
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
---------DEFINITION DES VARIABLES--------------------------------------------------------- !
 
!b est la largeur de la poutre
 
!detf est le pas de discrétisation des flèches
 
!h est la hauteur de la poutre
 
!i est le numéro de la fibre
 
!j est le numéro de l'incrément
 
!k est le nombre d'incrément d'incrément
 
!l est la longueur de la poutre
 
!modyoung est le module d'young du matériau
 
!n est le nombre total de fibres d'une poutre
 
!nb contient le nombre de contraintes aléatoirement génèrées
 
!U est le nombre aléatoire génère
 
!w est le compteur du nombre de poutre
 
!Z le nombre de poutre
 
 
!----------------PARTIE DES INSTRUCTIONS EXECUTABLES------------------------------------------!
 
 
!----------------------SAISIE DES DONNEES-----------------------------------------------------!
!implicit none
 
Real Z,U, h, b,l,D,modyoung,detf,q,h1
Real*4 sigmin,sigmax,sig,sigma
 
Integer n,i,k,j,R,w,G,G1,F,M,Y,P,S,Kmax,tempo
 
Dimension sig(10,10), f(10,10), Q(10,10)
Dimension y(10,10), G(10,10), G1(10,10)
Dimension M(10,10), h(10,10)
Dimension s(10,10), D(10,10),R(10,10)
Dimension P(10), sigma(10)
 
 
Print*,'BIENVENUE AU PROGRAMME DE SIMULATION DU'
Print*,'COMPORTEMENT MECANIQUE DU BOIS EN FLEXION 3 POINTS'
 
Print*,'entrer la valeur du nombre de Poutres Z'
Read*, Z
Print*,'entrer la valeur du nombre de fbres n'
Read*, n
Print*,'entrer la valeur de la contrainte minimale (sigmin)'
Read*, sigmin
Print*,'entrer la valeur de la contrainte maximale (sigmax)'
Read*, sigmax
Print*,'entrer la valeur de la largeur de la poutre (b)'
Read*, b
Print*,'entrer la valeur de la hauteur de la poutre (h)'
Read*, h1
Print*,'entrer la valeur de la longueur de la poutre (l)'
Read*, l
Print*,'entrer la valeur du module dyoung (modyoung)'
Read*, modyoung
Print*,'entrer la valeur du nombre dincrémentation (k)'
Read*, k
 
!--------------------------PARTIE DES CALCULS----------------------------------------------------!
 
!---------------GENERATION ALEATOIRE DES CONTRAINTES DANS LES FIBRES-----------------------------!
 
w=1
1 print*,'poutreNø',w
!do i=1,n
call random_number (U)
nb = U*1
P(i)= nb
!enddo
 
!-------------------------------CALCULS POUR UNE POUTRE-----------------------------------------!
 
i=1
 
2 print*,'fibreNø',i
detf=0.001
f(i,j)=detf
j=1
 
Sigma(i)=(sigmin+P(i)*(sigmax-sigmin))
h(i,j)=h1*(n-i+1)/n
G(i,j)= b*h1**3/12
y(i,j)=(h1+(h1*2*(i-1)+1))/2*n
s(i,j)= b*(h1/n)
G1(i,j)= s(i,j)*(y(i,j)**2)+G(i,j)
 
 
 
3 Q(i,j)=(48*modyoung*G1(i,j)*f(i,j))/(l**3)
 
 
M(i,j)=Q(i,j)*l/4
 
sig(i,j)=(M(i,j)*y(i,j)/G1(i,j))*1000
 
D(i,j)=(G(i,j)-G1(i,j))/ G(i,j)
R(i,j)= Q(i,j)/f(i,j)
f(i,j)=detf
 
!-------------------------INCREMMENTTION DE LA FLECHE--------------------------------------!
 
if(sigma(i).gt.sig(i,j))then
 
f(i,j)=f(i,j)+detf
 
 
print*,'Effort à la rupture',Q(i,j)
print*,'Flèche à la rupture',f(i,j)
print*,'Endomagement de la fibre',D(i,j)
 
j=j+1
 
if(j.lt.k) then
goto 3
else
continue
endif
else
print*,'fibreNø', i,' a rompu'
Print*,'position de la fibre',y(i)
print*,'Section de la poutre',S(i)
print*,'inerti de la poutre entière',G(i)
print*,'inertie de la potre à la fibre i',G1(i)
 
print*,'Contrainte de la fibre ittérée',sig(i,j)
print*,'Moment fléchissant maximum',M(i,j)
print*,'Rigidité de la fibre',R(i,j)
continue
 
end if
 
!------------------------------ITTERATION DES FIBRES---------------------------------------!
 
if(n.gt.i)then
i=i+1
 
goto 2
 
else
 
print*,'Fin des calculs pour la poure',w
 
continue
end if
 
!------------------------------ITTERATION DES POUTRES--------------------------------------!
 
if(w.lt.Z)then
w=w+1
 
goto 1
 
else
 
print*,'FIN DE L ESSAI'
end if
 
 
!------------------------------PROGRAMME TRI--------------------------------------!
 
do i=1
10 do j=1,n-1
kmax=j
do k= j+1,n
if(f(i ,k).gt.f(i,kmax)) then
kmax=k
endif
enddo
 
tempo=f(i,kmax)
f(i,kmax)=f(i,j)
f(i,j)=tempo
enddo
l=i
do l=1,n
print*,f(i,l)
enddo
 
!------------------------------FICHIER TEXTE--------------------------------------!
 
 
unite=99
nomfich = 'data.txt'
open(99, FILE=nomfich)
write(99,*) f(i,j), Q(i,j)
 
End program
 
!---------FIN DE L'ESSAI--------------------------------------------------------------------------------!
Exemple de tableau à afficher :
Valeurs maximales des résultats de la simulation de chaque poutre.
N° Poutre Efforts (N) Flèche (mm) Endommagement Rigidité
1
2
3
.
.
1000

Valeurs maximales des résultats de la simulation de chaque poutre sous l’effet d’échelle. (3Vo)
N° Poutre Efforts (N) Flèche (mm) Endommagement Rigidité
1
2
3
.
.
1000



Valeurs maximales des résultats de la simulation de chaque poutre sous l’effet d’échelle. (7Vo)
N° Poutre Efforts (N) Flèche (mm) Endommagement Rigidité
1
2
3
.
.
1000


Valeurs maximales des résultats de la simulation de chaque poutre sous l’effet d’échelle. (12Vo)
N° Poutre Efforts (N) Flèche (mm) Endommagement Rigidité
1
2
3
.
.
1000


Classes et effectifsdes la charges P et des flèches f
Classes de P
Effectif de p
Classes de f
Effectif de f