This lightly commented program performs a unit test on the Shell_Utils Module.
program Unit_Test use Caesar_Intrinsics_Module use Caesar_Shell_Utils_Module implicit none type(character,80) :: Filename ! Testing statements. Filename = '/one/two/three/four/five/six.1.2.3' write (6,*) ' ' write (6,*) 'Filename = ', TRIM(Filename) write (6,*) 'Basename = ', TRIM(Basename(Filename)) write (6,*) 'Basename, w/suffix = ', TRIM(Basename(Filename,.false.)) write (6,*) 'Dirname = ', TRIM(Dirname(Filename)) write (6,*) 'Reconstructed path = ', & TRIM(Dirname(Filename))//'/'//TRIM(Basename(Filename,.false.)) Filename = '/one' write (6,*) ' ' write (6,*) 'Filename = ', TRIM(Filename) write (6,*) 'Basename = ', TRIM(Basename(Filename)) write (6,*) 'Basename, w/suffix = ', TRIM(Basename(Filename,.false.)) write (6,*) 'Dirname = ', TRIM(Dirname(Filename)) write (6,*) 'Reconstructed path = ', & TRIM(Dirname(Filename))//'/'//TRIM(Basename(Filename,.false.)) Filename = '/one/two.three/four.five' write (6,*) ' ' write (6,*) 'Filename = ', TRIM(Filename) write (6,*) 'Basename = ', TRIM(Basename(Filename)) write (6,*) 'Basename, w/suffix = ', TRIM(Basename(Filename,.false.)) write (6,*) 'Dirname = ', TRIM(Dirname(Filename)) write (6,*) 'Reconstructed path = ', & TRIM(Dirname(Filename))//'/'//TRIM(Basename(Filename,.false.)) Filename = 'one' write (6,*) ' ' write (6,*) 'Filename = ', TRIM(Filename) write (6,*) 'Basename = ', TRIM(Basename(Filename)) write (6,*) 'Basename, w/suffix = ', TRIM(Basename(Filename,.false.)) write (6,*) 'Dirname = ', TRIM(Dirname(Filename)) write (6,*) 'Reconstructed path = ', & TRIM(Dirname(Filename))//'/'//TRIM(Basename(Filename,.false.)) Filename = './one' write (6,*) ' ' write (6,*) 'Filename = ', TRIM(Filename) write (6,*) 'Basename = ', TRIM(Basename(Filename)) write (6,*) 'Basename, w/suffix = ', TRIM(Basename(Filename,.false.)) write (6,*) 'Dirname = ', TRIM(Dirname(Filename)) write (6,*) 'Reconstructed path = ', & TRIM(Dirname(Filename))//'/'//TRIM(Basename(Filename,.false.)) end