Télécharger wrsolu.eso

Retour à la liste

Numérotation des lignes :

wrsolu
  1. C WRSOLU SOURCE CHAT 05/01/13 04:12:56 5004
  2. SUBROUTINE WRSOLU(MSOLUT,IRETOU,IFORM)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. C=======================================================================
  6. C CE SUBROUTINE ECRIT SUR LE FICHIER IOSAU UN OBJET MSOLUT
  7. C APPELE PAR WRPIL
  8. C APPELLE : SOPAPF ECDIFE ECDIFR
  9. C ECRIT PAR FARVACQUE - REPRIS PAR LENA
  10. C=======================================================================
  11. C
  12. DIMENSION ILENA(10)
  13. DIMENSION ITABM1(2)
  14. -INC PPARAM
  15. -INC CCOPTIO
  16. -INC SMSOLUT
  17. C-----------------------------------------
  18. C=======================================================================
  19. C
  20. C
  21. IRETOU=0
  22. ILENA(1)=0
  23. ILENA(2)=0
  24. C ... SI LE MSOLUT EST NUL ON MET LES 2 VAL DE TETE A ZERO POUR LE RESTAURER
  25. IF (MSOLUT.NE.0) THEN
  26. SEGACT MSOLUT
  27. NIPO=MSOLIS(/1)
  28. ILENA(1) = NIPO
  29. ILENA(2) = MSOLIS(3)
  30. ENDIF
  31. NTOTO=2
  32. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  33.  
  34. IF (MSOLUT.EQ.0) GO TO 110
  35.  
  36. NTOTO=2
  37. READ (ITYSOL,FMT='(2A4)') ITABM1(1),ITABM1(2)
  38. CALL ECDIFM (IOSAU,NTOTO,ITABM1,IFORM)
  39. CALL ECDIEE (IOSAU,NIPO,MSOLIS,IFORM)
  40. CALL ECDIFE (IOSAU,NIPO,MSOLIT,IFORM)
  41.  
  42. C ... ON PREND LES MSOLIS UN PAR UN
  43.  
  44. C ... LISTE DES TEMPS ...
  45. MSOLRE = MSOLIS(1)
  46. IF (MSOLRE.NE.0) THEN
  47. SEGACT MSOLRE
  48. N= SOLRE(/1)
  49. ILENA(1)=N
  50. NTOTO=1
  51. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  52. CALL ECDIFR (IOSAU,N,SOLRE(1),IFORM)
  53. SEGDES MSOLRE
  54. ENDIF
  55.  
  56. C ... LISTE DES PAS ...
  57. MSOLEN=MSOLIS(2)
  58. IF (MSOLEN.NE.0) THEN
  59. SEGACT MSOLEN
  60. N=ISOLEN(/1)
  61. ILENA(1)=N
  62. NTOTO=1
  63. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  64. CALL ECDIEE (IOSAU,N,ISOLEN(1),IFORM)
  65. SEGDES MSOLEN
  66. ENDIF
  67.  
  68. C ... LISTE DE MMODE ...
  69. MSOLEN=MSOLIS(4)
  70. IF (MSOLEN.NE.0) THEN
  71. SEGACT MSOLEN
  72. N=ISOLEN(/1)
  73. ILENA(1)=N
  74. NTOTO=1
  75. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  76. DO 20 IPAS =1,N
  77. MMODE=ISOLEN(IPAS)
  78. IF (MMODE.EQ.0) THEN
  79. ILENA(1)=IPAS
  80. ILENA(2)=0
  81. ILENA(3)=0
  82. NTOTO=3
  83. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  84. ELSE
  85. SEGACT MMODE
  86. LVALM=FMMODD(/1)
  87. NIMOD=IMMODD(/1)
  88. ILENA(1)=IPAS
  89. ILENA(2)=LVALM
  90. ILENA(3)=NIMOD
  91. NTOTO=3
  92. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  93. CALL ECDIFR (IOSAU,LVALM,FMMODD,IFORM)
  94. CALL ECDIFE (IOSAU,NIMOD,IMMODD,IFORM)
  95. SEGDES MMODE
  96. ENDIF
  97. 20 CONTINUE
  98. SEGDES MSOLEN
  99. 13 ENDIF
  100.  
  101. C ... ON VA ENREGISTRER LES POINTEURS CHANGES ...
  102. DO 18 II=5,NIPO
  103. IF(MSOLIS(II).EQ.0) GOTO 18
  104. MSOLEN=MSOLIS(II)
  105. SEGACT MSOLEN
  106. NPAS=ISOLEN(/1)
  107. ILENA(1)=NPAS
  108. NTOTO=1
  109. CALL ECDIFE (IOSAU,NTOTO,ILENA(1),IFORM)
  110. CALL ECDIFE (IOSAU,NPAS,ISOLEN(1),IFORM)
  111. 18 CONTINUE
  112. 110 CONTINUE
  113. 11 RETURN
  114. END
  115.  
  116.  

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