Erreur dans Fortran

Fermé
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015 - 28 mai 2015 à 08:59
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 - 10 juin 2015 à 11:38
Bonjour,
Comment resoudre cette erreur dans Fortran:
The variable remplissage_mat is being used without being defined ?
Merci d'avance.




22 réponses

PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
Modifié par PSud le 28/05/2015 à 09:11
Bonjour,
Je ne connais pas ton programme mais cette erreur arrive quand tu utilises une variable sans l'avoir déclarée en définissant son type (entier, flottant, tableau etc.) au début du programme (ou du sous-programme).
Cldt
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
28 mai 2015 à 09:25
Bonjour,
Il me dit que la procédure remplissage_matrice est utilisé sans être définie
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
28 mai 2015 à 09:26
Si je vous envoie mon programme , pouvez vous le corriger ?
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 09:32
Je n'ai pas fait de Fortran depuis longtemps mais je peux quand même jeter un coup d'oeil. Pour partager le fichier, utiliser cjoint :
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 10:18
Autre possibilité : tu utilises remplissage_mat à gauche d'un signe égal alors qu'aucune valeur n'a été rentrée dans remplissage_mat.
Exemple : tu écris A = B alors que tu n'as jamais défini la valeur de B.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
Modifié par baladur13 le 28/05/2015 à 10:40
Bonjour,
Ci dessous mon programme.
!Module fonction
      !Interface 
         ! Function kond(h)
            !real*8 ::h
            !real*8::kond
         ! End function kond
      !end interface
! End module 
           
program geophysique

