function get_config_dir() result(config_dir) character(len=256) :: config_dir character(len=256) :: home_dir integer :: status ! Try to get XDG_CONFIG_HOME first (Linux standard) call get_environment_variable('XDG_CONFIG_HOME', config_dir, status=status) if (status == 0 .and. len_trim(config_dir) > 0) then config_dir = join_path(trim(config_dir), 'fortran') else ! Fallback to HOME directory call get_environment_variable('HOME', home_dir, status=status) if (status == 0) then ! Linux/macOS: ~/.config/fortran config_dir = join_path(trim(home_dir), '.config', 'fortran') else ! Windows fallback: try LOCALAPPDATA call get_environment_variable('LOCALAPPDATA', config_dir, status=status) if (status == 0) then config_dir = join_path(trim(config_dir), 'fortran', 'config') else ! Last resort - use current directory config_dir = './.fortran-config' end if end if end if end function get_config_dir