(j3.2006) Materials for 199

Tobias Burnus burnus
Mon Sep 24 16:15:40 EDT 2012


Van Snyder wrote:
> Absolutely.  J3, J3-USTAG, and every interested national body, ought to
> begin discussing the work plan for the next revision.  The more the
> proposals are discussed by e-mail, the less time will be wasted on
> nonstarters at Delft.
>
> Apparently, we might as well discuss the work plan at 199, since there
> are still no papers in the repository.

(I don't have a real comment regarding the generic-procedure proposal, 
except that I would like to see some possibility to support it. Whether 
it is done via macros, the current proposal or differently, I don't have 
thought about. I also would like to see some kind of procedure which can 
be defined at one place (e.g. a module) and then when invoked, it gets 
expanded inline - possibly even with enforcing that it evaluates to a 
constant.)


It's probably a rather small item, but something I would like to see: a 
simple way to prevent host association - or to import only some specific 
items, e.g.
     noimport
     import   ! which is the default
     import :: some, list, items
I think it was also suggested in the early draft Fortran appendix to TR 
24772.Using the name IMPORT probably makes sense, but whether "NOIMPORT" 
is the best name, I don't know. "IMPORT NONE" would be nice, but that 
clashes with a symbol "NONE", unless the "::" are mandatory.


I sometimes missed ANDTHEN and ORELSE, but that seems to be a recurring 
suggestions, where the exact ordering and details seem to be difficult. 
(Cf. e.g. J3/04-410r1.)


What I also miss is something like
    SELECT RANK(assumed_rank)
    RANK IS (3):
         ...
to be able to use an assumed-rank array from Fortran - and not only from 
Fortran. If it is contiguous and "c_loc" interoperable, one can use 
c_f_fortran(c_loc(assumed_rank), ...) but otherwise one can only use 
assumed-rank variables it from C; one should also be able to do it from 
Fortran. (One could also consider to allow assumed-rank variables as 
actual argument to an elemental procedure.)


As larger item - and thus probably out of scope for the Fortran next 
revision, one could consider to follow the trend of C11 and C++11 and 
allow some shared-memory parallelization. For instance something 
inspired by Cilk. Alternatively, one could continue to leave that to 
out-of-language methods like OpenMP, which seems to also gain atomic and 
transactional memory support, following the suggestions for C++.

Tobias



More information about the J3 mailing list