subroutine wdcpro
     a  (base,foe,hme,she,fof1,hmf1,shf1,fof2,hmf2,shf2,vwidth,
     a   xce,yce,ae,be,h1,xcf,ycf,af,bf,h2,h,ED,DNDH)
c	s/r to find the electron density and gradient dNdh for an ionosphere
c	composed of overlapping E, (F1) and F2 layers, with elliptical
c	sections to smooth the E-F1/F2 and F1-F2 transitions
c
c	written by leo mcnamara 31-jul-87
c-----	last modified 30-sep-87
c
c	E and F1 layers are alpha-Chapman
c	F2 layer will be beta-Chapman (see Hargreaves Section 4.3.2),
c	if shf2 < 0
	alpha = 0.5
	beta = 1.0
	if(shf2.ge.0.) beta = alpha
	h0 = hme + vwidth
c
	dndh = 0.
	ed = 0.
	if (h.le.base.or.h.gt.hmf2) return
	if (h.gt.hme) go to 10
c
c	E-layer contribution
	call chap (foe,hme,she,alpha,h,ed,dndh)
	return
c
10	if(fof1.ne.0.) go to 20
c	fof1=0 means that ellipse joins the e-layer peak to the f2 layer
	if(h.gt.h1) go to 50
c	e-f2 elliptical section
	call elled (xce,yce,ae,be,h,ed,dndh)
	return
c
20	if(h.gt.h0) go to 25
c	e-f1 valley slab
	ed = 1.24e10 * foe * foe
	dndh = 0.
	return
c
25	if(h.gt.h1) go to 30
c	e-f1 elliptical section
	call elled (xce,yce,ae,be,h,ed,dndh)
	return
c
30	if(h.gt.hmf1) go to 40
c	chapman f1 layer
	call chap (fof1,hmf1,shf1,alpha,h,ed,dndh)
	return
c
40	if(h.gt.h2) go to 50
c	f1-f2 elliptical section
	call elled (xcf,ycf,af,bf,h,ed,dndh)
	return
c
50	continue
c	chapman f2 layer
	ashf2 = abs(shf2)
	call chap (fof2,hmf2,ashf2,beta,h,ed,dndh)
	return
	end