      program readinit
      !program mconvert
!*************************************************
! ce prog a des vieilles versions: mconvert....
! il est "ideintique" au prog:
! readsave2.f sous ./f1dfokionemac/src_rad
!*************************************************

!fraction mass vers fraction molaire fm
!entree
!      molfrac.in=mouna1999V.txt de Heidelberg 

!sortie
!     fmh2o pour cecile sur 131 mailles
      implicit none
      integer n,ng,ns, i, j, k,l
      integer JJ

      double precision  x,r ,rho, p, tau
      double precision  fmh2o
      double precision  fmass,tot, deno,mmol,fm,temp,ray, fv
      double precision rhor, cpr, ur, lr, tr

      character*1  text

      dimension x(1:140),r(0:141) , rho(1:140),  fmh2o(1:140)
      dimension temp(140),ray(140)
      dimension mmol(1:100), deno(1:140)
      dimension fmass(1:100,1:140), fm(1:100,1:140)

      parameter (rhor=8.1896e-5 , cpr =143235632, ur = 131814.86 )
      parameter (lr = 0.1, tr = 121.3)
!******************************************** LECTURE 
      print *, 'NOT YET LINKED WITH CHEMKIN LIBRARY'
      print *, '___________________________________'
!mise a zero
      do i=1,100
         do j=1,140
            fmass (i, j) = 0.d+0
            fm (i, j) =0.d+0
         enddo
      enddo
!affectation d'un numero d'unite      
c      open(20,file='mouna1999V.txt',status='unknown')
c      open(40,file='gentemp.in',status='unknown')
      open(20,file='benedicte',status='unknown')
      open(60,file='benedicte.species',status='unknown')

!lecture
!ng : grid number declare en parametre (+ je rajoute deux conditions aux limit)
      ng= 120
!ns : nombre d'espece
      ns = 55
      read (20, *) text
      do i=1,ng
         read (20,*) x(i)
     & , rho(i), rho(i) ,rho(i), rho(i), p, 
     & temp(i), tau
         !print *, x(i), temp(i)
      enddo
      close(20)
!.....................................................
       ng= 120
      read (60, *) text
      do i=1,ng
         read (60,*) x(i),fmass(52,i),fmass(1,i)
     &   ,fmass(54,i),fmass(2,i),fmass(3,i)
     &   ,fmass(4,i),fmass(5,i),fmass(53,i)
     &   ,fmass(55,i)
         !print *, x(i), fmass(53,i)
      enddo
      close(60)
      

!*******************************************TRAITEMENT
! les histoire de grille et maillage volumique
!!!!!!!!!!!!!! homogene jusqu'a l'axe de sym qui est a droite
!!!!!!!!!!!!!! j'augmente x(ng) de l'ordre du metre/2 (unite cm)
      x(ng) = 50.d+0 / lr
      r(0)=X(1)
      r(0)= r(0) * lr ! a cause adimensionalisation (tjrs en cm)
      !!print *, 'r0  ', r(0)
      JJ=ng !ce doit etre 120
      r(JJ+1) =X(JJ)
      r(JJ+1) =  r(JJ+1) * lr ! a cause adimensionalisation (tjrs en cm)
      r(JJ)=X(JJ)
      r(JJ)=  r(JJ) * lr ! a cause adimensionalisation (tjrs en cm)
      do I=1,JJ-1
         r(I)=(X(I+1)-X(I))/2
         r(I)=X(I)+r(I)
         r(I)= r(I) * lr ! a cause adimensionalisation (tjrs en cm)
         !pour les abscisses negatifs
        ! if (X(I+1).lt. 0.d+0) then
        !    print *,'oui'
        !    r(I)=-r(I)
        ! endif
        ! print*, 'Xi+1 Xi  Xi+1-Xi/2, r(I)'
        ! print*, X(I+1),X(I),(X(I+1)-X(I)),r(I)
      enddo
      !print *,'rJJ    ',r(JJ)
      !print *,'rJJ+1', r(JJ+1)
      !read *
ccccc
c      print *, r
c      print *, '_________________________'
      call retourne(r,JJ+2)
c      print *,r
c      read *
ccccc
      open (UNIT=91, FILE='rayons.in',STATUS='Unknown')
      do I=0,JJ+1
         write(91,*) 0.5-r(I)*1.d-2 !metre
      enddo
      !read *
      close(91)

!le total est partout egale a l'unite pour fmass
      do i=1,ng
         tot = 0.
         do j=1,ns
            tot=tot+fmass(j,i)
         enddo
        !print *,i, ' tot: ', tot
         if (abs(1-tot).gt. 0.01) STOP
      !read *
      enddo
      print  *, 'test somme fm egal 1:  positif'
c      read *