implicit none
INTEGER                                  ::nm,nt,k,i,j    
REAL*8, DIMENSION(:)  , ALLOCATABLE      ::b_inf,b_sup,b_dia,fsec,deltaz,z,sigma_b,kond,PSn,hn,theta,u
REAL*8 :: L,tmax,temps,PSimp,dt,flux0,Csat,sigma_sat,Ro,g,fi,Ks,u0,himp,sigma_w,F,na,A,B

 
         L=20d0
         tmax=1000.0d0 
         dt=1.0d0  
       
     
      !le fichier des input     
      open (14, FILE='input_geo.dat') 
      open (13, FILE='new_input.dat') 
      open(15,FILE='resultats_touma.dat')
      
       
      read(13,*) nm 
      Allocate (deltaz(nm),z(nm))  
      ALLOCATE(PSn(nm),fsec(nm),b_inf(nm),kond(nm),b_sup(nm),b_dia(nm),sigma_b(nm),u(nm),hn(nm),theta(nm))
      read(13,*) deltaz(1:nm)
      read(13,*)himp
      read(13,*)u0
      
      
       !calcul de z(i) le centre de chaque maille
        z(1)=deltaz(1)/2.0d0 
        do i=2,nm
          z(i)=z(i-1)+(deltaz(i-1)+deltaz(i))/2.0d0
       enddo
      
       read(14,*) PSimp
       read(14,*) flux0
       
        do i=1,nm 
           read(15,*) z(i), hn(i) , theta(i)
        end do
        
        write(*,*) hn(1)

      
         open(16,FILE='resultats_géophysique.dat')
       

        nt=tmax/dt
        WRITE(*,*)'nm=',nm,'nt=',nt
        temps=0.0d0
        pause
     
    do k=1,nt
        write(*,*)k
        temps=temps+dt 
    call remplissa_mat(nm,deltaz,dt,sigma_b,b_sup,b_dia,b_inf,fsec,flux0,PSimp,hn,theta)
    call thomas(nm,b_sup,b_inf,b_dia,PSn,fsec)
 end do
       
    !Affichage du potenciel spontané  
      do i=1,nm
         write(16,*)k,PSn(i)
      end do 

      WRITE(*,*)'minimum=',MINVAL(PSn(1:nm)),'maximum=',MaxVAL(PSn(1:nm))
      pause     
  end

   subroutine remplissa_mat(nm,deltaz,dt,sigma_b,b_sup,b_dia,b_inf,fsec,flux0,PSimp,hn,theta)
           implicit none
           integer nm,i
           real*8 theta(*),u(nm),hn(*),deltaz(*),fsec(*),b_dia(*),b_sup(*),b_inf(*),sigma_b(*)
           real*8 Ro,g,fi,Csat,Ks,flux0,PSimp,kond(nm),sigma_w,sigma_sat,F,sig1,sig2,na,cte,A,B,u0,k1,k2,himp,dt
           
            A=5.03611d0
            B=6.07d0
          
            
           sigma_w=0.00051d0
           sigma_sat=0.0031d0
           Ro=999.97d0
           g=9.8d0
           ks=0.0000825d0
           F=4.26d0
           na=1.6d0
           Csat=-2.9d-7
           fi=1.0d0
           
         !calcul de sigma_b
        do i=1,nm
           sigma_b(i)=( (1.0d0/F)*sigma_w*(((theta(i))/fi)**na) )
        end do 
        !------------------------  
        
        !calcul de la conductivité  
        do i=1,nm
           kond(i)=A*((theta(i))**B)
        end do
        !--------------------------

           k2=(Kond(1)+Kond(2))/2.0d0

           u(1)=( (-k2*(hn(i+1)-hn(i)) )/deltaz(i) )+k2-u0
           
           cte=( (-Csat*sigma_sat*Ro*g*fi)/Ks )
           
           sig2=( (sigma_b(1)+sigma_b(2))/2.0d0 )
           
           b_dia(1)=( -sig2/deltaz(1) )
           
           b_sup(1)= ( sig2/deltaz(1) )
           
           fsec(1)= (cte*( ( (u(2)+u(1))/( theta(2)+theta(1)) )- (u(1)/theta(1)) ))+flux0  
           
      do i=2,nm-1
      
           k1=(Kond(i-1)+Kond(i))/2.0d0
           k2=(Kond(i)+Kond(i+1))/2.0d0
           
           u(i)=( (-k2*(hn(i+1)-hn(i)) )/deltaz(i) ) + ( (k1*(hn(i)-hn(i-1)) )/deltaz(i) )+(k2-k1)
      
          
          sig1=( ( sigma_b(i)+sigma_b(i-1) )/2.0d0 )
          
          sig2=( (sigma_b(i)+sigma_b(i+1) )/2.0d0 )
          
          b_inf(i)=(sig1/deltaz(i) )
          
          b_dia(i)= ( -(sig2+sig1)/deltaz(i) )
          
          b_sup(i)=( sig2/deltaz(i) )
          
          fsec(i)= cte* ( ( (u(i+1)+u(i)) /(theta(i+1)+theta(i)) )- ( (u(i-1)+u(i) )/( theta(i-1)+theta(i) ) ) )          
            
      end do 
      
           k1=(Kond(nm-1)+Kond(nm))/2.0d0 
           k2=Kond(nm)
           
           u(nm)=( (-k2*(himp-hn(i)) )/deltaz(i) ) + ( (k1*(hn(i)-hn(i-1)) )/deltaz(i) )+(k2-k1)
      
   
          sig1= ( (sigma_b(nm-1)+sigma_b(nm))/2.0d0 )
          
          b_inf(nm)= ( sig1/deltaz(nm) )
          
          b_dia(nm)= ( - (sig2+sig1)/deltaz(nm) )
          
          fsec(nm)= (cte* ( (u(nm)/theta(nm))-( (u(nm)+u(nm-1))/(theta(nm)+theta(nm-1) ) )) )- ((sig2*PSimp)/deltaz(nm))    
       return 
       end   
      
 
     subroutine thomas(n,a,b,d,c,f)
      integer i,j
      
      parameter (nmax=10000)
      real*8 a(*),b(*),c(*),d(*),f(*),r(nmax),g
      r(1)=f(1)
      do i=2,n
        g=b(i)/d(i-1)
        d(i)=d(i)-g*a(i-1)
        r(i)=f(i)-g*r(i-1)
      enddo
      c(n)=r(n)/d(n)

      DO i=2,n
        j=n-i+1
        c(j)=(r(j)-a(j)*c(j+1))/d(j)
      enddo
      return
  !close(13)
      end  

!function kond(h)
!implicit none
!real*8 ::k_s,k_r,Se,l,m,ns,alfa,kond,h

 !k_s=0.00825d0
! alfa=0.145d0 
 !l=0.5d0
