Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Programming trouble with fortran optimization code

  1. Jul 18, 2012 #1
    Hi everyone,

    I have some trouble adapting an existing fortran code for my application.

    In the following Module I am optimizing a value for two planes ( i = iplan one&two).
    In order to do that, I need to assign ten certain values from an external inp. file for each plane.

    I have two loops, the first one selecting iplan one, respectively two.
    In this loop is the second one, which is supposed to read in value one (dcp(i,kl)) to ten.
    One value for each run in the secon loop. That means each plane is assign with ten optimization runs, and each run with a certain value.

    My problem is, that: read (iread,*) dcp(i,kl) doesn´t work. The read command is linked to
    the correct variable in the external inp. file, but I think that there is something wrong with the declaration
    of dcp(i,kl)?

    Is there anyone who can help me with that problem?
    Code (Text):

    ! note: module inout for iread
        use inout
        integer :: kl, i, iplan, nscwmi=100, determdcp
        real :: xnscwmi, dcp(2,10), fractionvor
        dimension dcp(i,kl)

    !for iplan=1 & iplan=2; nscwmi from differnet module
        [B]i = 1,iplan[/B]
            xnscwmi = nscwmi
    ! determdcp from external inp with determdcp=1
            read(iread,*) determdcp
            if (determsp .eq. 1) go to 501
        continue

        501
        do 502 kl=1, 10
           READ (iread,*)[B][COLOR="Red"]dcp(i,kl)[/COLOR][/B]

            fractionvor = xnswmi
            xnscwmi = fractionvor/10

            ai   = xnscwmi*d(i,kl)+0.75
            imax = int(ai)
            ..
            ....
            b0(i) = 0.
            a0(i) = imax
            a1 (i)    = a1(i)+ a0(i)

    Thanks!
     
  2. jcsd
  3. Jul 26, 2012 #2
    The declaration here seems strange.

    Code (Text):

    ! note: module inout for iread
        use inout
        integer :: kl, i, iplan, nscwmi=100, determdcp
        real :: xnscwmi, dcp(2,10), fractionvor
        dimension dcp(i,kl)
     
    Try instead

    Code (Text):

    ! note: module inout for iread
        use inout
        integer :: iplan, determdcp
        integer, parameter :: kl = 10
        integer, parameter :: i = 2
        integer, parameter :: nscwmi = 100

        real :: xnscwmi, fractionvor
        real, dimension(i,kl) :: dcp
     
    Let me know how that works out.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Programming trouble with fortran optimization code
  1. Programming in fortran (Replies: 5)

  2. Help with fortran code (Replies: 17)

  3. Help with fortran code (Replies: 4)

Loading...