double precision function gnmr1(y,ymin,ymax) implicit none double precision y,ymin,ymax double precision wykl /4.0d0/ if (y.lt.ymin) then gnmr1=(ymin-y)**wykl/wykl else if (y.gt.ymax) then gnmr1=(y-ymax)**wykl/wykl else gnmr1=0.0d0 endif return end c------------------------------------------------------------------------------ double precision function gnmr1prim(y,ymin,ymax) implicit none double precision y,ymin,ymax double precision wykl /4.0d0/ if (y.lt.ymin) then gnmr1prim=-(ymin-y)**(wykl-1) else if (y.gt.ymax) then gnmr1prim=(y-ymax)**(wykl-1) else gnmr1prim=0.0d0 endif return end c------------------------------------------------------------------------------ double precision function harmonic(y,ymax) implicit none double precision y,ymax double precision wykl /2.0d0/ harmonic=(y-ymax)**wykl return end c------------------------------------------------------------------------------- double precision function harmonicprim(y,ymax) double precision y,ymin,ymax double precision wykl /2.0d0/ harmonicprim=(y-ymax)*wykl return end c---------------------------------------------------------------------------------