1 SUBROUTINE CBINU(Z, FNU, KODE, N, CY, NZ, RL, FNUL, TOL, ELIM, 2 * ALIM) 3C***BEGIN PROLOGUE CBINU 4C***REFER TO CBESH,CBESI,CBESJ,CBESK,CAIRY,CBIRY 5C 6C CBINU COMPUTES THE I FUNCTION IN THE RIGHT HALF Z PLANE 7C 8C***ROUTINES CALLED CASYI,CBUNI,CMLRI,CSERI,CUOIK,CWRSK 9C***END PROLOGUE CBINU 10 COMPLEX CW, CY, CZERO, Z 11 REAL ALIM, AZ, DFNU, ELIM, FNU, FNUL, RL, TOL 12 INTEGER I, INW, KODE, N, NLAST, NN, NUI, NW, NZ 13 DIMENSION CY(N), CW(2) 14 DATA CZERO / (0.0E0,0.0E0) / 15C 16 NZ = 0 17 AZ = CABS(Z) 18 NN = N 19 DFNU = FNU + FLOAT(N-1) 20 IF (AZ.LE.2.0E0) GO TO 10 21 IF (AZ*AZ*0.25E0.GT.DFNU+1.0E0) GO TO 20 22 10 CONTINUE 23C----------------------------------------------------------------------- 24C POWER SERIES 25C----------------------------------------------------------------------- 26 CALL CSERI(Z, FNU, KODE, NN, CY, NW, TOL, ELIM, ALIM) 27 INW = IABS(NW) 28 NZ = NZ + INW 29 NN = NN - INW 30 IF (NN.EQ.0) RETURN 31 IF (NW.GE.0) GO TO 120 32 DFNU = FNU + FLOAT(NN-1) 33 20 CONTINUE 34 IF (AZ.LT.RL) GO TO 40 35 IF (DFNU.LE.1.0E0) GO TO 30 36 IF (AZ+AZ.LT.DFNU*DFNU) GO TO 50 37C----------------------------------------------------------------------- 38C ASYMPTOTIC EXPANSION FOR LARGE Z 39C----------------------------------------------------------------------- 40 30 CONTINUE 41 CALL CASYI(Z, FNU, KODE, NN, CY, NW, RL, TOL, ELIM, ALIM) 42 IF (NW.LT.0) GO TO 130 43 GO TO 120 44 40 CONTINUE 45 IF (DFNU.LE.1.0E0) GO TO 70 46 50 CONTINUE 47C----------------------------------------------------------------------- 48C OVERFLOW AND UNDERFLOW TEST ON I SEQUENCE FOR MILLER ALGORITHM 49C----------------------------------------------------------------------- 50 CALL CUOIK(Z, FNU, KODE, 1, NN, CY, NW, TOL, ELIM, ALIM) 51 IF (NW.LT.0) GO TO 130 52 NZ = NZ + NW 53 NN = NN - NW 54 IF (NN.EQ.0) RETURN 55 DFNU = FNU+FLOAT(NN-1) 56 IF (DFNU.GT.FNUL) GO TO 110 57 IF (AZ.GT.FNUL) GO TO 110 58 60 CONTINUE 59 IF (AZ.GT.RL) GO TO 80 60 70 CONTINUE 61C----------------------------------------------------------------------- 62C MILLER ALGORITHM NORMALIZED BY THE SERIES 63C----------------------------------------------------------------------- 64 CALL CMLRI(Z, FNU, KODE, NN, CY, NW, TOL) 65 IF(NW.LT.0) GO TO 130 66 GO TO 120 67 80 CONTINUE 68C----------------------------------------------------------------------- 69C MILLER ALGORITHM NORMALIZED BY THE WRONSKIAN 70C----------------------------------------------------------------------- 71C----------------------------------------------------------------------- 72C OVERFLOW TEST ON K FUNCTIONS USED IN WRONSKIAN 73C----------------------------------------------------------------------- 74 CALL CUOIK(Z, FNU, KODE, 2, 2, CW, NW, TOL, ELIM, ALIM) 75 IF (NW.GE.0) GO TO 100 76 NZ = NN 77 DO 90 I=1,NN 78 CY(I) = CZERO 79 90 CONTINUE 80 RETURN 81 100 CONTINUE 82 IF (NW.GT.0) GO TO 130 83 CALL CWRSK(Z, FNU, KODE, NN, CY, NW, CW, TOL, ELIM, ALIM) 84 IF (NW.LT.0) GO TO 130 85 GO TO 120 86 110 CONTINUE 87C----------------------------------------------------------------------- 88C INCREMENT FNU+NN-1 UP TO FNUL, COMPUTE AND RECUR BACKWARD 89C----------------------------------------------------------------------- 90 NUI = INT(FNUL-DFNU) + 1 91 NUI = MAX0(NUI,0) 92 CALL CBUNI(Z, FNU, KODE, NN, CY, NW, NUI, NLAST, FNUL, TOL, ELIM, 93 * ALIM) 94 IF (NW.LT.0) GO TO 130 95 NZ = NZ + NW 96 IF (NLAST.EQ.0) GO TO 120 97 NN = NLAST 98 GO TO 60 99 120 CONTINUE 100 RETURN 101 130 CONTINUE 102 NZ = -1 103 IF(NW.EQ.(-2)) NZ=-2 104 RETURN 105 END 106