c****************************************************************** SUBROUTINE abon_ini c routine private du module mod_nuc c initialisation des abondances, des rapports isotopiques, c des charges des éléments. Les abondances initiales des isotopes c utilisés dans le réseau nucléaire seront déduites de ces valeurs c initiales suivant la chaine de réactions utilisées et les isotopes c seulement diffusés. c source : ftp:://www-phys.llnl.gov/pub/opal c pour ajouter un élément (si on ne satisfait pas des élémnts de OPAL) : c - dans le module mod_nuc augmenter le PARAMETER nelem_ini d'une c unité, Ex: nelem_ini=28 c - dans cette routine ajouter son nom et sa masse c Ex: elem(29)='? ' ; m(29)=**.**d0 c Auteur: P.Morel, Département Cassiopée, O.C.A.,CESAM2k c Conseils de F.Thévenin, Département Cassiopée, O.C.A. c contributions d'Yveline Lebreton c----------------------------------------------------------------------- USE mod_donnees, ONLY : abon_m, eps_ini, garde_xish, langue, li_ini, 1 ln_Tli, modif_chim, nom_abon, nom_fich2, x0, y0, z0, zsx_sol !YL USE mod_kind USE mod_variables, ONLY : sortie IMPLICIT NONE REAL(kind=dp), DIMENSION(0:28) :: abon_relam, add, nisnh REAL(kind=dp) :: add_Li, add_Be, add_B, add_C, 1 add_N, add_O, add_F, add_Ne, add_Na, add_Mg, add_Al, add_Si, 2 add_P, add_S, add_Cl, add_Ar, add_K, add_Ca, add_Sc, add_Ti, 3 add_V, add_Cr, add_Mn, add_Fe, add_Co, add_Ni, add_Z, fesh, 4 sniai, zsx INTEGER :: i LOGICAL :: ok CHARACTER (len=50) :: chain NAMELIST/nl_mixture/ab NAMELIST/nl_rap_iso/be7sbe9, be7sz, c13sc12, h2sh1, 1 he3she4, he3she4z, li6sli7, mg25smg24, mg26smg25, ne22sne20, 2 neutronsz, n13sn14, n15sn14, o17so16, o18so16 !YLD6 NAMELIST/nl_modif_mix/ add_Li, add_Be, add_B, add_C, 1 add_N, add_O, add_F, add_Ne, add_Na, add_Mg, add_Al, add_Si, 2 add_P, add_S, add_Cl, add_Ar, add_K, add_Ca, add_Sc, add_Ti, 3 add_V,add_Cr, add_Mn, add_Fe, add_Co, add_Ni, add_Z c------------------------------------------------------------------- 2000 FORMAT(8es10.3) c ln_Tli : température au dessus de laquelle il n'y a pas de lithium c inital pour le modèle de ZAMS Li initial ln_Tli=LOG(3.d6) ; li_ini=1.d-15 c charges et masses (OPAL) des éléments initiaux des mixtures de OPAL (sauf neutron) c=(/ (i, i=0,nelem_ini) /) elem(0)=' n' ; m(0)=1.008665d0 elem(1)=' H' ; m(1)=1.0079d0 elem(2)='He' ; m(2)=4.0026d0 elem(3)='Li' ; m(3)=6.941d0 elem(4)='Be' ; m(4)=9.0122d0 elem(5)=' B' ; m(5)=10.811d0 elem(6)=' C' ; m(6)=12.011d0 elem(7)=' N' ; m(7)=14.0067d0 elem(8)=' O' ; m(8)=15.9994d0 elem(9)=' F' ; m(9)=18.9984d0 elem(10)='Ne' ; m(10)=20.179d0 elem(11)='Na' ; m(11)=22.98977d0 elem(12)='Mg' ; m(12)=24.305d0 elem(13)='Al' ; m(13)=26.98154d0 elem(14)='Si' ; m(14)=28.0855d0 elem(15)=' P' ; m(15)=30.97376d0 elem(16)=' S' ; m(16)=32.06d0 elem(17)='Cl' ; m(17)=35.453d0 elem(18)='Ar' ; m(18)=39.948d0 elem(19)=' K' ; m(19)=39.0983d0 elem(20)='Ca' ; m(20)=40.08d0 elem(21)='Sc' ; m(21)=44.956d0 elem(22)='Ti' ; m(22)=47.90d0 elem(23)=' V' ; m(23)=50.9414d0 elem(24)='Cr' ; m(24)=51.996d0 elem(25)='Mn' ; m(25)=54.938d0 elem(26)='Fe' ; m(26)=55.847d0 elem(27)='Co' ; m(27)=58.9332d0 elem(28)='Ni' ; m(28)=58.7d0 c abondances initiales, non modifiable pour les neutrons avec "mon_modele.modif_mix" ab=1.d-100 SELECT CASE(nom_abon) CASE('meteorites_ag') !Z/X=2.672E-02, [Fe/H]= 7.509-12, Z= 1.890E-02 SELECT CASE(langue) CASE('english') WRITE(*,1001) ; WRITE(2,1001) 1001 FORMAT('Meteoritic mixture of Anders & Grevesse 89') CASE DEFAULT WRITE(*,1) ; WRITE(2,1) 1 FORMAT('Mixture des météorites de Anders & Grevesse 89') END SELECT !la normalisation à H=1.d12 effectuée plus loin ab(1)=2.79d10 ; ab(2)=2.72d9 ; ab(3)=57.1d0 ; ab(4)=0.73d0 ; ab(5)=21.2d0 ab(6)=1.01d7 ; ab(7)=3.13d6 ; ab(8)=2.38d7 ; ab(9)=843.d0 ; ab(10)=3.44d6 ab(11)=5.74d4 ; ab(12)=1.074d6 ; ab(13)=8.49d4 ; ab(14)=1.d6 ; ab(15)=1.04d4 ab(16)=5.15d5 ; ab(17)=5240.d0 ; ab(18)=1.01d5 ; ab(19)=3370.d0 ; ab(20)=6.11d4 ab(21)=34.2d0 ; ab(22)=2400.d0 ; ab(23)=293.d0 ; ab(24)=1.35d4 ; ab(25)=9550.d0 ab(26)=9.d5 ; ab(27)=2250.d0 ; ab(28)=4.93d4 CASE('meteorites_gs') !Z/X=2.293E-02, [Fe/H]=7.5-12, Z= 1.685E-02 SELECT CASE(langue) CASE('english') WRITE(*,1026) ; WRITE(2,1026) 1026 FORMAT('Meteoritic mixture of Grevesse & Sauval 98') CASE DEFAULT WRITE(*,26) ; WRITE(2,26) 26 FORMAT('Mixture des météorites de Grevesse & Sauval 98') END SELECT ab(1)=12.d0 ; ab(2)=10.93d0 ; ab(3)=3.31d0 ; ab(4)=1.42d0 ; ab(5)=2.79d0 ab(6)=8.52d0 ; ab(7)=7.920d0 ; ab(8)=8.83d0 ; ab(9)=4.48d0 ; ab(10)=8.08d0 ab(11)=6.32d0 ; ab(12)=7.58d0 ; ab(13)=6.49d0 ; ab(14)=7.56d0 ; ab(15)=5.56d0 ab(16)=7.20d0 ; ab(17)=5.28d0 ; ab(18)=6.40d0 ; ab(19)=5.13d0 ; ab(20)=6.35d0 ab(21)=3.10d0 ; ab(22)=4.94d0 ; ab(23)=4.02d0 ; ab(24)=5.69d0 ; ab(25)=5.53d0 ab(26)=7.50d0 ; ab(27)=4.91d0 ; ab(28)=6.25d0 ab=10.d0**ab !car données en LOG10 CASE('meteorites_ags') !Z/X=46.72, [Fe/H]=11.20-12, Z=9.790E-01 SELECT CASE(langue) !X= 2.095E-02, Y= 9.125E-09 CASE('english') WRITE(*,1030) ; WRITE(2,1030) !table d'Yveline Lebreton 1030 FORMAT('Meteoritic mixture of Asplund Grevesse & Sauval 05') CASE DEFAULT WRITE(*,30) ; WRITE(2,30) 30 FORMAT('Mixture des météorites de Asplund Grevesse & Sauval 05') END SELECT ab(1)=8.25d0 ; ab(2)=1.29d0 ; ab(3)=3.25d0 ; ab(4)=1.38d0 ; ab(5)=2.75d0 ab(6)=7.40d0 ; ab(7)=6.25d0 ; ab(8)=8.39d0 ; ab(9)=4.43d0 ; ab(10)=-1.06d0 ab(11)=6.27d0 ; ab(12)=7.53d0 ; ab(13)=6.43d0 ; ab(14)=7.51d0 ; ab(15)=5.40d0 ab(16)=7.16d0 ; ab(17)=5.23d0 ; ab(18)=-0.45d0 ; ab(19)=5.06d0 ; ab(20)=6.29d0 ab(21)=3.04d0 ; ab(22)=4.89d0 ; ab(23)=3.97d0 ; ab(24)=5.63d0 ; ab(25)=5.47d0 ab(26)=7.45d0 ; ab(27)=4.86d0 ; ab(28)=6.19d0 ab=ab-ab(1)+12.d0 !normalisation à H=1.d12 ab=10.d0**ab !car données en LOG10 CASE('meteorites_agss') !Z/X=46.72, [Fe/H]=11.20-12, Z=9.790E-01 SELECT CASE(langue) !X= 2.095E-02, Y= 9.125E-09 CASE('english') WRITE(*,1032) ; WRITE(2,1032) !table arXiv:0909.0948v1 du 04.09.09 1032 FORMAT('Meteoritic mixture of Asplund, Grevesse, Sauval & Scott 09') CASE DEFAULT WRITE(*,32) ; WRITE(2,32) 32 FORMAT('Mixture météoritique de Asplund, Grevesse, Sauval & Scott 09') END SELECT ab(1)=8.22d0 ; ab(2)=1.29d0 ; ab(3)=3.26d0 ; ab(4)=1.30d0 ; ab(5)=2.79d0 ab(6)=7.39d0 ; ab(7)=6.26d0 ; ab(8)=8.40d0 ; ab(9)=4.42d0 ; ab(10)=-1.12d0 ab(11)=6.27d0 ; ab(12)=7.53d0 ; ab(13)=6.43d0 ; ab(14)=7.51d0 ; ab(15)=5.43d0 ab(16)=7.15d0 ; ab(17)=5.23d0 ; ab(18)=-0.5d0 ; ab(19)=5.08d0 ; ab(20)=6.29d0 ab(21)=3.05d0 ; ab(22)=4.91d0 ; ab(23)=3.96d0 ; ab(24)=5.64d0 ; ab(25)=5.48d0 ab(26)=7.45d0 ; ab(27)=4.87d0 ; ab(28)=6.20d0 ab=ab-ab(1)+12.d0 !normalisation à H=1.d12 ab=10.d0**ab !car données en LOG10 CASE('solaire_gn') !Z/X=2.440E-02, [Fe/H]= 7.5-12, Z= 1.727E-02 SELECT CASE(langue) CASE('english') WRITE(*,1002) ; WRITE(2,1002) 1002 FORMAT('Solar mixture of Grevesse & Noels 93') CASE DEFAULT WRITE(*,2) ; WRITE(2,2) 2 FORMAT('Mixture solaire de Grevesse & Noels 93') END SELECT ab(1)=12.00d0 ; ab(2)=10.99d0 ; ab(3)=1.16d0 ; ab(4)=1.15d0 ; ab(5)=2.60d0 ab(6)=8.55d0 ; ab(7)=7.97d0 ; ab(8)=8.87d0 ; ab(9)=4.56d0 ; ab(10)=8.08d0 ab(11)=6.33d0 ; ab(12)=7.58d0 ; ab(13)=6.47d0 ; ab(14)=7.55d0 ; ab(15)=5.45d0 ab(16)=7.21d0 ; ab(17)=5.5d0 ; ab(18)=6.52d0 ; ab(19)=5.12d0 ; ab(20)=6.36d0 ab(21)=3.17d0 ; ab(22)=5.02d0 ; ab(23)=4.d0 ; ab(24)=5.67d0 ; ab(25)=5.39d0 ab(26)=7.5d0 ; ab(27)=4.92d0 ; ab(28)=6.25d0 ab=10.d0**ab !car données en LOG10 CASE('solaire_gs') !Z/X=2.307E-02, [Fe/H]=7.5-12, Z= 1.695E-02 SELECT CASE(langue) CASE('english') WRITE(*,1017) ; WRITE(2,1017) 1017 FORMAT('Solar mixture of Grevesse & Sauval 98') CASE DEFAULT WRITE(*,17) ; WRITE(2,17) 17 FORMAT('Mixture solaire de Grevesse & Sauval 98') END SELECT ab(1)=12.d0 ; ab(2)=10.93d0 ; ab(3)=1.10d0 ; ab(4)=1.40d0 ; ab(5)=2.55d0 ab(6)=8.52d0 ; ab(7)=7.920d0 ; ab(8)=8.83d0 ; ab(9)=4.56d0 ; ab(10)=8.08d0 ab(11)=6.33d0 ; ab(12)=7.58d0 ; ab(13)=6.47d0 ; ab(14)=7.55d0 ; ab(15)=5.45d0 ab(16)=7.33d0 ; ab(17)=5.50d0 ; ab(18)=6.40d0 ; ab(19)=5.12d0 ; ab(20)=6.36d0 ab(21)=3.17d0 ; ab(22)=5.02d0 ; ab(23)=4.00d0 ; ab(24)=5.67d0 ; ab(25)=5.39d0 ab(26)=7.50d0 ; ab(27)=4.92d0 ; ab(28)=6.25d0 ab=10.d0**ab !car données en LOG10 CASE('solaire_ags03') !Z/X=0.0171, [Fe/H]=7.45-12, Z= 1.262E-02 SELECT CASE(langue) !Asplund 2003, ASP Conf. Series vol 304. CASE('english') !données communiquées par Yveline WRITE(*,1029) ; WRITE(2,1029) 1029 FORMAT('Solar mixture of Asplund Grevesse & Sauval 03') CASE DEFAULT WRITE(*,29) ; WRITE(2,29) 29 FORMAT('Mixture solaire de Asplund Grevesse & Sauval 03') END SELECT ab(1)=12.00d0 ; ab(2)=10.93d0 ; ab(3)=1.10d0 ; ab(4)=1.40d0 ; ab(5)=2.55d0 ab(6)=8.41d0 ; ab(7)=7.80d0 ; ab(8)=8.66d0 ; ab(9)=4.56d0 ; ab(10)=7.84d0 ab(11)=6.33d0 ; ab(12)=7.58d0 ; ab(13)=6.47d0 ; ab(14)=7.51d0 ; ab(15)=5.45d0 ab(16)=7.33d0 ; ab(17)=5.5d0 ; ab(18)=6.18d0 ; ab(19)=5.12d0 ; ab(20)=6.36d0 ab(21)=3.17d0 ; ab(22)=5.02d0 ; ab(23)=4.d0 ; ab(24)=5.67d0 ; ab(25)=5.39d0 ab(26)=7.45d0 ; ab(27)=4.92d0 ; ab(28)=6.25d0 ab=10.d0**ab !car données en LOG10 CASE('solaire_ags05') !Z/X=0.0166, [Fe/H]=7.45-12, Z= 1.220E-02 SELECT CASE(langue) CASE('english') WRITE(*,1031) ; WRITE(2,1031) !table de ASP conf. 336, 25, 2005 1031 FORMAT('Solar mixture of Asplund Grevesse & Sauval 05') CASE DEFAULT WRITE(*,31) ; WRITE(2,31) 31 FORMAT('Mixture solaire de Asplund Grevesse & Sauval 05') END SELECT ab(1)=12.00d0 ; ab(2)=10.93d0 ; ab(3)=1.05d0 ; ab(4)=1.38d0 ; ab(5)=2.70d0 ab(6)=8.39d0 ; ab(7)=7.78d0 ; ab(8)=8.66d0 ; ab(9)=4.56d0 ; ab(10)=7.84d0 ab(11)=6.17d0 ; ab(12)=7.53d0 ; ab(13)=6.37d0 ; ab(14)=7.51d0 ; ab(15)=5.36d0 ab(16)=7.14d0 ; ab(17)=5.50d0 ; ab(18)=6.18d0 ; ab(19)=5.08d0 ; ab(20)=6.31d0 ab(21)=3.05d0 ; ab(22)=4.90d0 ; ab(23)=4.00d0 ; ab(24)=5.64d0 ; ab(25)=5.39d0 ab(26)=7.45d0 ; ab(27)=4.92d0 ; ab(28)=6.23d0 ab=10.d0**ab !car données en LOG10 CASE('solaire_agss') !X=0.7154, Y=0.2703, Z=0.0142, Z/X=0.0199 SELECT CASE(langue) CASE('english') WRITE(*,1033) ; WRITE(2,1033) !table arXiv:0909.0948v1 du 04.09.09 1033 FORMAT('Solar mixture of Asplund Grevesse, Sauval & Scott 09') CASE DEFAULT WRITE(*,33) ; WRITE(2,33) 33 FORMAT('Mixture solaire de Asplund Grevesse, Sauval & Scott 09') END SELECT ab(1)=12.00d0 ; ab(2)=10.93d0 ; ab(3)=1.05d0 ; ab(4)=1.38d0 ; ab(5)=2.70d0 ab(6)=8.43d0 ; ab(7)=7.83d0 ; ab(8)=8.69d0 ; ab(9)=4.56d0 ; ab(10)=7.93d0 ab(11)=6.24d0 ; ab(12)=7.60d0 ; ab(13)=6.45d0 ; ab(14)=7.51d0 ; ab(15)=5.41d0 ab(16)=7.12d0 ; ab(17)=5.50d0 ; ab(18)=6.40d0 ; ab(19)=5.03d0 ; ab(20)=6.34d0 ab(21)=3.15d0 ; ab(22)=4.95d0 ; ab(23)=3.93d0 ; ab(24)=5.64d0 ; ab(25)=5.43d0 ab(26)=7.50d0 ; ab(27)=4.99d0 ; ab(28)=6.22d0 ab=10.d0**ab !car données en LOG10 CASE('enhan_cha') !Z/X=4.6E-02, [Fe/H]=7.5-12, Z= 3.207E-02 SELECT CASE(langue) CASE('english') WRITE(*,1003) ; WRITE(2,1003) 1003 FORMAT('Alpha enhanced mixture of Chaboyer 95') CASE DEFAULT WRITE(*,3) ; WRITE(2,3) 3 FORMAT('Mixture alpha enhanced de Chaboyer 95') END SELECT ab(1)=12.d0 ; ab(2)=10.99d0 ; ab(3)=1.16d0 ; ab(4)=1.15d0 ; ab(5)=2.60d0 ab(6)=8.55d0 ; ab(7)=7.970d0 ; ab(8)=9.27d0 ; ab(9)=4.56d0 ; ab(10)=8.08d0 ab(11)=6.33d0 ; ab(12)=7.98d0 ; ab(13)=6.47d0 ; ab(14)=7.95d0 ; ab(15)=5.45d0 ab(16)=7.61d0 ; ab(17)=5.50d0 ; ab(18)=6.52d0 ; ab(19)=5.52d0 ; ab(20)=6.76d0 ab(21)=3.17d0 ; ab(22)=5.42d0 ; ab(23)=4.00d0 ; ab(24)=5.67d0 ; ab(25)=4.99d0 ab(26)=7.50d0 ; ab(27)=4.92d0 ; ab(28)=6.25d0 ab=10.d0**ab !car données en LOG10 CASE('enhan_w') !Z/X=5.531E-02, [Fe/H]=7.5-12, Z= 3.832E-02 SELECT CASE(langue) CASE('english') WRITE(*,1004) ; WRITE(2,1004) 1004 FORMAT('Alpha enhanced mixture of Weiss 95') CASE DEFAULT WRITE(*,4) ; WRITE(2,4) 4 FORMAT('Mixture alpha enhanced de Weiss 95') END SELECT ab(1)=12.0d0 ; ab(2)=10.99d0 ; ab(3)=1.16d0 ; ab(4)=1.15d0 ; ab(5)=2.60d0 ab(6)=8.55d0 ; ab(7)=7.970d0 ; ab(8)=9.37d0 ; ab(9)=4.56d0 ; ab(10)=8.37d0 ab(11)=6.33d0 ; ab(12)=7.98d0 ; ab(13)=6.47d0 ; ab(14)=7.85d0 ; ab(15)=5.45d0 ab(16)=7.54d0 ; ab(17)=5.50d0 ; ab(18)=6.52d0 ; ab(19)=5.12d0 ; ab(20)=6.86d0 ab(21)=3.17d0 ; ab(22)=5.65d0 ; ab(23)=4.00d0 ; ab(24)=5.67d0 ; ab(25)=5.39d0 ab(26)=7.50d0 ; ab(27)=4.92d0 ; ab(28)=6.27d0 ab=10.d0**ab !car données en LOG10 CASE('enhan_al') !Z/X=2.064E-03, [Fe/H]=6.2-12, Z= 1.484E-03 SELECT CASE(langue) CASE('english') WRITE(*,1005) ; WRITE(2,1005) 1005 FORMAT('Alpha enhanced mixture of Allard 95') CASE DEFAULT WRITE(*,5) ; WRITE(2,5) 5 FORMAT('Mixture alpha enhanced de Allard 95') END SELECT ab(1)=12.0d0 ; ab(2)=10.99d0 ; ab(3)=-0.14d0 ; ab(4)=-0.15d0 ; ab(5)=1.30d0 ab(6)=7.25d0 ; ab(7)=6.670d0 ; ab(8)=7.87d0 ; ab(9)=3.26d0 ; ab(10)=7.08d0 ab(11)=5.33d0 ; ab(12)=6.58d0 ; ab(13)=4.87d0 ; ab(14)=6.55d0 ; ab(15)=4.45d0 ab(16)=6.21d0 ; ab(17)=4.50d0 ; ab(18)=5.52d0 ; ab(19)=3.82d0 ; ab(20)=5.36d0 ab(21)=1.87d0 ; ab(22)=4.02d0 ; ab(23)=2.70d0 ; ab(24)=4.37d0 ; ab(25)=3.94d0 ab(26)=6.20d0 ; ab(27)=3.92d0 ; ab(28)=4.95d0 ab=10.d0**ab !car données en LOG10 CASE('mixture') chain=TRIM(nom_fich2)//'.mix' INQUIRE(file=TRIM(chain),exist=ok) IF(.NOT.ok)THEN SELECT CASE(langue) CASE('english') WRITE(*,1008)TRIM(chain) ; WRITE(2,1008)TRIM(chain) 1008 FORMAT('The file of initial abundances : ',a,/, 1 'is unknown, CESAM looks for the file mixture') CASE DEFAULT WRITE(*,8)TRIM(chain) ; WRITE(2,8)TRIM(chain) 8 FORMAT('le fichier des abondances initiales : ',a,/, 1 'non trouvé, recherche du fichier mixture') END SELECT chain='mixture' ; INQUIRE(file=TRIM(chain),exist=ok) IF(.NOT.ok)THEN SELECT CASE(langue) CASE('english') WRITE(*,1009)TRIM(chain) ; WRITE(2,1009)TRIM(chain) 1009 FORMAT('STOP, the file : ',a,/,'is unknown') CASE DEFAULT WRITE(*,9)TRIM(chain) ; WRITE(2,9)TRIM(chain) 9 FORMAT('ARRET, le fichier : ',a,/,'non trouvé') END SELECT CALL sortie('abon_ini mix1') ENDIF ENDIF OPEN(unit=3,form='formatted',status='old',delim='apostrophe', 1 file=TRIM(chain)) SELECT CASE(langue) CASE('english') WRITE(*,1007)TRIM(chain) ; WRITE(2,1007)TRIM(chain) 1007 FORMAT('Initial mixture in DeX read on the file : ',a) CASE DEFAULT WRITE(*,7)TRIM(chain) ; WRITE(2,7)TRIM(chain) 7 FORMAT('Mixture initiale en DeX du fichier : ',a) END SELECT READ(3,nl_mixture) ; WRITE(*,nl_mixture) ; WRITE(2,nl_mixture) CLOSE(unit=3) IF(ab(1) /= 12.d0)THEN SELECT CASE(langue) CASE('english') WRITE(*,1013) ; WRITE(2,1013) 1013 FORMAT('STOP, the initial mixture is not normalized to H=12') CASE DEFAULT WRITE(*,13) ; WRITE(2,13) 13 FORMAT('ARRET, la mixture initiale doit être normalisée à H=12') END SELECT CALL sortie('abon_ini mix2') ENDIF ab=10.d0**ab !car données en LOG10 CASE DEFAULT chain=nom_abon SELECT CASE(langue) CASE('english') WRITE(*,1011)TRIM(chain) ; WRITE(2,1011)TRIM(chain) 1011 FORMAT('STOP, the initial mixture : ',a,/,'is unknown',/, 1 'known initial mixtures: meteorites_ag, meteorites_gs, meteorites_ags',/, 2 'meteorites_agss, solaire_ag, solaire_gn, solaire_gs, solaire_ags03',/, 3 'solaire_ags05, solaire_agss, enhan_cha, enhan_w, enhan_al, mixture') CASE DEFAULT WRITE(*,11)TRIM(chain) ; WRITE(2,11)TRIM(chain) 11 FORMAT('ARRET, nom de mixture initiale inconnue: ',a,/, 1 'mixtures connues: meteorites_ag, meteorites_gs, meteorites_ags',/, 2 'meteorites_agss, solaire_ag, solaire_gn, solaire_gs, solaire_ags03',/, 3 'solaire_ags05, solaire_agss, enhan_cha, enhan_w, enhan_al, mixture') END SELECT CALL sortie('abon_ini mix3') END SELECT c faut-il adapter la mixture initiale suivant un fichier type modif_mix? c pour sécurité, on ne recherche ce fichier que si modif_chim c ATTENTION la modification de l'abondance initiale des neutrons n'est pas prévue IF(modif_chim)THEN chain=TRIM(nom_fich2)//'.modif_mix' INQUIRE(file=TRIM(chain),exist=ok) !; PRINT*,ok ; PAUSE'ok1' IF(ok)THEN OPEN(unit=3,form='formatted',status='old',delim='apostrophe', 1 file=TRIM(chain)) SELECT CASE(langue) CASE('english') WRITE(*,1012)TRIM(nom_abon),TRIM(chain) WRITE(2,1012)TRIM(nom_abon),TRIM(chain) 1012 FORMAT(/,'The initial mixture : ',a,/, 1 'is modified according to the data of the file : ',a) CASE DEFAULT WRITE(*,12)TRIM(nom_abon),TRIM(chain) WRITE(2,12)TRIM(nom_abon),TRIM(chain) 12 FORMAT(/,'La mixture initiale : ',a,/, 1 'est adaptée suivant les données du fichier : ',a) END SELECT READ(3,nl_modif_mix) ; WRITE(*,nl_modif_mix) WRITE(2,nl_modif_mix) ; CLOSE(unit=3) add=0.d0 ; add(3)=add_Li ; add(4)=add_Be add(5)=add_B ; add(6)=add_C ; add(7)=add_N ; add(8)=add_O add(9)=add_F ; add(10)=add_Ne ; add(11)=add_Na ; add(12)=add_Mg add(13)=add_Al ; add(14)=add_Si ; add(15)=add_P ; add(16)=add_S add(17)=add_Cl ; add(18)=add_Ar ; add(19)=add_K ; add(20)=add_Ca add(21)=add_Sc ; add(22)=add_Ti ; add(23)=add_V ; add(24)=add_Cr add(25)=add_Mn ; add(26)=add_Fe ; add(27)=add_Co add(28)=add_Ni ; add(1)=0.d0 ab=LOG10(ab/ab(1))+12.d0 !normalisation à H=1.d12 ab=ab+add !modification des abondances en DeX ab(3:28)=ab(3:28)+add_Z ab=10.d0**ab !car données en LOG10 ELSE SELECT CASE(langue) CASE('english') WRITE(*,1010)TRIM(chain) ; WRITE(2,1010)TRIM(chain) 1010 FORMAT('modif_chim=.TRUE., the mixture must to be modified according to: ',a,/, 1 ' unknown file, the initial mixture is used') CASE DEFAULT WRITE(*,10)TRIM(chain) ; WRITE(2,10)TRIM(chain) 10 FORMAT('modif_chim=.TRUE., adaptation de la mixture selon: ',a,/, 1 ' fichier inconnu, mixture initiale utilisée') END SELECT ENDIF ENDIF c si garde_xish = .TRUE. les rapports Xi/H seront ceux de la c mixture, l'abondance d'hélium sera Y0 lue dans le fichier *.don. c X0 et Z0 seront déduits de la mixture c si garde_xish = .FALSE. les rapports Xi/H seront modifiés c les rapports Xi/Z seront ceux de la c mixture, X0, Y0, Z0 seront ceux du fichier *.don c (exemple : la calibration solaire en Z/X) c pour les neutrons ab(0)=1.d-100 IF(garde_xish)THEN c ajustement de ab(2) pour obtenir Y=Y0 nisnh=ab*m*1.d-12 ab(2)=y0/(1.d0-y0)/m(2)*(m(1)+SUM(nisnh(3:28)))*1.d12 c WRITE(*,2000)ab(2) ; PAUSE'ab(2)' c détermination de X0, Y0, Z0 sniai=SUM(ab*m) x0=ab(1)*m(1)/sniai ; y0=ab(2)*m(2)/sniai ; z0=1.d0-x0-y0 zsx=z0/x0 ; fesh=LOG10(zsx/zsx_sol) SELECT CASE(langue) CASE('english') WRITE(*,1014)x0,z0,zsx,fesh,y0 WRITE(2,1014)x0,z0,zsx,fesh,y0 1014 FORMAT(/,'X0:',es10.3,', Z0:',es10.3,', Z0/X0:',es10.3, 1 ', [Z/X]:',es10.3,/,'are different from the input data',/, 2 'the ratios metal/H of the mixture are used, Y0=',es10.3, 3 ' is the input value') CASE DEFAULT WRITE(*,14)x0,z0,zsx,fesh,y0 WRITE(2,14)x0,z0,zsx,fesh,y0 14 FORMAT(/,'X0:',es10.3,', Z0:',es10.3,', Z0/X0:',es10.3, 1 ', [Z/X]:',es10.3,/,'diffèrent des données',/, 2 'les rapports métaux/H de la mixture sont conservés, Y0=',es10.3, 2 ' est celui des données') END SELECT ELSE SELECT CASE(langue) CASE('english') WRITE(*,1018)x0,y0,z0,z0/x0 WRITE(2,1018)x0,y0,z0,z0/x0 1018 FORMAT(/,'One uses as input data X0:',es10.3,', Y0:',es10.3, 1 ', Z0:',es10.3,/,'Z0/X0:',es10.3, 2 ' and the ratios metal/Z of the mixture') CASE DEFAULT WRITE(*,18)x0,y0,z0,z0/x0 WRITE(2,18)x0,y0,z0,z0/x0 18 FORMAT(/,'On utilise pour données X0:',es10.3,', Y0:',es10.3, 1 ', Z0:',es10.3,/,'Z0/X0:',es10.3, 2 ' et les rapports métaux/Z de la mixture') END SELECT ENDIF SELECT CASE(langue) CASE('english') IF(modif_chim)THEN WRITE(*,1020)TRIM(nom_abon)//' modified' WRITE(2,1020)TRIM(nom_abon)//' modified' ELSE WRITE(*,1020)TRIM(nom_abon) ; WRITE(2,1020)TRIM(nom_abon) ENDIF 1020 FORMAT(/,'mixture used by abon_ini (n=0, H=12) : ',a) CASE DEFAULT IF(modif_chim)THEN WRITE(*,20)TRIM(nom_abon)//' modifiée' ; WRITE(2,20)TRIM(nom_abon)//' modifiée' ELSE WRITE(*,20)TRIM(nom_abon) ; WRITE(2,20)TRIM(nom_abon) ENDIF 20 FORMAT(/,'mixture initiale retenue par abon_ini (n=0, H=12) : ',a) END SELECT WRITE(*,2000)LOG10(ab) ; WRITE(2,2000)LOG10(ab) c abondances(en nombre) des métaux dans Z abon_rela=ab/SUM(ab(3:nelem_ini)) SELECT CASE(langue) CASE('english') WRITE(*,1019) ; WRITE(2,1019) 1019 FORMAT(/,'relative abundances(by number) of metals within Z') CASE DEFAULT WRITE(*,19) ; WRITE(2,19) 19 FORMAT(/,'abondances(en nombre) des métaux dans Z') END SELECT WRITE(*,2000)abon_rela(3:nelem_ini) WRITE(2,2000)abon_rela(3:nelem_ini) c produit abondance * masse pour calcul des abondances relatives en masse c et écriture des abondances des métaux dans Z abon_m=ab*m abon_relam=abon_m/SUM(abon_m(3:nelem_ini)) SELECT CASE(langue) CASE('english') WRITE(*,1025) ; WRITE(2,1025) 1025 FORMAT(/,'relative abundances(by mass) of metals within Z') CASE DEFAULT WRITE(*,25) ; WRITE(2,25) 25 FORMAT(/,'abondances(en masse) des métaux dans Z') END SELECT WRITE(*,2000)abon_relam(3:nelem_ini) ; WRITE(*,*) WRITE(2,2000)abon_relam(3:nelem_ini) ; WRITE(2,*) c------INITIALISATIONS eps_ini (abundances per mole) used in etat_irwin !YLD eps_ini(1)=x0/m(1) !YLD eps_ini(2)=y0/m(2) !YLD eps_ini(3:nelem_ini)=z0*abon_relam(3:nelem_ini)/m(3:nelem_ini) !YLD c c définition des rapports isotopiques, recherche d'un fichier de rap.iso. chain=TRIM(nom_fich2)//'.rap_iso' INQUIRE(file=TRIM(chain),exist=ok) IF(.NOT.ok)THEN chain='rap_iso' INQUIRE(file=TRIM(chain),exist=ok) ENDIF c écritures IF(ok)THEN OPEN(unit=3,form='formatted',status='old',delim='apostrophe', 1 file=TRIM(chain)) PRINT* ; WRITE(2,*) !rapports isotopiques du fichier rap_iso SELECT CASE(langue) CASE('english') WRITE(*,1016)TRIM(chain) WRITE(2,1016)TRIM(chain) 1016 FORMAT('Isotopic ratios from the file : ',a) CASE DEFAULT WRITE(*,16)TRIM(chain) WRITE(2,16)TRIM(chain) 16 FORMAT('Rapports isotopiques du fichier : ',a) END SELECT READ(3,nl_rap_iso) ; WRITE(*,nl_rap_iso) ; WRITE(2,nl_rap_iso) CLOSE(unit=3) c mesure de sécurité : le fichier rap_iso ne peut être pris en compte que si c modif_chim = .TRUE. IF(.NOT.modif_chim)THEN SELECT CASE(langue) CASE('english') WRITE(*,1027) ; WRITE(2,1027) 1027 FORMAT('STOP, with a file modif_mix, modif_chim = .TRUE. is needed',/, 1 'erase the file vent, or modify the input file') CASE DEFAULT WRITE(*,27) ; WRITE(2,27) 27 FORMAT('ARRET, avec un fichier modif_mix il faut modif_chim = .TRUE.',/, 1 'supprimer le fichier vent, ou modifier le fichier de données') END SELECT CALL sortie('abon_ini modif') ENDIF ELSE !rapports isotopiques SELECT CASE(langue) CASE('english') WRITE(*,1006) ; WRITE(2,1006) 1006 FORMAT('Isotopic ratios according to Asplund Grevesse, Sauval & Scott 09', 1 /,'but He3/He4 by Gautier & Morel 97') CASE DEFAULT WRITE(*,6) ; WRITE(2,6) 6 FORMAT('Rapports isotopiques suivant Asplund Grevesse, Sauval & Scott 09', 1/,'sauf He3/He4 de Gautier & Morel 97') END SELECT neutronsz=1.d-29 !YLD neutrons mis à 0 h2sh1=3.01d-5 !Gautier & Morel he3she4=1.1d-4 !Gautier & Morel he3she4z=4.185d-4 !Gautier & Morel sur la ZAMS H2-->He3 li6sli7=7.5d0/92.5d0 !table 3 de Anders & Grevesse be7sbe9=1.d-29 !valeur arbitraire non nulle be7sz=1.d-29 !Be7 arbitraire c13sc12=1.10d0/98.90d0 !table 3 de Anders & Grevesse n13sn14=1.d-29 !YLD N13 mis à zero n15sn14=0.366d0/99.634d0 !table 3 de Anders & Grevesse o17so16=0.038d0/99.762d0 !table 3 de Anders & Grevesse o18so16=0.200d0/99.762d0 !table 3 de Anders & Grevesse na24sna23=1.d-29 !??? mg25smg24=10.00d0/78.99d0 !table 3 de Anders & Grevesse mg26smg25=11.005d0/10.003d0 !table 3 de Anders & Grevesse si27ssi28=1.d-29 !??? si29ssi28=4.6832d0/92.2297d0 !AGSS, 2009 si30ssi28=3.0872d0/92.2297d0 !AGSS, 2009 s31ss32=1.d0-29 !?? s33ss32=0.76d0/94.93d0 !AGSS, 2009 s34ss32=4.29d0/94.93d0 !AGSS, 2009 p30sp31=1.d-29 !?? p33sp31=1.d-29 !?? ar38sar36=15.3808d0/84.5946d0 !AGSS, 2009 c valeurs de Asplund Grevesse, Sauval & Scott 09 ARAA, 47, 481, 2009 c si différentes des précédentes h2sh1=0.002d0/99.998d0 he3she4=0.0166d0/99.9834 li6sli7=7.59d0/92.41d0 c13sc12=1.1062d0/98.8938d0 n15sn14=0.229d0/99.771d0 o17so16=0.0379d0/99.7621d0 o18so16=0.200d0/99.7621d0 ne21sne20=0.228d0/92.9431d0 ne22sne20=6.8341d0/92.9431d0 ENDIF c écritures WRITE(*,21)h2sh1,he3she4,he3she4z WRITE(2,21)h2sh1,he3she4,he3she4z 21 FORMAT('H2/H1=',es10.3,', He3/He4(pms)=',es10.3,', He3/He4(Zams)=', 1 es10.3) WRITE(*,22)li6sli7,be7sbe9,c13sc12 WRITE(2,22)li6sli7,be7sbe9,c13sc12 22 FORMAT('Li6/Li7=',es10.3,', Be7/Be9=',es10.3, ', C13/C12=',es10.3) WRITE(*,23)n15sn14,o17so16,o18so16,ne21sne20,ne22sne20 WRITE(2,23)n15sn14,o17so16,o18so16,ne21sne20,ne22sne20 23 FORMAT('N15/N14=',es10.3,', O17/O16=',es10.3,', O18/O16=',es10.3,/, 1 ',Ne21/Ne20=',es10.3,', Ne22/Ne20=',es10.3) WRITE(*,24)mg25smg24,mg26smg25,be7sz,Ar38sAr36 WRITE(2,24)mg25smg24,mg26smg25,be7sz,Ar38sAr36 24 FORMAT('Mg25/Mg24=',es10.3,', Mg26/Mg25=',es10.3,', Be7/Z=',es10.3, 1 ',Ar38/Ar36=',es10.3) WRITE(*,28)p30sp31,p33sp31 WRITE(2,28)p30sp31,p33sp31 28 FORMAT('P30/P31=',es10.3,', P33/P31=',es10.3) WRITE(*,35)s31ss32,s33ss32,s34ss32 WRITE(2,35)s31ss32,s33ss32,s34ss32 35 FORMAT('S31/S32=',es10.3,', S33/S32=',es10.3,', S34/S32=',es10.3) WRITE(*,34)na24sna23,si27ssi28,si29ssi28,si30ssi28 WRITE(2,34)na24sna23,si27ssi28,si29ssi28,si30ssi28 34 FORMAT('Na23/Na24=',es10.3,', Si27/Si28=',es10.3,', Si29/Si28=',es10.3, 1', Si30/Si28=',es10.3,/) RETURN END SUBROUTINE abon_ini