Télécharger alea.eso

Retour à la liste

Numérotation des lignes :

  1. C ALEA SOURCE PV 16/06/24 13:01:53 8985
  2. SUBROUTINE ALEA
  3. C
  4. C=======================================================================
  5. C
  6. C Opérateur ALEA : génération d'un champ scalaire aléatoire gaussien
  7. C stationnaire isotrope par la méthode des bandes tournantes.
  8. C
  9. C---------------------------
  10. C Phrase d'appel (GIBIANE) :
  11. C---------------------------
  12. C
  13. C OBJ1 = 'ALEA' 'BANDES_TOURNANTES' | MODE1 (MOT1)
  14. C | MAIL1
  15. C 'EXPO' 'SIGMA' FLOT1 ('MOYENNE' FLOT2)
  16. C | 'LAMBDA' FLOT3
  17. C | 'LAMBDA1' FLOT4 (VEC4)
  18. C ('LAMBDA2' FLOT5 (VEC5))
  19. C ('LAMBDA3' FLOT6 (VEC6))
  20. C
  21. C------------------------
  22. C Opérandes et résultat :
  23. C------------------------
  24. C
  25. C
  26. C 'BANDES_TOURNANTES'
  27. C : mot-clé indiquant que l'on utilise la méthode des bandes
  28. C tournantes
  29. C
  30. C MODE1 : Modèle sur lequel s'appuie le champ résultat
  31. C (type MMODEL), pour obtenir un champ par élément en sortie.
  32. C
  33. C MOT1 : mot-clef facultatif valant 'NOEUD','GRAVITE','RIGIDITE',
  34. C 'MASSE','STRESSES','FACE','VITESSE' ou 'PRESSION'
  35. C indiquant quels points supports prendre en compte dans la
  36. C génération du champ (défaut = 'NOEUD').
  37. C
  38. C MAIL1 : Maillage sur lequel s'appuie le champ résultat
  39. C (type MELEME), pour obtenir un champ par point en sortie.
  40. C
  41. C 'EXPO' : mot-clé indiquant que la loi de covariance est
  42. C exponentielle.
  43. C
  44. C 'SIGMA' : mot-clé suivi de :
  45. C
  46. C FLOT1 : écart-type du champ à générer (type FLOTTANT).
  47. C
  48. C 'MOYENNE' : mot-clé optionnel suivi de :
  49. C
  50. C FLOT2 : valeur de la moyenne du champ aléatoire (type FLOTTANT)
  51. C par défaut = 0.
  52. C
  53. C 'LAMBDA' : mot-clé (cas de la corrélation isotrope) suivi de :
  54. C
  55. C FLOT3 : longueur de corrélation isotrope (type FLOTTANT).
  56. C
  57. C 'LAMBDA1' : mots-clés (cas de la corrélation anisotrope)
  58. C ('LAMBDA2') autant que la dimension de la structure de corrélation,
  59. C ('LAMBDA3') suivis respectivement de :
  60. C
  61. C FLOT4 : longueurs de corrélation (type FLOTTANT) dans les 3
  62. C (FLOT5)
  63. C (FLOT6) directions principales.
  64. C
  65. C VEC4 : directions optionnelles orthogonales des axes principaux
  66. C (VEC5) de corrélation 1, 2, et 3 respectivement (type POINT).
  67. C (VEC6) Ils doivent être non nuls et orthogonaux.
  68. C Par défaut, ce sont les axes x, y et z.
  69. C
  70. C OBJ1 : champ résultat (type 'CHPOINT ' ou 'MCHAML' selon que
  71. C l'on donne un maillage ou un modèle en entrée),
  72. C diffus (si c'est un champ-point), une composante 'SCAL'.
  73. C
  74. C------------
  75. C Remarques :
  76. C------------
  77. C
  78. C 1. Les options 'RIGIDITE','MASSE','STRESSES' réclament un
  79. C modèle de mécanique.
  80. C
  81. C 2. Les options 'VITESSE','PRESSION' réclament un modèle
  82. C NAVIER-STOKES (non implémenté pour l'instant).
  83. C
  84. C 3. Les options 'GRAVITE','FACE' réclament un modèle
  85. C NAVIER-STOKES ou DARCY (usage de la table domaine)
  86. C
  87. C 4. L'option FACE n'est pas encore mise en service.
  88. C
  89. C--------------------------------------
  90. C Développements ultérieurs possibles :
  91. C--------------------------------------
  92. C
  93. C Génération aux points de gauss pour la MECA-FLUX (pression et vitesse)
  94. C
  95. C=======================================================================
  96. C
  97. IMPLICIT INTEGER(I-N)
  98. IMPLICIT REAL*8(A-H,O-Z)
  99. REAL*8 ZDIST, VALMOY, OMMAX
  100. C
  101. -INC CCOPTIO
  102. -INC CCREEL
  103. -INC CCGEOME
  104. -INC SMCOORD
  105. -INC SMELEME
  106. -INC SMMODEL
  107.  
  108. DIMENSION XDIR1(3),XDIR2(3),XDIR3(3)
  109. CHARACTER*20 MOTMET(2)
  110. CHARACTER*9 MOTD(1)
  111. CHARACTER*8 MOTL(1), MOTS(1), MOTLA(4), MOTM(1)
  112. CHARACTER*8 MOTOBJ(2), MOTSUP(8)
  113.  
  114. INTEGER IOBJ, IPOSI
  115.  
  116. LOGICAL AXES
  117. C
  118. DATA MOTMET /'BANDES_TOURNANTES','MATRICIELLE'/
  119. DATA MOTL /'EXPO '/
  120. DATA MOTS /'SIGMA '/
  121. DATA MOTLA /'LAMBDA ','LAMBDA1 ','LAMBDA2 ','LAMBDA3 '/
  122. DATA MOTM /'MOYENNE '/
  123. DATA MOTD /'DIRECTION'/
  124. DATA MOTSUP /'NOEUD','GRAVITE','RIGIDITE','MASSE','STRESSES',
  125. & 'FACE','VITESSE','PRESSION'/
  126.  
  127. C epsilon servant à différents tests (1.D-10)
  128. EPS = 1.D5 * (SQRT(XPETIT))
  129. c
  130. c ================ Lecture données ================
  131. c
  132. C
  133. C Lecture du mode de génération
  134. C -----------------------------
  135. CALL LIRMOT(MOTMET,2,IMET,1)
  136. IF (IERR.NE.0) RETURN
  137. *
  138. * Lecture du modèle ou du maillage de points
  139. * La présence du modèle indique que l'on désire un objet CHAMELEM
  140. * en sortie. Sinon, un maillage est fourni et on rendra un CHAMPOINT
  141. *
  142. CALL LIROBJ('MMODEL',MMODEL,0,IRET)
  143. IF (IERR.NE.0) RETURN
  144. IF (IRET.NE.0) THEN
  145. * Il y a un modèle
  146. IOBJ = 1
  147. ELSE
  148. * Il y a un maillage
  149. IOBJ = 2
  150. CALL LIROBJ('MAILLAGE',MELENT,1,IRET)
  151. IF (IERR.NE.0) RETURN
  152. ENDIF
  153. C
  154. C Lecture du support (points centre ou sommet) - facultatif
  155. C ------------------
  156. CALL LIRMOT(MOTSUP,8,IPOSI,0)
  157. IF (IERR.NE.0) RETURN
  158. IF (IPOSI.EQ.0) THEN
  159. C valeur par défaut = NOEUD
  160. IPOSI = 1
  161. ENDIF
  162. C
  163. C Lecture du mot-clé 'EXPO'
  164. C -------------------------
  165. CALL LIRMOT(MOTL,1,IRET,1)
  166. IF (IERR.NE.0) RETURN
  167. IF (IRET.EQ.0) THEN
  168. MOTERR(1:4) = 'EXPO'
  169. c Il manque le mot-clé %m1:4
  170. CALL ERREUR(396)
  171. RETURN
  172. ENDIF
  173. C
  174. C Lecture du mot-clé 'SIGMA'
  175. C --------------------------
  176. CALL LIRMOT(MOTS,1,IRET,1)
  177. IF (IERR.NE.0) RETURN
  178. IF (IRET.EQ.0) THEN
  179. MOTERR(1:4) = 'SIGM'
  180. c Il manque le mot-clé %m1:4
  181. CALL ERREUR(396)
  182. RETURN
  183. ENDIF
  184. C Lecture de la valeur de sigma (strictement supérieure à 0.D0)
  185. CALL LIRREE(ZSIG,1,IRET)
  186. IF (IERR.NE.0) RETURN
  187. IF (IRET.EQ.0) THEN
  188. MOTERR(1:4) = 'SIGM'
  189. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  190. CALL ERREUR(166)
  191. RETURN
  192. ENDIF
  193. IF (ZSIG.LE.0.D0) THEN
  194. REAERR(1) = REAL(ZSIG)
  195. REAERR(2) = REAL(0.D0)
  196. MOTERR(1:8) = ' SIGMA '
  197. c %m1:8 = %r1 inférieur à %r2
  198. CALL ERREUR(41)
  199. RETURN
  200. ENDIF
  201. C
  202. C Lecture du mot-clé 'MOYENNE'
  203. C ----------------------------
  204. CALL LIRMOT(MOTM,1,IRET,0)
  205. IF (IERR.NE.0) RETURN
  206. IF (IRET.EQ.0) THEN
  207. * valeur par défaut = 0
  208. VALMOY = 0.D0
  209. ELSE
  210. C Lecture de la valeur de la moyenne
  211. CALL LIRREE(VALMOY,1,IRET)
  212. IF (IERR.NE.0) RETURN
  213. IF (IRET.EQ.0) THEN
  214. MOTERR(1:4) = 'MOYE'
  215. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  216. CALL ERREUR(166)
  217. RETURN
  218. ENDIF
  219. ENDIF
  220. C
  221. C Lecture du ou des mot(s)-clé(s) 'LAMBDA' (isotrope) ou 'LAMBDAx' (anisotrope)
  222. C Initialisation des CLAMDx et XDIRx.
  223. C -----------------------------------------------------------------------------
  224. CALL LIRMOT(MOTLA,4,ILAM,1)
  225. IF (IERR.NE.0) RETURN
  226. IF (ILAM.EQ.0) THEN
  227. MOTERR(1:4) = 'LAMB'
  228. c Il manque le mot-clé %m1:4
  229. CALL ERREUR(396)
  230. RETURN
  231. ENDIF
  232.  
  233. IF (ILAM.EQ.1) THEN
  234. C Cas ISOTROPE
  235.  
  236. * la statistique a la même dimension que l'espace réel :
  237. LADIM = IDIM
  238.  
  239. C Lecture de la valeur de lambda (strictement supérieure à 0.D0)
  240. CALL LIRREE(CLAMDA,1,IRET)
  241. IF (IERR.NE.0) RETURN
  242. IF (IRET.EQ.0) THEN
  243. MOTERR(1:4) = 'LAMB'
  244. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  245. CALL ERREUR(166)
  246. RETURN
  247. ENDIF
  248. IF (CLAMDA.LE.0.D0) THEN
  249. REAERR(1) = REAL(CLAMDA)
  250. REAERR(2) = REAL(0.D0)
  251. MOTERR(1:8) = 'LAMBDA '
  252. c %m1:8 = %r1 inférieur à %r2
  253. CALL ERREUR(41)
  254. RETURN
  255. ENDIF
  256.  
  257. * mêmes longueurs de corrélation dans toutes les directions
  258. CLAMD1 = CLAMDA
  259. CLAMD2 = CLAMDA
  260. CLAMD3 = CLAMDA
  261. * les vecteurs principaux sont les axes x, y et z
  262. XDIR1(1) = 1.D0
  263. XDIR1(2) = 0.D0
  264. XDIR1(3) = 0.D0
  265. XDIR2(1) = 0.D0
  266. XDIR2(2) = 1.D0
  267. XDIR2(3) = 0.D0
  268. XDIR3(1) = 0.D0
  269. XDIR3(2) = 0.D0
  270. XDIR3(3) = 1.D0
  271.  
  272. ELSE
  273. C Cas ANISOTROPE
  274.  
  275. C axe 1 :
  276. C on doit avoir lu le mot-clef 'LAMBDA1'
  277. IF (ILAM.NE.2) THEN
  278. * Syntaxe incorrecte : on attend %m1:30
  279. MOTERR(1:30) = 'le mot-clef LAMBDA1 '
  280. CALL ERREUR(881)
  281. RETURN
  282. ENDIF
  283. C Lecture de la valeur de lambda1 (strictement supérieure à 0.D0)
  284. CALL LIRREE(CLAMD1,1,IRET)
  285. IF (IERR.NE.0) RETURN
  286. IF (IRET.EQ.0) THEN
  287. MOTERR(1:4) = 'LAMB'
  288. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  289. CALL ERREUR(166)
  290. RETURN
  291. ENDIF
  292. IF (CLAMD1.LE.0.D0) THEN
  293. REAERR(1) = REAL(CLAMD1)
  294. REAERR(2) = REAL(0.D0)
  295. MOTERR(1:8) = 'LAMBDA1 '
  296. c %m1:8 = %r1 inférieur à %r2
  297. CALL ERREUR(41)
  298. RETURN
  299. ENDIF
  300.  
  301. C Lecture optionnelle de la direction VEC1
  302. CALL LIROBJ('POINT',IPTV,0,IRET)
  303. IF (IERR.NE.0) RETURN
  304.  
  305. * si on ne donne pas d'axe, ce sont les axes par défaut, et la
  306. * statistique a la même dimensinonalité que l'espace réel.
  307. AXES = (IRET.NE.0)
  308.  
  309. IF (.NOT.AXES) THEN
  310. * pas de vecteurs => axes par défaut.
  311. XDIR1(1) = 1.D0
  312. XDIR1(2) = 0.D0
  313. XDIR1(3) = 0.D0
  314. XDIR2(1) = 0.D0
  315. XDIR2(2) = 1.D0
  316. XDIR2(3) = 0.D0
  317. XDIR3(1) = 0.D0
  318. XDIR3(2) = 0.D0
  319. XDIR3(3) = 1.D0
  320. * la statistique a la même dimension que l'espace réel :
  321. LADIM = IDIM
  322. ELSE
  323. C on charge le vecteur et on vérifie qu'il n'est pas de longueur nulle
  324. C on le normalise aussi.
  325. IREF = (IPTV-1) * (IDIM+1)
  326. SDIR = 0.D0
  327. DO 13 I=1,IDIM
  328. XDIR1(I) = XCOOR(IREF+I)
  329. SDIR = SDIR + (XDIR1(I) * XDIR1(I))
  330. 13 CONTINUE
  331. SDIR = SQRT(SDIR)
  332. C sinon, erreur :
  333. IF (SDIR.LT.EPS) THEN
  334. c Une direction ne peut pas être définie par un vecteur nul
  335. CALL ERREUR(239)
  336. RETURN
  337. ENDIF
  338. * normalisation
  339. XDIR1(1) = XDIR1(1) / SDIR
  340. XDIR1(2) = XDIR1(2) / SDIR
  341. XDIR1(3) = XDIR1(3) / SDIR
  342. * la statistique est au moins de dimension 1
  343. * (à surcharger si nécessaire) :
  344. LADIM = 1
  345. ENDIF
  346.  
  347. C axe 2 :
  348. C Si le mot-clef 'LAMBDA2' existe, stat 2D au moins
  349. CALL LIRMOT(MOTLA,4,ILAM,0)
  350. IF (IERR.NE.0) RETURN
  351.  
  352. IF ((ILAM.NE.0).AND.(ILAM.NE.3)) THEN
  353. * Syntaxe incorrecte : on attend %m1:30
  354. MOTERR(1:30) = 'le mot-clef LAMBDA2 '
  355. CALL ERREUR(881)
  356. RETURN
  357. ENDIF
  358. IF (ILAM.EQ.3) THEN
  359. * la statistique est au moins de dimension 2
  360. LADIM = 2
  361.  
  362. C Lecture de la valeur de lambda2 (strictement supérieure à 0.D0)
  363. CALL LIRREE(CLAMD2,1,IRET)
  364. IF (IERR.NE.0) RETURN
  365. IF (IRET.EQ.0) THEN
  366. MOTERR(1:4) = 'LAMB'
  367. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  368. CALL ERREUR(166)
  369. RETURN
  370. ENDIF
  371. IF (CLAMD2.LE.0.D0) THEN
  372. REAERR(1) = REAL(CLAMD2)
  373. REAERR(2) = REAL(0.D0)
  374. MOTERR(1:8) = 'LAMBDA2 '
  375. c %m1:8 = %r1 inférieur à %r2
  376. CALL ERREUR(41)
  377. RETURN
  378. ENDIF
  379.  
  380. C Lecture obligatoire de la direction VEC2 si on a donné VEC1
  381. IF (AXES) THEN
  382. CALL LIROBJ('POINT',IPTV,1,IRET)
  383. IF (IERR.NE.0) RETURN
  384.  
  385. IF (IRET.EQ.0) THEN
  386. * Syntaxe incorrecte : on attend %m1:30
  387. MOTERR(1:30) = 'un vecteur '
  388. CALL ERREUR(881)
  389. RETURN
  390. ENDIF
  391.  
  392. C on charge le vecteur et on vérifie qu'il n'est pas de longueur
  393. C nulle, et qu'il est bien perpendiculaire à VEC1.
  394. C on le normalise aussi.
  395. IREF = (IPTV-1) * (IDIM+1)
  396. SDIR = 0.D0
  397. PSCL = 0.D0
  398. DO 14 I=1,IDIM
  399. XDIR2(I) = XCOOR(IREF+I)
  400. SDIR = SDIR + (XDIR2(I) * XDIR2(I))
  401. PSCL = PSCL + (XDIR1(I) * XDIR2(I))
  402. 14 CONTINUE
  403. SDIR = SQRT(SDIR)
  404. * si VEC2 de longueur nulle
  405. IF (SDIR.LT.EPS) THEN
  406. c Une direction ne peut pas être définie par un vecteur nul
  407. CALL ERREUR(239)
  408. RETURN
  409. ENDIF
  410. * si VEC2 non perpendiculaire à VEC1
  411. IF ((ABS(PSCL)).GE.(EPS*SDIR*SDIR)) THEN
  412. c Les vecteurs définissant le repère local ne sont pas orthogonaux
  413. CALL ERREUR(161)
  414. RETURN
  415. ENDIF
  416. * orthogonalisation à VEC1 :
  417. XDIR2(1) = XDIR2(1) - (PSCL * XDIR1(1))
  418. XDIR2(2) = XDIR2(2) - (PSCL * XDIR1(2))
  419. XDIR2(3) = XDIR2(3) - (PSCL * XDIR1(3))
  420. * normalisation
  421. XDIR2(1) = XDIR2(1) / SDIR
  422. XDIR2(2) = XDIR2(2) / SDIR
  423. XDIR2(3) = XDIR2(3) / SDIR
  424. ENDIF
  425.  
  426. C axe 3 (si 3D) :
  427. IF (IDIM.EQ.3) THEN
  428. C Si le mot-clef 'LAMBDA3' existe, stat 3D
  429. CALL LIRMOT(MOTLA,4,ILAM,0)
  430. IF (IERR.NE.0) RETURN
  431.  
  432. IF ((ILAM.NE.0).AND.(ILAM.NE.4)) THEN
  433. * Syntaxe incorrecte : on attend %m1:30
  434. MOTERR(1:30) = 'le mot-clef LAMBDA3 '
  435. CALL ERREUR(881)
  436. RETURN
  437. ENDIF
  438. IF (ILAM.EQ.4) THEN
  439. * la statistique est de dimension 3
  440. LADIM = 3
  441.  
  442. C Lecture de la valeur de lambda3 (strictement supérieure à 0.D0)
  443. CALL LIRREE(CLAMD3,1,IRET)
  444. IF (IERR.NE.0) RETURN
  445. IF (IRET.EQ.0) THEN
  446. MOTERR(1:4) = 'LAMB'
  447. c Le mot-clé %m1:4 n'est pas suivi de la donnée correspondante
  448. CALL ERREUR(166)
  449. RETURN
  450. ENDIF
  451. IF (CLAMD3.LE.0.D0) THEN
  452. REAERR(1) = REAL(CLAMD3)
  453. REAERR(2) = REAL(0.D0)
  454. MOTERR(1:8) = 'LAMBDA3 '
  455. c %m1:8 = %r1 inférieur à %r2
  456. CALL ERREUR(41)
  457. RETURN
  458. ENDIF
  459.  
  460. C Lecture obligatoire de la direction VEC3 si on a donné
  461. C VEC1 et VEC2
  462. IF (AXES) THEN
  463. CALL LIROBJ('POINT',IPTV,1,IRET)
  464. IF (IERR.NE.0) RETURN
  465.  
  466. IF (IRET.EQ.0) THEN
  467. * Syntaxe incorrecte : on attend %m1:30
  468. MOTERR(1:30) = 'un vecteur '
  469. CALL ERREUR(881)
  470. RETURN
  471. ENDIF
  472.  
  473. C on charge le vecteur et on vérifie qu'il n'est pas de longueur
  474. C nulle, et qu'il est bien perpendiculaire à VEC1 et à VEC2.
  475. C on le normalise aussi.
  476. IREF = (IPTV-1) * (IDIM+1)
  477. SDIR = 0.D0
  478. PSCL = 0.D0
  479. PSCL2 = 0.D0
  480. DO 15 I=1,IDIM
  481. XDIR3(I) = XCOOR(IREF+I)
  482. SDIR = SDIR + (XDIR3(I) * XDIR3(I))
  483. PSCL = PSCL + (XDIR1(I) * XDIR3(I))
  484. PSCL2 = PSCL + (XDIR2(I) * XDIR3(I))
  485. 15 CONTINUE
  486. SDIR = SQRT(SDIR)
  487. * si VEC3 de longueur nulle
  488. IF (SDIR.LT.EPS) THEN
  489. c Une direction ne peut pas être définie par un vecteur nul
  490. CALL ERREUR(239)
  491. RETURN
  492. ENDIF
  493. * si VEC3 non perpendiculaire à VEC1 et VEC2
  494. IF (((ABS(PSCL )).GE.(EPS*SDIR*SDIR)).OR.
  495. & ((ABS(PSCL2)).GE.(EPS*SDIR*SDIR))) THEN
  496. c Les vecteurs définissant le repère local ne sont pas
  497. * orthogonaux
  498. CALL ERREUR(161)
  499. RETURN
  500. ENDIF
  501. * orthogonalisation à VEC1 :
  502. XDIR2(1) = XDIR2(1) - (PSCL * XDIR1(1))
  503. & - (PSCL2 * XDIR2(1))
  504. XDIR2(2) = XDIR2(2) - (PSCL * XDIR1(2))
  505. & - (PSCL2 * XDIR2(2))
  506. XDIR2(3) = XDIR2(3) - (PSCL * XDIR1(3))
  507. & - (PSCL2 * XDIR2(3))
  508. * normalisation
  509. XDIR3(1) = XDIR3(1) / SDIR
  510. XDIR3(2) = XDIR3(2) / SDIR
  511. XDIR3(3) = XDIR3(3) / SDIR
  512. ENDIF lit vec3
  513. ENDIF stat 3D
  514. ENDIF dime 3D
  515. ENDIF stat 2D
  516. ENDIF anisotrope
  517. c
  518. c ================ Travail ================
  519. c
  520. C Dans la suite, les coordonnées vont être adimensionnées par
  521. C Lambda. Donc toutes les données numériques seront calculées comme
  522. C si Lambda est isotrope égal à 1.
  523.  
  524. C Longueur minimale de description des hétérogénéités
  525. C pour déterminer la plage de variation des vecteurs d'onde
  526. ZDIST = 0.2D0
  527. * Pas de discrétisation de la bande (avec lambda = 1)
  528. IF (LADIM.EQ.1) THEN
  529. DELZET = ZDIST / 3.D0
  530. ELSE
  531. DELZET = ZDIST / 4.D0
  532. ENDIF
  533.  
  534. * Fréquence de coupure (avec lambda = 1),
  535. * elle doit être supérieure à 2 pi / dx
  536. OMMAX = 1.1D0 * (2.D0 * XPI / ZDIST)
  537.  
  538. * Génération
  539. IF (IOBJ.EQ.1) THEN
  540. * On veut un CHAMELEM en sortie
  541. CALL ALEA1(MMODEL,IPOSI,LADIM,XDIR1,XDIR2,XDIR3,
  542. & ZSIG,CLAMD1,CLAMD2,CLAMD3,VALMOY,DELZET,OMMAX)
  543. ELSEIF (IOBJ.EQ.2) THEN
  544. * On veut un CHAMPOINT en sortie
  545. CALL ALEA2(MELENT,LADIM,XDIR1,XDIR2,XDIR3,
  546. & ZSIG,CLAMD1,CLAMD2,CLAMD3,VALMOY,DELZET,OMMAX)
  547. ENDIF
  548. c
  549. c ================ Sortie ================
  550. c
  551. RETURN
  552. END
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales