Personally I see little wrong with using a DATA statement except that you can partially fill one, which can lead to bugs (or be considered a useful feature in a few places) and that there are so many extensions associated with DATA statements that they can lead to portability problems. But you cannot use them to declare constants, and people new to Fortran do not always understand what a saved variable implies. So if something is a constant I think you should declare it in a declaration with the parameter attribute. If you are only initializing a few values a declaration on one line is clearer to me. But I personally do not feel there is a great need to remove them like a COMMON block or GOTO and CONTINUE statements that are just defining simple loops (which I think really detract from readability even if they work). That being said, I hardly ever use them in new code. I do like the repeat syntax of a DATA statement compared to implied DOs in a declaration when initializing arrays, and I think filling an array in row-column order looks much better with DATA statements versus a type declaration.
2 Likes