! ns=2.68d0
! m=1.0d0-(1.0d0/ns)


    ! if (h.lt.0.0d0) then 

      !  Se=(1.0d0+(alfa*dabs(h))**ns)**-m
      !  k_r=(Se**l)*(1- (1- ((Se)**(1/m)) )**m )**2
        
      !  kond= (k_s*k_r)
   ! else
       ! kond=0.0d0
    !endif
    
!end function
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
Modifié par baladur13 le 28/05/2015 à 10:41
program geophysique

implicit none
INTEGER                                  ::nm,nt,k,i,j    
REAL*8, DIMENSION(:)  , ALLOCATABLE      ::b_inf,b_sup,b_dia,fsec,deltaz,z,sigma_b,kond,PSn,hn,theta,u
REAL*8 :: L,tmax,temps,PSimp,dt,flux0,Csat,sigma_sat,Ro,g,fi,Ks,u0,himp,sigma_w,F,na,A,B

 
         L=20d0
         tmax=1000.0d0 
         dt=1.0d0  
       
     
      !le fichier des input     
      open (14, FILE='input_geo.dat') 
      open (13, FILE='new_input.dat') 
      open(15,FILE='resultats_touma.dat')
      
       
      read(13,*) nm 
      Allocate (deltaz(nm),z(nm))  
      ALLOCATE(PSn(nm),fsec(nm),b_inf(nm),kond(nm),b_sup(nm),b_dia(nm),sigma_b(nm),u(nm),hn(nm),theta(nm))
      read(13,*) deltaz(1:nm)
      read(13,*)himp
      read(13,*)u0
      
      
       !calcul de z(i) le centre de chaque maille
        z(1)=deltaz(1)/2.0d0 
        do i=2,nm
          z(i)=z(i-1)+(deltaz(i-1)+deltaz(i))/2.0d0
       enddo
      
       read(14,*) PSimp
       read(14,*) flux0
       
        do i=1,nm 
           read(15,*) z(i), hn(i) , theta(i)
        end do
        
        write(*,*) hn(1)

      
         open(16,FILE='resultats_géophysique.dat')
       

        nt=tmax/dt
        WRITE(*,*)'nm=',nm,'nt=',nt
        temps=0.0d0
        pause
     
    do k=1,nt
        write(*,*)k
        temps=temps+dt 
    call remplissa_mat(nm,deltaz,dt,sigma_b,b_sup,b_dia,b_inf,fsec,flux0,PSimp,hn,theta)
    call thomas(nm,b_sup,b_inf,b_dia,PSn,fsec)
 end do
       
    !Affichage du potenciel spontané  
      do i=1,nm
         write(16,*)k,PSn(i)
      end do 

      WRITE(*,*)'minimum=',MINVAL(PSn(1:nm)),'maximum=',MaxVAL(PSn(1:nm))
      pause     
  end

   subroutine remplissa_mat(nm,deltaz,dt,sigma_b,b_sup,b_dia,b_inf,fsec,flux0,PSimp,hn,theta)
           implicit none
           integer nm,i
           real*8 theta(*),u(nm),hn(*),deltaz(*),fsec(*),b_dia(*),b_sup(*),b_inf(*),sigma_b(*)
           real*8 Ro,g,fi,Csat,Ks,flux0,PSimp,kond(nm),sigma_w,sigma_sat,F,sig1,sig2,na,cte,A,B,u0,k1,k2,himp,dt
           
            A=5.03611d0
            B=6.07d0
          
            
           sigma_w=0.00051d0
           sigma_sat=0.0031d0
           Ro=999.97d0
           g=9.8d0
           ks=0.0000825d0
           F=4.26d0
           na=1.6d0
           Csat=-2.9d-7
           fi=1.0d0
           
         !calcul de sigma_b
        do i=1,nm
           sigma_b(i)=( (1.0d0/F)*sigma_w*(((theta(i))/fi)**na) )
        end do 
        !------------------------  
        
        !calcul de la conductivité  
        do i=1,nm
           kond(i)=A*((theta(i))**B)
        end do
        !--------------------------

           k2=(Kond(1)+Kond(2))/2.0d0

           u(1)=( (-k2*(hn(i+1)-hn(i)) )/deltaz(i) )+k2-u0
           
           cte=( (-Csat*sigma_sat*Ro*g*fi)/Ks )
           
           sig2=( (sigma_b(1)+sigma_b(2))/2.0d0 )
           
           b_dia(1)=( -sig2/deltaz(1) )
           
           b_sup(1)= ( sig2/deltaz(1) )
           
           fsec(1)= (cte*( ( (u(2)+u(1))/( theta(2)+theta(1)) )- (u(1)/theta(1)) ))+flux0  
           
      do i=2,nm-1
      
           k1=(Kond(i-1)+Kond(i))/2.0d0
           k2=(Kond(i)+Kond(i+1))/2.0d0
           
           u(i)=( (-k2*(hn(i+1)-hn(i)) )/deltaz(i) ) + ( (k1*(hn(i)-hn(i-1)) )/deltaz(i) )+(k2-k1)
      
          
          sig1=( ( sigma_b(i)+sigma_b(i-1) )/2.0d0 )
          
          sig2=( (sigma_b(i)+sigma_b(i+1) )/2.0d0 )
          
          b_inf(i)=(sig1/deltaz(i) )
          
          b_dia(i)= ( -(sig2+sig1)/deltaz(i) )
          
          b_sup(i)=( sig2/deltaz(i) )
          
          fsec(i)= cte* ( ( (u(i+1)+u(i)) /(theta(i+1)+theta(i)) )- ( (u(i-1)+u(i) )/( theta(i-1)+theta(i) ) ) )          
            
      end do 
      
           k1=(Kond(nm-1)+Kond(nm))/2.0d0 
           k2=Kond(nm)
           
           u(nm)=( (-k2*(himp-hn(i)) )/deltaz(i) ) + ( (k1*(hn(i)-hn(i-1)) )/deltaz(i) )+(k2-k1)
      
   
          sig1= ( (sigma_b(nm-1)+sigma_b(nm))/2.0d0 )
          
          b_inf(nm)= ( sig1/deltaz(nm) )
          
          b_dia(nm)= ( - (sig2+sig1)/deltaz(nm) )
          
          fsec(nm)= (cte* ( (u(nm)/theta(nm))-( (u(nm)+u(nm-1))/(theta(nm)+theta(nm-1) ) )) )- ((sig2*PSimp)/deltaz(nm))    
       return 
       end   
      
 
     subroutine thomas(n,a,b,d,c,f)
      integer i,j
      
      parameter (nmax=10000)
      real*8 a(*),b(*),c(*),d(*),f(*),r(nmax),g
      r(1)=f(1)
      do i=2,n
        g=b(i)/d(i-1)
        d(i)=d(i)-g*a(i-1)
        r(i)=f(i)-g*r(i-1)
      enddo
      c(n)=r(n)/d(n)

      DO i=2,n
        j=n-i+1
        c(j)=(r(j)-a(j)*c(j+1))/d(j)
      enddo
      return
  !close(13)
      end
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 10:44
Je suis en train de télécharger un compilateur Fortran pour tester ton programme. En attendant, as-tu essayé de le compiler en mettant le programme principal à la fin de ton fichier plutôt qu'au début ?
Je sais qu'en C il faut soit déclarer un sous-programme avant le programme principal soit mettre le source du sous-programme avant le programme principal sinon celui-ci ne le connait pas.
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
28 mai 2015 à 12:15
Bonjour,
La structure est bonne car j'ai déja fait des programmes pareilles.
Ils vous manquent les fichiers dat.
Actuellement, j'utilise le comp-intel-bat
Je dois vous envoyé les fichiers dat ?
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 12:21
Non, je vais juste essayer de compiler si j'arrive à installer un compilateur Fortran sachant que cet aprem je n'ai pas trop de temps disponible.
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
28 mai 2015 à 12:22
Ci dessous le fichier resultats_touma
5.000000000000000E-002 -13.9738195143532 0.269578841809535
0.150000000000000 -14.0049689014375 0.269412715996223
0.250000000000000 -14.0365211511907 0.269244317861301
0.350000000000000 -14.0684830278750 0.269073607923757
0.450000000000000 -14.1008614526980 0.268900545802181
0.550000000000000 -14.1336635086176 0.268725090188781
0.650000000000000 -14.1668964453293 0.268547198822492
0.750000000000000 -14.2005676844472 0.268366828461127
0.850000000000000 -14.2346848248838 0.268183934852535
0.950000000000000 -14.2692556484414 0.267998472704721
1.05000000000000 -14.3042881256227 0.267810395654884
1.15000000000000 -14.3397904216722 0.267619656237333
1.25000000000000 -14.3757709028583 0.267426205850222
1.35000000000000 -14.4122381430088 0.267229994721053
1.45000000000000 -14.4492009303112 0.267030971870909
1.55000000000000 -14.4866682743915 0.266829085077332
1.65000000000000 -14.5246494136835 0.266624280835818
1.75000000000000 -14.5631538231057 0.266416504319836
1.85000000000000 -14.6021912220583 0.266205699339329
1.95000000000000 -14.6417715827583 0.265991808297608
2.05000000000000 -14.6819051389291 0.265774772146584
2.15000000000000 -14.7226023948627 0.265554530340239
2.25000000000000 -14.7638741348740 0.265331020786275
2.35000000000000 -14.8057314331674 0.265104179795841
2.45000000000000 -14.8481856641371 0.264873942031251
2.55000000000000 -14.8912485131245 0.264640240451597
2.65000000000000 -14.9349319876562 0.264403006256160
2.75000000000000 -14.9792484291899 0.264162168825495
2.85000000000000 -15.0242105253939 0.263917655660104
2.95000000000000 -15.0698313229911 0.263669392316550
3.05000000000000 -15.1161242411969 0.263417302340900
3.15000000000000 -15.1631030857861 0.263161307199363
3.25000000000000 -15.2107820638221 0.262901326205965
3.35000000000000 -15.2591757990873 0.262637276447137
3.45000000000000 -15.3082993482542 0.262369072703030
3.55000000000000 -15.3581682178401 0.262096627365400
3.65000000000000 -15.4087983819907 0.261819850351886
3.75000000000000 -15.4602063011426 0.261538649016476
3.85000000000000 -15.5124089416147 0.261252928055975
3.95000000000000 -15.5654237961859 0.260962589412250
4.05000000000000 -15.6192689057183 0.260667532170016
4.15000000000000 -15.6739628818900 0.260367652449936
4.25000000000000 -15.7295249311044 0.260062843296760
4.35000000000000 -15.7859748796519 0.259752994562229
4.45000000000000 -15.8433332002008 0.259437992782458
4.55000000000000 -15.9016210397021 0.259117721049472
4.65000000000000 -15.9608602488003 0.258792058876560
4.75000000000000 -16.0210734128461 0.258460882057095
4.85000000000000 -16.0822838846175 0.258124062516437
4.95000000000000 -16.1445158188612 0.257781468156493
5.05000000000000 -16.2077942087773 0.257432962692520
5.15000000000000 -16.2721449245786 0.257078405481680
5.25000000000000 -16.3375947542646 0.256717651342854
5.35000000000000 -16.4041714467668 0.256350550367179
5.45000000000000 -16.4719037576278 0.255976947718717
5.55000000000000 -16.5408214973949 0.255596683424645
5.65000000000000 -16.6109555829227 0.255209592154297
5.75000000000000 -16.6823380917941 0.254815502986334
5.85000000000000 -16.7550023200879 0.254414239163274
5.95000000000000 -16.8289828437422 0.254005617832552
6.05000000000000 -16.9043155837811 0.253589449773206
6.15000000000000 -16.9810378756985 0.253165539107224
6.24999999999999 -17.0591885433181 0.252733682994515
6.34999999999999 -17.1388079774774 0.252293671310361
6.44999999999999 -17.2199382199136 0.251845286304133
6.54999999999999 -17.3026230527686 0.251388302237962
6.64999999999999 -17.3869080941629 0.250922485003910
6.74999999999999 -17.4728409003367 0.250447591718103
6.84999999999999 -17.5604710749008 0.249963370290129
6.94999999999999 -17.6498503857932 0.249469558965879
7.04999999999999 -17.7410328905972 0.248965885841821
7.14999999999999 -17.8340750709404 0.248452068348541
7.24999999999999 -17.9290359767680 0.247927812701186
7.34999999999999 -18.0259773813650 0.247392813314215
7.44999999999999 -18.1249639480922 0.246846752177638
7.54999999999999 -18.2260634099032 0.246289298191651
7.64999999999999 -18.3293467628236 0.245720106456278
7.74999999999999 -18.4348884747018 0.245138817512312
7.84999999999999 -18.5427667106850 0.244545056529479
7.94999999999999 -18.6530635770373 0.243938432437330
8.04999999999999 -18.7658653850978 0.243318536993953
8.14999999999999 -18.8812629373886 0.242684943787039
8.24999999999999 -18.9993518381130 0.242037207161314
8.34999999999999 -19.1202328305538 0.241374861065691
8.44999999999999 -19.2440121641850 0.240697417812801
8.54999999999999 -19.3708019946544 0.240004366742747
8.64999999999999 -19.5007208201925 0.239295172782030
8.74999999999999 -19.6338939584505 0.238569274887587
8.84999999999999 -19.7704540682934 0.237826084364714
8.94999999999999 -19.9105417216666 0.237064983046369
9.04999999999998 -20.0543060313400 0.236285321319831
9.14999999999998 -20.2019053411300 0.235486415985062
9.24999999999998 -20.3535079861116 0.234667547927154
9.34999999999998 -20.5092931314019 0.233827959583079
9.44999999999998 -20.6694516993317 0.232966852180449
9.54999999999998 -20.8341873962711 0.232083382723110
9.64999999999998 -21.0037178520621 0.231176660695087
9.74999999999998 -21.1782758870016 0.230245744450595
9.84999999999998 -21.3581109236512 0.229289637253396
9.94999999999998 -21.5434905635143 0.228307282923701
10.0500000000000 -21.7347023518892 0.227297561044859
10.1500000000000 -21.9320557580985 0.226259281675160
10.2500000000000 -22.1358844029335 0.225191179502008
10.3500000000000 -22.3465485707117 0.224091907366222
10.4500000000000 -22.5644380500278 0.222960029073104
10.5500000000000 -22.7899753553419 0.221794011393775
10.6500000000000 -23.0236193913299 0.220592215144709
10.7500000000000 -23.2658696338226 0.219352885214999
10.8500000000000 -23.5172709157203 0.218074139388831
10.9500000000000 -23.7784189241630 0.216753955784434
11.0500000000000 -24.0499665373336 0.215390158699174
11.1500000000000 -24.3326311567117 0.213980402612485
11.2500000000000 -24.6272032248438 0.212522154052382
11.3500000000000 -24.9345561617051 0.211012670975476
11.4500000000000 -25.2556580070500 0.209448979242395
11.5500000000000 -25.5915851252080 0.207827845687167
11.6500000000000 -25.9435384171521 0.206145747176727
11.7500000000000 -26.3128625985589 0.204398834930123
11.8500000000000 -26.7010692504359 0.202582893210146
11.9500000000000 -27.1098645423543 0.200693291304614
12.0500000000000 -27.5411827835408 0.198724927470189
12.1500000000000 -27.9972272966982 0.196672163204803
12.2500000000000 -28.4805205654931 0.194528745828458
12.3500000000000 -28.9939662250478 0.192287716864451
12.4500000000000 -29.5409263118492 0.189941303096518
12.5500000000000 -30.1253183623101 0.187480786398367
12.6500000000000 -30.7517385914477 0.184896347451113
12.7500000000000 -31.4256197099654 0.182176877238830
12.8500000000000 -32.1534352756070 0.179309748706383
12.9500000000000 -32.9429673232241 0.176280539168762
13.0500000000000 -33.8036611531373 0.173072692048607
13.1500000000000 -34.7471017926721 0.169667104554607
13.2500000000000 -35.7876626913580 0.166041626712077
13.3500000000000 -36.9434016709262 0.162170458439755
13.4500000000000 -38.2373166913589 0.158023439101391
13.5500000000000 -39.6991315661274 0.153565247132469
13.6500000000000 -41.3678686312470 0.148754586219190
13.7500000000000 -43.2955898277002 0.143543574882692
13.8500000000000 -45.5528404553763 0.137877881734285
13.9500000000000 -48.2364202314613 0.131698890769328
14.0500000000000 -51.4797370483819 0.124950836750371
14.1500000000000 -55.4637326380914 0.117599354396259
14.2500000000000 -60.4176376709916 0.109674284526535
14.3500000000000 -66.5720859890933 0.101356334434598
14.4500000000000 -73.9713244594502 9.311215399509090E-002
14.5500000000000 -82.0549683525728 8.577623290423959E-002
14.6500000000000 -89.3913924266189 8.027016076202308E-002
14.7500000000000 -94.5791462275406 7.690116903011789E-002
14.8500000000000 -97.4954382713848 7.516893126088771E-002
14.9500000000000 -98.9045063149618 7.436974617601523E-002
15.0500000000000 -99.5331635590226 7.402074369003712E-002
15.1500000000000 -99.8033903851109 7.387212583560314E-002
15.2500000000000 -99.9176381016774 7.380954316585181E-002
15.3500000000000 -99.9655860070175 7.378332242912508E-002
15.4500000000000 -99.9856404661211 7.377236320578015E-002
15.5500000000000 -99.9940137476893 7.376778878138694E-002
15.6500000000000 -99.9975061692676 7.376588106428866E-002
15.7500000000000 -99.9989617266602 7.376508601444527E-002
15.8500000000000 -99.9995679810584 7.376475487521311E-002
15.9500000000000 -99.9998203427897 7.376461703518088E-002
16.0500000000000 -99.9999253314218 7.376455969057986E-002
16.1500000000000 -99.9999689843088 7.376453584748865E-002
16.2500000000000 -99.9999871242153 7.376452593952613E-002
16.3500000000000 -99.9999946578925 7.376452182465533E-002
16.4500000000000 -99.9999977848859 7.376452011670157E-002
16.5500000000000 -99.9999990820438 7.376451940819813E-002
16.6500000000000 -99.9999996198211 7.376451911446590E-002
16.7500000000000 -99.9999998426409 7.376451899276247E-002
16.8500000000000 -99.9999999349075 7.376451894236677E-002
16.9500000000000 -99.9999999730907 7.376451892151122E-002
17.0500000000000 -99.9999999888826 7.376451891288573E-002
17.1500000000000 -99.9999999954098 7.376451890932058E-002
17.2500000000000 -99.9999999981060 7.376451890784794E-002
17.3500000000000 -99.9999999992190 7.376451890724001E-002
17.4500000000000 -99.9999999996782 7.376451890698919E-002
17.5500000000000 -99.9999999998675 7.376451890688579E-002
17.6500000000000 -99.9999999999456 7.376451890684314E-002
17.7500000000000 -99.9999999999778 7.376451890682557E-002
17.8500000000000 -99.9999999999910 7.376451890681834E-002
17.9500000000000 -99.9999999999964 7.376451890681539E-002
18.0500000000000 -99.9999999999986 7.376451890681419E-002
18.1500000000000 -99.9999999999995 7.376451890681369E-002
18.2500000000000 -99.9999999999998 7.376451890681351E-002
18.3500000000000 -100.000000000000 7.376451890681343E-002
18.4500000000000 -100.000000000000 7.376451890681343E-002
18.5500000000000 -100.000000000000 7.376451890681343E-002
18.6500000000000 -100.000000000000 7.376451890681343E-002
18.7500000000000 -100.000000000000 7.376451890681343E-002
18.8500000000000 -100.000000000000 7.376451890681343E-002
18.9500000000000 -100.000000000000 7.376451890681343E-002
19.0500000000000 -100.000000000000 7.376451890681343E-002
19.1500000000000 -100.000000000000 7.376451890681343E-002
19.2500000000000 -100.000000000000 7.376451890681343E-002
19.3500000000000 -100.000000000000 7.376451890681343E-002
19.4500000000000 -100.000000000000 7.376451890681343E-002
19.5500000000000 -100.000000000000 7.376451890681343E-002
19.6500000000000 -100.000000000000 7.376451890681343E-002
19.7500000000000 -100.000000000000 7.376451890681343E-002
19.8500000000000 -100.000000000000 7.376451890681343E-002
19.9500000000000 -100.000000000000 7.376451890681343E-002


