这个是我之前在非序列里面编的宏,希望对你有所帮助。
temp=NSDD(1,0,0,0)
NSTR 1,0,0,0,0,0,0,0 # NSTR surf, source, split, scatter, usepol, ignore_err, rand_seed, save
EBAR=NSDD(1,5,-5,1) #获取非零像素上的平均光照度
PRINT "光照度平均值=",EBAR
!DECLARE E,DOUBLE,1,320000
DECLARE A,DOUBLE,1,320000 #320000是探测器像素数
SUM=0
M=0
SUM1=0
FOR i=1,320000,1
EI=NSDD(1,5,i,1) # 获取单个像素的光照度
HI=NSDD(1,5,i,0) # 获取单个像素的能量
IF(EI>0)
AI=POWR((EI-EBAR),2)
! A(i)=AI
SUM=SUM+AI
M=M+1 # M是光线打到探测像素个数
SUM1=SUM1+HI
ENDIF
NEXT
PRINT "sum=",SUM
PRINT "M=", M
PRINT "SUM1=",SUM1
R=1-(SQRT(SUM/M))/EBAR # 求光斑的均匀性