Есть подозрение, что под "центрально-разностной" имеется в виду схема с перешагивание (leap-frog):
Может быть, но ТС в этом не признается.
У Вас тут, похоже, три ошибки.
Я попробовал реализовать одностороннюю.
Как говорила Мальвина, "какой ужас!"
Конкретная проблема с функцией
abs сводится к тому, что компиляторы Фортрана по умолчанию ограничивают длину строки кода 132 символами, а строчки, в которых Вы получаете ошибку, длиннее.
abs просто не повезло - обрезка происходит как раз там, где начинается аргумент. Соответственно, надо либо переносить строчку (в какой-то момент ставите
& и продолжаете на следующей), либо ключом компилятора увеличивать допустимую длину строки.
Но в целом код действительно ужасен. Во-первых, зачем Вам
real*16? Для всего этого двойной точности более чем достаточно. Во-вторых, считать все в СИ, без предварительного обезразмеривания задачи, не стоит - это мощный источник как машинных погрешностей, так и ошибок при написании кода. Наконец, использовать Фортран и не пользоваться при этом векторными операциями - это реализация анекдота "взял билет и пошел пешком". Ну а шедевры вроде
abs(-x) - это уже просто нет слов.
Мне главное понять, верно ли я понимаю алгоритм.
Боюсь, что в данном случае главная Ваша проблема связана с технологией программирования, а не с пониманием алгоритма. Если Вы займетесь реализацией leap-frog в том же стиле, результат, скорее всего, будет еще более жутким.