D=DOMFRD() [SACAlgebraicNumbers/domfrd.ea: DomainFile read. If next item read on IUNIT is a filename, that file will be opened as unit DFIU, IUNIT set to DFIU, and conitinue. In all cases, value of IUNIT at exit will be same as at entry. D = ("DOMAINFILEFEB387", key, data) is a domain specification, where key is either "Z", "Q", "ZMOD", or "QEXT", and data is either () (Z and Q), (m) (ZMOD), or (V, M, (u, v)) (QEXT).] const DFIU=14. (1) [Check header.] C=CREADB(); if C~='(' then go to 3; SAVIU=IUNIT; H=GTTKN(); while EQUAL(H,"FILENAMEFEB387") do { F=GTTKN(); C=CREADB(); if C~=')' then go to 3; OPENF(DFIU,F); IUNIT=DFIU; H=GTTKN() }; if NOT EQUAL(H,"DOMAINFILEFEB387") then go to 3; (2) [Key and data.] D=LIST1("DOMAINFILEFEB387"); K=GTTKN(); if EQUAL(K,"Z")|EQUAL(K,"Q") then D=COMP2((),K,D); if EQUAL(K,"ZMOD") then { m=IREAD(); D=COMP2(m, K, D) }; if EQUAL(K,"QEXT") then { ANRD(;V,M,J); A=LIST3(V,M,J); D=COMP2(A, K, D) }; D=inv(D); C=CREADB(); if C~=')' then go to 3; return. (3) [Error exit.] print "syntax error in domfrd"; IUNIT=SAVIU; stop..