ParaMonte Fortran 2.0.0
Parallel Monte Carlo and Machine Learning Library
See the latest version documentation.
pm_sysPath.F90
Go to the documentation of this file.
1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3!!!! !!!!
4!!!! ParaMonte: Parallel Monte Carlo and Machine Learning Library. !!!!
5!!!! !!!!
6!!!! Copyright (C) 2012-present, The Computational Data Science Lab !!!!
7!!!! !!!!
8!!!! This file is part of the ParaMonte library. !!!!
9!!!! !!!!
10!!!! LICENSE !!!!
11!!!! !!!!
12!!!! https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md !!!!
13!!!! !!!!
14!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
15!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
17! WARNING: The Doxygen 2.9 documenter has extreme difficulty parsing the documentation of this module
18! because of the presence of so many Windows-style directory separators (backslash) in the text.<br>
19! As such, any modification to the documentation must be done with extreme care,
20! otherwise, frequent hard-to-debug runtime Doxygen segfaults are likely.<br>
21
256
257!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
258
260#if WINDOWS_ENABLED
261#define MAX_PATH 260_IK
262#define MAX_NAME 260_IK
263#else
264#define MAX_PATH 4096_IK
265#define MAX_NAME 255_IK
266#endif
267#if FORTRAN_ENABLED
268#define BIND2(X)
269#else
270#define BIND2(X)bind(C, name = X)
271#endif
272
273
275
276 use pm_kind, only: IK, LK, SK
277 use pm_container, only: css_type
278
279 implicit none
280
281 character(*, SK), parameter :: MODULE_NAME = SK_"@pm_sysPath"
282
284 integer , private :: i
286
287!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
288
289 integer(IK) , parameter :: MAX_LEN_FILE_NAME = MAX_NAME
290#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
291 !DIR$ ATTRIBUTES DLLEXPORT :: MAX_LEN_FILE_NAME
292#endif
293
294 integer(IK) , parameter :: MAX_LEN_FILE_PATH = MAX_PATH
296#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
297 !DIR$ ATTRIBUTES DLLEXPORT :: MAX_LEN_FILE_PATH
298#endif
299 character(*, SK), parameter :: DIR_SEP_WINDOWS_ALL = SK_"\/"
300#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
301 !DIR$ ATTRIBUTES DLLEXPORT :: DIR_SEP_WINDOWS_ALL
302#endif
303 character(*, SK), parameter :: DIR_SEP_POSIX_ALL = SK_"/"
304#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
305 !DIR$ ATTRIBUTES DLLEXPORT :: DIR_SEP_POSIX_ALL
306#endif
307 character(*, SK), parameter :: DIR_SEP_WINDOWS = SK_"\"
308#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
309 !DIR$ ATTRIBUTES DLLEXPORT :: DIR_SEP_WINDOWS
310#endif
311 character(*, SK), parameter :: DIR_SEP_POSIX = SK_"/"
312#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
313 !DIR$ ATTRIBUTES DLLEXPORT :: DIR_SEP_POSIX
314#endif
315 character(*, SK), parameter :: DIR_SEP_ALL = SK_"/\"
316#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
317 !DIR$ ATTRIBUTES DLLEXPORT :: DIR_SEP_ALL
318#endif
319
320 character(*, SK), parameter :: PATH_SEP_WINDOWS = SK_";"
321#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
322 !DIR$ ATTRIBUTES DLLEXPORT :: PATH_SEP_WINDOWS
323#endif
324 character(*, SK), parameter :: PATH_SEP_POSIX = SK_":"
325#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
326 !DIR$ ATTRIBUTES DLLEXPORT :: PATH_SEP_POSIX
327#endif
328 character(*, SK), parameter :: PATH_SEP_ALL = SK_":;"
329#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
330 !DIR$ ATTRIBUTES DLLEXPORT :: PATH_SEP_ALL
331#endif
332
333!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
334
350 type :: verbatim_type; end type
351
367 type(verbatim_type), parameter :: verbatim = verbatim_type()
368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
369 !DIR$ ATTRIBUTES DLLEXPORT :: verbatim
370#endif
371
372!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
373
402 character(*, SK), parameter :: WIN32_NAMESPACE_FILE = SK_"\\?\"
403#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
404 !DIR$ ATTRIBUTES DLLEXPORT :: WIN32_NAMESPACE_FILE
405#endif
406
430 character(*, SK), parameter :: WIN32_NAMESPACE_DEVICE = SK_"\\.\"
431#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
432 !DIR$ ATTRIBUTES DLLEXPORT :: WIN32_NAMESPACE_DEVICE
433#endif
434
435!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
436
448 character(*, SK), parameter :: ASCII_CONTROL_STR = achar( 1, SK) // &
449 achar( 2, SK) // &
450 achar( 3, SK) // &
451 achar( 4, SK) // &
452 achar( 5, SK) // &
453 achar( 6, SK) // &
454 achar( 7, SK) // &
455 achar( 8, SK) // &
456 achar( 9, SK) // &
457 achar(10, SK) // &
458 achar(11, SK) // &
459 achar(12, SK) // &
460 achar(13, SK) // &
461 achar(14, SK) // &
462 achar(15, SK) // &
463 achar(16, SK) // &
464 achar(17, SK) // &
465 achar(18, SK) // &
466 achar(19, SK) // &
467 achar(21, SK) // &
468 achar(22, SK) // &
469 achar(23, SK) // &
470 achar(24, SK) // &
471 achar(25, SK) // &
472 achar(26, SK) // &
473 achar(27, SK) // &
474 achar(28, SK) // &
475 achar(29, SK) // &
476 achar(30, SK) // &
477 achar(31, SK) // &
478 achar(127,SK)
479#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
480 !DIR$ ATTRIBUTES DLLEXPORT :: ASCII_CONTROL_STR
481#endif
482
483!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
484
496 character(*, SK), parameter :: WINDOWS_RESERVED_STR = SK_'\/<>:"|?*'//ASCII_CONTROL_STR ! do not change the first character here.<br>
497#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
498 !DIR$ ATTRIBUTES DLLEXPORT :: WINDOWS_RESERVED_STR
499#endif
500
512 character(1, SK), parameter :: WINDOWS_RESERVED_CHR(*) = [( WINDOWS_RESERVED_STR(i:i), i = 1_IK, len(WINDOWS_RESERVED_STR,IK) )]
513#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
514 !DIR$ ATTRIBUTES DLLEXPORT :: WINDOWS_RESERVED_CHR
515#endif
516
517!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
518
529 character(*, SK), parameter :: WINDOWS_CMD_METACHAR_STR = SK_'()%!^"<>&|'
530#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
531 !DIR$ ATTRIBUTES DLLEXPORT :: WINDOWS_CMD_METACHAR_STR
532#endif
533
542 character(1, SK), parameter :: WINDOWS_CMD_METACHAR_CHR(*) = [( WINDOWS_CMD_METACHAR_STR(i:i), i = 1_IK, len(WINDOWS_CMD_METACHAR_STR,IK) )]
543#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
544 !DIR$ ATTRIBUTES DLLEXPORT :: WINDOWS_CMD_METACHAR_CHR
545#endif
546
547!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548
557 character(4, SK), parameter :: WINDOWS_RESERVED_DEVICE_NAME(*) =[ SK_"CON " &
558 , SK_"PRN " &
559 , SK_"AUX " &
560 , SK_"NUL " &
561 , SK_"COM1" &
562 , SK_"COM2" &
563 , SK_"COM3" &
564 , SK_"COM4" &
565 , SK_"COM5" &
566 , SK_"COM6" &
567 , SK_"COM7" &
568 , SK_"COM8" &
569 , SK_"COM9" &
570 , SK_"LPT1" &
571 , SK_"LPT2" &
572 , SK_"LPT3" &
573 , SK_"LPT4" &
574 , SK_"LPT5" &
575 , SK_"LPT6" &
576 , SK_"LPT7" &
577 , SK_"LPT8" &
578 , SK_"LPT9" &
579 , SK_"con " &
580 , SK_"prn " &
581 , SK_"aux " &
582 , SK_"nul " &
583 , SK_"com1" &
584 , SK_"com2" &
585 , SK_"com3" &
586 , SK_"com4" &
587 , SK_"com5" &
588 , SK_"com6" &
589 , SK_"com7" &
590 , SK_"com8" &
591 , SK_"com9" &
592 , SK_"lpt1" &
593 , SK_"lpt2" &
594 , SK_"lpt3" &
595 , SK_"lpt4" &
596 , SK_"lpt5" &
597 , SK_"lpt6" &
598 , SK_"lpt7" &
599 , SK_"lpt8" &
600 , SK_"lpt9" &
601 ]
602#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
603 !DIR$ ATTRIBUTES DLLEXPORT :: WINDOWS_RESERVED_DEVICE_NAME
604#endif
605
606!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
607
636 character(*, SK), parameter :: POSIX_RESERVED_STR = SK_" " // & ! space character
637 SK_"!" // & ! history expansion.<br>
638 SK_'"' // & ! shell syntax.<br>
639 SK_"#" // & ! comment start when preceded by whitespace; zsh wildcards.<br>
640 SK_"$" // & ! shell syntax.<br>
641 SK_"&" // & ! shell syntax.<br>
642 SK_"'" // & ! shell syntax.<br>
643 SK_"(" // & ! even in the middle of a word: ksh extended globs (also available in bash and zsh); zsh wildcards.<br>
644 SK_")" // & ! even in the middle of a word: ksh extended globs (also available in bash and zsh); zsh wildcards.<br>
645 SK_"*" // & ! sh wildcard.<br>
646 SK_"," // & ! only inside brace expansion.<br>
647 SK_";" // & ! shell syntax.<br>
648 SK_"<" // & ! shell syntax.<br>
649 SK_"=" // & ! in zsh, when it is at the beginning of a file name (filename expansion with PATH lookup).<br>
650 SK_">" // & ! shell syntax.<br>
651 SK_"?" // & ! sh wildcard.<br>
652 SK_"[" // & ! sh wildcard.<br>
653 SK_"\" // & ! shell syntax.<br>
654 SK_"]" // & ! you may get away with leaving it unquoted.<br>
655 SK_"^" // & ! history expansion; zsh wildcard.<br>
656 SK_"`" // & ! shell syntax.<br>
657 SK_"{" // & ! brace expansion.<br>
658 SK_"|" // & ! shell syntax.<br>
659 SK_"}" // & ! needs to be escaped in zsh, other shells are more lenient when there is no matching opening brace.<br>
660 SK_"~" // & ! home directory expansion when at the beginning of a filename; zsh wildcard; safe when it is the last character.<br>
662#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
663 !DIR$ ATTRIBUTES DLLEXPORT :: POSIX_RESERVED_STR
664#endif
665
666 !stupid gfortran (possibly version 8.3) gives error with the above syntax.<br>
667 !character(*, SK), parameter :: POSIX_RESERVED_STR = " !"//'"#$&'//"'()*,;<=>?[\]^`{|}~"
668
676 character(1, SK), parameter :: POSIX_RESERVED_CHR(*) = [( POSIX_RESERVED_STR(i:i), i = 1_IK, len(POSIX_RESERVED_STR,IK) )]
677#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
678 !DIR$ ATTRIBUTES DLLEXPORT :: POSIX_RESERVED_CHR
679#endif
680
681!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
682
694 character(*, SK), parameter :: POSIX_RESERVED_DQUOTE_STR = SK_"`$\"""//achar(10, SK) ! space character
695#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
696 !DIR$ ATTRIBUTES DLLEXPORT :: POSIX_RESERVED_DQUOTE_STR
697#endif
698
706 character(1, SK), parameter :: POSIX_RESERVED_DQUOTE_CHR(*) = [( POSIX_RESERVED_DQUOTE_STR(i:i), i = 1_IK, len(POSIX_RESERVED_DQUOTE_STR,IK) )]
707#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
708 !DIR$ ATTRIBUTES DLLEXPORT :: POSIX_RESERVED_DQUOTE_CHR
709#endif
710
711!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
712
713!!> \brief
714!!> This is the [PathPart_type](@ref pm_sysPath::PathPart_type) class providing a convenient
715!!> collection of attributes that are frequently needed for handling and manipulating paths.<br>
716!!>
717!!> \example{PathPart_type}
718!!> \include{lineno} example/pm_sysPath/PathPart_type/main.F90
719!!> \compile{PathPart_type}
720!!> \output{PathPart_type}
721!!> \include{lineno} example/pm_sysPath/PathPart_type/main.out.F90
722!!>
723!!> \final
724!!>
725!!> \author
726!!> Amir Shahmoradi, Tuesday March 7, 2017, 3:50 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
727!type :: PathPart_type
728! character(:, SK), allocatable :: val !< The `allocatable` scalar `character` of default kind \SK to contain the path value.<br>
729! character(1, SK) :: sep !< The scalar `character` of default kind \SK of length `1` to contain the directory separator (`\` or `/`) recognized by the system Shell.<br>
730! integer(IK) :: dir(2) !< The `integer` vector of length `2` of default kind \IK to contain the starting an the ending indices of the directory segment of the path.<br>
731! integer(IK) :: name(2) !< The `integer` vector of length `2` of default kind \IK to contain the starting an the ending indices of the name of the file, if any exists in the path.<br>
732! integer(IK) :: base(2) !< The `integer` vector of length `2` of default kind \IK to contain the starting an the ending indices of the base of the file name, if any exists in the path.<br>
733! integer(IK) :: ext(2) !< The `integer` vector of length `2` of default kind \IK to contain the starting an the ending indices of the file extension, if any exists in the path (including the dot separator).<br>
734!end type
735!
736!
737!
738! type :: pathList_type
739! character(:, SK), allocatable :: parent !< \public The public `allocatable` scalar `character` of default kind \SK containing the directory path whose contents is being returned.<br>
740! integer(IK) , private :: unit !< \private The private scalar `integer` of default kind \IK containing the `unit` connected to the file containing the directory listing results.<br>
741! logical(LK) , private :: done !< \private The private scalar `logical` of default kind \LK. It is `.true.` <b>if and only if</b> the contents of the directory listing is fully exhausted.<br>
742! !! This logical flag is used properly close and delete the external files associated with an object of this type upon finalization.<br>
743! !contains
744! ! procedure, pass , private :: isFailedGetNextPathList, isFailedGetNextPathListLen
745! ! generic :: isFailedGetNext => isFailedGetNextPathList, isFailedGetNextPathListLen
746! ! final :: destroyPathList
747! end type
748!
749! !> \cond excluded
750! interface pathList_type
751! module function pathList_typer(path, sort, showdir, showfile, showhidden, failed, errmsg) result(PathList)
752!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
753! !DEC$ ATTRIBUTES DLLEXPORT :: pathList_typer
754!#endif
755! use pm_kind, only: SKG => SK
756! character(*,SKG) , intent(in) , optional :: path
757! character(*,SKG) , intent(in) , optional :: sort
758! logical(LK) , intent(in) , optional :: showdir, showfile, showhidden
759! logical(LK) , intent(out) , optional :: failed
760! character(*, SK) , intent(inout) , optional :: errmsg
761! character(:,SKG) , allocatable :: PathList
762! end function
763! end interface
764! !> \endcond excluded
765!
766! !> \cond excluded
767! interface
768!
769! module function isFailedGetNextPathList(PathList, path, errmsg) result(failed)
770!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
771! !DEC$ ATTRIBUTES DLLEXPORT :: isFailedGetNextPathList
772!#endif
773! use pm_kind, only: SKG => SK
774! class(pathList_type), intent(inout) :: PathList
775! character(*,SKG) , intent(out) , allocatable :: path
776! character(*, SK) , intent(inout) , optional :: errmsg
777! logical(LK) :: failed
778! end function
779!
780! module function isFailedGetNextPathListLen(PathList, path, pathlen, errmsg) result(failed)
781!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
782! !DEC$ ATTRIBUTES DLLEXPORT :: isFailedGetNextPathListLen
783!#endif
784! use pm_kind, only: SKG => SK
785! class(pathList_type), intent(inout) :: PathList
786! character(*,SKG) , intent(out) :: path
787! integer(IK) , intent(out) :: pathlen
788! character(*, SK) , intent(inout) , optional :: errmsg
789! logical(LK) :: failed
790! end function
791!
792! end interface
793! !> \endcond excluded
794!
795!
796! !> \cond excluded
797! interface
798! module subroutine destroyPathList(PathList)
799!#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
800! !DEC$ ATTRIBUTES DLLEXPORT :: isFailedGetNextPathListLen
801!#endif
802! use pm_kind, only: SKG => SK
803! type(pathList_type) , intent(inout) :: PathList
804! end subroutine
805! end interface
806! !> \endcond excluded
807
808!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
809
882 interface ls
883
884 module function ls_BSSK(path, sort, showdir, showfile, showhidden, reversed) result(list)
885#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
886 !DEC$ ATTRIBUTES DLLEXPORT :: ls_BSSK
887#endif
888 use pm_kind, only: SKG => SK
889 character(*,SKG) , intent(in) :: path
890 character(*, SK) , intent(in) , optional :: sort
891 logical(LK) , intent(in) , optional :: showdir, showfile, showhidden, reversed
892 type(css_type) , allocatable :: list(:)
893 end function
894
895 end interface
896
897!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
898
954 interface glob
955
956 module function glob_BSSK(pattern) result(list)
957#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
958 !DEC$ ATTRIBUTES DLLEXPORT :: glob_BSSK
959#endif
960 use pm_kind, only: SKG => SK
961 character(*,SKG) , intent(in) :: pattern
962 type(css_type) , allocatable :: list(:)
963 end function
964
965 end interface
966
967!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
968
1105
1106 module function isFailedGlob_SK(pattern, list, index, errmsg) result(failed)
1107#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1108 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedGlob_SK
1109#endif
1110 use pm_kind, only: SKG => SK
1111 character(*,SKG) , intent(in) :: pattern
1112 character(:,SKG) , intent(out) , allocatable :: list
1113 integer(IK) , intent(out) , allocatable :: index(:,:)
1114 character(*, SK) , intent(inout) , optional :: errmsg
1115 logical(LK) :: failed
1116 end function
1117
1118 module function isFailedGlob_BSSK(pattern, list, errmsg) result(failed)
1119#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1120 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedGlob_BSSK
1121#endif
1122 use pm_kind, only: SKG => SK
1123 use pm_container, only: css_type
1124 character(*,SKG) , intent(in) :: pattern
1125 type(css_type) , intent(out) , allocatable :: list(:)
1126 character(*, SK) , intent(inout) , optional :: errmsg
1127 logical(LK) :: failed
1128 end function
1129
1130 end interface
1131
1132!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1133
1258
1259 module function isFailedList_SK(path, list, index, sort, showdir, showfile, showhidden, reversed, errmsg) result(failed)
1260#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1261 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedList_SK
1262#endif
1263 use pm_kind, only: SKG => SK
1264 character(*,SKG) , intent(in) :: path
1265 character(:,SKG) , intent(out) , allocatable :: list
1266 integer(IK) , intent(out) , allocatable :: index(:,:)
1267 character(*, SK) , intent(inout) , optional :: errmsg
1268 character(*, SK) , intent(in) , optional :: sort
1269 logical(LK) , intent(in) , optional :: showdir, showfile, showhidden, reversed
1270 logical(LK) :: failed
1271 end function
1272
1273 module function isFailedList_BSSK(path, list, sort, showdir, showfile, showhidden, reversed, errmsg) result(failed)
1274#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1275 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedList_BSSK
1276#endif
1277 use pm_kind, only: SKG => SK
1278 use pm_container, only: css_type
1279 character(*,SKG) , intent(in) :: path
1280 type(css_type) , intent(out) , allocatable :: list(:)
1281 character(*, SK) , intent(inout) , optional :: errmsg
1282 character(*, SK) , intent(in) , optional :: sort
1283 logical(LK) , intent(in) , optional :: showdir, showfile, showhidden, reversed
1284 logical(LK) :: failed
1285 end function
1286
1287 end interface
1288
1289!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1290
1341
1342 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1343
1344#if SK5_ENABLED
1345 PURE module function getPathPosixEscaped_D0_SK5(path) result(pathEscaped)
1346#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1347 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosixEscaped_D0_SK5
1348#endif
1349 use pm_kind, only: SKG => SK5
1350 character(*,SKG) , intent(in) :: path
1351 character(:,SKG) , allocatable :: pathEscaped
1352 end function
1353#endif
1354
1355#if SK4_ENABLED
1356 PURE module function getPathPosixEscaped_D0_SK4(path) result(pathEscaped)
1357#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1358 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosixEscaped_D0_SK4
1359#endif
1360 use pm_kind, only: SKG => SK4
1361 character(*,SKG) , intent(in) :: path
1362 character(:,SKG) , allocatable :: pathEscaped
1363 end function
1364#endif
1365
1366#if SK3_ENABLED
1367 PURE module function getPathPosixEscaped_D0_SK3(path) result(pathEscaped)
1368#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1369 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosixEscaped_D0_SK3
1370#endif
1371 use pm_kind, only: SKG => SK3
1372 character(*,SKG) , intent(in) :: path
1373 character(:,SKG) , allocatable :: pathEscaped
1374 end function
1375#endif
1376
1377#if SK2_ENABLED
1378 PURE module function getPathPosixEscaped_D0_SK2(path) result(pathEscaped)
1379#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1380 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosixEscaped_D0_SK2
1381#endif
1382 use pm_kind, only: SKG => SK2
1383 character(*,SKG) , intent(in) :: path
1384 character(:,SKG) , allocatable :: pathEscaped
1385 end function
1386#endif
1387
1388#if SK1_ENABLED
1389 PURE module function getPathPosixEscaped_D0_SK1(path) result(pathEscaped)
1390#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1391 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosixEscaped_D0_SK1
1392#endif
1393 use pm_kind, only: SKG => SK1
1394 character(*,SKG) , intent(in) :: path
1395 character(:,SKG) , allocatable :: pathEscaped
1396 end function
1397#endif
1398
1399 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1400
1401 end interface
1402
1403!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1404
1455
1456 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1457
1458#if SK5_ENABLED
1459 PURE module subroutine setPathPosixEscaped_D0_SK5(pathEscaped, path)
1460#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1461 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosixEscaped_D0_SK5
1462#endif
1463 use pm_kind, only: SKG => SK5
1464 character(:,SKG) , intent(out) , allocatable :: pathEscaped
1465 character(*,SKG) , intent(in) :: path
1466 end subroutine
1467#endif
1468
1469#if SK4_ENABLED
1470 PURE module subroutine setPathPosixEscaped_D0_SK4(pathEscaped, path)
1471#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1472 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosixEscaped_D0_SK4
1473#endif
1474 use pm_kind, only: SKG => SK4
1475 character(:,SKG) , intent(out) , allocatable :: pathEscaped
1476 character(*,SKG) , intent(in) :: path
1477 end subroutine
1478#endif
1479
1480#if SK3_ENABLED
1481 PURE module subroutine setPathPosixEscaped_D0_SK3(pathEscaped, path)
1482#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1483 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosixEscaped_D0_SK3
1484#endif
1485 use pm_kind, only: SKG => SK3
1486 character(:,SKG) , intent(out) , allocatable :: pathEscaped
1487 character(*,SKG) , intent(in) :: path
1488 end subroutine
1489#endif
1490
1491#if SK2_ENABLED
1492 PURE module subroutine setPathPosixEscaped_D0_SK2(pathEscaped, path)
1493#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1494 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosixEscaped_D0_SK2
1495#endif
1496 use pm_kind, only: SKG => SK2
1497 character(:,SKG) , intent(out) , allocatable :: pathEscaped
1498 character(*,SKG) , intent(in) :: path
1499 end subroutine
1500#endif
1501
1502#if SK1_ENABLED
1503 PURE module subroutine setPathPosixEscaped_D0_SK1(pathEscaped, path)
1504#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1505 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosixEscaped_D0_SK1
1506#endif
1507 use pm_kind, only: SKG => SK1
1508 character(:,SKG) , intent(out) , allocatable :: pathEscaped
1509 character(*,SKG) , intent(in) :: path
1510 end subroutine
1511#endif
1512
1513 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1514
1515 end interface
1516
1517!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1518
1578
1579 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1580
1581#if SK5_ENABLED
1582 PURE module function getPathPosix_D0_SK5(path, ignore) result(pathPosix)
1583#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1584 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosix_D0_SK5
1585#endif
1586 use pm_kind, only: SKG => SK5
1587 character(*,SKG) , intent(in) :: path
1588 character(*,SKG) , intent(in) , optional :: ignore
1589 character(:,SKG) , allocatable :: pathPosix
1590 end function
1591#endif
1592
1593#if SK4_ENABLED
1594 PURE module function getPathPosix_D0_SK4(path, ignore) result(pathPosix)
1595#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1596 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosix_D0_SK4
1597#endif
1598 use pm_kind, only: SKG => SK4
1599 character(*,SKG) , intent(in) :: path
1600 character(*,SKG) , intent(in) , optional :: ignore
1601 character(:,SKG) , allocatable :: pathPosix
1602 end function
1603#endif
1604
1605#if SK3_ENABLED
1606 PURE module function getPathPosix_D0_SK3(path, ignore) result(pathPosix)
1607#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1608 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosix_D0_SK3
1609#endif
1610 use pm_kind, only: SKG => SK3
1611 character(*,SKG) , intent(in) :: path
1612 character(*,SKG) , intent(in) , optional :: ignore
1613 character(:,SKG) , allocatable :: pathPosix
1614 end function
1615#endif
1616
1617#if SK2_ENABLED
1618 PURE module function getPathPosix_D0_SK2(path, ignore) result(pathPosix)
1619#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1620 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosix_D0_SK2
1621#endif
1622 use pm_kind, only: SKG => SK2
1623 character(*,SKG) , intent(in) :: path
1624 character(*,SKG) , intent(in) , optional :: ignore
1625 character(:,SKG) , allocatable :: pathPosix
1626 end function
1627#endif
1628
1629#if SK1_ENABLED
1630 PURE module function getPathPosix_D0_SK1(path, ignore) result(pathPosix)
1631#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1632 !DEC$ ATTRIBUTES DLLEXPORT :: getPathPosix_D0_SK1
1633#endif
1634 use pm_kind, only: SKG => SK1
1635 character(*,SKG) , intent(in) :: path
1636 character(*,SKG) , intent(in) , optional :: ignore
1637 character(:,SKG) , allocatable :: pathPosix
1638 end function
1639#endif
1640
1641 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1642
1643 end interface
1644
1645!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1646
1727
1728 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1729
1730#if SK5_ENABLED
1731 PURE module subroutine setPathPosix_D0_SK5(path, ignore)
1732#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1733 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosix_D0_SK5
1734#endif
1735 use pm_kind, only: SKG => SK5
1736 character(:,SKG) , intent(inout) , allocatable :: path
1737 character(*,SKG) , intent(in) , optional :: ignore
1738 end subroutine
1739#endif
1740
1741#if SK4_ENABLED
1742 PURE module subroutine setPathPosix_D0_SK4(path, ignore)
1743#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1744 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosix_D0_SK4
1745#endif
1746 use pm_kind, only: SKG => SK4
1747 character(:,SKG) , intent(inout) , allocatable :: path
1748 character(*,SKG) , intent(in) , optional :: ignore
1749 end subroutine
1750#endif
1751
1752#if SK3_ENABLED
1753 PURE module subroutine setPathPosix_D0_SK3(path, ignore)
1754#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1755 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosix_D0_SK3
1756#endif
1757 use pm_kind, only: SKG => SK3
1758 character(:,SKG) , intent(inout) , allocatable :: path
1759 character(*,SKG) , intent(in) , optional :: ignore
1760 end subroutine
1761#endif
1762
1763#if SK2_ENABLED
1764 PURE module subroutine setPathPosix_D0_SK2(path, ignore)
1765#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1766 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosix_D0_SK2
1767#endif
1768 use pm_kind, only: SKG => SK2
1769 character(:,SKG) , intent(inout) , allocatable :: path
1770 character(*,SKG) , intent(in) , optional :: ignore
1771 end subroutine
1772#endif
1773
1774#if SK1_ENABLED
1775 PURE module subroutine setPathPosix_D0_SK1(path, ignore)
1776#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1777 !DEC$ ATTRIBUTES DLLEXPORT :: setPathPosix_D0_SK1
1778#endif
1779 use pm_kind, only: SKG => SK1
1780 character(:,SKG) , intent(inout) , allocatable :: path
1781 character(*,SKG) , intent(in) , optional :: ignore
1782 end subroutine
1783#endif
1784
1785 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1786
1787 end interface
1788
1789!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1790
1858
1859 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1860
1861#if SK5_ENABLED
1862 pure module function getPathWindows_D0_SK5(path, ignore) result(pathWindows)
1863#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1864 !DEC$ ATTRIBUTES DLLEXPORT :: getPathWindows_D0_SK5
1865#endif
1866 use pm_kind, only: SKG => SK5
1867 character(*,SKG) , intent(in) :: path
1868 character(*,SKG) , intent(in) , optional :: ignore
1869 character(:,SKG) , allocatable :: pathWindows
1870 end function
1871#endif
1872
1873#if SK4_ENABLED
1874 pure module function getPathWindows_D0_SK4(path, ignore) result(pathWindows)
1875#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1876 !DEC$ ATTRIBUTES DLLEXPORT :: getPathWindows_D0_SK4
1877#endif
1878 use pm_kind, only: SKG => SK4
1879 character(*,SKG) , intent(in) :: path
1880 character(*,SKG) , intent(in) , optional :: ignore
1881 character(:,SKG) , allocatable :: pathWindows
1882 end function
1883#endif
1884
1885#if SK3_ENABLED
1886 pure module function getPathWindows_D0_SK3(path, ignore) result(pathWindows)
1887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1888 !DEC$ ATTRIBUTES DLLEXPORT :: getPathWindows_D0_SK3
1889#endif
1890 use pm_kind, only: SKG => SK3
1891 character(*,SKG) , intent(in) :: path
1892 character(*,SKG) , intent(in) , optional :: ignore
1893 character(:,SKG) , allocatable :: pathWindows
1894 end function
1895#endif
1896
1897#if SK2_ENABLED
1898 pure module function getPathWindows_D0_SK2(path, ignore) result(pathWindows)
1899#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1900 !DEC$ ATTRIBUTES DLLEXPORT :: getPathWindows_D0_SK2
1901#endif
1902 use pm_kind, only: SKG => SK2
1903 character(*,SKG) , intent(in) :: path
1904 character(*,SKG) , intent(in) , optional :: ignore
1905 character(:,SKG) , allocatable :: pathWindows
1906 end function
1907#endif
1908
1909#if SK1_ENABLED
1910 pure module function getPathWindows_D0_SK1(path, ignore) result(pathWindows)
1911#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
1912 !DEC$ ATTRIBUTES DLLEXPORT :: getPathWindows_D0_SK1
1913#endif
1914 use pm_kind, only: SKG => SK1
1915 character(*,SKG) , intent(in) :: path
1916 character(*,SKG) , intent(in) , optional :: ignore
1917 character(:,SKG) , allocatable :: pathWindows
1918 end function
1919#endif
1920
1921 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1922
1923 end interface
1924
1925!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1926
2000
2001 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2002
2003#if SK5_ENABLED
2004 pure module subroutine setPathWindows_D0_SK5(path, ignore)
2005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2006 !DEC$ ATTRIBUTES DLLEXPORT :: setPathWindows_D0_SK5
2007#endif
2008 use pm_kind, only: SKG => SK5
2009 character(:,SKG) , intent(inout) , allocatable :: path
2010 character(*,SKG) , intent(in) , optional :: ignore
2011 end subroutine
2012#endif
2013
2014#if SK4_ENABLED
2015 pure module subroutine setPathWindows_D0_SK4(path, ignore)
2016#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2017 !DEC$ ATTRIBUTES DLLEXPORT :: setPathWindows_D0_SK4
2018#endif
2019 use pm_kind, only: SKG => SK4
2020 character(:,SKG) , intent(inout) , allocatable :: path
2021 character(*,SKG) , intent(in) , optional :: ignore
2022 end subroutine
2023#endif
2024
2025#if SK3_ENABLED
2026 pure module subroutine setPathWindows_D0_SK3(path, ignore)
2027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2028 !DEC$ ATTRIBUTES DLLEXPORT :: setPathWindows_D0_SK3
2029#endif
2030 use pm_kind, only: SKG => SK3
2031 character(:,SKG) , intent(inout) , allocatable :: path
2032 character(*,SKG) , intent(in) , optional :: ignore
2033 end subroutine
2034#endif
2035
2036#if SK2_ENABLED
2037 pure module subroutine setPathWindows_D0_SK2(path, ignore)
2038#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2039 !DEC$ ATTRIBUTES DLLEXPORT :: setPathWindows_D0_SK2
2040#endif
2041 use pm_kind, only: SKG => SK2
2042 character(:,SKG) , intent(inout) , allocatable :: path
2043 character(*,SKG) , intent(in) , optional :: ignore
2044 end subroutine
2045#endif
2046
2047#if SK1_ENABLED
2048 pure module subroutine setPathWindows_D0_SK1(path, ignore)
2049#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2050 !DEC$ ATTRIBUTES DLLEXPORT :: setPathWindows_D0_SK1
2051#endif
2052 use pm_kind, only: SKG => SK1
2053 character(:,SKG) , intent(inout) , allocatable :: path
2054 character(*,SKG) , intent(in) , optional :: ignore
2055 end subroutine
2056#endif
2057
2058 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2059
2060 end interface
2061
2062!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2063
2136
2137 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2138
2139#if SK5_ENABLED
2140 pure module function getPathHostNameIndex_SK5(path, dirsep) result(index)
2141#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2142 !DEC$ ATTRIBUTES DLLEXPORT :: getPathHostNameIndex_SK5
2143#endif
2144 use pm_kind, only: SKG => SK5
2145 character(*,SKG) , intent(in) :: path, dirsep
2146 integer(IK) :: index
2147 end function
2148#endif
2149
2150#if SK4_ENABLED
2151 pure module function getPathHostNameIndex_SK4(path, dirsep) result(index)
2152#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2153 !DEC$ ATTRIBUTES DLLEXPORT :: getPathHostNameIndex_SK4
2154#endif
2155 use pm_kind, only: SKG => SK4
2156 character(*,SKG) , intent(in) :: path, dirsep
2157 integer(IK) :: index
2158 end function
2159#endif
2160
2161#if SK3_ENABLED
2162 pure module function getPathHostNameIndex_SK3(path, dirsep) result(index)
2163#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2164 !DEC$ ATTRIBUTES DLLEXPORT :: getPathHostNameIndex_SK3
2165#endif
2166 use pm_kind, only: SKG => SK3
2167 character(*,SKG) , intent(in) :: path, dirsep
2168 integer(IK) :: index
2169 end function
2170#endif
2171
2172#if SK2_ENABLED
2173 pure module function getPathHostNameIndex_SK2(path, dirsep) result(index)
2174#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2175 !DEC$ ATTRIBUTES DLLEXPORT :: getPathHostNameIndex_SK2
2176#endif
2177 use pm_kind, only: SKG => SK2
2178 character(*,SKG) , intent(in) :: path, dirsep
2179 integer(IK) :: index
2180 end function
2181#endif
2182
2183#if SK1_ENABLED
2184 pure module function getPathHostNameIndex_SK1(path, dirsep) result(index)
2185#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2186 !DEC$ ATTRIBUTES DLLEXPORT :: getPathHostNameIndex_SK1
2187#endif
2188 use pm_kind, only: SKG => SK1
2189 character(*,SKG) , intent(in) :: path, dirsep
2190 integer(IK) :: index
2191 end function
2192#endif
2193
2194 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2195
2196 end interface
2197
2198!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2199
2248
2249 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2250
2251#if SK5_ENABLED
2252 pure elemental module function hasDriveLetter_SK5(path) result(pathHasDriveLetter)
2253#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2254 !DEC$ ATTRIBUTES DLLEXPORT :: hasDriveLetter_SK5
2255#endif
2256 use pm_kind, only: SKG => SK5
2257 character(*,SKG) , intent(in) :: path
2258 logical(LK) :: pathHasDriveLetter
2259 end function
2260#endif
2261
2262#if SK4_ENABLED
2263 pure elemental module function hasDriveLetter_SK4(path) result(pathHasDriveLetter)
2264#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2265 !DEC$ ATTRIBUTES DLLEXPORT :: hasDriveLetter_SK4
2266#endif
2267 use pm_kind, only: SKG => SK4
2268 character(*,SKG) , intent(in) :: path
2269 logical(LK) :: pathHasDriveLetter
2270 end function
2271#endif
2272
2273#if SK3_ENABLED
2274 pure elemental module function hasDriveLetter_SK3(path) result(pathHasDriveLetter)
2275#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2276 !DEC$ ATTRIBUTES DLLEXPORT :: hasDriveLetter_SK3
2277#endif
2278 use pm_kind, only: SKG => SK3
2279 character(*,SKG) , intent(in) :: path
2280 logical(LK) :: pathHasDriveLetter
2281 end function
2282#endif
2283
2284#if SK2_ENABLED
2285 pure elemental module function hasDriveLetter_SK2(path) result(pathHasDriveLetter)
2286#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2287 !DEC$ ATTRIBUTES DLLEXPORT :: hasDriveLetter_SK2
2288#endif
2289 use pm_kind, only: SKG => SK2
2290 character(*,SKG) , intent(in) :: path
2291 logical(LK) :: pathHasDriveLetter
2292 end function
2293#endif
2294
2295#if SK1_ENABLED
2296 pure elemental module function hasDriveLetter_SK1(path) result(pathHasDriveLetter)
2297#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2298 !DEC$ ATTRIBUTES DLLEXPORT :: hasDriveLetter_SK1
2299#endif
2300 use pm_kind, only: SKG => SK1
2301 character(*,SKG) , intent(in) :: path
2302 logical(LK) :: pathHasDriveLetter
2303 end function
2304#endif
2305
2306 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2307
2308 end interface
2309
2310!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2311
2373
2374 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2375
2376#if SK5_ENABLED
2377 pure elemental module function isPathAbsWindows_SK5(path) result(pathIsAbs)
2378#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2379 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsWindows_SK5
2380#endif
2381 use pm_kind, only: SKG => SK5
2382 character(*,SKG) , intent(in) :: path
2383 logical(LK) :: pathIsAbs
2384 end function
2385#endif
2386
2387#if SK4_ENABLED
2388 pure elemental module function isPathAbsWindows_SK4(path) result(pathIsAbs)
2389#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2390 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsWindows_SK4
2391#endif
2392 use pm_kind, only: SKG => SK4
2393 character(*,SKG) , intent(in) :: path
2394 logical(LK) :: pathIsAbs
2395 end function
2396#endif
2397
2398#if SK3_ENABLED
2399 pure elemental module function isPathAbsWindows_SK3(path) result(pathIsAbs)
2400#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2401 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsWindows_SK3
2402#endif
2403 use pm_kind, only: SKG => SK3
2404 character(*,SKG) , intent(in) :: path
2405 logical(LK) :: pathIsAbs
2406 end function
2407#endif
2408
2409#if SK2_ENABLED
2410 pure elemental module function isPathAbsWindows_SK2(path) result(pathIsAbs)
2411#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2412 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsWindows_SK2
2413#endif
2414 use pm_kind, only: SKG => SK2
2415 character(*,SKG) , intent(in) :: path
2416 logical(LK) :: pathIsAbs
2417 end function
2418#endif
2419
2420#if SK1_ENABLED
2421 pure elemental module function isPathAbsWindows_SK1(path) result(pathIsAbs)
2422#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2423 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsWindows_SK1
2424#endif
2425 use pm_kind, only: SKG => SK1
2426 character(*,SKG) , intent(in) :: path
2427 logical(LK) :: pathIsAbs
2428 end function
2429#endif
2430
2431 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2432
2433 end interface
2434
2435!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2436
2485
2486 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2487
2488#if SK5_ENABLED
2489 pure elemental module function isPathAbsPosix_SK5(path) result(pathIsAbs)
2490#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2491 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsPosix_SK5
2492#endif
2493 use pm_kind, only: SKG => SK5
2494 character(*,SKG) , intent(in) :: path
2495 logical(LK) :: pathIsAbs
2496 end function
2497#endif
2498
2499#if SK4_ENABLED
2500 pure elemental module function isPathAbsPosix_SK4(path) result(pathIsAbs)
2501#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2502 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsPosix_SK4
2503#endif
2504 use pm_kind, only: SKG => SK4
2505 character(*,SKG) , intent(in) :: path
2506 logical(LK) :: pathIsAbs
2507 end function
2508#endif
2509
2510#if SK3_ENABLED
2511 pure elemental module function isPathAbsPosix_SK3(path) result(pathIsAbs)
2512#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2513 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsPosix_SK3
2514#endif
2515 use pm_kind, only: SKG => SK3
2516 character(*,SKG) , intent(in) :: path
2517 logical(LK) :: pathIsAbs
2518 end function
2519#endif
2520
2521#if SK2_ENABLED
2522 pure elemental module function isPathAbsPosix_SK2(path) result(pathIsAbs)
2523#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2524 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsPosix_SK2
2525#endif
2526 use pm_kind, only: SKG => SK2
2527 character(*,SKG) , intent(in) :: path
2528 logical(LK) :: pathIsAbs
2529 end function
2530#endif
2531
2532#if SK1_ENABLED
2533 pure elemental module function isPathAbsPosix_SK1(path) result(pathIsAbs)
2534#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2535 !DEC$ ATTRIBUTES DLLEXPORT :: isPathAbsPosix_SK1
2536#endif
2537 use pm_kind, only: SKG => SK1
2538 character(*,SKG) , intent(in) :: path
2539 logical(LK) :: pathIsAbs
2540 end function
2541#endif
2542
2543 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2544
2545 end interface
2546
2547!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2548
2610 ! patterns because the operating system automatically and gracefully handles such cases.<br>
2641 interface getPathAbs
2642
2643 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2644
2645 impure module function getPathAbs(path) result(pathAbs)
2646#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2647 !DEC$ ATTRIBUTES DLLEXPORT :: getPathAbs
2648#endif
2649 use pm_kind, only: SKG => SK
2650 character(*,SKG), intent(in) :: path
2651 character(:,SKG), allocatable :: pathAbs
2652 end function
2653
2654 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2655
2656 impure module function getPathAbsFailed(path, failed) result(pathAbs)
2657#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2658 !DEC$ ATTRIBUTES DLLEXPORT :: getPathAbsFailed
2659#endif
2660 use pm_kind, only: SKG => SK
2661 character(*,SKG), intent(in) :: path
2662 logical(LK) , intent(out) :: failed
2663 character(:,SKG), allocatable :: pathAbs
2664 end function
2665
2666 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2667
2668 impure module function getPathAbsFailedMsg(path, failed, errmsg) result(pathAbs)
2669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2670 !DEC$ ATTRIBUTES DLLEXPORT :: getPathAbsFailedMsg
2671#endif
2672 use pm_kind, only: SKG => SK
2673 character(*,SKG), intent(in) :: path
2674 logical(LK) , intent(out) :: failed
2675 character(*, SK), intent(inout) :: errmsg
2676 character(:,SKG), allocatable :: pathAbs
2677 end function
2678
2679 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2680
2681 end interface
2682
2683!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2684
2760
2761 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2762
2763 impure module function getDirCurrent() result(dirCurrent)
2764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2765 !DEC$ ATTRIBUTES DLLEXPORT :: getDirCurrent
2766#endif
2767 use pm_kind, only: SKG => SK
2768 character(:,SKG), allocatable :: dirCurrent
2769 end function
2770
2771 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2772
2773 impure module function getDirCurrentFailed(failed) result(dirCurrent)
2774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2775 !DEC$ ATTRIBUTES DLLEXPORT :: getDirCurrentFailed
2776#endif
2777 use pm_kind, only: SKG => SK
2778 logical(LK) , intent(out) :: failed
2779 character(:,SKG), allocatable :: dirCurrent
2780 end function
2781
2782 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2783
2784 impure module function getDirCurrentFailedMsg(failed, errmsg) result(dirCurrent)
2785#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2786 !DEC$ ATTRIBUTES DLLEXPORT :: getDirCurrentFailedMsg
2787#endif
2788 use pm_kind, only: SKG => SK
2789 logical(LK) , intent(out) :: failed
2790 character(*, SK), intent(inout) :: errmsg
2791 character(:,SKG), allocatable :: dirCurrent
2792 end function
2793
2794 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2795
2796 end interface
2797
2798!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2799
2879 interface getDirHome
2880
2881 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2882
2883 impure module function getDirHome(user, failed, errmsg) result(dirHome)
2884#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2885 !DEC$ ATTRIBUTES DLLEXPORT :: getDirHome
2886#endif
2887 use pm_kind, only: SKG => SK
2888 character(*,SKG), intent(in) , optional :: user
2889 logical(LK) , intent(out) , optional :: failed
2890 character(*, SK), intent(inout) , optional :: errmsg
2891 character(:,SKG) , allocatable :: dirHome
2892 end function
2893
2894 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2895
2896 end interface
2897
2898!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2899
2988
2989 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2990
2991 impure module function getPathExpandedUser(path) result(pathExpandedUser)
2992#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
2993 !DEC$ ATTRIBUTES DLLEXPORT :: getPathExpandedUser
2994#endif
2995 use pm_kind, only: SKG => SK
2996 character(*, SK), intent(in) :: path
2997 character(:,SKG), allocatable :: pathExpandedUser
2998 end function
2999
3000 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3001
3002 impure module function getPathExpandedUserFailed(path, failed) result(pathExpandedUser)
3003#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3004 !DEC$ ATTRIBUTES DLLEXPORT :: getPathExpandedUserFailed
3005#endif
3006 use pm_kind, only: SKG => SK
3007 character(*, SK), intent(in) :: path
3008 logical(LK) , intent(out) :: failed
3009 character(:,SKG), allocatable :: pathExpandedUser
3010 end function
3011
3012 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3013
3014 impure module function getPathExpandedUserFailedMsg(path, failed, errmsg) result(pathExpandedUser)
3015#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3016 !DEC$ ATTRIBUTES DLLEXPORT :: getPathExpandedUserFailedMsg
3017#endif
3018 use pm_kind, only: SKG => SK
3019 character(*, SK), intent(in) :: path
3020 logical(LK) , intent(out) :: failed
3021 character(*, SK), intent(inout) :: errmsg
3022 character(:,SKG), allocatable :: pathExpandedUser
3023 end function
3024
3025 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3026
3027 end interface
3028
3029!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3030
3086
3087 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3088
3089 impure module function isFailedChangeDir(dir) result(failed)
3090#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3091 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedChangeDir
3092#endif
3093 use pm_kind, only: SKG => SK
3094 character(*,SKG), intent(in) :: dir
3095 logical(LK) :: failed
3096 end function
3097
3098 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3099
3100 end interface
3101
3102!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3103
3226
3227 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3228
3229 impure module function isFailedMakeDir(path, wait, ntry, errmsg) result(failed)
3230#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3231 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedMakeDir
3232#endif
3233 use pm_kind, only: SKG => SK
3234 character(*,SKG) , intent(in) :: path
3235 logical(LK) , intent(in) , optional :: wait
3236 integer(IK) , intent(in) , optional :: ntry
3237 character(*, SK) , intent(inout) , optional :: errmsg
3238 logical(LK) :: failed
3239 end function
3240
3241 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3242
3243 end interface
3244
3245!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3246
3309
3310 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3311
3312 impure module function isFailedMakeDirTemp(path, parent, errmsg) result(failed)
3313#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3314 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedMakeDirTemp
3315#endif
3316 use pm_kind, only: SKG => SK
3317 character(:,SKG) , intent(out) , allocatable :: path
3318 character(*,SKG) , intent(in) , optional :: parent
3319 character(*, SK) , intent(inout) , optional :: errmsg
3320 logical(LK) :: failed
3321 end function
3322
3323 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3324
3325 end interface
3326
3327!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3328
3485 module function isFailedCopy(from, to, recursive, forced, wait, ntry, errmsg) result(failed)
3486#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3487 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedCopy
3488#endif
3489 use pm_kind, only: SKG => SK
3490 character(*,SKG), intent(in) :: from, to
3491 logical(LK) , intent(in) , optional :: recursive
3492 logical(LK) , intent(in) , optional :: forced
3493 logical(LK) , intent(in) , optional :: wait
3494 integer(IK) , intent(in) , optional :: ntry
3495 character(*, SK), intent(inout) , optional :: errmsg
3496 logical(LK) :: failed
3497 end function
3498 end interface
3499
3500!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3501
3627 module function isFailedMove(from, to, forced, wait, ntry, errmsg) result(failed)
3628#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3629 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedMove
3630#endif
3631 use pm_kind, only: SKG => SK
3632 character(*,SKG), intent(in) :: from, to
3633 logical(LK) , intent(in) , optional :: forced
3634 logical(LK) , intent(in) , optional :: wait
3635 integer(IK) , intent(in) , optional :: ntry
3636 character(*, SK), intent(inout) , optional :: errmsg
3637 logical(LK) :: failed
3638 end function
3639 end interface
3640
3641!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3642
3750 recursive module function isFailedRemove(path, recursive, forced, wait, ntry, errmsg) result(failed)
3751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3752 !DEC$ ATTRIBUTES DLLEXPORT :: isFailedRemove
3753#endif
3754 use pm_kind, only: SKG => SK
3755 character(*,SKG), intent(in) :: path
3756 logical(LK) , intent(in) , optional :: recursive
3757 logical(LK) , intent(in) , optional :: forced
3758 logical(LK) , intent(in) , optional :: wait
3759 integer(IK) , intent(in) , optional :: ntry
3760 character(*, SK), intent(inout) , optional :: errmsg
3761 logical(LK) :: failed
3762 end function
3763 end interface
3764
3765!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3766
3843 interface getDirSep
3844
3845 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3846
3847 impure module function getDirSep_SK(failed, errmsg) result(dirsep)
3848#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3849 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK
3850#endif
3851 use pm_kind, only: SKG => SK
3852 logical(LK) , intent(out) , optional :: failed
3853 character(*, SK), intent(inout) , optional :: errmsg
3854 character(1,SKG) :: dirsep
3855 end function
3856
3857 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3858
3859#if SK5_ENABLED
3860 impure module function getDirSep_SK5(mold, failed, errmsg) result(dirsep)
3861#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3862 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK5
3863#endif
3864 use pm_kind, only: SKG => SK5
3865 character(1,SKG), intent(in) :: mold
3866 logical(LK) , intent(out) , optional :: failed
3867 character(*, SK), intent(inout) , optional :: errmsg
3868 character(1,SKG) :: dirsep
3869 end function
3870#endif
3871
3872#if SK4_ENABLED
3873 impure module function getDirSep_SK4(mold, failed, errmsg) result(dirsep)
3874#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3875 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK4
3876#endif
3877 use pm_kind, only: SKG => SK4
3878 character(1,SKG), intent(in) :: mold
3879 logical(LK) , intent(out) , optional :: failed
3880 character(*, SK), intent(inout) , optional :: errmsg
3881 character(1,SKG) :: dirsep
3882 end function
3883#endif
3884
3885#if SK3_ENABLED
3886 impure module function getDirSep_SK3(mold, failed, errmsg) result(dirsep)
3887#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3888 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK3
3889#endif
3890 use pm_kind, only: SKG => SK3
3891 character(1,SKG), intent(in) :: mold
3892 logical(LK) , intent(out) , optional :: failed
3893 character(*, SK), intent(inout) , optional :: errmsg
3894 character(1,SKG) :: dirsep
3895 end function
3896#endif
3897
3898#if SK2_ENABLED
3899 impure module function getDirSep_SK2(mold, failed, errmsg) result(dirsep)
3900#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3901 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK2
3902#endif
3903 use pm_kind, only: SKG => SK2
3904 character(1,SKG), intent(in) :: mold
3905 logical(LK) , intent(out) , optional :: failed
3906 character(*, SK), intent(inout) , optional :: errmsg
3907 character(1,SKG) :: dirsep
3908 end function
3909#endif
3910
3911#if SK1_ENABLED
3912 impure module function getDirSep_SK1(mold, failed, errmsg) result(dirsep)
3913#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
3914 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSep_SK1
3915#endif
3916 use pm_kind, only: SKG => SK1
3917 character(1,SKG), intent(in) :: mold
3918 logical(LK) , intent(out) , optional :: failed
3919 character(*, SK), intent(inout) , optional :: errmsg
3920 character(1,SKG) :: dirsep
3921 end function
3922#endif
3923
3924 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3925
3926 end interface
3927
3928!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3929
4009 interface getDirSeps
4010
4011 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4012
4013 impure module function getDirSeps_SK(failed, errmsg) result(dirseps)
4014#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4015 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK
4016#endif
4017 use pm_kind, only: SKG => SK
4018 logical(LK) , intent(out) , optional :: failed
4019 character(*, SK), intent(inout) , optional :: errmsg
4020 character(:,SKG), allocatable :: dirseps
4021 end function
4022
4023 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4024
4025#if SK5_ENABLED
4026 impure module function getDirSeps_SK5(mold, failed, errmsg) result(dirseps)
4027#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4028 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK5
4029#endif
4030 use pm_kind, only: SKG => SK5
4031 character(1,SKG), intent(in) :: mold
4032 logical(LK) , intent(out) , optional :: failed
4033 character(*, SK), intent(inout) , optional :: errmsg
4034 character(:,SKG), allocatable :: dirseps
4035 end function
4036#endif
4037
4038#if SK4_ENABLED
4039 impure module function getDirSeps_SK4(mold, failed, errmsg) result(dirseps)
4040#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4041 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK4
4042#endif
4043 use pm_kind, only: SKG => SK4
4044 character(1,SKG), intent(in) :: mold
4045 logical(LK) , intent(out) , optional :: failed
4046 character(*, SK), intent(inout) , optional :: errmsg
4047 character(:,SKG), allocatable :: dirseps
4048 end function
4049#endif
4050
4051#if SK3_ENABLED
4052 impure module function getDirSeps_SK3(mold, failed, errmsg) result(dirseps)
4053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4054 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK3
4055#endif
4056 use pm_kind, only: SKG => SK3
4057 character(1,SKG), intent(in) :: mold
4058 logical(LK) , intent(out) , optional :: failed
4059 character(*, SK), intent(inout) , optional :: errmsg
4060 character(:,SKG), allocatable :: dirseps
4061 end function
4062#endif
4063
4064#if SK2_ENABLED
4065 impure module function getDirSeps_SK2(mold, failed, errmsg) result(dirseps)
4066#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4067 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK2
4068#endif
4069 use pm_kind, only: SKG => SK2
4070 character(1,SKG), intent(in) :: mold
4071 logical(LK) , intent(out) , optional :: failed
4072 character(*, SK), intent(inout) , optional :: errmsg
4073 character(:,SKG), allocatable :: dirseps
4074 end function
4075#endif
4076
4077#if SK1_ENABLED
4078 impure module function getDirSeps_SK1(mold, failed, errmsg) result(dirseps)
4079#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4080 !DEC$ ATTRIBUTES DLLEXPORT :: getDirSeps_SK1
4081#endif
4082 use pm_kind, only: SKG => SK1
4083 character(1,SKG), intent(in) :: mold
4084 logical(LK) , intent(out) , optional :: failed
4085 character(*, SK), intent(inout) , optional :: errmsg
4086 character(:,SKG), allocatable :: dirseps
4087 end function
4088#endif
4089
4090 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4091
4092 end interface
4093
4094!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4095
4165 interface getPathSep
4166
4167 impure module function getPathSep_SK(failed, errmsg) result(pathsep)
4168#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4169 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK
4170#endif
4171 use pm_kind, only: SKG => SK
4172 logical(LK) , intent(out) , optional :: failed
4173 character(*, SK), intent(inout) , optional :: errmsg
4174 character(1,SKG) :: pathsep
4175 end function
4176
4177 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4178
4179#if SK5_ENABLED
4180 impure module function getPathSep_SK5(mold, failed, errmsg) result(pathsep)
4181#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4182 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK5
4183#endif
4184 use pm_kind, only: SKG => SK5
4185 character(1,SKG), intent(in) :: mold
4186 logical(LK) , intent(out) , optional :: failed
4187 character(*, SK), intent(inout) , optional :: errmsg
4188 character(1,SKG) :: pathsep
4189 end function
4190#endif
4191
4192#if SK4_ENABLED
4193 impure module function getPathSep_SK4(mold, failed, errmsg) result(pathsep)
4194#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4195 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK4
4196#endif
4197 use pm_kind, only: SKG => SK4
4198 character(1,SKG), intent(in) :: mold
4199 logical(LK) , intent(out) , optional :: failed
4200 character(*, SK), intent(inout) , optional :: errmsg
4201 character(1,SKG) :: pathsep
4202 end function
4203#endif
4204
4205#if SK3_ENABLED
4206 impure module function getPathSep_SK3(mold, failed, errmsg) result(pathsep)
4207#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4208 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK3
4209#endif
4210 use pm_kind, only: SKG => SK3
4211 character(1,SKG), intent(in) :: mold
4212 logical(LK) , intent(out) , optional :: failed
4213 character(*, SK), intent(inout) , optional :: errmsg
4214 character(1,SKG) :: pathsep
4215 end function
4216#endif
4217
4218#if SK2_ENABLED
4219 impure module function getPathSep_SK2(mold, failed, errmsg) result(pathsep)
4220#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4221 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK2
4222#endif
4223 use pm_kind, only: SKG => SK2
4224 character(1,SKG), intent(in) :: mold
4225 logical(LK) , intent(out) , optional :: failed
4226 character(*, SK), intent(inout) , optional :: errmsg
4227 character(1,SKG) :: pathsep
4228 end function
4229#endif
4230
4231#if SK1_ENABLED
4232 impure module function getPathSep_SK1(mold, failed, errmsg) result(pathsep)
4233#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4234 !DEC$ ATTRIBUTES DLLEXPORT :: getPathSep_SK1
4235#endif
4236 use pm_kind, only: SKG => SK1
4237 character(1,SKG), intent(in) :: mold
4238 logical(LK) , intent(out) , optional :: failed
4239 character(*, SK), intent(inout) , optional :: errmsg
4240 character(1,SKG) :: pathsep
4241 end function
4242#endif
4243
4244 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4245
4246 end interface
4247
4248!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4249
4367 interface getPathNew
4368 module function getPathNew(dir, prefix, sep, ext, pid, failed) result(pathNew)
4369#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4370 !DEC$ ATTRIBUTES DLLEXPORT :: getPathNew
4371#endif
4372 use pm_kind, only: SKG => SK
4373 character(*,SKG) , intent(in) , optional :: dir, prefix, sep, ext
4374 integer(IK) , intent(in) , optional :: pid
4375 logical(LK) , intent(out) , optional :: failed
4376 character(:,SKG) , allocatable :: pathNew
4377 end function
4378 end interface
4379
4380!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4381
4498 interface getPathTemp
4499 module function getPathTemp(prefix, sep, ext, pid, failed) result(pathTemp)
4500#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4501 !DEC$ ATTRIBUTES DLLEXPORT :: getPathTemp
4502#endif
4503 use pm_kind, only: SKG => SK
4504 character(*,SKG) , intent(in) , optional :: prefix, sep, ext
4505 integer(IK) , intent(in) , optional :: pid
4506 logical(LK) , intent(out) , optional :: failed
4507 character(:,SKG) , allocatable :: pathTemp
4508 end function
4509 end interface
4510
4511!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4512
4575
4576 impure module function getPathJoined(p1, p2) result(pathJoined)
4577#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4578 !DEC$ ATTRIBUTES DLLEXPORT :: getPathJoined
4579#endif
4580 use pm_kind, only: SKG => SK
4581 character(*,SKG) , intent(in) :: p1, p2
4582 character(:,SKG) , allocatable :: pathJoined
4583 end function
4584
4585 impure module function getPathJoinedFailed(p1, p2, failed, errmsg) result(pathJoined)
4586#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4587 !DEC$ ATTRIBUTES DLLEXPORT :: getPathJoinedFailed
4588#endif
4589 use pm_kind, only: SKG => SK
4590 character(*,SKG) , intent(in) :: p1, p2
4591 logical(LK) , intent(out) :: failed
4592 character(*, SK) , intent(inout) , optional :: errmsg
4593 character(:,SKG) , allocatable :: pathJoined
4594 end function
4595
4596 end interface
4597
4598!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4599
4672 interface isFile
4673
4674 impure elemental module function isFileDD(path) result(pathIsFile)
4675#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4676 !DEC$ ATTRIBUTES DLLEXPORT :: isFileDD
4677#endif
4678 use pm_kind, only: SKG => SK
4679 character(*,SKG), intent(in) :: path
4680 logical(LK) :: pathIsFile
4681 end function
4682
4683 impure elemental module function isFileII(path, iostat, iomsg) result(pathIsFile)
4684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4685 !DEC$ ATTRIBUTES DLLEXPORT :: isFileII
4686#endif
4687 use pm_kind, only: SKG => SK
4688 character(*,SKG), intent(in) :: path
4689 logical(LK) :: pathIsFile
4690 integer(IK) , intent(out) :: iostat
4691 character(*, SK), intent(inout) , optional :: iomsg
4692 end function
4693
4694 end interface
4695
4696!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4697
4771 interface isDir
4772
4773 impure elemental module function isDirDD(path) result(pathIsDir)
4774#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4775 !DEC$ ATTRIBUTES DLLEXPORT :: isDirDD
4776#endif
4777 use pm_kind, only: SKG => SK
4778 character(*,SKG), intent(in) :: path
4779 logical(LK) :: pathIsDir
4780 end function
4781
4782 impure elemental module function isDirII(path, iostat, iomsg) result(pathIsDir)
4783#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4784 !DEC$ ATTRIBUTES DLLEXPORT :: isDirII
4785#endif
4786 use pm_kind, only: SKG => SK
4787 character(*,SKG), intent(in) :: path
4788 integer(IK) , intent(out) :: iostat
4789 character(*, SK), intent(inout) , optional :: iomsg
4790 logical(LK) :: pathIsDir
4791 end function
4792
4793 end interface
4794
4795!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4796
4859 interface isExtant
4860
4861 impure elemental module function isExtantDD(path) result(extant)
4862#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4863 !DEC$ ATTRIBUTES DLLEXPORT :: isExtantDD
4864#endif
4865 use pm_kind, only: SKG => SK
4866 character(*,SKG), intent(in) :: path
4867 logical(LK) :: extant
4868 end function
4869
4870 impure elemental module function isExtantII(path, iostat, iomsg) result(extant)
4871#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4872 !DEC$ ATTRIBUTES DLLEXPORT :: isExtantII
4873#endif
4874 use pm_kind, only: SKG => SK
4875 character(*,SKG), intent(in) :: path
4876 integer(IK) , intent(out) :: iostat
4877 character(*, SK), intent(inout) , optional :: iomsg
4878 logical(LK) :: extant
4879 end function
4880
4881 end interface
4882
4883!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4884
4956
4957 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4958
4959#if SK5_ENABLED
4960 PURE module function getPathVerbatimCMD_SK5(path) result(pathVerbatim)
4961#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4962 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimCMD_SK5
4963#endif
4964 use pm_kind, only: SKG => SK5
4965 character(*,SKG) , intent(in) :: path
4966 character(:,SKG) , allocatable :: pathVerbatim
4967 end function
4968#endif
4969
4970#if SK4_ENABLED
4971 PURE module function getPathVerbatimCMD_SK4(path) result(pathVerbatim)
4972#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4973 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimCMD_SK4
4974#endif
4975 use pm_kind, only: SKG => SK4
4976 character(*,SKG) , intent(in) :: path
4977 character(:,SKG) , allocatable :: pathVerbatim
4978 end function
4979#endif
4980
4981#if SK3_ENABLED
4982 PURE module function getPathVerbatimCMD_SK3(path) result(pathVerbatim)
4983#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4984 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimCMD_SK3
4985#endif
4986 use pm_kind, only: SKG => SK3
4987 character(*,SKG) , intent(in) :: path
4988 character(:,SKG) , allocatable :: pathVerbatim
4989 end function
4990#endif
4991
4992#if SK2_ENABLED
4993 PURE module function getPathVerbatimCMD_SK2(path) result(pathVerbatim)
4994#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
4995 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimCMD_SK2
4996#endif
4997 use pm_kind, only: SKG => SK2
4998 character(*,SKG) , intent(in) :: path
4999 character(:,SKG) , allocatable :: pathVerbatim
5000 end function
5001#endif
5002
5003#if SK1_ENABLED
5004 PURE module function getPathVerbatimCMD_SK1(path) result(pathVerbatim)
5005#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5006 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimCMD_SK1
5007#endif
5008 use pm_kind, only: SKG => SK1
5009 character(*,SKG) , intent(in) :: path
5010 character(:,SKG) , allocatable :: pathVerbatim
5011 end function
5012#endif
5013
5014 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5015
5016 end interface
5017
5018!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5019
5078
5079 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5080
5081#if SK5_ENABLED
5082 PURE module function getPathVerbatimPowerShell_SK5(path) result(pathVerbatim)
5083#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5084 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPowerShell_SK5
5085#endif
5086 use pm_kind, only: SKG => SK5
5087 character(*,SKG) , intent(in) :: path
5088 character(:,SKG) , allocatable :: pathVerbatim
5089 end function
5090#endif
5091
5092#if SK4_ENABLED
5093 PURE module function getPathVerbatimPowerShell_SK4(path) result(pathVerbatim)
5094#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5095 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPowerShell_SK4
5096#endif
5097 use pm_kind, only: SKG => SK4
5098 character(*,SKG) , intent(in) :: path
5099 character(:,SKG) , allocatable :: pathVerbatim
5100 end function
5101#endif
5102
5103#if SK3_ENABLED
5104 PURE module function getPathVerbatimPowerShell_SK3(path) result(pathVerbatim)
5105#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5106 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPowerShell_SK3
5107#endif
5108 use pm_kind, only: SKG => SK3
5109 character(*,SKG) , intent(in) :: path
5110 character(:,SKG) , allocatable :: pathVerbatim
5111 end function
5112#endif
5113
5114#if SK2_ENABLED
5115 PURE module function getPathVerbatimPowerShell_SK2(path) result(pathVerbatim)
5116#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5117 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPowerShell_SK2
5118#endif
5119 use pm_kind, only: SKG => SK2
5120 character(*,SKG) , intent(in) :: path
5121 character(:,SKG) , allocatable :: pathVerbatim
5122 end function
5123#endif
5124
5125#if SK1_ENABLED
5126 PURE module function getPathVerbatimPowerShell_SK1(path) result(pathVerbatim)
5127#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5128 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPowerShell_SK1
5129#endif
5130 use pm_kind, only: SKG => SK1
5131 character(*,SKG) , intent(in) :: path
5132 character(:,SKG) , allocatable :: pathVerbatim
5133 end function
5134#endif
5135
5136 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5137
5138 end interface
5139
5140!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5141
5200
5201 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5202
5203#if SK5_ENABLED
5204 PURE module function getPathVerbatimPosix_SK5(path) result(pathVerbatim)
5205#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5206 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPosix_SK5
5207#endif
5208 use pm_kind, only: SKG => SK5
5209 character(*,SKG) , intent(in) :: path
5210 character(:,SKG) , allocatable :: pathVerbatim
5211 end function
5212#endif
5213
5214#if SK4_ENABLED
5215 PURE module function getPathVerbatimPosix_SK4(path) result(pathVerbatim)
5216#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5217 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPosix_SK4
5218#endif
5219 use pm_kind, only: SKG => SK4
5220 character(*,SKG) , intent(in) :: path
5221 character(:,SKG) , allocatable :: pathVerbatim
5222 end function
5223#endif
5224
5225#if SK3_ENABLED
5226 PURE module function getPathVerbatimPosix_SK3(path) result(pathVerbatim)
5227#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5228 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPosix_SK3
5229#endif
5230 use pm_kind, only: SKG => SK3
5231 character(*,SKG) , intent(in) :: path
5232 character(:,SKG) , allocatable :: pathVerbatim
5233 end function
5234#endif
5235
5236#if SK2_ENABLED
5237 PURE module function getPathVerbatimPosix_SK2(path) result(pathVerbatim)
5238#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5239 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPosix_SK2
5240#endif
5241 use pm_kind, only: SKG => SK2
5242 character(*,SKG) , intent(in) :: path
5243 character(:,SKG) , allocatable :: pathVerbatim
5244 end function
5245#endif
5246
5247#if SK1_ENABLED
5248 PURE module function getPathVerbatimPosix_SK1(path) result(pathVerbatim)
5249#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5250 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimPosix_SK1
5251#endif
5252 use pm_kind, only: SKG => SK1
5253 character(*,SKG) , intent(in) :: path
5254 character(:,SKG) , allocatable :: pathVerbatim
5255 end function
5256#endif
5257
5258 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5259
5260 end interface
5261
5262!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5263
5323
5324 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5325
5326#if SK5_ENABLED
5327 PURE module function getPathVerbatimFish_SK5(path) result(pathVerbatim)
5328#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5329 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimFish_SK5
5330#endif
5331 use pm_kind, only: SKG => SK5
5332 character(*,SKG) , intent(in) :: path
5333 character(:,SKG) , allocatable :: pathVerbatim
5334 end function
5335#endif
5336
5337#if SK4_ENABLED
5338 PURE module function getPathVerbatimFish_SK4(path) result(pathVerbatim)
5339#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5340 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimFish_SK4
5341#endif
5342 use pm_kind, only: SKG => SK4
5343 character(*,SKG) , intent(in) :: path
5344 character(:,SKG) , allocatable :: pathVerbatim
5345 end function
5346#endif
5347
5348#if SK3_ENABLED
5349 PURE module function getPathVerbatimFish_SK3(path) result(pathVerbatim)
5350#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5351 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimFish_SK3
5352#endif
5353 use pm_kind, only: SKG => SK3
5354 character(*,SKG) , intent(in) :: path
5355 character(:,SKG) , allocatable :: pathVerbatim
5356 end function
5357#endif
5358
5359#if SK2_ENABLED
5360 PURE module function getPathVerbatimFish_SK2(path) result(pathVerbatim)
5361#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5362 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimFish_SK2
5363#endif
5364 use pm_kind, only: SKG => SK2
5365 character(*,SKG) , intent(in) :: path
5366 character(:,SKG) , allocatable :: pathVerbatim
5367 end function
5368#endif
5369
5370#if SK1_ENABLED
5371 PURE module function getPathVerbatimFish_SK1(path) result(pathVerbatim)
5372#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5373 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatimFish_SK1
5374#endif
5375 use pm_kind, only: SKG => SK1
5376 character(*,SKG) , intent(in) :: path
5377 character(:,SKG) , allocatable :: pathVerbatim
5378 end function
5379#endif
5380
5381 !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5382
5383 end interface
5384
5385!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5386
5455
5456 impure module function getPathVerbatim(path, failed, errmsg) result(pathVerbatim)
5457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5458 !DEC$ ATTRIBUTES DLLEXPORT :: getPathVerbatim
5459#endif
5460 use pm_kind, only: SKG => SK
5461 character(*,SKG) , intent(in) :: path
5462 logical(LK) , intent(out) , optional :: failed
5463 character(*, SK) , intent(inout) , optional :: errmsg
5464 character(:,SKG) , allocatable :: pathVerbatim
5465 end function
5466
5467 end interface
5468
5469!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5470
5562
5563 PURE elemental module function getIndexDirNameDef(path, dirsep) result(index)
5564#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5565 !DEC$ ATTRIBUTES DLLEXPORT :: getIndexDirNameDef
5566#endif
5567 use pm_kind, only: SKG => SK
5568 character(*,SKG) , intent(in) :: path
5569 character(*,SKG) , intent(in) :: dirsep
5570 integer(IK) :: index
5571 end function
5572
5573 PURE elemental module function getIndexDirNamePM(path, dirsep, style) result(index)
5574#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5575 !DEC$ ATTRIBUTES DLLEXPORT :: getIndexDirNamePM
5576#endif
5577 use pm_kind, only: SKG => SK
5578 character(*,SKG) , intent(in) :: path
5579 character(*,SKG) , intent(in) :: dirsep
5580 type(verbatim_type) , intent(in) :: style
5581 integer(IK) :: index
5582 end function
5583
5584 end interface
5585
5586!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5587
5667
5668 PURE elemental module function getIndexBaseNameDef(path, dirsep) result(index)
5669#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5670 !DEC$ ATTRIBUTES DLLEXPORT :: getIndexBaseNameDef
5671#endif
5672 use pm_kind, only: SKG => SK
5673 character(*,SKG) , intent(in) :: path
5674 character(*,SKG) , intent(in) :: dirsep
5675 integer(IK) :: index
5676 end function
5677
5678 PURE elemental module function getIndexBaseNamePM(path, dirsep, style) result(index)
5679#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5680 !DEC$ ATTRIBUTES DLLEXPORT :: getIndexBaseNamePM
5681#endif
5682 use pm_kind, only: SKG => SK
5683 character(*,SKG) , intent(in) :: path
5684 character(*,SKG) , intent(in) :: dirsep
5685 type(verbatim_type) , intent(in) :: style
5686 integer(IK) :: index
5687 end function
5688
5689 end interface
5690
5691!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5692
5759 PURE elemental module function getIndexExtName(path, dirsep) result(indexExtName)
5760#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5761 !DEC$ ATTRIBUTES DLLEXPORT :: getIndexExtName
5762#endif
5763 use pm_kind, only: SKG => SK
5764 character(*,SKG), intent(in) :: path
5765 character(*,SKG), intent(in) :: dirsep
5766 integer(IK) :: indexExtName
5767 end function
5768 end interface
5769
5770!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5771
5874 interface getDirName
5875
5876 PURE module function getDirNameDef(path, dirsep) result(dirname)
5877#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5878 !DEC$ ATTRIBUTES DLLEXPORT :: getDirNameDef
5879#endif
5880 character(*, SK) , intent(in) :: path
5881 character(*, SK) , intent(in) :: dirsep
5882 character(:, SK) , allocatable :: dirname
5883 end function
5884
5885 PURE module function getDirNamePM(path, dirsep, style) result(dirname)
5886#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5887 !DEC$ ATTRIBUTES DLLEXPORT :: getDirNamePM
5888#endif
5889 character(*, SK) , intent(in) :: path
5890 character(*, SK) , intent(in) :: dirsep
5891 type(verbatim_type) , intent(in) :: style
5892 character(:, SK) , allocatable :: dirname
5893 end function
5894
5895 end interface
5896
5897!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5898
5961 interface getExtName
5962 PURE module function getExtName(path, dirsep) result(extname)
5963#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
5964 !DEC$ ATTRIBUTES DLLEXPORT :: getExtName
5965#endif
5966 use pm_kind, only: SKG => SK
5967 character(*,SKG), intent(in) :: path
5968 character(*,SKG), intent(in) :: dirsep
5969 character(:,SKG), allocatable :: extname
5970 end function
5971 end interface
5972
5973!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5974
6050 interface getBaseName
6051
6052 PURE module function getBaseNameDef(path, dirsep) result(basename)
6053#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6054 !DEC$ ATTRIBUTES DLLEXPORT :: getBaseNameDef
6055#endif
6056 use pm_kind, only: SKG => SK
6057 character(*,SKG) , intent(in) :: path
6058 character(*,SKG) , intent(in) :: dirsep
6059 character(:,SKG) , allocatable :: basename
6060 end function
6061
6062 PURE module function getBaseNamePM(path, dirsep, style) result(basename)
6063#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6064 !DEC$ ATTRIBUTES DLLEXPORT :: getBaseNamePM
6065#endif
6066 use pm_kind, only: SKG => SK
6067 character(*,SKG) , intent(in) :: path
6068 character(*,SKG) , intent(in) :: dirsep
6069 type(verbatim_type) , intent(in) :: style
6070 character(:,SKG) , allocatable :: basename
6071 end function
6072
6073 end interface
6074
6075!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6076
6140 interface getFileName
6141 PURE module function getFileName(path, dirsep) result(filename)
6142#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6143 !DEC$ ATTRIBUTES DLLEXPORT :: getFileName
6144#endif
6145 use pm_kind, only: SKG => SK
6146 character(*,SKG), intent(in) :: path
6147 character(*,SKG), intent(in) :: dirsep
6148 character(:,SKG), allocatable :: filename
6149 end function
6150 end interface
6151
6152!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6153
6228 module function getPathMatch(key, sep, inc, failed, errmsg) result(list)
6229#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6230 !DEC$ ATTRIBUTES DLLEXPORT :: getPathMatch
6231#endif
6232 use pm_kind, only: SKG => SK
6233 use pm_container, only: css_type
6234 character(*,SKG), intent(in) , optional :: key
6235 character(*,SKG), intent(in) , optional :: inc
6236 character(1,SKG), intent(in) , optional :: sep
6237 logical(LK) , intent(out) , optional :: failed
6238 character(*,SKG), intent(inout) , optional :: errmsg
6239 type(css_type) , allocatable :: list(:)
6240 end function
6241 end interface
6242
6243!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6244
6339 module subroutine setPathMatch(key, inc, sep, list, lenList) !BIND2("setPathMatch")
6340#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
6341 !DEC$ ATTRIBUTES DLLEXPORT :: setPathMatch
6342#endif
6343 use pm_kind, only: SKG => SK
6344 character(*,SKG), intent(in) :: key
6345 character(*,SKG), intent(in) :: inc
6346 character(1,SKG), intent(in) :: sep
6347 character(*,SKG), intent(out) :: list
6348 integer(IK) , intent(inout) :: lenList
6349 end subroutine
6350 end interface
6351
6352!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6353
6354end module pm_sysPath ! LCOV_EXCL_LINE
6355
6356#undef MAX_PATH
6357#undef MAX_NAME
6358#undef SEP_PATH
6359#undef BIND2
Generate and return the basename part of the input path (i.e., all characters that appear after the l...
Generate and return the Current Working Directory (CWD) of the runtime shell.
Generate and return the Home Directory of the current user in the current runtime shell.
Generate and return the dirname (directory name) part of the input path.
Generate and return the directory separator symbol based on the runtime system shell.
Generate and return all the directory separator symbols supported by the current runtime operating sy...
Generate and return the file extension part of the input path (including the leading dot in the file ...
Generate and return the filename part of the input path.
Generate and return the index of the first character of the basename part of the input path.
Generate and return the index of the last character of the dirname (directory part) of the input path...
Generate and return the index of the first character of the file extension of the input path (if any ...
Generate and return the absolute path corresponding to the input (potentially relative) path.
Generate and return the input path wherein the initial tilde character (~) is expanded to the home di...
Generate and return the index of the last character of the hostname part of the input UNC path.
Generate and return the path that results from joining the two input path parts, separated by the spe...
Generate and return a list of directory paths matching a requested system application.
Generate and return a unique (directory or file) path name in the specified directory or the default ...
Generate and return a POSIX standard (Unix-like) version of the input POSIX-style-separated path wher...
Generate and return a POSIX-standard (Unix-like) path from the input Windows-style path.
Generate and return the path separator character used by the runtime processor shell for separating p...
Generate and return a unique (directory or file) path name in the temporary directory of the system o...
Generate and return a path quoted with double quotation marks where all instances of double quotes w...
Generate and return a path quoted with single quotation marks where all instances of backslashes with...
Generate and return a path quoted with single quotation marks where all instances of single quotes w...
Generate and return a path quoted with single quotation marks where all instances of single quotes w...
Generate and return a path quoted with single or double quotation marks whose metacharacters are also...
Generate and return a normalized Windows-style path from the input POSIX-style or Windows-style path,...
Generate and return the result of globing the specified input pattern.
Definition: pm_sysPath.F90:954
Generate and return .true. is the input Windows-style path begins with a drive-letter pattern like C:...
Generate and return .true. is the input path is an extant system directory, otherwise return ....
Generate and return .true. if the input path (whether a file or a directory) exists and ....
Generate and return .true. if the attempt to set the current working directory to the input dir fails...
Generate and return .true. if the requested copy action failed, otherwise return ....
Generate and return .true. if the attempt to globing the specified input pattern fails,...
Generate and return .true. if the attempt to fetch the directory listing of the specified input path ...
Generate and return .true. if the attempt to create a temporary directory fails. Otherwise return ....
Generate and return .true. if the attempt to create the requested directory path fails,...
Generate and return .true. if the requested move action failed, otherwise return ....
Generate and return .true. if the requested path removal action from the file system failed,...
Generate and return .true. is the input path is a file (not a directory), otherwise return ....
Generate and return .true. is the input path is an absolute POSIX path (whether existing or virtual),...
Generate and return .true. is the input path is an absolute Windows path (whether existing or virtual...
Generate and return a list of all paths within the specified input path.
Definition: pm_sysPath.F90:882
Return a list of directory paths matching a requested system application.
Return a POSIX standard (Unix-like) version of the input POSIX-style-separated path where all the rel...
Return a POSIX-standard (Unix-like) path from the input (Windows-style) path.
Normalize the input POSIX-style or Windows-style path to a Windows-style path, such that it conforms ...
This module contains the derived types for generating allocatable containers of scalar,...
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
Definition: pm_kind.F90:268
integer, parameter SK5
Definition: pm_kind.F90:326
integer, parameter SK1
Definition: pm_kind.F90:346
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
Definition: pm_kind.F90:541
integer, parameter SK4
Definition: pm_kind.F90:331
integer, parameter SK2
Definition: pm_kind.F90:341
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
Definition: pm_kind.F90:540
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
Definition: pm_kind.F90:539
integer, parameter SK3
Definition: pm_kind.F90:336
This module contains classes and procedures for manipulating system file/folder paths.
Definition: pm_sysPath.F90:274
character(*, SK), parameter PATH_SEP_WINDOWS
The scalar character constant of default kind SK, containing the preferred directory separator charac...
Definition: pm_sysPath.F90:320
character(*, SK), parameter PATH_SEP_ALL
The scalar character constant of default kind SK, containing the directory separator characters recog...
Definition: pm_sysPath.F90:328
character(*, SK), parameter PATH_SEP_POSIX
The scalar character constant of default kind SK, containing the preferred directory separator charac...
Definition: pm_sysPath.F90:324
character(*, SK), parameter ASCII_CONTROL_STR
The scalar character of default kind SK containing the ASCII control characters that need special car...
Definition: pm_sysPath.F90:448
character(1, SK), dimension(*), parameter POSIX_RESERVED_CHR
The vector character constant of default kind SK of len = 1 containing the individual characters in P...
Definition: pm_sysPath.F90:676
type(verbatim_type), parameter verbatim
The scalar constant of type verbatim_type that can be used to signify the verbatim interpretation of ...
Definition: pm_sysPath.F90:367
character(*, SK), parameter WINDOWS_CMD_METACHAR_STR
The scalar character constant of default kind SK, containing the Windows CMD shell metacharacters.
Definition: pm_sysPath.F90:529
character(*, SK), parameter WIN32_NAMESPACE_DEVICE
The scalar character constant of default kind SK, containing the operating systems path-separator sym...
Definition: pm_sysPath.F90:430
integer(IK), parameter MAX_LEN_FILE_PATH
The scalar integer constant of default kind IK, representing the maximum system-allowed path length (...
Definition: pm_sysPath.F90:294
character(1, SK), dimension(*), parameter POSIX_RESERVED_DQUOTE_CHR
The vector character constant of default kind SK of len = 1 containing the individual characters in P...
Definition: pm_sysPath.F90:706
character(*, SK), parameter DIR_SEP_WINDOWS_ALL
The scalar character constant of default kind SK, containing the directory separator characters recog...
Definition: pm_sysPath.F90:299
character(*, SK), parameter POSIX_RESERVED_STR
The scalar character constant of default kind SK, containing the ASCII characters that require escapi...
Definition: pm_sysPath.F90:636
character(*, SK), parameter POSIX_RESERVED_DQUOTE_STR
The scalar character constant of default kind SK, containing the ASCII characters that require escapi...
Definition: pm_sysPath.F90:694
character(*, SK), parameter DIR_SEP_WINDOWS
The scalar character constant of default kind SK, containing the preferred directory separator charac...
Definition: pm_sysPath.F90:307
integer(IK), parameter MAX_LEN_FILE_NAME
The scalar integer constant of default kind IK, representing the maximum system-allowed path length (...
Definition: pm_sysPath.F90:289
character(*, SK), parameter WINDOWS_RESERVED_STR
The scalar character constant of default kind SK, containing the Windows reserved characters not allo...
Definition: pm_sysPath.F90:496
character(*, SK), parameter DIR_SEP_POSIX
The scalar character constant of default kind SK, containing the preferred directory separator charac...
Definition: pm_sysPath.F90:311
character(1, SK), dimension(*), parameter WINDOWS_RESERVED_CHR
The vector character constant of default kind SK of len = 1 containing the individual characters in W...
Definition: pm_sysPath.F90:512
character(4, SK), dimension(*), parameter WINDOWS_RESERVED_DEVICE_NAME
The vector character constant of default kind SK, containing the Windows reserved (forbidden) file na...
Definition: pm_sysPath.F90:557
character(1, SK), dimension(*), parameter WINDOWS_CMD_METACHAR_CHR
The vector character constant of default kind SK of len = 1 containing the individual characters in W...
Definition: pm_sysPath.F90:542
character(*, SK), parameter MODULE_NAME
Definition: pm_sysPath.F90:281
character(*, SK), parameter DIR_SEP_ALL
The scalar character constant of default kind SK, containing the directory separator characters recog...
Definition: pm_sysPath.F90:315
character(*, SK), parameter DIR_SEP_POSIX_ALL
The scalar character constant of default kind SK, containing the directory separator characters recog...
Definition: pm_sysPath.F90:303
character(*, SK), parameter WIN32_NAMESPACE_FILE
The scalar character constant of default kind SK, containing the prefix operating systems path-separa...
Definition: pm_sysPath.F90:402
This is the css_type type for generating instances of container of scalar of string objects.
This is the derived type with no components, whose instantiated objects are used to signify the verba...
Definition: pm_sysPath.F90:350