program test_id implicit none call platform() contains subroutine platform() use, intrinsic :: iso_fortran_env, only : compiler_version use, intrinsic :: iso_fortran_env, only : compiler_options implicit none character(len=:),allocatable :: version, options character(len=*),parameter :: nl=new_line('a') integer :: where, start, break, i, last, col version=compiler_version()//' ' options=' '//compiler_options() start=1 do where=index(options(start:),' -') if(where.eq.0)exit break=where+start-1 options(break:break)=nl start=where enddo if(start.eq.1)then do where=index(options(start:),' /') if(where.eq.0)exit break=where+start-1 options(break:break)=nl start=where enddo endif last=len_trim(version)+1 col=0 do i=1,len_trim(version) col=col+1 if(version(i:i).eq.' ')last=i if(col.gt.76)then version(last:last)=nl col=0 endif enddo print '(a,/,3x,*(a))', 'This file was compiled by :', inset(version) if(options.ne.'')then print '(*(a))', 'using the options :', inset(options) endif end subroutine platform function inset(string) result(longer) character(len=*),intent(in) :: string character(len=:),allocatable :: longer character(len=*),parameter :: nl=new_line('a') integer :: i longer='' do i=1,len(string) longer=longer//string(i:i) if(string(i:i).eq.nl)then longer=longer//' ' endif enddo end function inset end program test_id