c***************************************************************** SUBROUTINE x_sur_h(x,label,n,xsh) c routine PUBLIC du module mod_spectroscopie c calcul des [X/H]=log(X/H)-log(X/H)soleil c X, H: abondance par gramme de l'élément c entrées: c x: table des abondances par gramme c label: noms des éléments c n: nombre d'éléments c sortie: c xsh: table des [X/H] c Auteur: P. Morel, Laboratoire Lagrange, O.C.A., CESAM2k c----------------------------------------------------------------------- USE mod_kind IMPLICIT NONE REAL (kind=dp), INTENT(in), DIMENSION(:) :: x INTEGER, INTENT(in) :: n CHARACTER (len=4), INTENT(in), DIMENSION(:) :: label REAL (kind=dp), INTENT(out), DIMENSION(:) :: xsh INTEGER, PARAMETER :: nelem=28 REAL (kind=dp), SAVE, DIMENSION(nelem) :: a, m INTEGER :: i, j CHARACTER (len=4), SAVE, DIMENSION(nelem) :: nom_elem LOGICAL, SAVE :: init=.TRUE. c------------------------------------------------------------------- 2000 FORMAT(8es10.3) IF(init)THEN init=.FALSE. c Abondances solaires actuelles d'OPAL a=Log10(X/H)+12 c repris par Varenne & Monier A&A351,247, table 4 p. 262 a=(/ 12.00d0, 10.99d0, 1.16d0, 1.15d0, 2.60d0, 8.55d0, 7.97d0, 1 8.87d0, 4.56d0, 8.08d0, 6.33d0, 7.58d0, 6.47d0, 7.55d0, 2 5.45d0, 7.21d0, 5.50d0, 6.52d0, 5.12d0, 6.36d0, 3.17d0, 3 5.02d0, 4.00d0, 5.67d0, 5.39d0, 7.50d0, 4.92d0, 6.25d0 /) a=a-a(1) nom_elem=(/ ' H1 ','He4 ','Li7 ','Be9 ','B10 ','C12 ','N14 ', 1 'O16 ','F19 ','Ne20','Na23','Mg24','Al27','Si28', 2 'P31 ','S32 ','Cl35','Ar40','K39 ','Ca40','Sc45', 3 'Ti48','V51 ','Cr52','Mn55','Fe56','Co59','Ni59' /) m=(/ 1.008d0, 4.0026d0, 6.941d0, 9.0122d0, 10.811d0, 12.0111d0, 1 14.0067d0, 15.9994d0, 18.9984d0, 20.179d0, 22.9898d0, 24.305d0, 2 26.9815d0, 28.086d0, 2 30.9738d0, 32.06d0, 35.453d0, 39.948d0, 3 39.102d0, 40.08d0, 44.956d0, 47.90d0, 50.9414d0, 51.996d0, 4 54.938d0, 55.847d0, 58.9332d0, 58.71d0 /) m=m(1)/m ENDIF xsh=-100.d0 IF(x(1) > 0.d0)THEN B1: DO i=1,n IF(x(i) <= 0.d0)CYCLE B1 B2: DO j=1,nelem IF(label(i) /= nom_elem(j))CYCLE B2 xsh(i)=LOG10(x(i)/x(1)*m(j))-a(j) ENDDO B2 ENDDO B1 ENDIF RETURN END SUBROUTINE x_sur_h