root / src / ConvertNumAt.f90 @ 2
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 |