gfortran does not allow character arrays with varying component lengths
You have some lengths 12 in the constructor, so it may be better to use length 12. Also, use instead character(len=12), dimension(5) :: models = [character(len=12) :: “feddes.swp”, & “jarvis89.swp”, “jarvis10.swp”, “pem.swp”, “van.swp”] Possibly even better, if you have compiler support, is character(len=*), dimension(*) :: …