Télécharger devso2.eso

Retour à la liste

Numérotation des lignes :

  1. C DEVSO2 SOURCE BP208322 17/07/18 21:15:04 9498
  2. SUBROUTINE DEVSO2(ITRES)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. *--------------------------------------------------------------------*
  6. * *
  7. * Op{rateur DYNE : algorithme de Fu - de Vogelaere *
  8. * ________________________________________________ *
  9. * *
  10. * Remplissage des CHPOINTs/LISTREELS resultats. *
  11. * Sauvegarde des variables necessaires a une reprise de calcul *
  12. * *
  13. * Parametres: *
  14. * *
  15. * es ITRES Segment de sauvegarde des resultats *
  16. * *
  17. * Auteur, date de creation: *
  18. * *
  19. * Denis ROBERT-MOUGIN, le 1er juin 1989. *
  20. * *
  21. *--------------------------------------------------------------------*
  22. -INC CCOPTIO
  23. -INC SMCOORD
  24. -INC SMCHPOI
  25. -INC SMLREEL
  26. *
  27. SEGMENT,MTRES
  28. REAL*8 XRES(NRES,NCRES,NPRES),XREP(NREP,NCRES)
  29. REAL*8 XRESLA(NLSA,NPRES,NVALA),XRESLB(NLSB,NPRES,NVALB)
  30. REAL*8 XMREP(NLIAB,4,IDIMB)
  31. INTEGER ICHRES(NVES),IPORES(NRES,NPRES),IPOREP(NREP)
  32. INTEGER IPOLA(NLSA),INULA(NLSA),IPLRLA(NLSA,NVALA)
  33. INTEGER IPOLB(NLSB),INULB(NLSB),IPLRLB(NLSB,NVALB)
  34. INTEGER ILIREA(NLSA,NTVAR),ILIREB(NLSB,NTVAR)
  35. INTEGER ILIRNA(NLSA,NTVAR),ILIRNB(NLSB,NTVAR)
  36. INTEGER IPOLR(1),IMREP(NLIAB,2),IPPREP(NLIAB,4)
  37. INTEGER ILPOLA(NLIAA,2)
  38. ENDSEGMENT
  39. *
  40. MTRES = ITRES
  41. NRES = XRES(/1)
  42. NREP = XREP(/1)
  43. NCRES = XRES(/2)
  44. NPRES = XRES(/3)
  45. NLIAB = XMREP(/1)
  46. IDIMB = XMREP(/3)
  47. *
  48. * Boucle sur les variables demandees, pour tous les pas
  49. * de sortie:
  50. *
  51. IRE2 = 0
  52. DO 10 IRES=1,8
  53. IF (ICHRES(IRES).EQ.0) GOTO 10
  54. IRE2 = IRE2 + 1
  55. c -- cas CHPOINT --
  56. IF(ICHRES(IRES).EQ.1) THEN
  57. DO 20 IPAS=1,NPRES
  58. MCHPOI = IPORES(IRE2,IPAS)
  59. NSOUPO = IPCHP(/1)
  60. DO 30 ISOUPO=1,NSOUPO
  61. MSOUPO = IPCHP(ISOUPO)
  62. MPOVAL = IPOVAL
  63. N1 = VPOCHA(/1)
  64. NC = VPOCHA(/2)
  65. INCO = 0
  66. DO 40 J=1,N1
  67. DO 50 I=1,NC
  68. INCO = INCO + 1
  69. VPOCHA(J,I) = XRES(IRE2,INCO,IPAS)
  70. 50 CONTINUE
  71. 40 CONTINUE
  72. SEGDES,MPOVAL,MSOUPO
  73. 30 CONTINUE
  74. SEGDES,MCHPOI
  75. 20 CONTINUE
  76. c -- cas LISTREEL --
  77. ELSEIF(ICHRES(IRES).EQ.2) THEN
  78. DO 21 INCO=1,NCRES
  79. JG=NPRES
  80. SEGINI,MLREEL
  81. KLREEL = MLREEL
  82. IPORES(IRE2,INCO) = KLREEL
  83. DO IPAS=1,NPRES
  84. PROG(IPAS)=XRES(IRE2,INCO,IPAS)
  85. ENDDO
  86. SEGDES,MLREEL
  87. 21 CONTINUE
  88. ENDIF
  89. 10 CONTINUE
  90. *
  91. * Cas des CHPOINTs destines a la reprise de calcul:
  92. *
  93. DO 100 IREP=1,NREP
  94. MCHPOI = IPOREP(IREP)
  95. NSOUPO = IPCHP(/1)
  96. DO 110 ISOUPO=1,NSOUPO
  97. MSOUPO = IPCHP(ISOUPO)
  98. MPOVAL = IPOVAL
  99. N1 = VPOCHA(/1)
  100. NC = VPOCHA(/2)
  101. INCO = 0
  102. DO 120 J=1,N1
  103. DO 130 I=1,NC
  104. INCO = INCO + 1
  105. VPOCHA(J,I) = XREP(IREP,INCO)
  106. 130 CONTINUE
  107. * end do
  108. 120 CONTINUE
  109. * end do
  110. SEGDES,MPOVAL,MSOUPO
  111. 110 CONTINUE
  112. * end do
  113. SEGDES,MCHPOI
  114. 100 CONTINUE
  115. * end do
  116. *
  117. * Cas des variables de liaison necessaires a la reprise de calcul
  118. *
  119. IF (NLIAB.NE.0) THEN
  120. IDIM1 = IDIM + 1
  121. DO 200 I = 1,NLIAB
  122. ITYP = IMREP(I,1)
  123. IF (ITYP.EQ.3 .OR. ITYP.EQ.4 .OR. ITYP.EQ.5 .OR.
  124. & ITYP.EQ.6 .OR.
  125. & ITYP.EQ.13 .or. ityp.eq.-13 .or. ityp.eq.113
  126. & .OR. ITYP.EQ.14 .OR. ITYP.EQ.23 .OR.
  127. & ITYP.EQ.24 .OR. ITYP.EQ.33 .OR. ITYP.EQ.34) THEN
  128. DO 210 II = 1,3
  129. NUMPO = IPPREP(I,II)
  130. XCOOR(NUMPO * IDIM1) = 0.D0
  131. DO 210 ID = 1,IDIM
  132. XCOOR((NUMPO - 1) * IDIM1 + ID) = XMREP(I,II,ID)
  133. 210 CONTINUE
  134. * end do
  135. ELSE IF (ITYP.EQ.7) THEN
  136. DO 220 II = 1,3
  137. NUMPO = IPPREP(I,II)
  138. XCOOR(NUMPO * IDIM1) = 0.D0
  139. XCOOR((NUMPO - 1) * IDIM1 + 1) = XMREP(I,II,1)
  140. 220 CONTINUE
  141. * end do
  142. ELSE IF (ITYP.EQ.25 .OR. ITYP.EQ.26) THEN
  143. DO 230 II = 1,4
  144. NUMPO = IPPREP(I,II)
  145. XCOOR(NUMPO * IDIM1) = 0.D0
  146. DO 230 ID = 1,IDIM
  147. XCOOR((NUMPO - 1) * IDIM1 + ID) = XMREP(I,II,ID)
  148. 230 CONTINUE
  149. * end do
  150.  
  151. ENDIF
  152. 200 CONTINUE
  153. * end do
  154. ENDIF
  155. *
  156. END
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  

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