Statistiques
| Révision :

root / src / ConvertNumAt.f90 @ 4

Historique | Voir | Annoter | Télécharger (896 octet)

1 1 equemene
      FUNCTION ConvertNumAt(ATOM)
2 1 equemene
3 1 equemene
      use Path_module, only : Nom, max_Z
4 1 equemene
5 1 equemene
      IMPLICIT NONE
6 1 equemene
7 1 equemene
      INTEGER(4) :: I,Long,ConvertNumAt,IC
8 1 equemene
      character(*) :: ATOM
9 1 equemene
      CHARACTER(3) :: ATOME
10 1 equemene
      CHARACTER(10) :: L_Atom
11 1 equemene
12 1 equemene
!     Verifie qu'il n'y a que des lettres et des espaces dans ATOM
13 1 equemene
14 1 equemene
      L_atom=ADJUSTL(Atom)
15 1 equemene
      IF (ATOM(1:1).LT.'A') L_ATOM(1:1)=' '
16 1 equemene
      IC=Ichar(ATOM(1:1))
17 1 equemene
      IF ((ic.le.123).AND.(ic.ge.97)) L_ATOM(1:1)=CHAr(IC-32)
18 1 equemene
      IF (ATOM(2:2).LT.'A') L_ATOM(2:2)=' '
19 1 equemene
      IC=Ichar(ATOM(2:2))
20 1 equemene
      IF ((ic.le.123).AND.(ic.ge.97)) L_ATOM(2:2)=CHAr(IC-32)
21 1 equemene
22 1 equemene
!     Justifie le nom sur la droite (et non sur la gauche comme souvent...)
23 1 equemene
      Long=INDEX(L_ATOM,' ')-1
24 1 equemene
      ATOME=' ' // L_ATOM(1:2)
25 1 equemene
      IF (Long.EQ.1) L_ATOM=ATOME(1:2)
26 1 equemene
      I=max_Z
27 1 equemene
      DO WHILE ((nom(I).NE.L_ATOM(1:2)) .AND. (I.GT.0))
28 1 equemene
         I=I-1
29 1 equemene
      END DO
30 1 equemene
31 1 equemene
      ConvertNumAT=I
32 1 equemene
33 1 equemene
      END