c******************************************************************** SUBROUTINE f_rad(lum,ray,t,nel,ychim,ioni,grav,g_rad,dg_rad) c subroutine private du module mod_evol c subroutine générique de calcul des accélérations radiatives c entrées : c lum : luminosité c ray : rayon c t : température c nel : nb electrons c ychim : composition chimique par mole c ioni : taux d'ionisation c grav : gravité < 0 c entrées / sorties : c g_rad : vecteur des accélérations radiatives, c la gravité est grav+g_rad sur l'élément d'indice i c dg_rad(i,j) : matrice des dérivées des accélérations radiatives c sur l'élément i / abondance par mole de l'élément j. c Auteur: P.Morel, Département J.D. Cassini, O.C.A., CESAM2k c--------------------------------------------------------------------- USE mod_bp_for_alecian_new, ONLY : acc_rad2_bp USE mod_donnees, ONLY : ihe4, langue, nchim, nom_diffm, nom_frad, zi USE mod_kind IMPLICIT NONE c REAL (kind=dp), INTENT(in), DIMENSION(0:NINT(MAXVAL(zi)),nchim) :: ioni REAL (kind=dp), INTENT(in), DIMENSION(0:,:) :: ioni REAL (kind=dp), INTENT(in), DIMENSION(:) :: ychim REAL (kind=dp), INTENT(in) :: grav, lum, nel, ray, t REAL (kind=dp), INTENT(out), DIMENSION(:,:) :: dg_rad REAL (kind=dp), INTENT(out), DIMENSION(:) :: g_rad c--------------------------------------------------------------------- 2000 FORMAT(8es10.3) IF(INDEX(nom_frad,'frad_test') /= 0)THEN c g_rad=0.d0 !grav est négatif, g_rad positif c g_rad(ihe4+1)=-2.d0*grav !acc rad>0 sur C12 propulsé (grav < 0) c g_rad(1)=-grav c g_rad(ihe4)=-grav g_rad=-grav dg_rad=0.d0 ELSEIF(INDEX(nom_frad,'alecian_bp') /= 0)THEN CALL acc_rad2_bp(lum,ray,t,nel,grav,ychim,ioni,g_rad,dg_rad) ELSEIF(INDEX(nom_frad,'no_frad') /= 0)THEN dg_rad=0.d0 ; g_rad=0.d0 ELSE PRINT*,'routine de calcul des forces radiatives inconnue: ',nom_frad PRINT*,'connues: alecian_bp, no_frad, frad_test' PRINT*,'arrêt' ; STOP END IF RETURN END SUBROUTINE f_rad