I suggest you check the 'Windows copy' performance.
You can review this copy performance using Resource Monitor (available via Task Manager).
What I suspect is that the COPY command reports complete before the write to disk is completed. This is because of the disk I/O buffering.
Assessing the performance it all gets a bit confusing between HDD and SSD due to disk buffering with free memory. I have 32 gb memory installed, so get great apparent performance with HDD.
Comparing between different PC's becomes even more confusing, as it not only depends on the reported transfer speed of the HDD or SSD, but also their controller's and the installed memory available for buffering.
I have also tried to confirm that the file is written to disk, by using a Fortran CLOSE, but the test results are still confusing.
Another problem I identified, but could not confirm, is if the file is already in disk buffers before the test starts.
If you do a Fortran test of write new file, then read file, the test may complete before any disk access actually takes place.
However if you do a test that only reads an existing (on disk) file, you can not re-do the test as the file may still be in memory buffers, or may have already been in memory for the first test.
I have done tests where the test file size exceeds the memory size to flood the buffers, but my real program doesn't have files that large, so what test result is relevant to my real case ?
Very confusing, but fortunately the performance times are becoming very fast, unless you have terabytes of data to analyse. 500MB should not be a significant issue, unless you have very old hardware and O/S, so update !