Changes in cubspl.F and reflec.F made by Bernd Chistian Meyer
I used the source code of Shadow2.3.2, earlier versions I got not
compiled and the source code of newest 2.3.3. is not provided on ftp-server.
The compilition is quite difficult, because everybody use different fortran
code. There were still a lot of error messages, but what I am already tested
worked fine. I made some changes in cubspl.f in the shadow library. In
consequence I got also the wiggler and the undulator source running with
2.000.000 rays and without error. The results were equal with that I
obtained with old Shadow version, just with much better quality.
With more than 2.000.000 rays the compilition of shadow fails. So at the
moment that is maximum, but I think already a great improvement of the
program.
bmeyer_at_lnls.br
% diff cubspl.F cubspl.F.orig
95,97c95,97
< IF (E1(I).EQ.0.0) THEN
< E1(I) = 1.0E-12
< ENDIF
---
> C IF (E1(I).EQ.0.0) THEN
> C E1(I) = 1.0E-30
> C ENDIF
111c111
< 51 IF (ABS(E2(I)).GT.SMIN*1) THEN
---
> 51 IF (ABS(E2(I)).GT.SMIN*10) THEN
117c117
< 61 IF (ABS(E2(I)).GT.SMIN*1) THEN
---
> 61 IF (ABS(E2(I)).GT.SMIN*10) THEN
diff reflec.F reflec.F.orig 246,249c246,249
< IF (INDEX.LT.1) INDEX=1
< C ('REFLEC','Photon energy below lower limit.',0)
< IF (INDEX.GT.NREFL) INDEX=NREFL-1
< C ('REFLEC','Photon energy above upper limit.',0)
---
> IF (INDEX.LT.1) CALL LEAVE
> $ ('REFLEC','Photon energy below lower limit.',0)
> IF (INDEX.GT.NREFL) CALL LEAVE
> $ ('REFLEC','Photon energy above upper limit.',0)
298,301c298,301
< IF (INDEX.LT.1) INDEX=1
< C ('REFLEC','Photon energy too small.',2)
< IF (INDEX.GT.NIN) INDEX=NIN-1
< C ('REFLEC','Photon energy too large.',2)
---
> IF (INDEX.LT.1) CALL LEAVE
> $ ('REFLEC','Photon energy too small.',2)
> IF (INDEX.GT.NIN) CALL LEAVE
> $ ('REFLEC','Photon energy too large.',2)