В Fortran-2003 введена конструкция ASSOCIATE, которая связывает имена с выражениями или переменными на время выполнения блока кода. Это удобно в случае, если требуется произвести сложные манипуляции со сложные объектами данных. Синтаксис:
[имя:]ASSOCIATE(список связей)
код
END ASSOCIATE [имя],
где список связей -- это связи вида имя => выражение через запятую. Коиндексированные объекты не допускаются. Примеры [14]:
!связь с выражением
ASSOCIATE (Z => EXP(-(X**2+Y**2)) * COS(THETA))
PRINT *, A+Z, A-Z
END ASSOCIATE
!связь с секцией массива и производным типом
ASSOCIATE (ARRAY => AX%B(I,:)%C)
ARRAY(N)%EV = ARRAY(N-1)%EV
END ASSOCIATE
!множественные связи
ASSOCIATE (W => RESULT(I,J)%W, ZX => AX%B(I,J)%D, &
& ZY => AY%B(I,J)%D)
W = ZX*X + ZY*Y
END ASSOCIATE