ci dessous le fichier new_input
200.0d0 ! nm
200*1.0d-1 ! deltaz
-100.0d0 !himp (en bas)
2.31d-3 !U0 (debit impo en haut)

ci dessous le fichier input_geo
0.0d0 !PSimp (en bas)
0.0d0 !flux0 (debit impo en haut)


Vous devez creer des fichiers text les nommer exple input_geo.dat et cela va se transformer en fichier dat
et mettre tout le contenu(fichier dat et compilateur et le programe ) dans un meme dossier
0
marwamel Messages postés 9 Date d'inscription mercredi 27 mai 2015 Statut Membre Dernière intervention 28 mai 2015
28 mai 2015 à 12:23
Ok , si vous pouvez sinon pas grave.
Cordialement.
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 12:54
Une petite suggestion : remplace le "end" de ton programme principal par :

end program geophysique
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 13:14
J'ai installé le compilateur, créé les fichiers data. Je déjeune et essaye après.
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 14:03
Voilà le résultat :
J'ai mis en commentaire les deux lignes Pause que le compilateur n'aimait pas.
J'ai ensuite compilé sans erreur. J'ai corrigé la première ligne du fichier new-input pour mettre juste 200 puisque nm est un integer et non un flottant (ça générait une erreur à la lecture).
J'ai lancé le programme qui s'est déroulé sans erreur.
Sur l'écran j'ai ceci :

