(j3.2006) (SC22WG5.4635) Part 2 of the standard

Dan Nagle dannagle
Tue Mar 13 19:55:11 EDT 2012


Hi,

Do you have a version of the module you might share?
If it's still too rough I won't complain.

On Mar 13, 2012, at 14:04 , John Reid wrote:

> WG5,
> 
> I promised at Garching to look into the conversion to Fortran 2003 of the procedures of the varying length strings module that are not included in Part 1 of the Standard. These are the I/O procedures GET, PUT and PUT_LINE and the substring manipulation procedures EXTRACT, INSERT, REMOVE, REPLACE, and INSERT.
> 
> I have made a new module that compiles under the Nag compiler but I have tested it only with new versions of the two example programs that are in Part 2.
> 
> Most occurrences of
>   type(VARYING_STRING)
> were replaced by
>   CHARACTER(LEN=:),ALLOCATABLE
> but
>   type(VARYING_STRING),INTENT(IN)
> was replaced by
>   CHARACTER(LEN=*),INTENT(IN)
> This resulted in arguments that were previously documented as either of
> type CHARACTER or VARYING_STRING become only of type CHARACTER. The number of specific procedures reduced from 40 to 15.
> 
> There were obvious mechanical changes needed within the procedures.
> 
> The subroutine SPLIT cannot be elemental because of having an allocatable argument. Note that all the elements of a character array have to have the same character length, so this restriction really is needed.
> 
> A similar problem occurs in the vocabulary test, where an array holds words of varying length. I got round this by using a linked list.
> 
> This has taken me a day and a bit of work. To get it all tested and documented will be quite a bit more work, probably at least a week. How valuable will this be?
> 
> Lawrie, do you have a view? Can you help? For instance, do you have a test deck for the old code?
> 
> Cheers,
> 
> John.
> 
> _______________________________________________
> J3 mailing list
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3

-- 
Cheers!

Dan Nagle








More information about the J3 mailing list