https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78549
--- Comment #14 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- The real issue is that to support DTIO with internal units I had to actually use a gfc_unit structure. Before DTIO we never did this. At the time of doing DTIO I did not have a 'better idea' since by the nature of it, DTIO passes a UNIT to the child procedures. I do have something percolating in my head on this that will be better. I have not finished thinking it through yet. I have to do some factoring on the structures. (In reply to Dominique d'Humieres from comment #9) > Gfortran is even slower now (~9.5s), likely revision r251374 (pr78387). This is because the gfc_unit caching scheme I tried before was incompatble with large numbers of threads. I decided that whole approach to the issue was a rabbit down a rabbit hole. I removed it, and we are slower. Working on it.