--- 
:name: slartgp
:md5sum: 88a79da91a90b35ec8e235764f012f69
:category: :subroutine
:arguments: 
- f: 
    :type: real
    :intent: input
- g: 
    :type: real
    :intent: input
- cs: 
    :type: real
    :intent: output
- sn: 
    :type: real
    :intent: output
- r: 
    :type: real
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE SLARTGP( F, G, CS, SN, R )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  SLARTGP generates a plane rotation so that\n\
  *\n\
  *     [  CS  SN  ]  .  [ F ]  =  [ R ]   where CS**2 + SN**2 = 1.\n\
  *     [ -SN  CS  ]     [ G ]     [ 0 ]\n\
  *\n\
  *  This is a slower, more accurate version of the Level 1 BLAS routine SROTG,\n\
  *  with the following other differences:\n\
  *     F and G are unchanged on return.\n\
  *     If G=0, then CS=(+/-)1 and SN=0.\n\
  *     If F=0 and (G .ne. 0), then CS=0 and SN=(+/-)1.\n\
  *\n\
  *  The sign is chosen so that R >= 0.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  F       (input) REAL\n\
  *          The first component of vector to be rotated.\n\
  *\n\
  *  G       (input) REAL\n\
  *          The second component of vector to be rotated.\n\
  *\n\
  *  CS      (output) REAL\n\
  *          The cosine of the rotation.\n\
  *\n\
  *  SN      (output) REAL\n\
  *          The sine of the rotation.\n\
  *\n\
  *  R       (output) REAL\n\
  *          The nonzero component of the rotated vector.\n\
  *\n\
  *  This version has a few statements commented out for thread safety\n\
  *  (machine parameters are computed on each entry). 10 feb 03, SJH.\n\
  *\n\n\
  *  =====================================================================\n\
  *\n"
