      program mconvert
!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
      double precision  fmass,tot, deno,mmol,fm,temp,ray, fv

      dimension temp(140),ray(140)
      dimension mmol(1:100), deno(1:140)
      dimension fmass(1:100,1:140), fm(1:100,1:140)
 
!******************************************** LECTURE 
!affectation d'un numero d'unite      
c      open(20,file='mouna1999V.txt',status='unknown')
c      open(40,file='gentemp.in',status='unknown')
c      open(60,file='genrayon.in',status='unknown')
      open(20,file='mouna1999V.txt',status='unknown')

!lecture
!ng : grid number declare en parametre
      ng= 131
! on lit ng valeurs sur 5 colonnes
! n est le nombre de ligne, 
! on rajoute +1 car derniere ligne pas entiere
      n=int(ng/5)
      n=n+1
      print *, n

!ns : species number declaree en parametre
      ns = 7
      print *, ns
! Initialisation du tableau fmass
      do i = 1,ns
              do j=1,n
                 fmass(i,j)= 0
              enddo
      enddo
      do i = 1,ns
              do j=1,n
                 l=((j-1)*5)+1
c                 read(20,'(3(PD24.17))') (fmass(i,l+k),k=0,2)
                 read(20,'(5(e15.17))') (fmass(i,l+k),k=0,4)
c                 write (*,*) 'espece, ligne, num_grid', i,j,l+0
c                 write (*,*) fmass(i,l+0)
c                 read *
              enddo
      !je saute une ligne
      read(20,*)
      enddo
      close (20)

  

!***********************************TRAITEMENT

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

!calcul du denominateur commun en chaque point
! H.......  O.......  OH......  HO2.....  H2O2....
! C.......  CH......  1CH2....  3CH2....  CH3.....
!
! CH4.....  CHO.....  CH2O....  CH2OH...  CH3O....
!
! CH3OH...  CH3O2...  CH3O2H..  C2H.....  C2H2....
!
! C2H3....  C2H4....  C2H5....  C2H6....  HCCO....
!
! CH2CO...  CH3CO...  CH2CHO..  CH3CHO..  C2H5OH..
!
! C2H5O...  CH3CHOH.  CH2CH2OH  C3H3....  C3H4....
!
! C3H5....  C3H6....  N-C3H7..  I-C3H7..  C3H8....
!
! C4H2....  C4H6....  C4H7....  1-C4H8..  2-C4H8..
!
! C-2-C4H8  P-C4H9..  S-C4H9..  C4H10...  CO......
!
! CO2.....  H2......  H2O.....  O2......  N2......

      mmol(1)= 1
      mmol(2)= 16
      mmol(3)= 17
      mmol(4)= 33
      mmol(5)= 34
      mmol(6)= 12
      mmol(7)= 13
      mmol(8)= 14
      mmol(9)= 14
      mmol(10)= 15
      mmol(11)= 16
      mmol(12)= 29
      mmol(13)= 30
      mmol(14)= 31
      mmol(15)= 21
      mmol(16)= 32
      mmol(17)= 47
      mmol(18)= 48 
      mmol(19)= 25
      mmol(20)= 26
      mmol(21)= 27
      mmol(22)= 28
      mmol(23)= 29
      mmol(24)= 30
      mmol(25)= 41
      mmol(26)= 42
      mmol(27)= 43
      mmol(28)= 43
      mmol(29)= 44
      mmol(30)= 46
      mmol(31)= 45
      mmol(32)= 45
      mmol(33)= 45
      mmol(34)= 39
      mmol(35)= 40
      mmol(36)= 41
      mmol(37)= 42
      mmol(38)= 43
      mmol(39)= 43
      mmol(40)= 44
      mmol(41)= 50
      mmol(42)= 54
      mmol(43)= 55
      mmol(44)= 56
      mmol(45)= 56
      mmol(46)= 56
      mmol(47)= 57
      mmol(48)= 57
      mmol(49)= 58
      mmol(50)= 28
      mmol(51)= 44
      mmol(52)= 2
      mmol(53)= 18
      mmol(54)= 32
      mmol(55)= 28

      !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))
            enddo
      enddo


!******************************************ECRITURE
! dans cecile pour l'instant on utilise que de l'eau
!donc on utilise que fm(4,*)

      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)

       open(20,file='fmh2o.in',status='unknown')

       do i=1,ng
C%%%% % H2O = 53 eme espece 4% 
          write(20,*) fm(4,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,*) fv 
       enddo
       close(20)


       open(40,file='temperat.in',status='unknown')
       do i=1,ng
          write(40,*) 1000
       enddo
       close(40)
       
       open(60,file='rayons.in',status='unknown')

       do i=1,ng
          write(60,*) 100
       enddo
       close(60)
     

       print *,'Aucune erreur'


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

       end
