Adding Diode Model to gschem
I can't help with the ngspice side of things, unfortunately, but adding a new symbol to gEDA gschem is a doddle.

A .sym file will have to be created for your specific component.  This is no different to a schematic file, just named "component.sym" instead of .sch.

Just draw the component using the lines, boxes and arcs at your disposal in gschem.  Add pins (ap) and number them 1 and 2 (etc, depending on the number of pins you have).  Maybe name them by their function as well.

Then you add 2 special attributes - the "refdes" - One or more letters followed by a question-mark - in your case I guess that'll be D? for diode number X. Also you need a "device" attribute which contains the name of the device - D1N914 in your case.  These attributes are attached to the whole page, not any one individual object within the drawing.

Then you need to do a "Symbol Translate" - I think it's in the "Edit" menu.  Translate it to the default of 0,0.

You can now save your new symbol.  You'll have to place it somewhere gEDA can find it again.  I have a local "gEDA/symbols" folder which I use.  You can add whatever locations you like by editing ~/.gEDA/gafrc and adding lines like:

(component-library "/home/sidney/gEDA/symbols" "My Symbols")


I would imagine you'd have to do something similar with ngspice to tell it where to find extra library files.  Not having used it I can't really say.