1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| procedure Miecalc; var betar,betai : extended; i,j,k:integer; begin SetLength(MieParameter,Nl,4,50); new(JaA);new(JfA);new(PsiA); new(chiA); ; new(n3A_r);new(n3A_i); for i:=0 to Nl-1 do begin new(n1A_r);new(n1B_r);new(n1B_i); BfhMaxOrder:=trunc(WiscombeNumber[i])+100; BfhMinOrder:=trunc(WiscombeNumber[i])+50; BesselFractional (x[i],BfhMaxOrder,BfhMaxTerms,JaA,JfA); RicattiBesselCalculation(x[i]); betar:= RelRefrIndex[i,0]*x[i]; betai:= RelRefrIndex[i,1]*x[i]; calcn1A(x[i]); calcn1B(betar,betai); calcn3A(x[i]); for j:=0 to 3 do begin for k:=0 to 49 do MieParameter[i,j,k]:=0; end; for j:=1 to WiscombeNumber[i] do begin calc_anbn (j, RelRefrIndex[i,0], RelRefrIndex[i,1],MieParameter[i,0,j],MieParameter[i,1,j], MieParameter[i,2,j],MieParameter[i,3,j]); end; dispose(n1A_r); end; dispose(JaA);dispose(JfA); dispose(chiA); dispose(n3A_r);dispose(n3A_i); dispose(n1B_r);dispose(n1B_i); end; |