IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

éxecution pour fortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut éxecution pour fortran
    bonjour à tous
    j'ai une question sur le programme Fortran
    lorsque j'ai fait l'exécution , elle me donne
    "severe <24>:end-of-file during read ,unit 91,file,F:\code tu \Gauss 16s1.dat



    c'est le nom de féchier Gauss 16s1.dat


    svp aidez moi et merciiii

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Salut,
    C'est un problème de détection de fin de fichier. Ajouter dans la boucle de lecture quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    read(91,*,iostat=ios) les_variables
    if (ios .ne. 0) exit
    Si c'est pas ça, montre nous le sous-programme de lecture.

  3. #3
    Candidat au Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut
    Citation Envoyé par __dardanos__ Voir le message
    Salut,
    C'est un problème de détection de fin de fichier. Ajouter dans la boucle de lecture quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    read(91,*,iostat=ios) les_variables
    if (ios .ne. 0) exit
    Si c'est pas ça, montre nous le sous-programme de lecture.



    salut
    c'est le programme




    ***************************************
    program integration de legendre
    implicit real*8(a-h,o-z)
    parameter (itf2=2,dt=6.d-2)
    parameter (n1=16,n2=16,n3=16)
    parameter (kitf=2)


    common /cgrille/xk1(n1),alphak1(n1),sk(n1),z(n2),phi(n3),
    *xk2(n2),alphak2(n2),
    *xk3(n3),alphak3(n3)

    dimension s11(0:itf2,0:itf2),s22(0:itf2,0:itf2),s33(0:itf2,0:itf2)
    dimension s12(0:itf2,0:itf2),s21(0:itf2,0:itf2),s13(0:itf2,0:itf2)
    dimension s31(0:itf2,0:itf2),s23(0:itf2,0:itf2),s32(0:itf2,0:itf2)
    dimension st1(0:itf2,0:itf2),s1t(0:itf2,0:itf2),s2t(0:itf2,0:itf2)
    dimension st2(0:itf2,0:itf2),s3t(0:itf2,0:itf2),st3(0:itf2,0:itf2)
    dimension stt(0:itf2,0:itf2)

    dimension e(n1,n2,n3)
    dimension e12(n1,n2,n3)
    dimension e21(n1,n2,n3)
    dimension e11(n1,n2,n3)
    dimension e22(n1,n2,n3)
    dimension e33(n1,n2,n3)
    dimension e31(n1,n2,n3)
    dimension e32(n1,n2,n3)
    dimension e13(n1,n2,n3)
    dimension e23(n1,n2,n3)
    dimension et1(n1,n2,n3)
    dimension et2(n1,n2,n3)
    dimension e1t(n1,n2,n3)
    dimension e2t(n1,n2,n3)
    dimension ett(n1,n2,n3)
    dimension e3t(n1,n2,n3)
    dimension et3(n1,n2,n3)


    dimension e11c(n1,n2,n3)
    dimension e22c(n1,n2,n3)
    dimension e33c(n1,n2,n3)
    dimension e12c(n1,n2,n3)
    dimension e23c(n1,n2,n3)
    dimension e13c(n1,n2,n3)




    dimension d11(0:itf2,0:itf2),d22(0:itf2,0:itf2),d33(0:itf2,0:itf2)
    dimension d12(0:itf2,0:itf2),d23(0:itf2,0:itf2),d13(0:itf2,0:itf2)

    dimension ek(n1)
    dimension eev(n1)
    dimension ssv(n1)

    pi=dacos(-1.d0)
    call grille


    Fr=0.19d0
    Re=52.d0
    Pr=1.d0



    do kit=1,kitf

    c*****boucles sur le temps***********************************
    do22 itp=0,itf2

    if(itp.eq.0)then

    do isk=1,n1
    do izt=1,n2
    do iphi=1,n3

    rkp=4.767d0
    ceo=2.d0**6/3.d0/dsqrt(2.d0*pi)
    c********************spectre d energie a t=0**************
    eev(isk)=0.5d0*ceo*sk(isk)**4*dexp(-2.d0*(sk(isk))**2)
    ssv(isk)=0.d0

    e(isk,izt,iphi)=eev(isk)/(4.d0*pi*(sk(isk)**2))

    e33(isk,izt,iphi)=(1.d0-z(izt)**2)*e(isk,izt,iphi)

    e11(isk,izt,iphi)=e(isk,izt,iphi)-
    *(dcos(phi(iphi)))**2*(1.d0-z(izt)**2)*
    *e(isk,izt,iphi)

    e22(isk,izt,iphi)=e(isk,izt,iphi)-
    *(1.d0-(dcos(phi(iphi)))**2)*(1.d0-z(izt)**2)*
    *e(isk,izt,iphi)

    e12(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)

    e21(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)

    e31(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)


    e13(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)

    e23(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)

    e32(isk,izt,iphi)=-dcos(phi(iphi))*
    *dsin(phi(iphi))*
    *(1.d0-z(izt)**2)*e(isk,izt,iphi)


    et1(isk,izt,iphi)=0.d0
    et2(isk,izt,iphi)=0.d0
    e1t(isk,izt,iphi)=0.d0
    e2t(isk,izt,iphi)=0.d0
    ett(isk,izt,iphi)=0.d0
    et3(isk,izt,iphi)=0.d0
    e3t(isk,izt,iphi)=0.d0



    enddo
    enddo
    enddo

    call physsimpp(e11,V11)
    call physsimpp(e22,V22)
    call physsimpp(e33,VKE)
    call physsimpp(e12,V12)
    call physsimpp(e21,V21)
    call physsimpp(e13,V13)
    call physsimpp(e31,V31)
    call physsimpp(e23,V23)
    call physsimpp(e32,V32)
    call physsimpp(et3,Vt3)
    call physsimpp(e3t,V3t)
    call physsimpp(ett,Vtt)
    call physsimpp(e1t,V1t)
    call physsimpp(et1,Vt1)
    call physsimpp(e2t,V2t)
    call physsimpp(et2,Vt2)

    s11(0,0)=V11
    s22(0,0)=V22
    s33(0,0)=VKE
    s12(0,0)=V12
    s13(0,0)=V13
    s31(0,0)=V31
    s32(0,0)=V32
    s23(0,0)=V23
    s21(0,0)=V21
    s1t(0,0)=V1t
    st1(0,0)=Vt1
    s2t(0,0)=V2t
    st2(0,0)=V12
    st3(0,0)=Vt3
    s3t(0,0)=V3t
    stt(0,0)=Vtt

    end if

    if(itp.gt.0)then

    do isk=1,n1
    do izt=1,n2
    do iphi=1,n3
    read(11)e11(isk,izt,iphi)
    read(22)e22(isk,izt,iphi)
    read(33)e33(isk,izt,iphi)
    read(12)e21(isk,izt,iphi)
    read(21)e12(isk,izt,iphi)
    read(31)e13(isk,izt,iphi)
    read(13)e31(isk,izt,iphi)
    read(23)e32(isk,izt,iphi)
    read(32)e23(isk,izt,iphi)
    read(15)et1(isk,izt,iphi)
    read(25)et2(isk,izt,iphi)
    read(35)et3(isk,izt,iphi)
    read(51)e1t(isk,izt,iphi)
    read(52)e2t(isk,izt,iphi)
    read(53)e3t(isk,izt,iphi)
    read(55)ett(isk,izt,iphi)
    end do
    end do
    end do

    call physsimpp(e11,V11)
    call physsimpp(e22,V22)
    call physsimpp(e33,VKE)
    call physsimpp(e12,V12)
    call physsimpp(e13,V13)
    call physsimpp(e23,V23)
    call physsimpp(e1t,V1t)
    call physsimpp(et2,Vt2)
    call physsimpp(et3,Vt3)
    call physsimpp(e3t,V3t)
    call physsimpp(et1,Vt1)
    call physsimpp(e2t,V2t)
    call physsimpp(ett,Vtt)
    call physsimpp(e21,V21)
    call physsimpp(e31,V31)
    call physsimpp(e32,V32)

    s11(itp,0)=V11
    s22(itp,0)=V22
    s33(itp,0)=VKE
    s12(itp,0)=V12
    s13(itp,0)=V13
    s23(itp,0)=V23
    s32(itp,0)=V32
    s31(itp,0)=V31
    s21(itp,0)=V21
    stt(itp,0)=Vtt
    s1t(itp,0)=V1t
    st1(itp,0)=Vt1
    s2t(itp,0)=V2t
    st2(itp,0)=Vt2
    st3(itp,0)=Vt3
    s3t(itp,0)=V3t



    end if

    do11 it=1,itf2

    100 format(2(d14.7,2x))

    do isk=1,n1
    do izt=1,n2
    do iphi=1,n3

    c calcul des derivee premieres et secondes

    rkp2=sk(isk)**2

    rk2=dsqrt(1.d0-z(izt)**2)*dsin(phi(iphi))
    rk1=dsqrt(1.d0-z(izt)**2)*dcos(phi(iphi))
    rk3=z(izt)

    rk12=rk1*rk2
    rk13=rk1*rk3
    rk23=rk2*rk3
    rk1p2=rk1**2
    rk2p2=rk2**2
    rk3p2=rk3**2

    rk31=rk1/rk3
    rk32=rk2/rk3

    rk31p2=rk1p2/rk3p2
    rk32p2=rk2p2/rk3p2

    rk123=rk12/rk3p2


    c calcul des derivee premieres





    de11=-1.d0/Re*rkp2*e11(isk,izt,iphi)-rk13*et1(isk,izt,iphi)

    de22=-1.d0/Re*rkp2*e22(isk,izt,iphi)-rk23*et2(isk,izt,iphi)

    de33=-1.d0/Re*rkp2*e33(isk,izt,iphi)+(1.d0-rk3**2)*
    *et3(isk,izt,iphi)

    de12=-1.d0/Re*rkp2*e12(isk,izt,iphi)-rk13*et2(isk,izt,iphi)

    de21=-1.d0/Re*rkp2*e21(isk,izt,iphi)
    *-rk23*et1(isk,izt,iphi)

    det1=-1.d0/(Re*Pr)*rkp2*et1(isk,izt,iphi)+1.d0/Fr**2*(
    *rk31*e11(isk,izt,iphi)
    *+rk32*e21(isk,izt,iphi))

    de1t=-1.d0/Re*rkp2*e1t(isk,izt,iphi)*
    *-rk13*ett(isk,izt,iphi)

    det2=-1.d0/(Re*Pr)*rkp2*et2(isk,izt,iphi)+1.d0/Fr**2*(
    *rk32*e22(isk,izt,iphi)
    *+rk31*e12(isk,izt,iphi))



    de2t=-1.d0/Re*rkp2*e2t(isk,izt,iphi)*
    *-rk23*ett(isk,izt,iphi)



    de13=-1.d0/Re*rkp2*e13(isk,izt,iphi)-rk13*
    *et3(isk,izt,iphi)

    de31=-1.d0/Re*rkp2*e31(isk,izt,iphi)+(1-rk3**2)*et2(isk,izt,iphi)


    de23=-1.d0/Re*rkp2*e23(isk,izt,iphi)-rk23*et3(isk,izt,iphi)


    de32=-1.d0/Re*rkp2*e32(isk,izt,iphi)+
    +(1-rk3**2)*et3(isk,izt,iphi)



    det3=-1.d0/(Re*Pr)*rkp2*et3(isk,izt,iphi)+1.d0/Fr**2*
    *e33(isk,izt,iphi)


    de3t=-1.d0/Re*rkp2*e3t(isk,izt,iphi)+(1.d0-rk3**2)*
    *ett(isk,izt,iphi)


    dett=-1.d0/(Re*Pr)*rkp2*ett(isk,izt,iphi)-1.d0/Fr**2*
    *e3t(isk,izt,iphi)






    c calcul des derivees seconde


    dde11=-1.d0/Re*rkp2*de11-rk13*
    *det1



    dde22=-1.d0/Re*rkp2*de22-rk23*det2



    dde33=-1.d0/Re*rkp2*de33+(1.d0-rk3p2)*det3


    dde12=-1.d0/Re*rkp2*de12-rk13*det2

    dde21=-1.d0/Re*rkp2*de21-rk23*det1



    ddet1=-1.d0/(Re*Pr)*rkp2*det1+1.d0/Fr**2*
    *(rk31*de11+rk32*de21)

    dde1t=-1.d0/Re*rkp2*de1t
    *-rk13*dett



    ddet2=-1.d0/(Re*Pr)*rkp2*det2+1.d0/Fr**2*(rk32*de22+rk31*de12)


    dde2t=-1.d0/Re*rkp2*de2t
    *-rk23*dett


    dde13=-1.d0/Re*rkp2*de13-rk13*
    *det3

    dde31=-1.d0/Re*rkp2*de31+(1-rk3**2)*
    *det2

    dde23=-1.d0/Re*rkp2*de23-rk23*det3


    dde32=-1.d0/Re*rkp2*de32+(1-rk3**2)*
    *det2


    dde3t=-1.d0/Re*rkp2*de3t+(1-rk3**2)*
    *dett

    ddet3=-1.d0/(Re*Pr)*rkp2*det3+1.d0/Fr**2*de33

    ddett=-1.d0/(Re*Pr)*rkp2*dett-1.d0/Fr**2*de3t
    c*****72****************************************************************
    c calcul des spectres au secon ordre
    c*****72****************************************************************

    e11(isk,izt,iphi)=e11(isk,izt,iphi)+dt*de11+dt**2*dde11/2.d0
    e22(isk,izt,iphi)=e22(isk,izt,iphi)+dt*de22+dt**2*dde22/2.d0
    e33(isk,izt,iphi)=e33(isk,izt,iphi)+dt*de33+dt**2*dde33/2.d0


    et1(isk,izt,iphi)=et1(isk,izt,iphi)+dt*det1+dt**2*ddet1/2.d0
    e1t(isk,izt,iphi)=e1t(isk,izt,iphi)+dt*de1t+dt**2*dde1t/2.d0

    e2t(isk,izt,iphi)=e2t(isk,izt,iphi)+dt*de2t+dt**2*dde2t/2.d0
    et2(isk,izt,iphi)=et2(isk,izt,iphi)+dt*det2+dt**2*ddet2/2.d0

    e21(isk,izt,iphi)=e21(isk,izt,iphi)+dt*de21+dt**2*dde21/2.d0
    e12(isk,izt,iphi)=e12(isk,izt,iphi)+dt*de12+dt**2*dde12/2.d0

    ett(isk,izt,iphi)=ett(isk,izt,iphi)+dt*dett+dt**2*ddett/2.d0

    e3t(isk,izt,iphi)=e3t(isk,izt,iphi)+dt*de3t+dt**2*dde3t/2.d0
    et3(isk,izt,iphi)=et3(isk,izt,iphi)+dt*det3+dt**2*dde3t/2.d0

    e13(isk,izt,iphi)=e13(isk,izt,iphi)+dt*de13+dt**2*dde13/2.d0
    e31(isk,izt,iphi)=e31(isk,izt,iphi)+dt*de31+dt**2*dde31/2.d0

    e23(isk,izt,iphi)=e23(isk,izt,iphi)+dt*de23+dt**2*dde23/2.d0
    e32(isk,izt,iphi)=e32(isk,izt,iphi)+dt*de32+dt**2*dde32/2.d0

    e(isk,izt,iphi)=0.5d0*(e11(isk,izt,iphi)+e22(isk,izt,iphi)
    *+e33(isk,izt,iphi))


    if(dabs(e11(isk,izt,iphi)).lt.1.d-21)e11(isk,izt,iphi)=0.d0
    if(dabs(e12(isk,izt,iphi)).lt.1.d-21)e12(isk,izt,iphi)=0.d0
    if(dabs(e13(isk,izt,iphi)).lt.1.d-21)e13(isk,izt,iphi)=0.d0
    if(dabs(e21(isk,izt,iphi)).lt.1.d-21)e21(isk,izt,iphi)=0.d0
    if(dabs(e22(isk,izt,iphi)).lt.1.d-21)e22(isk,izt,iphi)=0.d0
    if(dabs(e23(isk,izt,iphi)).lt.1.d-21)e23(isk,izt,iphi)=0.d0
    if(dabs(e33(isk,izt,iphi)).lt.1.d-21)e33(isk,izt,iphi)=0.d0
    if(dabs(e31(isk,izt,iphi)).lt.1.d-21)e31(isk,izt,iphi)=0.d0
    if(dabs(e32(isk,izt,iphi)).lt.1.d-21)e32(isk,izt,iphi)=0.d0
    if(dabs(et1(isk,izt,iphi)).lt.1.d-21)et1(isk,izt,iphi)=0.d0
    if(dabs(e1t(isk,izt,iphi)).lt.1.d-21)e1t(isk,izt,iphi)=0.d0
    if(dabs(e2t(isk,izt,iphi)).lt.1.d-21)e2t(isk,izt,iphi)=0.d0
    if(dabs(e3t(isk,izt,iphi)).lt.1.d-21)e3t(isk,izt,iphi)=0.d0
    if(dabs(et3(isk,izt,iphi)).lt.1.d-21)et3(isk,izt,iphi)=0.d0
    if(dabs(et2(isk,izt,iphi)).lt.1.d-21)et2(isk,izt,iphi)=0.d0
    if(dabs(ett(isk,izt,iphi)).lt.1.d-21)ett(isk,izt,iphi)=0.d0
    if(dabs(e(isk,izt,iphi)).lt.1.d-21)e(isk,izt,iphi)=0.d0

    if(kit.eq.1.and.itp.eq.0)then
    write(11)e11(isk,izt,iphi)
    write(22)e22(isk,izt,iphi)
    write(33)e33(isk,izt,iphi)
    write(12)e12(isk,izt,iphi)
    write(21)e21(isk,izt,iphi)
    write(51)et1(isk,izt,iphi)
    write(52)et2(isk,izt,iphi)
    write(15)e1t(isk,izt,iphi)
    write(25)e2t(isk,izt,iphi)
    write(55)ett(isk,izt,iphi)
    write(31)e13(isk,izt,iphi)
    write(13)e31(isk,izt,iphi)
    write(53)et3(isk,izt,iphi)
    write(35)e3t(isk,izt,iphi)
    write(32)e23(isk,izt,iphi)
    write(23)e32(isk,izt,iphi)
    end if

    if(kit.eq.1)then
    e11c(isk,izt,iphi)=e11(isk,izt,iphi)
    e22c(isk,izt,iphi)=e22(isk,izt,iphi)
    e33c(isk,izt,iphi)=e33(isk,izt,iphi)
    e12c(isk,izt,iphi)=e12(isk,izt,iphi)
    e13c(isk,izt,iphi)=e13(isk,izt,iphi)
    e23c(isk,izt,iphi)=e23(isk,izt,iphi)
    else
    c=rk1p2*d11(itp,it)+rk2p2*d22(itp,it)+
    *rk3p2*d33(itp,it)
    *+2.d0*rk12*d12(itp,it)
    *+2.d0*rk13*d13(itp,it)
    *+2.d0*rk23*d23(itp,it)
    c=c*rkp2/2.d0
    e11c(isk,izt,iphi)=e11(isk,izt,iphi)*dexp(-c)
    e22c(isk,izt,iphi)=e22(isk,izt,iphi)*dexp(-c)
    e33c(isk,izt,iphi)=e33(isk,izt,iphi)*dexp(-c)
    e12c(isk,izt,iphi)=e12(isk,izt,iphi)*dexp(-c)
    e13c(isk,izt,iphi)=e13(isk,izt,iphi)*dexp(-c)
    e23c(isk,izt,iphi)=e23(isk,izt,iphi)*dexp(-c)

    end if

    enddo
    enddo
    enddo

    call physsimpp(e11c,vs11)
    call physsimpp(e22c,vs22)
    call physsimpp(e33c,vs33)
    call physsimpp(e12c,vs12)
    call physsimpp(e13c,vs13)
    call physsimpp(e23c,vs23)


    s11(itp,it)=vs11
    s22(itp,it)=vs22
    s33(itp,it)=vs33
    s12(itp,it)=vs12
    s13(itp,it)=vs13
    s23(itp,it)=vs23





    write(*,*)'kit,itp,it',kit,itp,it

    11 continue
    if(kit.eq.1.and.itp.eq.0)then
    rewind(11)
    rewind(22)
    rewind(33)
    rewind(12)
    rewind(13)
    rewind(21)
    rewind(23)
    rewind(31)
    rewind(32)
    rewind(51)
    rewind(52)
    rewind(53)
    rewind(15)
    rewind(25)
    rewind(35)
    rewind(55)
    end if
    22 continue

    if(kit.ne.kitf)then
    rewind(11)
    rewind(22)
    rewind(33)
    rewind(12)
    rewind(13)
    rewind(21)
    rewind(23)
    rewind(31)
    rewind(32)
    rewind(51)
    rewind(52)
    rewind(53)
    rewind(15)
    rewind(25)
    rewind(35)
    rewind(55)
    end if

    call deltaij(s11,d11)
    call deltaij(s22,d22)
    call deltaij(s33,d33)
    call deltaij(s12,d12)
    call deltaij(s13,d13)
    call deltaij(s23,d23)



    if(kit.eq.1)then

    do it=1,itf2
    tt=dfloat(it)*dt
    write(81,220)tt,d11(0,it)
    write(82,220)tt,d22(0,it)
    write(83,220)tt,d33(0,it)
    write(84,220)tt,d12(0,it)
    write(85,220)tt,d13(0,it)
    write(86,220)tt,d23(0,it)
    end do

    end if



    end do

    do it=2,itf2
    aa=dlog(dfloat(it)/dfloat(it-1))
    bb=dlog(d11(0,it)/d11(0,it-1))
    tt=dfloat(it)*dt
    write(44,220)tt,bb/aa
    220 format(d14.7,2x,d14.7)
    200 format(i6,2x,d14.7)
    end do
    *
    do it=1,itf2
    tt=dfloat(it)*dt
    write(45,220)tt,d11(0,it)
    write(46,220)tt,d22(0,it)
    write(47,220)tt,d33(0,it)
    write(48,220)tt,d12(0,it)
    write(49,220)tt,d13(0,it)
    write(50,220)tt,d23(0,it)
    end do








    end

    subroutine physsimpp(sp,spt)
    implicit real*8 (a-h,o-z)
    parameter (n1=16,n2=16,n3=16)!ok
    parameter (skmin=4.d-3,skmax=100.d0)
    dimension sp(n1,n2,n3)
    dimension ff(n3),spz(n2),spk(n1)
    dimension dlogsk(n1)
    dimension g(n1)

    common /cgrille/xk1(n1),alphak1(n1),sk(n1),z(n2),phi(n3),
    *xk2(n2),alphak2(n2),
    *xk3(n3),alphak3(n3)

    pi=dacos(-1.d0)
    do isk=1,n1
    dlogsk(isk)=dlog(sk(isk))
    do izt=1,n2
    do iphi=1,n3
    ff(iphi)=sp(isk,izt,iphi)
    end do

    s=0.d0
    do iphi=1,n3
    s=s+alphak3(iphi)*ff(iphi)
    end do
    spz(izt)=s

    end do
    s=0.d0
    do izt=1,n2
    s=s+alphak2(izt)*spz(izt)
    end do
    spk(isk)=s



    spk(isk)=sk(isk)**2*spk(isk)

    g(isk)=sk(isk)*spk(isk)
    end do

    s=0.d0
    do isk=1,n1
    s=s+alphak1(isk)*g(isk)
    end do
    s=s*pi*(dlog(skmax)-dlog(skmin))/2.d0
    spt=s


    end


    subroutine deltaij(rij,dij)
    implicit real*8(a-h,o-z)
    parameter (itf2=2000,dt=6.d-2)
    dimension rij(0:itf2,0:itf2),dij(0:itf2,0:itf2)


    do itp=0,itf2
    do it=0,itf2
    if(itp.eq.it)then
    dij(itp,it)=0.d0

    else
    call d(rij,dij,itp,it)

    end if
    c write(2,100)itp,it,dij(itp,it)
    100 format(2(1x,i5),(1x,d14.7))
    end do
    end do
    end

    subroutine d(rij,dij,itp,it)
    implicit real*8(a-h,o-z)
    parameter (itf2=2000,dt=6.d-2)
    dimension rij(0:itf2,0:itf2),dij(0:itf2,0:itf2)
    dimension s(0:itf2)
    if(itp.lt.it)then
    isp=itp
    is=it
    endif
    if(itp.gt.it)then
    isp=it
    is=itp
    endif

    do ip=isp,is
    s(ip)=0.d0
    do i=isp,is-1
    s(ip)=s(ip)+dt*(rij(ip,i+1)+rij(ip,i))/2.d0
    end do
    end do
    ss=0.d0
    do ip=isp,is-1
    ss=ss+dt*(s(ip+1)+s(ip))/2.d0
    end do
    dij(itp,it)=ss

    end


    subroutine grille
    implicit real*8(a-h,o-z)
    parameter (n1=16,n2=16,n3=16)!ok
    parameter (skmin=4.d-3,skmax=100.d0)
    dimension dlogsk(n1)


    common /cgrille/xk1(n1),alphak1(n1),sk(n1),z(n2),phi(n3),
    *xk2(n2),alphak2(n2),
    *xk3(n3),alphak3(n3)


    open(91,file='gauss16s1.dat')
    open(92,file='gauss16s2.dat')
    open(93,file='gauss16s3.dat')

    pi=dacos(-1.d0)

    do isk=1,n1
    read(91,*)xk1(isk),alphak1(isk)
    end do
    do isk=1,n1
    c=dlog(skmax)-dlog(skmin)
    d=dlog(skmax)+dlog(skmin)
    dlogsk(isk)=c*xk1(isk)/2.d0+d/2.d0
    sk(isk)=dexp(dlogsk(isk))
    write(1,*)isk,sk(k)
    end do




    do izt=1,n2
    read(92,*)xk2(izt),alphak2(izt)
    z(izt)=xk2(izt)
    write(2,*)izt,z(izt)
    end do

    do iphi=1,n3
    read(93,*)xk3(iphi),alphak3(iphi)
    phi(iphi)=2.d0*(pi*xk3(iphi)+pi)
    write(3,*)iphi,phi(iphi)
    end do

    end
    ****************************************

    lorsque je fais l'exécution elle appraitre
    severe<24>: end -of-file during read , unit 91, file F:\code tu\Gauss 16s1.dat


    svp repond et merciii

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    J'ai modifié grille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    subroutine grille
    implicit real*8(a-h,o-z)
    parameter (n1=16,n2=16,n3=16)!ok
    parameter (skmin=4.d-3,skmax=100.d0)
    dimension dlogsk(n1)
    integer ios
     
    common /cgrille/xk1(n1),alphak1(n1),sk(n1),z(n2),phi(n3),
    *xk2(n2),alphak2(n2),
    *xk3(n3),alphak3(n3)
     
    open(91,file='gauss16s1.dat')
    open(92,file='gauss16s2.dat')
    open(93,file='gauss16s3.dat')
     
    pi=dacos(-1.d0)
     
    do isk=1,n1
        read(91,*,iostat=ios)xk1(isk),alphak1(isk)
        if (ios .ne. 0) exit
    end do
     
    do isk=1,n1
        c=dlog(skmax)-dlog(skmin)
        d=dlog(skmax)+dlog(skmin)
        dlogsk(isk)=c*xk1(isk)/2.d0+d/2.d0
        sk(isk)=dexp(dlogsk(isk))
        write(1,*)isk,sk(k)
    end do
     
    do izt=1,n2
        read(92,*,iostat=ios)xk2(izt),alphak2(izt)
        if (ios .ne. 0) exit
        z(izt)=xk2(izt)
        write(2,*)izt,z(izt)
    end do
     
    do iphi=1,n3
        read(93,*,iostat=ios)xk3(iphi),alphak3(iphi)
        if (ios .ne. 0) exit
        phi(iphi)=2.d0*(pi*xk3(iphi)+pi)
        write(3,*)iphi,phi(iphi)
    end do
     
    close(91) ; close(92) ; close(93)
     
    end
    Sinon ça pourrait être un problème de données. Les variables n1, n2 et n3 ne correspondant pas au nombre de lignes des fichiers.

Discussions similaires

  1. Cours à télécharger pour Fortran
    Par Community Management dans le forum Fortran
    Réponses: 2
    Dernier message: 11/11/2020, 10h49
  2. IDE Windows pour Fortran
    Par genteur slayer dans le forum Fortran
    Réponses: 5
    Dernier message: 25/04/2007, 11h47
  3. Réponses: 2
    Dernier message: 06/09/2006, 14h26
  4. Réponses: 2
    Dernier message: 20/06/2006, 13h45
  5. openGL pour fortran 90
    Par baptwo dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/12/2005, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo