Télécharger venv.eso

Retour à la liste

Numérotation des lignes :

venv
  1. C VENV SOURCE PV 08/05/13 21:15:05 6100
  2.  
  3. SUBROUTINE VENV
  4.  
  5. IMPLICIT INTEGER (I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10.  
  11. C LOCHAI dans CCNOYAU.INC
  12. CHARACTER*(LOCHAI) CVARENV
  13. EQUIVALENCE (CVARENV,IVARENV)
  14.  
  15. CHARACTER CHARUNI
  16. CHARACTER*63 CHARREF
  17.  
  18. DATA CHARREF( 1:26) / 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' /
  19. DATA CHARREF(27:52) / 'abcdefghijklmnopqrstuvwxyz' /
  20. DATA CHARREF(53:63) / '_0123456789'/
  21.  
  22. C= Initialisations
  23. CVARENV=' '
  24. LVARENV=0
  25.  
  26. C= Lecture de l'unique argument (nom de la variable d'environnement)
  27. CALL LIRCHA(CVARENV,1,LVARENV)
  28. IF (IERR.NE.0) RETURN
  29.  
  30. C= Enlevement des espaces du nom de la variable
  31. j=0
  32. DO i=1,LVARENV
  33. CHARUNI=CVARENV(i:i)
  34. IF (CHARUNI.NE.' ') THEN
  35. j=j+1
  36. CVARENV(j:j)=CHARUNI
  37. ENDIF
  38. ENDDO
  39. LVARENV=j
  40. IF (LVARENV.EQ.0) THEN
  41. CALL ERREUR(1008)
  42. RETURN
  43. ENDIF
  44.  
  45. C= Verification de la validite du nom de la variable (caracteres utilises)
  46. C= Le premier caractere doit etre une lettre ou le symbole "_".
  47. CHARUNI=CVARENV(1:1)
  48. DO j=1,53
  49. IF (CHARUNI.EQ.CHARREF(j:j)) GOTO 10
  50. ENDDO
  51. CALL ERREUR(1008)
  52. RETURN
  53. C= Les caracteres suivants sont des lettres, chiffres ou "_".
  54. 10 CONTINUE
  55. DO i=2,LVARENV
  56. CHARUNI=CVARENV(i:i)
  57. DO j=1,63
  58. IF (CHARUNI.EQ.CHARREF(j:j)) GOTO 20
  59. ENDDO
  60. CALL ERREUR(1008)
  61. RETURN
  62. 20 CONTINUE
  63. ENDDO
  64.  
  65. C= Appel au sousprogramme Esope pour obtenir le contenu de la variable
  66. CVARENV=CVARENV(1:LVARENV)//CHAR(0)
  67. lvarenv=500
  68. CALL OOOZEN(IVARENV,LVARENV)
  69.  
  70. C= Ecriture du contenu de la variable
  71. C= Si elle n'est pas definie, on renvoie un mot/chaine d'un seul espace.
  72. IF (LVARENV.EQ.0) THEN
  73. CALL ECRCHA(' ')
  74. ELSE
  75. CALL ECRCHA(CVARENV(1:LVARENV))
  76. ENDIF
  77.  
  78. RETURN
  79. END
  80.  
  81.  
  82.  
  83.  

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