100 REM PINK.BAS A PROGRAM TO MODEL NOISE THAT FALLS AT LESS THAN 20DB/DECADE
110 REM REVISION #2, 12/16/1989
120 DIM R$(20),L$(20)
121 CLS
122 PRINT"***************************************"
124 PRINT"*     PINK NOISE MODEL GENERATOR      *"
126 PRINT"*    Version 1.0  December, 1989      *"
128 PRINT"*      Russ Kincaid Milford, NH       *"
129 PRINT"***************************************"
130 DATA R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20
140 FOR J=0 TO 20:READ R$(J):NEXT J
150 DATA L0,L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,L17,L18,L19,L20
160 FOR J=0 TO 20:READ L$(J):NEXT J
170 K=0: KTB=4*1.38E-23*300: PI=3.14162
180 PRINT: PRINT,"VOLTAGE NOISE PROFILE IN nV/RT HZ:":K=1E-12:GOSUB 230
190  GOSUB 470
200 PRINT"CURRENT NOISE PROFILE IN pA/RT HZ:":K=1E-12:GOSUB 230
210  GOSUB 560
220 PRINT:PRINT"SEE THE FILE NOISE.MDL ":GOTO 660
230 FOR J=0 TO 10
240 PRINT"NOISE LEVEL AT ";10^J;"hZ";:INPUT N(J) : N(J)=N(J)*K*1.41
260 IF N(J)=0 THEN 280
270 NEXT J
275 REM
280 IF J=0 THEN RETURN
282 N(J-1)=N(J-1)/1.41
285 IF A=0 THEN KR=J: A=1
290 J=J-1: R(J)=KTB/N(J)^2
300 FOR Q=J-1 TO 0 STEP -1 : W=2*PI*10^Q : N2=N(J)^2
310 FOR T=J-1 TO Q+1 STEP -1: N2=N2+N(T)^2:NEXT T
320 R(Q)= KTB/(N(Q)^2-N2) : L(Q)= R(Q)/W
330 NEXT Q
464 RETURN
465 REM
470  OPEN "NOISE.MDL" FOR OUTPUT AS #1
480 PRINT#1,".SUBCKT PINK 1 2 3"
490 PRINT#1,R$(J);" 0 4 ";R(J)
500 FOR Q=0 TO J-1
510 PRINT#1,R$(Q);" 4 ";6+Q;" ";R(Q)
520 PRINT#1,L$(Q);6+Q;" 0 ";L(Q)
530 NEXT Q
535 PRINT#1,"VV 4 0 0"
540 PRINT#1,"H1 1 2 VV 1E3"
550 RETURN
560 IF J=0 THEN PRINT#1,".ENDS PINK":CLOSE#1:RETURN
570 PRINT#1,R$(KR);" 0 5 ";R(J)
580 FOR Q=0 TO J-1
590 PRINT#1,R$(Q+KR+1);" 5 ";6+Q+KR;" ";R(Q)
600 PRINT#1,L$(Q+KR+1);6+Q+KR;" 0 ";L(Q)
610 NEXT Q
615 PRINT#1,"VI 5 0 0 "
620 PRINT#1,"F1 2 3 VI 1"
630 PRINT#1,".ENDS PINK"
640 CLOSE#1
650 RETURN
660 END

    Source: geocities.com/russlk/spice

               ( geocities.com/russlk)