!calcul du denominateur commun en chaque point
      mmol(1)= 1! H....... 
      mmol(2)= 16 !O.......
      mmol(3)= 17 !OH...... 
      mmol(4)= 33 ! HO2.....
      mmol(5)= 34 !H2O2....
      mmol(6)= 12 !C.......
      mmol(7)= 13 !CH......
      mmol(8)= 14 ! 1CH2....
      mmol(9)= 14 ! 3CH2....
      mmol(10)= 15 ! CH3.....
      mmol(11)= 16 !CH4.....
      mmol(12)= 29 !CHO.....
      mmol(13)= 30 !CH2O....
      mmol(14)= 31 !CH2OH...
      mmol(15)= 21 !CH3O....
      mmol(16)= 32 !CH3OH...
      mmol(17)= 47 !CH3O2...
      mmol(18)= 48  ! CH3O2H..
      mmol(19)= 25 !C2H.....
      mmol(20)= 26 ! C2H2....
      mmol(21)= 27 !C2H3....
      mmol(22)= 28 ! C2H4....
      mmol(23)= 29 !C2H5....
      mmol(24)= 30 !C2H6....
      mmol(25)= 41 !HCCO....

      mmol(26)= 42 !CH2CO...
      mmol(27)= 43 ! CH3CO...
      mmol(28)= 43 !CH2CHO.. 
      mmol(29)= 44 !CH3CHO..
      mmol(30)= 46 !C2H5OH..
      mmol(31)= 45 !C2H5O...
      mmol(32)= 45 ! CH3CHOH.
      mmol(33)= 45 ! CH2CH2OH
      mmol(34)= 39 !C3H3....
      mmol(35)= 40 !C3H4....
      mmol(36)= 41 !c3h5
      mmol(37)= 42 !c3h6
      mmol(38)= 43 !n-c3h7
      mmol(39)= 43 !i-c3h7
      mmol(40)= 44 !c3h8
      mmol(41)= 50 !c4h2
      mmol(42)= 54 !c4h6
      mmol(43)= 55 !c4h7
      mmol(44)= 56 !1-c4h8
      mmol(45)= 56 !2-c4h8
      mmol(46)= 56 !c-2-c4h8
      mmol(47)= 57 !p-c4h9
      mmol(48)= 57 !s-c4h9
      mmol(49)= 58 !c4h10
      mmol(50)= 28 !co
      mmol(51)= 44 !co2
      mmol(52)= 2 !h2
      mmol(53)= 18 !h2o
      mmol(54)= 32 !o2
      mmol(55)= 28 !n2

      !autre probleme
!1 ch4
!2 o2
!3 co2
!4 h2o
!5 co
!6 h2
!7 n2
      mmol(1)= 16
      mmol(2)= 32
      mmol(3)= 44
      mmol(4)= 18
      mmol(5)= 28
      mmol(6)= 2
      mmol(7)= 14

      do j=1,ng
         deno(j) = 0.
         do i=1,ns
            deno(j) = deno(j) + fmass(i,j)/mmol(i)
         enddo
      enddo


!calcul de la fraction molaire de toutes les especes
! en chaque point / verification
      
      do j=1,ng
         do i=1,ns
            fm(i,j)=(fmass(i,j)/mmol(i))/(deno(j))
            fmh2o(j) = fm(53,j)
         enddo
      enddo


!******************************************ECRITURE
! dans cecile pour l'instant on utilise que de l'eau
!donc on utilise que fm(4,*)
      write (*,*) 'debut ecriture dans fichier in'
      open(20, file='cecile.in', status='unknown')
           write(20,*) 'A completer sachant que nvol = ', ng
      close(20)


      open(20,file='n_tirage.in',status='unknown')
      do i=0,ng+1            
          write(20,*) 10000       
      enddo
      close(20)



       open(20,file='fmco.in',status='unknown')
       do i=1,ng         
          write(20,*) 0.e+0       
       enddo
       close(20)


       open(20,file='fmco2.in',status='unknown')
       do i=1,ng          
          write(20,*) 0.e+0     
       enddo
       close(20)

cccc
       call retourne(fmh2o,ng)
cccc
       open(20,file='fmh2o.in',status='unknown')
       do i=1,ng
C%%%% % H2O = 53 eme espece 4% 
ccccccc          write(20,*) fm(53,i)
          write(20,*) fmh2o(i)
       enddo
       close(20)

       open(20,file='fv.in',status='unknown') 
       do i=1,ng      
C%% %% % C2H2 pour les suies 20eme% imaginons la cinquieme
          call chemsoot(fv, fm(5,i), 1.013d+5, 1500.d+0 , 0.d+0)
          write(20,*) 0.d+0  !fv ATTENTION ON NE RETOURNE PAS LE VECTEUR 
       enddo
       close(20)


       open(40,file='temperat.in',status='unknown')
c       write(40,*) 750 !mur gauche CL
c       do i=1,ng
c          write(40,*) (temp(i)* ur**2 /cpr)
c          print *, (temp(i)* ur**2 /cpr)
c       enddo
c       write(40,*)   (temp(120)* ur**2 /cpr)       !ESPACE a droite CL
c       print *, (temp(120)* ur**2 /cpr)
       !write(40,*) 750 !mur gauche CL
       write(40,*)   (temp(120)* ur**2 /cpr)       !ESPACE a gauche CL
       !print *, (temp(120)* ur**2 /cpr)
       call retourne(temp, ng)
       do i=1,ng
         write(40,*) (temp(i)* ur**2 /cpr)
         !print *, (temp(i)* ur**2 /cpr)
       enddo
       !write(40,*)   (temp(120)* ur**2 /cpr)  
       !print *, (temp(120)* ur**2 /cpr)
       write(40,*) 750          !mur gauche CL
       close(40)


       open(40,file='ptot.in',status='unknown')
       !do i=1,ng
          write(40,*) 1.d+0 !atmosphere en tout point 
       !enddo
       close(40)
       

       !open(60,file='rayons.in',status='unknown')
       !do i=1,ng
       !   write(60,*) 100
       !enddo
       !close(60) c'est fait plus haut
     

       print *,'Aucune erreur'


C format du fichier a lire 
! 9102 FORMAT((3(1PD24.17)))

       end