Les chiffres défilent jusqu'à 1000 :

Le fichier resultats_geophysique.dat est créé, il ne contient que des lignes comme ça :

Je ne sais pas si c'est le résultat attendu. Comme je te l'ai dit plus haut, je n'ai pas modifié ton programme hormis mettre en commentaire les deux lignes Pause.
Pour créer le fichier executable, j'ai utilsé GFortran
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
28 mai 2015 à 14:09
Je ne sais pas quel compilateur Fortran tu utilises mais si tu veux essayer celui qui m'a servi, il est ici :
https://gcc.gnu.org/wiki/GFortranBinaries#Windows
Tu télécharges l'installateur qui est sous le lien en rouge indiqué par la flèche :
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
2 juin 2015 à 08:06
Bonjour,
Alors quelles nouvelles sur le sujet ?
0
Bonjour,
Je n'ai pas vu vos messages que maintenant.
Tant que le résultat NAN, c'est qu'il y a une faute dans le programme.
Mon compilateur est compile_intel_bat.
Pouvez vous m'aidez encore
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
2 juin 2015 à 11:36
Je vais essayer de suivre le programme mais c'est difficile sans savoir ce qu'il fait. As-tu résolu ton problème de compilation, problème que je n'ai pas quand je compile puisque le programme s'exécute même s'il donne un résultat que tu juges faux ?
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
2 juin 2015 à 12:13
Sans toucher au programme, je viens de recompiler et exécuter, j'ai ceci au début du fichier résultat :

