1 SUBROUTINE DOFS(EREF,MONO3,N,DD,M,BOTTOM,TOP)
2 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
3 DIMENSION EREF(MONO3,N), DD(M)
4 ************************************************************************
6 * DOFS FORMS A NORMALISED, SLIGHTLY SMOOTHED DENSITY OF STATES FOR A *
7 * 1-D DENSITY OF STATES *
8 * ON INPUT EREF = REFERENCE ENERGY LEVELS *
9 * P = POPULATION OF ENERGY LEVELS (=1 FOR ENERGY D.O.S. *
10 * OR ATOMIC ORBITAL POPULATION FOR PARTIAL D.O.S.) *
11 * N = NUMBER OF ENERGY LEVELS SUPPLIED *
12 * M = SIZE OF D.O.S. VECTOR *
13 * D = ARRAY TO HOLD D.O.S. *
14 * BOTTOM = BOTTOM OF D.O.S. VECTOR *
15 * TOP = TOP OF D.O.S. VECTOR *
17 * ON OUTPUT D = DENSITY OF STATES. THIS ANALYSES IS INDEPENDENT OF N*
18 * ROUGHNESS WILL OCCUR IF N < CA. 30. *
20 ************************************************************************
22 C FIRST, EMPTY THE DENSITY-OF-STATES (DOS) BINS
27 C SPREAD OUT THE ENERGIES OVER THE ENERGY SPECTRUM, TOP TO BOTTOM
29 RANGE=(M+1)/(TOP-BOTTOM)
33 IF(X.LT.BOTTOM.OR.X.GT.TOP) X=-1.D7
34 20 EREF(J,I)=(X-BOTTOM)*RANGE
49 C IF J EQUALS K THE INTERVAL FALLS WITHIN ONE BIN
54 SPREAD=1.D0/(A-B+1.D-12)
60 C IF K EQUALS J+1 THE INTERVAL STRADDLES TWO BINS
64 C IF K IS GREATER THAN J+1 THE INTERVAL COVERS MORE THAN TWO BINS
73 X=M/((N-1)*(TOP-BOTTOM))
76 WRITE(6,'(A)')' NORMALIZED DENSITY OF STATES'
78 C THE FIRST 'BIN' HAS LOWER BOUND AT BOTTOM AND UPPER BOUND
79 C AT BOTTOM+RANGE, THEREFORE THE FIRST 'BIN' IS FOR BOTTOM+0.5*RANGE
80 C THE LAST 'BIN' HAS BOUNDS TOP-RANGE AND TOP,
81 C THEREFOR THE LAST 'BIN' IS FOR TOP-0.5*RANGE
84 60 WRITE(6,'(F9.2,F12.6)')BOTTOM+(I-0.5D0)/RANGE,DD(I)