ZBFREAD
打开指定的ZBF文件,并将电场和光束属性数据放置在两个用户自定义的数组变量中。
语法:
ZBFREAD filename, beamname, propertyname
详述:
此关键字需要提供ZBF文件名,以及之前调用DECLARE所定义的两个数组名称。beamname必须是一个三维数组,非偏振光束的最小尺寸为(nx, ny, 2),偏振光束的最小尺寸为(nx, ny, 4)。propertyname数组必须是最小尺寸为14的一维数组。在执行ZBFREAD函数后,以下光束数据存储在指定propertyname数组中:nx、ny、dx、dy、waist_x、waist_y、position_x、position_y、rayleigh_x、rayleigh_y、波长(以镜头单位表示)、总功率、峰值照度(单位面积的能量)、is_polarized 标记(0表示否,1表示是)、介质折射率;光束数据分别存储于数组位置1到15。电场数据将存储于beamname数组中。beamname数组的第三维为1表示Ex实部,2表示Ex虚部,如果光束偏振,3表示Ey实部,4表示Ey虚部。
关于所有ZBF关键字的注解说明,请参阅"用途(Purpose)"。另请参阅"ZBFWRITE"。
示例:
! First get the beam size ZBFPROPERTIES "TEST1.ZBF", 1 nx = vec1(1) ny = vec1(2) ip = vec1(14) ! "是偏振(is polarized)"标记 ! Allocate enough memory to hold the beam IF (ip == 0) THEN DECLARE B, DOUBLE, 3, nx, ny, 2 IF (ip == 1) THEN DECLARE B, DOUBLE, 3, nx, ny, 4 DECLARE P, DOUBLE, 1, 20 ZBFREAD "test1.zbf", B, P FOR j, 1, ny, 1 FOR i, 1, nx, 1 FORMAT 4.0 PRINT i, j, FORMAT 12.6 IF (ip == 1) PRINT B(i, j, 1), PRINT B(i, j, 2), PRINT B(i, j, 3), PRINT B(i, j, 4) ELSE PRINT B(i, j, 1), PRINT B(i, j, 2) ENDIF NEXT NEXT ! save the beam ZBFWRITE "TEST2.ZBF", B, P ! release the allocated memory RELEASE B RELEASE P
下一部分: