function erfc03(x) result(erfc) use precision, only: wp implicit none real(wp), intent(in) :: x real(wp) :: erfc real(wp) :: t t = 1.0_wp - 7.5_wp/(abs(x)+3.75_wp) erfc = (((((((((((((((((((((+3.328130055126039e-10_wp *t & -5.718639670776992e-10_wp)*t & -4.066088879757269e-09_wp)*t & +7.532536116142436e-09_wp)*t & +3.026547320064576e-08_wp)*t & -7.043998994397452e-08_wp)*t & -1.822565715362025e-07_wp)*t & +6.575825478226343e-07_wp)*t & +7.478317101785790e-07_wp)*t & -6.182369348098529e-06_wp)*t & +3.584014089915968e-06_wp)*t & +4.789838226695987e-05_wp)*t & -1.524627476123466e-04_wp)*t & -2.553523453642242e-05_wp)*t & +1.802962431316418e-03_wp)*t & -8.220621168415435e-03_wp)*t & +2.414322397093253e-02_wp)*t & -5.480232669380236e-02_wp)*t & +1.026043120322792e-01_wp)*t & -1.635718955239687e-01_wp)*t & +2.260080669166197e-01_wp)*t & -2.734219314954260e-01_wp)*t & +1.455897212750385e-01_wp erfc = exp(-x**2)*erfc if (x < 0.0_wp) erfc = 2.0_wp - erfc end function erfc03