Il y a une chose curieuse dans ton programme. Au début tu initialises le tableau z dans une boucle et juste après tu le remplis dans une boucle en lisant les valeurs dans le fichier resultats_touma.dat.
0
Bonjour,
Pour moi la compilation c'est faite avec le compliateur intel_bat mais l'éxécution ne se fait pas.
C'est résultats sont trop grandes c'est à dire le prog est faux.
Ok j'enlève la boucle qui calcule dz(i).
Il s'agit d'une colonne de sable au cours du drainage pour un milieu poreux non saturé.
0
PSud Messages postés 1275 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 30 octobre 2023 520
2 juin 2015 à 13:14
Maintenant que j'ai un résultat en chiffre dans le fichier final, j'ai passé le programme plusieurs fois de suite et je trouve à chaque fois des résultats différents avec des chiffres qui de toute façon ne sont pas normaux ( ...E+272). Tout cela traduit soit un dépassement de tableau quelque part dans le programme soit un mauvais passage de paramètre dans un sous-programme. Ceci fait qu'on décode comme un nombre flottant n'importe quelle partie de la mémoire d'où le chiffre grotesque.
Il faut donc vérifier toutes les boucles et tous les appels aux sous-programmes.
0
Les paramètres des boucles sont bien placés et j'ai leur appel est juste .
Mais j'ai pas pu trouver la faute.
0