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