Если у вас универсум достаточно большой и линейно упорядочен, лучше хранить множества упорядоченными списками — есть объединение, пересечение и прочие операции над такими списками слиянием. Сложнее (но иногда и такое может пригодиться, думаю) сделать множество содержащим не элементы, а диапазоны элементов. Так же можно использовать хеширование, особенно, если сравнение элементов медленное или его трудно реализовать. Может быть, ещё способы есть. Хотя, думаю, вам хватит и битового массива, если учебная задача.
Не знаю, не знаю, по-моему это будет трудновато сделать, тем более в фортране.