برگزیده های پرشین تولز

تبدیل یه برنامه به زبان فرترن به زبان ...

متالیک

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
31 مارس 2007
نوشته‌ها
2,128
لایک‌ها
285
سلام
از دوستان کسی می تونه این برنامه رو به زبان basic یا pascal یا c یا matlab تبدیلش کنه؟

کد:
c     fdtemp

      implicit double precision (a-h, k, o-z)
      parameter (iz=100)
      dimension aa(0:iz), bb(0:iz), cc(0:iz), dd(0:iz)
      dimension tmj(0:iz), tm(0:iz)

      open (1, file='outtem.dat', status='unknown')
      zl = 2.d0
      tl = 3600.d0*24.d0
      np = 80
      dt = 1.0d0
      dift = 6.d-7
      t0 = 15.d0
      tnp = 25.d0
      tini = 16.d0
      t = 0.d0
      dz = zl/dble(np)
      rz = dift*dt/(dz*dz)
      rz2 = 1.d0 + 2.d0*rz
      do i = 1, np-1
         tmj(i) = tini
         tm(i)  = tini
      end do
      tm(0) = t0
      tm(np) = tnp
      do while (t .le. tl) 
         t = t + dt
         do i = 1, np-1
            aa(i) = -rz
            bb(i) = rz2
            cc(i) = -rz
            dd(i) = tmj(i)
         end do
         dd(1) = dd(1) + rz*t0
         dd(np-1) = dd(np-1) + rz*tnp
         
         call tridia (np-1, aa, bb, cc, dd)

         do i = 1, np-1
            tm(i) = dd(i)
            tmj(i) = tm(i)
         end do

      end do

      do i = 0, np
         z = dble(i)*dz - zl
         write (1, '(f6.3,f7.3)') z, tm(i)
      end do
      close (1)

      end


      subroutine tridia (nn, a, b, c, d)

      implicit double precision (a-h, o-z)
      parameter (iz=100)
      dimension a(0:iz), b(0:iz), c(0:iz), d(0:iz)

      do n = 2, nn
         r = a(n)/b(n-1)
         b(n) = b(n) - r*c(n-1)
         d(n) = d(n) - r*d(n-1)
      end do
      d(nn) = d(nn)/b(nn)
      do n = nn-1, 1, -1
         d(n) = (d(n) - c(n)*d(n+1))/b(n)
      end do

      return
      end
 

متالیک

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
31 مارس 2007
نوشته‌ها
2,128
لایک‌ها
285
البته من همش رو نمی خوام. چون خودم می تونم انجام بدم. فقط این چند تا خط رو اگر زحمت بکشید:

کد:
implicit double precision (a-h, k, o-z)
      parameter (iz=100)
      dimension aa(0:iz), bb(0:iz), cc(0:iz), dd(0:iz)
      dimension tmj(0:iz), tm(0:iz)

zl = 2.d0
      tl = 3600.d0*24.d0
      np = 80
      dt = 1.0d0
      dift = 6.d-7
      t0 = 15.d0
      tnp = 25.d0
      tini = 16.d0
      t = 0.d0

implicit double precision (a-h, o-z)
      parameter (iz=100)
      dimension a(0:iz), b(0:iz), c(0:iz), d(0:iz)
 
بالا