15   real pbot,psig,ppre,pupp,ptop,dpbot,dpsig,dppre,dpupp,dptop,pmin
    16   real,
allocatable:: ak(:),bk(:)
    17   write(0,*) 
'Enter levs,lupp,pbot,psig,ppre,pupp,ptop,dpbot,dpsig,dppre,dpupp,dptop'    18   read *,levs,lupp,pbot,psig,ppre,pupp,ptop,dpbot,dpsig,dppre,dpupp,dptop
    19   allocate(ak(0:levs),bk(0:levs))
    20   call vcoord_gen(levs,lupp,pbot,psig,ppre,pupp,ptop,dpbot,dpsig,dppre,dpupp,dptop,pmin,ak,bk)
    21   write(0,*) 
'pmin=',pmin
    23   print 
'(f12.3,f12.8)',(ak(k),bk(k),k=0,levs)
 subroutine vcoord_gen(levs, lupp, pbot, psig, ppre, pupp, ptop, dpbot, dpsig, dppre, dpupp, dptop, pmin, ak, bk)
This subprogram generates hybrid coordinate interface profiles from a few given parameters. 
 
program driver
This program generates hybrid coordinate parameters from fields such as surface pressure, model top and the number of vertical levels.