В статье Вольфрама есть формула расширения, заданная с использованием q = e ** (ix), поэтому существует сложный термин. Поэтому «сумма» должна быть объявлена комплексной.
Как уже говорилось, факториальная функция является упрощенной. Будьте осторожны с переполнением.
Лучше всего поместить ваши процедуры в модуль и «использовать» этот модуль из основной программы. Используйте как можно больше параметров отладки компилятора. Например, gfortran, когда используется соответствующая опция предупреждения, предупреждает о типе «sum»: «Warning: возможное изменение значения при преобразовании из COMPLEX (4) в REAL (4)». Если вы используете gfortran, попробуйте: -O2 -fimplicit-none -Wall -Wline-truncation -Wcharacter-truncation -Wsurprising -Waliasing -Wimplicit-interface -Wunused-parameter -fwhole-file -fcheck=all -std=f2008 -pedantic -fbacktrace
Поскольку вы можете решить эту проблему вручную, попробуйте вывести каждый шаг с помощью оператора записи и сравнить его с вычислением руки. Вероятно, вы быстро увидите, где расходятся расчеты. Если неясно, почему расчет отличается, разбейте его на части.