Download surfp9.eso

Back to the list

   1 : C SURFP9    SOURCE    PV        07/11/23    21:19:44     5978           
   2 :       SUBROUTINE SURFP9 (NUMPT,U,V,DUV,msurfp)                                         
   3 : ************************************************************************        
   4 : *                                                                               
   5 : *                             S U R F P 9                                       
   6 : *                             -----------                                       
   7 : *                                                                               
   8 : * FONCTION:                                                                     
   9 : * ---------                                                                     
  10 : *                                                                               
  11 : *     REMPLIR LE TABLEAU DES COORDONNEES POUR UN POINT D'UNE SURFACE            
  12 : *     PARAMETREE.                                                               
  13 : *                                                                               
  14 : * MODULES UTILISES:                                                             
  15 : * -----------------                                                             
  16 : *                                                                               
  17 :       IMPLICIT INTEGER(I-N)
  18 :       IMPLICIT real*8 (a-h,o-z)
  19 : -INC CCOPTIO                                                                    
  20 : -INC CCGEOME                                                                    
  21 : -INC SMCOORD                                                                    
  22 : -INC TMSURFP                                                                    
  23 : *                                                                               
  24 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  25 : * -----------                                                                   
  26 : *                                                                               
  27 : *     NUMPT   (E)  NUMERO DU POINT.                                             
  28 : *     U,V     (E)  COORDONNEES PARAMETRIQUES DU POINT.                          
  29 : *     DUV     (E)  SI < 0, EGAL A L'OPPOSEE DE LA DENSITE DU POINT EN           
  30 : *                  UNITES PARAMETRIQUES.                                        
  31 : *                  SI = 0, ON PRENDRA LA DENSITE COURANTE.                      
  32 : *                  SI > 0, EGAL A LA DENSITE EN UNITES REELLES.                 
  33 : *    +MSURFP  (E)  POINTEUR DE SURFACE PARAMETREE.                              
  34 : *                  CE SEGMENT EST SUPPOSE ACTIF.                                
  35 : *                  LE SEGMENT "MCOFSU" DONT "MSURFP" POSSEDE LE POINTEUR        
  36 : *                  EST EGALEMENT SUPPOSE ACTIF.                                 
  37 : *    +DENSIT  (E)  VOIR LE COMMUN "CGEOME".                                     
  38 : *    +IDIM    (E)  VOIR LE COMMUN "COPTIO".                                     
  39 : *    +MCOORD  (E)  CE SEGMENT EST SUPPOSE ACTIF ET DE LONGUEUR                  
  40 : *                  SUFFISANTE.                                                  
  41 : *             (S)  COMPLETION DU TABLEAU "XCOOR".                               
  42 : *                                                                               
  43 :       INTEGER NUMPT                                                             
  44 :       REAL*8 U,V,DUV                                                            
  45 :                                                    
  46 : *                                                                               
  47 : * VARIABLES:                                                                    
  48 : * ----------                                                                    
  49 : *                                                                               
  50 :       REAL*8 D1,D2,D3,D4
  51 :       REAL*8 U1,V1,X,Y,Z,X1,Y1,Z1                                               
  52 : *                                                                               
  53 : * AUTEUR, DATE DE CREATION:                                                     
  54 : * -------------------------                                                     
  55 : *                                                                               
  56 : *     PASCAL MANIGOT     3 MARS 1987                                            
  57 : *                                                                               
  58 : * LANGAGE:                                                                      
  59 : * --------                                                                      
  60 : *                                                                               
  61 : *     ESOPE77 FORTRAN77 + EXTENSION: DECLARATION "REAL*8".                      
  62 : *                                                                               
  63 : ************************************************************************        
  64 : *                                                                               
  65 :       NUMPT1 = NUMPT - 1                                                        
  66 :       IDIMP1 = IDIM + 1                                                         
  67 : *                                                                               
  68 : *     COORDONNEES:                                                              
  69 : *                                                                               
  69 :       CALL SURFP0 (U,V,  X,Y,Z,msurfp)                                                 
  70 :       XCOOR(NUMPT1*IDIMP1+1) = X                                                
  71 :       XCOOR(NUMPT1*IDIMP1+2) = Y                                                
  72 :       IF (IDIM .EQ. 3) XCOOR(NUMPT1*IDIMP1+3) = Z                               
  73 : *                                                                               
  74 : *     DENSITE:                                                                  
  75 : *                                                                               
  76 :       IF (DUV .EQ. 0.D0) THEN                                                   
  77 :          XCOOR(NUMPT*IDIMP1) = DENSIT                                           
  78 :       ELSE IF (DUV .GT. 0.D0) THEN                                              
  79 :          XCOOR(NUMPT*IDIMP1) = DUV                                              
  80 :       ELSE                                                                      
  81 : *        LA DENSITE EST DETERMINEE EN CALCULANT LES DISTANCES REELLES DU        
  82 : *        POINT CONSIDERE AVEC LES POINTS (U+-DUV,V) ET (U,V+-DUV).              
  83 : *        C'EST LOURD MAIS C'EST SUR.                                            
  84 :          U1 = U - DUV                                                           
  85 :          V1 = V                                                                 
  85 :          CALL SURFP0 (U1,V1,  X1,Y1,Z1,msurfp)                                         
  86 :          D1 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2                                 
  87 :          D1 = SQRT(D1)                                                          
  88 :          U1 = U + DUV                                                           
  89 :          V1 = V                                                                 
  89 :          CALL SURFP0 (U1,V1,  X1,Y1,Z1,msurfp)                                         
  90 :          D2 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2                                 
  91 :          D2 = SQRT(D2)                                                          
  92 :          U1 = U                                                                 
  93 :          V1 = V - DUV                                                           
  93 :          CALL SURFP0 (U1,V1,  X1,Y1,Z1,msurfp)                                         
  94 :          D3 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2                                 
  95 :          D3 = SQRT(D3)                                                          
  96 :          U1 = U                                                                 
  97 :          V1 = V + DUV                                                           
  97 :          CALL SURFP0 (U1,V1,  X1,Y1,Z1,msurfp)                                         
  98 :          D4 = (X1-X)**2 + (Y1-Y)**2 + (Z1-Z)**2                                 
  99 :          D4 = SQRT(D4)                                                          
 100 :          XCOOR(NUMPT*IDIMP1) = (D1 + D2 + D3 + D4) / 4.                         
 101 :       END IF                                                                    
 102 : *                                                                               
 103 :       END                                                                       
 104 :  
 105 :  
 106 :  
 107 :  
 108 :  
 109 :  
 110 :  
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer