INCLUDE '../SOURCE/mod_opa.f' c************************************************************************ PROGRAM test_opacite c test pour les routines d'opacité c le nom de la routine d'opacité et du fichier à utiliser sont lus c dans le fichier mon_modele.don qu'il convient d'adapter c Auteur: P.Morel, Département J.D. Cassini, O.C.A. c----------------------------------------------------------------- USE mod_donnees, ONLY: ab_min, ihe4, langue, lit_nl, nchim, 1 nom_elem, nom_fich2, nom_xheavy, nucleo, print_ctes, w_rot, z0 USE mod_kind USE mod_opa, ONLY: opa IMPLICIT NONE REAL (kind=dp), ALLOCATABLE, DIMENSION(:) :: xh REAL (kind=dp) :: t, ro, kappa, dkapdt, dkapdr, dkapdx, z LOGICAL :: avec_neon c--------------------------------------------------------------------- 2000 FORMAT(8es10.3) langue='english' c lecture des données nom_fich2='test' ; CALL lit_nl(w_rot) c CALL print_ctes(6) avec_neon=.FALSE. ; avec_neon=.TRUE. ihe4=3 IF(avec_neon)THEN nchim=11 ALLOCATE(ab_min(nchim),nom_elem(nchim),nucleo(nchim),xh(nchim)) xh(1) =2.577E-01 ; nom_elem(1) =' H1 ' ; nucleo(1)=1.007825d0 xh(2) =6.763E-08 ; nom_elem(2) ='He3' ; nucleo(2)=3.0160293d0 xh(3) =7.227E-01 ; nom_elem(3) ='He4' ; nucleo(3)=4.0026033d0 xh(4) =1.006E-04 ; nom_elem(4) ='C12 ' ; nucleo(4)=12.d0 xh(5) =2.791E-05 ; nom_elem(5) ='C13 ' ; nucleo(5)=13.0033548d0 xh(6) =1.243E-02 ; nom_elem(6) ='N14 ' ; nucleo(6)=14.003074d0 xh(7) =4.943E-07 ; nom_elem(7) ='N15 ' ; nucleo(7)=15.001089d0 xh(8) =1.135E-03 ; nom_elem(8) ='O16 ' ; nucleo(8)=15.9949146d0 xh(9) =3.105E-05 ; nom_elem(9) ='O17 ' ; nucleo(9)=16.9991315d0 xh(10)=1.963E-03 ; nom_elem(10)='Ne20' ; nucleo(10)=19.9924402d0 xh(11)=3.872E-03 ; nom_elem(11)='Cl35' ; nucleo(11)=35.453d0 ab_min=xh*0.01d0 ; nom_xheavy=nom_elem(nchim) t=2.571E+07 ; ro=1.679E+01 ; z0=SUM(xh(4:10)) CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro * 5Msol post SP' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'neon1' t=4.d3 ; ro=1.d-10 CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro * 5Msol post SP' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'neon2' ELSE nchim=12 ALLOCATE(ab_min(nchim),nom_elem(nchim),nucleo(nchim),xh(nchim)) xh(1) =2.577E-01 ; nom_elem(1) =' H1 ' ; nucleo(1)=1.007825d0 xh(2) =6.763E-08 ; nom_elem(2) ='He3' ; nucleo(2)=3.0160293d0 xh(3) =7.227E-01 ; nom_elem(3) ='He4' ; nucleo(3)=4.0026033d0 xh(4) =1.006E-04 ; nom_elem(4) ='Li7 ' ; nucleo(4)=7.d0 xh(5) =1.006E-04 ; nom_elem(5) ='C12 ' ; nucleo(5)=12.d0 xh(6) =2.791E-05 ; nom_elem(6) ='C13 ' ; nucleo(6)=13.0033548d0 xh(7) =1.243E-02 ; nom_elem(7) ='N14 ' ; nucleo(7)=14.003074d0 xh(8) =4.943E-07 ; nom_elem(8) ='N15 ' ; nucleo(8)=15.001089d0 xh(9) =1.135E-03 ; nom_elem(9) ='O16 ' ; nucleo(9)=15.9949146d0 xh(10) =3.105E-05 ; nom_elem(10) ='O17 ' ; nucleo(10)=16.9991315d0 xh(11)=5.835E-03 ; nom_elem(11)='Cl35' ; nucleo(11)=35.453d0 xh(12)=5.835E-03 ; nom_elem(12)='Cl35' ; nucleo(12)=35.453d0 ab_min=xh*0.01d0 t=9.0380E+03 ; ro=2.1197E-08 ; z0=SUM(xh(4:10)) CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro ' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'limite' nchim=10 DEALLOCATE(ab_min,nom_elem,nucleo,xh) ALLOCATE(ab_min(nchim),nom_elem(nchim),nucleo(nchim),xh(nchim)) xh(1) =2.577E-01 ; nom_elem(1) =' H1 ' ; nucleo(1)=1.007825d0 xh(2) =6.763E-08 ; nom_elem(2) ='He3' ; nucleo(2)=3.0160293d0 xh(3) =7.227E-01 ; nom_elem(3) ='He4' ; nucleo(3)=4.0026033d0 xh(4) =1.006E-04 ; nom_elem(4) ='C12 ' ; nucleo(4)=12.d0 xh(5) =2.791E-05 ; nom_elem(5) ='C13 ' ; nucleo(5)=13.0033548d0 xh(6) =1.243E-02 ; nom_elem(6) ='N14 ' ; nucleo(6)=14.003074d0 xh(7) =4.943E-07 ; nom_elem(7) ='N15 ' ; nucleo(7)=15.001089d0 xh(8) =1.135E-03 ; nom_elem(8) ='O16 ' ; nucleo(8)=15.9949146d0 xh(9) =3.105E-05 ; nom_elem(9) ='O17 ' ; nucleo(9)=16.9991315d0 xh(10)=5.835E-03 ; nom_elem(10)='Cl35' ; nucleo(10)=35.453d0 ab_min=xh*0.01d0 t=2.571E+07 ; ro=1.679E+01 ; z0=SUM(xh(4:10)) CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro * 5Msol post SP' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'1' xh=0.d0 ; nchim=10 xh(1) =6.977E-01 xh(2) =8.915E-05 xh(3) =2.827E-01 xh(4) =3.339E-03 xh(5) =4.024E-05 xh(6) =1.032E-03 xh(7) =4.063E-06 xh(8) =9.398E-03 xh(9) =3.804E-06 xh(10)=5.680E-03 ; nom_elem(10)='Si28' ; nucleo(10)=28.086d0 t=8.180E+03 ; ro=4.364E-07 ; z0=SUM(xh(4:10)) CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT* PRINT*,'xh(1),t,ro base atmosphère soleil' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'2' t=2.119E+07 ; ro=9.021E+02 xh(1) =4.573E-08 xh(2) =5.543E-21 xh(3) =9.789E-01 xh(4) =8.991E-05 xh(5) =2.491E-05 xh(6) =1.276E-02 xh(7) =5.258E-07 xh(8) =1.853E-03 xh(9) =5.723E-05 xh(10)=6.275E-03 CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro X=0, fin de SP' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'3' t=2.119E+08 ; ro=9.021E+03 z=SUM(xh(ihe4+1:nchim)) ; xh(1:ihe4)=0.d0 xh(ihe4+1:nchim)=xh(ihe4+1:nchim)/z CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro X=Y=0, fin de 3 alpha' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx PAUSE'4' t=4.6872E+03 ; ro=3.5500E-09 c t=6.5E+03 t=4.000E+03 ; ro=3.5500E-10 CALL opa(xh,t,ro,kappa,dkapdt,dkapdr,dkapdx) PRINT*,'xh(1),t,ro extérieur atmosphère soleil' WRITE(*,2000)xh(1),t,ro PRINT*,'kappa,dkapdt,dkapdr,dkapdx' WRITE(*,2000)kappa,dkapdt,dkapdr,dkapdx ENDIF STOP END PROGRAM test_opacite