Module MTD_STRUCT ! Type ATOM Integer :: Z = 0 ! Numéro atomique (nbre de protons) Character(len = 2) :: Symbol = 'XX' ! Elément chimique (limité à 2 lettres) Character(len = 4) :: Ion = 'XXXX' ! Etat d'ionisation (en chiffres romains) Double precision :: Eion_cm = Huge(0.d0) ! Energie d'ionisation (en cm-1) End Type ATOM ! Type LEVELS ! Tableau des niveaux d'énergie Character(len = 50) :: config = 'spdfghiklm' ! Configuration électronique du niveau Integer :: term = -1 ! Terme spectroscopique SLP Double precision :: en_cm = Huge(0.d0) ! Energie en cm-1 Double precision :: en_Ryd = Huge(0.d0) ! Energie en Rydberg Double precision :: en_eV = Huge(0.d0) ! Energie en eV Real :: g = -1 ! Poids statistique Integer :: NTP = -1 ! Numéro de la table de photoionisation de la TOPBASE Character(len=5) :: source = 'XXXXX' ! Source de l'énergie du niveau End Type LEVELS ! Type LINES ! Tableau des transitions Character(len = 12) :: config1 = 'spdfghiklm'! Configuration électronique du niveau bas Integer :: term1 = -1 ! Terme bas (SL) Double precision :: en1_cm = Huge(0.d0) ! Energie du niveau bas en cm-1 Real :: J1 = Huge(0.) ! Moment cinétique total du niveau bas Character(len=12) :: config2 = 'spdfghiklm'! Configuration électronique du niveau haut Integer :: term2 = -1 ! Terme haut (SL) Double precision :: en2_cm = Huge(0.d0) ! Energie du niveau haut en cm-1 Real :: J2 = Huge(0.) ! Moment cinétique total du niveau haut Double precision :: en_cm = Huge(0.d0) ! Energie de la transion en cm-1 Real :: lambda_nm = Huge(0.) ! Longueur d'onde de la transition en nm Real :: loggf = Huge(0.) ! Sans dimension Real :: Aij = Huge(0.) ! Coefficient de dé-excitation radiatif spontané (s-1) Real :: Gr = Huge(0.) ! Largeur naturelle de la transition End type LINES ! Type PHOTOIONS ! Tableau des photoionisations Double precision :: en_cm = Huge(0.d0) ! Energie d'ionisation du niveau en cm-1 Double precision :: en_Ryd = Huge(0.d0) ! Energie d'ionisation du niveau en Rydberg Integer :: term = -1 ! Terme spectroscopique du niveau Integer :: N = -1 ! Nombre de sections efficaces dans la table Real, dimension(2000) :: en_tab = Huge(0.) ! Energies d'ionisation en Rydberg Real, dimension(2000) :: seff_tab = Huge(0.) ! Sections efficaces en cm2 End type PHOTOIONS ! Type INDEXLINES ! Table des transitions précédés des numéros de niveaux Integer :: Nj = -1 ! Numéro du niveau haut Integer :: Ni = -1 ! Numéro du niveau bas Real :: loggf = HUGE(0.) ! Force d'oscillateur Real :: Aij = HUGE(0.) ! Coefficient de de-excitation radiatif spontané Real :: Gr = HUGE(0.) ! Gamma radiatif Real :: lambda_nm = HUGE(0.) ! Longueur d'onde de la transition en nm End type INDEXLINES ! ! DECLARATION DES STRUCTURES DE DONNEES FINALES (VARIABLES GLOBALES A TOUT LE PROGRAMME) ! Integer, Save :: N_1 = 0 ! Nombres de niveaux+ionisation finalement utilisés Integer, Save :: N_2 = 0 ! Nombre de transitions radiative liée - liée utilisées Integer, Save :: N_3 = 0 ! Nombres de tables de photoionisation différentes utilisées Type(ATOM), Save :: S_0 ! Structure ID de l'atome Type(LEVELS), Dimension(:), Allocatable, Save :: S_1 ! Structure des niveaux sélectionnés Type(INDEXLINES), Dimension(:), Allocatable, Save :: S_2 ! Structure des transitions indexées Type(PHOTOIONS), Dimension(:), Allocatable, Save :: S_3 ! Structure des tables de photoionisat° ! end module MTD_STRUCT