Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

bubanoid



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
program spline
    use BSINT_INT
    use BSNAK_INT
    use BSCPP_INT
    use PPVAL_INT
    use BSVAL_INT
    implicit none
    real(8) f
    real(8) :: xi1=0.0d0, xi2=2.0d0
    integer, parameter  :: korder=4, ndata=20, ncoef=20, nknot=korder+ncoef
    real(8) :: break(ncoef), ppcoef(korder,ncoef), bscoef(ncoef)
    real(8), dimension(nknot) :: xknot
    integer i,nppcf
    real(8) x, xdata(ndata), fdata(ndata)  
    real(8) z1,z2,z3
    real(8), parameter :: Pi=3.141592653589793238d0
     
    f(x)=dsin(Pi/2.d0*x)
     
    do i=1, ndata
      x=xi1+(xi2-xi1)*dfloat(i-1)/dfloat(ndata-1)
      xdata(i) = x
      fdata(i) = f(x)
    enddo
    CALL D_BSNAK (NDATA, XDATA, KORDER, XKNOT)
    CALL D_BSINT (NCOEF, XDATA, FDATA, KORDER, XKNOT, BSCOEF)
    CALL D_BSCPP (KORDER, XKNOT, NCOEF, BSCOEF, NPPCF, BREAK, PPCOEF)
     
!   Первый блок
    I=2*ndata-3  
    x = dFLOAT(I)/dFLOAT(NDATA-1)
    z1=f(x)
    z2=D_BSVAL(x,KORDER,XKNOT,NCOEF,BSCOEF)
    z3=D_PPVAL(x,BREAK,PPCOEF)
    print*,'x=',x
    print*,z1,'  ',z2,'  ',z3
    print*    
 
!   Второй блок
    x = dFLOAT(2*ndata-3)/dFLOAT(NDATA-1)
    z1=f(x)
    z2=D_BSVAL(x,KORDER,XKNOT,NCOEF,BSCOEF)
    z3=D_PPVAL(x,BREAK,PPCOEF)    
    print*,'x=',x
    print*,z1,'  ',z2,'  ',z3
    print*
 
!   Третий блок
    I=2*ndata-3  
    x = dFLOAT(I)/dFLOAT(NDATA-1)
    z1=f(x)
    z2=D_BSVAL(x,KORDER,XKNOT,NCOEF,BSCOEF)
    z3=D_PPVAL(x,BREAK,PPCOEF)
    print*,'x=',x
    print*,z1,'  ',z2,'  ',z3
    print*
 
    pause 'FINISH: press ENTER.'
end program spline
 
 

Всего записей: 101 | Зарегистр. 22-11-2007 | Отправлено: 12:32 13-12-2010 | Исправлено: bubanoid, 22:52 23-12-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru