akaGM
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору useretail в ответ на твоё предложение/предположение: там и так всё в даблах организовано... ок, проговорю ещё раз свой трабл... в фортране, как и в любом другом языке высокого уровня... нет, без ликбеза, допустим вы всё и так знаете... есть подпрограмма Код: subroutine sub_test(n, x, y, z) implicit none integer*4 n real*8 x(n), y(n), z(n) ! z считается как функция от у на оси х end subroutine sub_test | я вызываю её двумя способами (две организации проги) 1-ый спoсоб Код: implicit none { здесь копи/пасте код sub_test() } integer*4, parameter :: n = 10000 real*8 x(n), y(n), z(n) ! main call sub_test(n, x, y, z) print(x, y, z) END | 2-ой спoсоб Код: module mod_test contains subroutine sub_test(n, x, y, z) implicit none integer*4 n real*8 x(n), y(n), z(n) ! z считается как функция от у на оси х end subroutine sub_test end module use mod_test integer*4, parameter :: n = 10000 real*8 x(n), y(n), z(n) ! main call sub_test(n, x, y, z) print(x, y, z) END | в результате получаю _разные_ результаты. и ещё раз подчеркну: код sub_test() везде один и тот же! кто может объяснить эту мистику? да, очень важная нотабене для продвинутых: никаких случ.чисел, рандомайзов и тд в sub_test'e() не используется :) | Всего записей: 24055 | Зарегистр. 06-12-2002 | Отправлено: 09:27 01-10-2023 | Исправлено: akaGM, 09:56 01-10-2023 |
|