PROGRAM DubiousValues IMPLICIT NONE LOGICAL :: array(3) !**** array = .TRUE. PRINT "('Before:',*(L1,:,1X))", array CALL proc(array) PRINT "('After :',*(L1,:,1X))", array CONTAINS SUBROUTINE proc(arg) LOGICAL, VALUE :: arg(:) !**** arg = .FALSE. END SUBROUTINE proc END PROGRAM DubiousValues
arg should be associated with an anonymous data object that has the value of array (but not actually associated with array), etc. But...
>ifort /check:all /warn:all /standard-semantics "2014-07-22 DubiousValues.f90"&& "2014-07-22 DubiousValues.exe" Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.0.070 Beta Build 20140530 Copyright (C) 1985-2014 Intel Corporation. All rights reserved. Microsoft (R) Incremental Linker Version 10.00.40219.01 Copyright (C) Microsoft Corporation. All rights reserved. "-out:2014-07-22 DubiousValues.exe" -subsystem:console"2014-07-22 DubiousValues.obj" Before:T T T After :F F F