System Interface (sys)¶
Module: utils_sys
Overview¶
Provides platform-independent system functions for SPEX, including date/time operations, environment variable access, and system information retrieval.
Key Features¶
Cross-platform system interface
Date and time functions
Environment variable access
System information retrieval
No external dependencies
API Reference¶
Functions¶
sys_datum
- sys_datum(datum)¶
Get current date and time from the operating system
- Parameters:
datum – Formatted date and time string (character*24, output)
- Returns:
None
Returns system date and time in standardized 24-character format.
Format:
DD-MMM-YYYY HH:MM:SS GMTExample:
15-JAN-2024 14:30:45 GMT
sys_getenv
- sys_getenv(ename, evalue, l)¶
Retrieve environment variable value
- Parameters:
ename – Environment variable name (character(*), input)
evalue – Environment variable value (character(*), output)
l – Length of returned value (integer, output)
- Returns:
None
Case-sensitive environment variable lookup.
Returns actual length of value for proper string handling.
Usage Examples¶
Get Current Date/Time
use utils_sys
character(len=24) :: current_time
! Get current system time
call sys_datum(current_time)
write(*,*) 'Current time:', trim(current_time)
Read Environment Variables
use utils_sys
character(len=256) :: spex_path
integer :: path_length
! Get SPEX installation path
call sys_getenv('SPEX4', spex_path, path_length)
if (path_length > 0) then
write(*,*) 'SPEX installed at:', trim(spex_path(1:path_length))
else
write(*,*) 'SPEX4 not set'
endif
System Information
use utils_sys
character(len=24) :: timestamp
character(len=256) :: username, home_dir
integer :: username_len, home_len
! Get system information
call sys_datum(timestamp)
call sys_getenv('USER', username, username_len)
call sys_getenv('HOME', home_dir, home_len)
write(*,*) 'System Info:'
write(*,*) ' Time: ', trim(timestamp)
write(*,*) ' User: ', trim(username(1:username_len))
write(*,*) ' Home: ', trim(home_dir(1:home_len))
Notes¶
Platform Independence
Abstracts operating system differences
Consistent behavior across Unix/Linux/Windows
Handles environment variable syntax differences
Error Handling
No explicit error codes
Returns empty strings for unset variables
Length parameter helps detect unset variables
Performance
Fast system calls
Minimal overhead
Suitable for frequent calls
Best Practices
Check length parameter to detect unset variables
Use trim() on returned strings
Handle unset variables gracefully
Use for logging and debugging information
See Also¶
Mathematical Constants (cspex) - Mathematical constants
Message System (message) - Error reporting
System documentation for environment variables