pSolve 更新记录

· 预计阅读 22 分钟

本文记录 pSolve 的主要版本更新,重点说明功能变化、问题修复及其对实际解算的影响。各版本按从新到旧的顺序排列。下面的文件路径均以 pSolve 目录为起点。

说明:本文所列更新由 DeepSeek 总结、ChatGPT 整理,属于非官方更新记录,并非 pSolve 开发者 Leonid Petrov 博士发布的更新说明。对修改目的和实际影响的推测,会在文中单独说明。

最近记录版本:psolve-20261015 (1.14)
本文更新日期:2026-10-22

20261015

  • 对比版本:20260812(1.13 → 1.14)。

这次更新主要涉及 SINEX 文件输出、相位时延模糊度处理,以及几个配套工具能够处理的数据量。

更新内容

  • 调整|SINEX 文件中的实验和软件信息:实验代号以前通过查询 master 文件获取,现在直接使用 EXP_CODE。软件版本也直接取自 SOLVE_VERSION,不再读取单独的版本日期文件。此外,软件名称由 Calc/Solve 改为 SGDASS,硬件信息中不再固定加上 HP。
    对应文件:progs/solve/adjst/write_sinex.f。
  • 调整|SINEX 程序中的整数类型:记录参数个数的变量由 2 字节整数改为 4 字节整数。调用矩阵缩放程序时,也去掉了将矩阵阶数转换成 2 字节整数的 INT2()。
    对应文件:progs/solve/adjst/write_sinex.f。
  • 调整|射电源名称表的文件位置:生成 SINEX 时,程序现在读取 /apr/sou/source.names。这个路径直接写在代码里;如果文件不存在或无法读取,程序就会报错并停止这次 SINEX 输出。拼接目录和文件名时,也补上了中间的 /。
    对应文件:progs/solve/adjst/write_sinex.f、libs/cutil/get_source_table.f。
  • 调整|PAMB 对过大时延的处理:增加了两处异常值处理。一处是在计算模糊度整数时,若其绝对值达到或超过 $10^8$,就将其设为零;另一处是在 S 波段的处理分支中,先把时延限制在 −1 ms 至 1 ms 之间,再计算模糊度整数。
    对应文件:progs/solve/pamb/pamb_init.f、progs/solve/pamb/pamb_mares.f。
  • 调整|射电源名称表可以保存更多源:MAX_SOU 从 44444 增至 65000,SINEX 中的名称表也采用这个上限。单次实验相关数组使用的 MAX_SRC 仍为 32752,没有随之增加。
    对应文件:include/solve_i.templ、include/solve.i、progs/solve/adjst/write_sinex.f。
  • 调整|先验 EOP 数组容量:先验地球定向参数(EOP)数组的上限从 7 个数据点改为 5 个,即 MAX_EROT_VALUES 从 7 改为 5。SOCOM 公共块末尾的预留空间相应增加了 48 字节。
    对应文件:include/solve_i.templ、include/solve.i、include/socom.i、include/q_socom.i。
  • 新增|查找以两位年份命名的 master 文件:程序先查找 masterYYYY.txt 或 masterYYYY-int.txt;找不到时,再尝试 masterYY.txt 或 masterYY-int.txt。
    对应文件:libs/cutil/resolve_dbname.f。
  • 调整|电离层工具读取钟跳日期的位置:读取钟跳文件时,日期改从每行的第 55—77 列读取,原来是第 59—81 列。
    对应文件:utils/iono/est_iono_mod.f。
  • 新增|eopkal 在没有观测数据时退出:观测数据条数小于 1 时,程序会打印提示并退出。不过,这个判断之前已经读取了 FJD_MEAS(1),判断语句还应该移到读取操作之前。
    对应文件:utils/eopkal/eopkal_head.f。
  • 调整|配套工具可以处理更多记录:remove_badeop 能保存的待剔除记录从 8192 条增至 32768 条;spl_find_bcl 和 spl_find_breaks 能读入的文本从 4194304 行增至 6291456 行,方便处理更大的解算输出报告。
    对应文件:utils/procpar/remove_badeop.f、utils/procpar/spl_find_bcl.f、utils/procpar/spl_find_breaks.f。
  • 调整|清理编译文件和调试输出:make clean 现在也会清理 utils/gen_rot_adm 中的编译文件;另外,修正了 prces.f 中的一条调试输出语句。
    对应文件:Makefile.in2、progs/solve/batch/prces.f。
  • 移除|预先编译好的 gen_rot_adm:软件包不再附带 bin/gen_rot_adm。源码仍保留在 utils/gen_rot_adm 中,需要这个工具时可以自行编译。

使用提示

  • 更新后重新配置并完整编译。这次修改了多个公共变量和数组的定义,需要让各个程序都使用新版定义。
  • 生成 SINEX 前,检查 /apr/sou/source.names 是否存在且可读。如果后处理脚本依赖 SINEX 文件名或其中的软件名称,也要检查是否需要修改脚本。
  • 使用电离层工具所需的钟跳文件时,检查日期所在的位置。新版程序读取的是第 55—77 列。
  • PAMB 遇到异常时延后,即使能够继续计算,也仍需检查对应观测。新增代码会将部分数值设为零或限制在指定范围内,并没有修正原始观测。
  • PRFIL 数据的读写长度有一处需要检查。按变量声明计算,射电源名称表扩大后,PRFIL 所需的存储空间增加了约 370000 字节,但读写记录的长度没有同步增加,可能导致部分数据没有完整保存。需要检查 include/prfil.i 及相关读写程序。另外,SOCOM 中部分变量的位置发生了变化,继续使用旧版生成的二进制文件前,也需要检查文件格式是否兼容。
  • 两个报告分析工具需要更多内存空间。spl_find_bcl 和 spl_find_breaks 用来存放文本的数组各自从 1 GiB 增至 1.5 GiB。

20260812

  • 对比版本:20260216。

本次主要扩展测站位置时间序列工具,新增无净旋转(NNR)约束调整工具,并修正测站参考位置和参考历元的换算。

更新内容

  • 调整|B 样条测站位置工具:bsp_plot 更名为 bsp_proc。生成位置时间序列表格时,可以读入 .hps 文件,叠加测站运动的谐波项;输出增加 TAI 日内秒数和 X、Y、Z 三个坐标分量的误差,日期扩展到时分秒。
    对应文件:utils/procpar/bsp_proc.f。
  • 调整|线性测站位置工具:linvel_plot 更名为 linvel_proc。根据位置、速度的误差及其相关性,计算各历元的位置误差,并写入时间序列表格。
    对应文件:utils/procpar/linvel_proc.f。
  • 新增|NNR 约束调整工具:新增 gen_rot_adm,读取 7 次试验解算的对齐结果,计算测站位置和速度的 NNR 约束右端项对地球参考架旋转角和旋转速率的影响,生成包含 $6\times6$ 矩阵的 .rot 文件。
    对应文件:utils/gen_rot_adm/gen_rot_adm.f。
  • 调整|eop_alignment 约束计算:支持设置 rot_0、rot_1p 等试验条件,也可以读取 .rot 文件,重新计算 NNR 约束右端项;输出补充起止日期和时间跨度,并调整参考历元等信息的格式。
    对应文件:utils/eop_alignment/eop_alignment.f。
  • 修复|参考历元换算:修正 eop_alignment 中半天偏移项的符号,解决参考历元正反转换相差一天的问题。
    对应文件:utils/eop_alignment/eop_alignment.f。
  • 修复|SPE 测站参考位置计算:输出 APS 行时,将历元差除以 365.25,正确地把天换算成年;旧代码除以 86400,会算错测站速度带来的位置变化。
    对应文件:progs/solve/adjst/spe_res.f。
  • 新增|逐条观测的调试输出:设置 SOLVE_DEBUG=SNGL_OUT 后,输出每条观测的时间、测站、射电源、仰角、方位角、时延的观测值与计算值之差(O−C)、误差及偏导数等信息,便于检查具体观测。
    对应文件:progs/solve/proc/loop.f。
  • 修复|仰角输出中的测站名称:OUT_ELEV 改为输出当前观测对应的两个测站名称,修复此前始终使用测站表中前两个名称的问题。
    对应文件:progs/solve/proc/loop.f。
  • 调整|先验射电源表标签:update_apr_cat 遇到原有的 rfc_ 标签时,替换为新标签;遇到其他说明时,在前面插入新标签,保留后面的内容。同时调整 apriori 标记的列位置。
    对应文件:utils/procpar/update_apr_cat.f。
  • 调整|getpar 射电源数量上限:M_SOU 从 44444 增加到 50000。
    对应文件:include/getpar.i。
  • 调整|依赖要求与构建安装:VTD 最低版本提高到 20260812;构建和安装流程加入 gen_rot_adm,并改用 bsp_proc、linvel_proc。TLE 版本检查改用 SOLVE_TLE_DIR 查找链接库,并补充 BLAS 链接项。
    对应文件:configure、Makefile.in2、utils/procpar/makefile、support/check_tle_version.mak。
  • 新增|测站位置文件格式说明:新增测站位置时间序列的格式文档,并修正文件标识中 Evolution 的拼写。
    对应文件:doc/ste_format.txt、include/solve_i.templ。
  • 调整|电离层模型调试输出:est_iono_mod 在 IVRB=5 时增加原始记录编号,便于回查数据。
    对应文件:utils/iono/est_iono_mod.f。

使用提示

  • 控制文件:本次没有修改 pSolve 控制文件的关键词。eop_alignment 的第 12 个命令行参数可以填写试验名称或 .rot 文件,第 13 个参数用于设置输出详细程度;原来将 0–9 的输出级别放在第 12 位的调用方式仍然保留。
  • 解算结果:当测站速度非零、先验历元与输出历元不同时,时间换算修正会改变 SPE 结果中 APS 行的坐标。如果后续位置时间序列使用了这些坐标,应重新生成相关结果。eop_alignment 的历元修正也可能改变参考架对齐和约束计算结果。
  • 安装与运行:升级前确认 VTD 版本不低于 20260812,并修改脚本中的旧程序名。安装脚本中删除旧 linvel_plot 的文件名存在拼写错误,升级后旧程序可能仍然保留。gen_rot_adm 只汇总试验结果,不会自动完成 7 次解算,需要事先准备完整的 PHI、OME 输出。
  • 输出文件:两个测站位置工具都增加了误差列,bsp_proc 的日期字段也变宽了,按固定列读取的脚本需要同步修改。SNGL_OUT 写入 SOLVE_DIR_DEBUG 指定的目录,未设置时使用 /tmp;其表头中部分列号有误,例如 AZ2 实际位于第 117–124 列,读取时应以 loop.f 中的 FORMAT 386 为准。
  • 位置误差计算:bsp_proc 在计算位置误差和协方差时,对速度项采用了不同的时间缩放,需要核对后再将误差用于后续加权。另外,不提供 .hps 文件时,测站索引 I_STA2 没有显式初始化,可能误入谐波计算分支,应在读取可选文件前将其设为零。

20260216

  • 对比版本:20251127。

本次主要更新解算输出报告和 getpar 的大气参数文件,增加气象数据导出,并修改测站运动的 B 样条约束及部分全局解算流程。

更新内容

  • 调整|解算输出报告格式:新增 LISTING_OPTIONS SEG_STYLE POST2026,并将其设为默认格式。采用该格式时,程序会自动启用 APRIORI_ZENDEL;钟差、大气参数和 EOP 的输出也相应调整。未估计单次实验的 EOP 时,报告会给出说明。
    对应文件:include/glbc4_i.templ、progs/solve/batch/goutpt.f、progs/solve/adjst/a2jst_plneop.f。
  • 调整|天顶时延与气象统计输出:新格式的 at 行同时给出先验天顶总时延、先验天顶湿时延、估计的改正量和误差。配套的 ATZE 中间文件增加天顶湿时延,报告的大气统计增加平均气压和平均气温。
    对应文件:progs/solve/cres/secnd.f、progs/solve/adjst/a1jst.f。
  • 调整|getpar 大气参数输出:支持读取 POST2026 格式的解算输出报告。.trp 格式更新为 2.0,分别输出先验天顶总时延 Apr_tot、先验天顶湿时延 Apr_wet、改正量 Adj、估计的天顶总时延 Tot_est 和误差 Err;.trs 的格式标识更新为 1.1,并保留新增的气象统计信息。
    对应文件:utils/getpar/getpar_parse.f、utils/getpar/getpar.f、include/getpar.i。
  • 新增|观测时刻的气象数据导出:SOLVE_EXPORT 增加 print_meteo 选项,将各测站的观测气压、气温、相对湿度,以及数值天气模型给出的气压和水汽分压写入 <数据库名>_meteo.info,时间使用 UTC。
    对应文件:progs/solve/proc/loop.f。
  • 调整|TPD 文件中的气象数据:TPD__NDER 从 25 增加到 29,新增四个存储位置,用于保存基线两端测站的数值天气模型气压和水汽分压。读写程序同步更新,从 TPD 文件恢复理论时延时,也能恢复这些气象数据。
    对应文件:include/solve_i.templ、progs/solve/proc/post_vtd.f、progs/solve/proc/tpd_put.f、progs/solve/proc/tpd_get.f。
  • 修复|测站运动的 B 样条约束方程:此前,同一节点区间内的 6 个采样点反复写入同一个约束方程,最终只保留最后一个采样点的系数;现在为各采样点分别建立方程。相关配置的报错信息也增加了测站名称。
    对应文件:progs/solve/norml/spe_cnst.f、progs/solve/batch/parse_spe.f。
  • 调整|仅求全局参数的处理:使用已有全局法方程进行 GLOBAL_ONLY 解算时,增加 SFLAGS 调用,按本次配置设置参数估计标志,并保存相应状态。
    对应文件:progs/solve/batch/prces.f。
  • 调整|用户自定义参数处理:生成 USRG 文件时,参数计数和循环下标改用 INTEGER*4;未启用用户参数时,将用户参数计数清零。相关文件的读取程序不再跳过以 * 开头的行。
    对应文件:progs/solve/norml/create_usrg.f、libs/cutil/parcng.f、progs/solve/batch/prces.f。
  • 修复|模糊度重置:SOLVE_DEBUG=AMB_RESET 现在会同时撤销群时延和相位时延中的模糊度改正,并清零两类模糊度计数;此前只处理群时延。
    对应文件:progs/solve/proc/loop.f。
  • 调整|交互式数据库选择:输入数据库名后统一进行通配符匹配,找不到数据库时的提示增加仓库名称;调用端同步传入当前仓库。
    对应文件:progs/solve/getdb/getdb_select.f、progs/solve/getdb/getdb_do.f。
  • 修复|未设置的模型文件名判断:检查测站坐标、射电源坐标、测站速度和板块运动模型是否设置时,同时识别空格和空字符(NUL),避免尝试读取未设置的模型文件。
    对应文件:progs/solve/norml/norml_main.f。
  • 修复|电离层数据中的异常数值处理:计算基线两端 GNSS 天顶电离层时延的相关系数时,若分母过小,将相关系数设为零。dtec_import 读取误差字段中的 ******** 时,改用 9999.999,避免直接将星号作为数值读取。
    对应文件:utils/iono/est_iono_mod.f、utils/iono/dtec_import.f。
  • 修复|电离层工具的参数传递和输出:gen_iono_err_regr 调用 LOAD_IONO_SOLVE 时补传 IONO_EST;写出附加电离层权重文件时,明确从第一条记录读取随机种子。
    对应文件:utils/iono/gen_iono_err_regr.f、utils/iono/wri_add_iono_wei.f。

使用提示

  • 控制文件:未指定 SEG_STYLE 时,现在默认使用 POST2026。需要保留旧输出布局时,可以显式选择 PRE2005 或 POST2005。要输出各段的先验天顶总时延和天顶湿时延,还需要设置 SEG_OUTPUT YES。
  • 解算结果:启用 CNS_DER_SIGMA 的测站运动解算会使用更多约束方程,结果可能改变。使用已有全局法方程进行 GLOBAL_ONLY 解算时,也应核对本次配置下的参数选取和估计结果。
  • 安装与运行:建议重新配置并完整编译,使各程序使用一致的公共块和文件格式定义。TPD 和 ATZE 的内容已改变,升级后应重新生成这些中间文件,并配套使用新版 getpar。
  • 输出文件:读取解算输出报告、.trp 和 .trs 的脚本需要检查列位置及字段名称。气象文件写入 SOLVE_EXPORT_DIR 指定的目录,未设置时使用 /tmp;其中气压和水汽分压使用 Pa,气温使用 K,相对湿度按 0–1 输出。
  • B 样条约束容量:spe_cnst.f 增加了约束方程数量,但数组仍只能容纳 131 个方程。每个参与计算的节点区间产生 6 个方程,达到 22 个区间时就会超出容量。使用较多节点的解算前,需要扩大数组并增加边界检查。
  • 先验天顶湿时延为零的情况:a1jst.f 当前会丢弃天顶湿时延绝对值小于 $10^{-14}$ 秒的 ATZE 记录。若先验天顶湿时延为零,可能导致后续插值缺少数据,需要先修正这一筛选条件。
  • 基线结果导出:getpar_parse.f 删除了检查基线是否被排除的查找调用,却仍使用查找结果变量 IP 判断是否输出。存在被排除基线时,.bas 文件可能漏写或误写记录,使用前应恢复这次查找并核对输出。

20251127

  • 对比版本:20210612。

本次记录两个源码包之间的累计改动,主要涉及电离层处理、参数约束、结果输出,以及数据库管理和配套工具。这两个版本之间还有若干中间版本,但我没有保留相应源码,因此在这里合并记录。

更新内容

  • 调整|融合群时延处理:原来的 DUAL 类型改为 FUSED。程序根据两个频段的数据是否可用,选择双频组合或经过电离层改正的单频群时延,并将差分总电子含量(差分 TEC)的误差计入观测误差。
    对应文件:progs/solve/getdb/getdb_fill_oborg.f、progs/solve/proc/loop.f、progs/solve/cres/secnd.f。
  • 新增|电离层时延比例因子估计:IONOSPHERE_SCALE 可以按每次实验、测站或基线估计电离层时延比例因子,并设置相应约束。实验列表还支持 TEC_SCAL 和 TEC_BIAS,用于调整单频群时延中的电离层改正。
    对应文件:progs/solve/batch/gflags.f、progs/solve/batch/garc.f、libs/cutil/partl.f。
  • 新增|电离层模型处理流程:$OUTPUT 段新增 IONOSPHERIC_MODEL,可以收集双频 VLBI 与 GNSS TEC 模型的信息、估计电离层偏差、计算模型误差,并按设置将差分 TEC 结果写回数据库。
    对应文件:progs/solve/batch/goutpt.f、progs/solve/proc/iono_bias_adj.f、progs/solve/proc/iono_regr_mod.f。
  • 新增|电离层配套工具:增加 dtec_import、est_iono_mod 和 gen_iono_err_regr,分别用于导入差分 TEC、估计电离层模型,以及根据回归模型生成误差和附加权重文件。
    对应文件:utils/iono/dtec_import.f、utils/iono/est_iono_mod.f、utils/iono/gen_iono_err_regr.f。
  • 调整|外部误差与权重处理:ADDW 支持将两项误差的平方相加后开方、取较大值、取较小值等处理方式,也可以直接替换观测误差;新增 EXT_ERR,用于逐条指定观测误差。电离层附加误差会根据观测的有效频率换算。
    对应文件:progs/solve/batch/garc.f、progs/solve/proc/loop.f。
  • 调整|默认参考历元:测站位置估计和测站运动使用的默认参考历元,由 1980.10.17 00:00:00 改为 2000.01.01 00:00:00,对应 JD 2451544.5。控制文件中明确指定的历元仍按原设置使用。
    对应文件:include/solve.i、progs/solve/batch/gflags.f、progs/solve/batch/gmap.f。
  • 调整|测站基准约束:测站位置和速度的无净平移、无净旋转约束,以及测站间的位置和速度连接约束,默认标准差由 1e-5 改为 1e-4;垂向速度约束的默认标准差由 1e-7 改为 1e-4。各项约束分别读取自己的测站例外名单,测站位置无净旋转约束的 UNIFORM 分支也调整了系数的符号和缩放方式。
    对应文件:include/solve.i、progs/solve/norml/nnt_pos.f、progs/solve/norml/nnr_pos.f。
  • 新增|射电源自行约束设置:$CONSTRAINTS 段新增 PROPER_MOTIONS,可以设置射电源自行约束的标准差。射电源坐标的无净旋转约束支持通过 RIGHT_PART 指定非零右端项,并在解算输出报告中记录相关设置。
    对应文件:progs/solve/batch/gconst.f、progs/solve/norml/do_src.f、progs/solve/norml/nnr_src.f。
  • 新增|指定样条约束的时间范围:测站非线性运动模型的 CNS_STA_SIGMA、CNS_VEL_SIGMA 可以附带起止历元,分别限定位置均值和变化趋势的约束范围。地球自转模型也增加了指定区间内的均值、变化率约束。
    对应文件:progs/solve/batch/parse_spe.f、progs/solve/norml/spesta_cnst.f、progs/solve/batch/parse_erm_cnt.f、progs/solve/norml/erm_cnst.f。
  • 调整|解算容量与大矩阵下标:大气分段和钟差分段上限均提高到 1600,单次实验扫描数上限由 3072 提高到 131072,解算弧段上限由 16384 提高到 32000。部分矩阵下标改用 64 位整数,避免大矩阵计算中的整数溢出。
    对应文件:include/solve.i、progs/solve/adjst/eheo_res.f、libs/cutil/unscaler.f。
  • 调整|测站坐标和射电源自行输出:单次实验的 XYZ 坐标改为在当前坐标上加估计改正量,取消原来额外叠加的速度项。射电源自行输出补齐了从 rad/s 到 mas/yr 的换算,并在输出总值时加上先验自行。
    对应文件:progs/solve/adjst/a1jst.f、progs/solve/adjst/vtd_get_apr_prp.f。
  • 新增|结果提取内容:射电源统计支持 POST2024 格式,增加扫描次数等信息。getpar 新增 .cns 和 .prp 文件,分别保存全局约束信息和射电源自行结果;射电源坐标文件还增加了参考历元和观测加权平均历元。
    对应文件:progs/solve/batch/goutpt.f、utils/getpar/getpar.f、utils/getpar/getpar_parse.f。
  • 新增|交互设置和电离层绘图:可以在 OPTIN 中设置 SOLVE_DEBUG、SOLVE_EXPORT 和导出目录,也可以统一设置基线附加误差。REPA 增加先验电离层时延、差分 TEC 及其误差的绘图选项。
    对应文件:progs/solve/optin/optin.f、progs/solve/optin/set_wei_glob.f、progs/solve/repa/repa_setfunc.f。
  • 新增|数据库仓库选择和批处理环境设置:交互模式可以用 R 切换数据库仓库。批处理控制文件支持 DEFINE 和 UNDEFINE,用于设置或清空运行时使用的环境变量。
    对应文件:progs/solve/optin/optin.f、progs/solve/batch/ctrls.f。
  • 调整|测站位置时间序列工具:bsp_plot 增加 -table 和 -dates,可以按指定时间范围、步长输出位置时间序列;绘图改为通过 -plot 开启。新增 linvel_plot,用于根据测站坐标和线性速度生成位置时间序列表格或图。
    对应文件:utils/procpar/bsp_plot.f、utils/procpar/linvel_plot.f。
  • 新增与调整|参考架对齐工具:新增 src_alignment,根据解算结果和参考射电源表生成射电源坐标无净旋转约束的右端项。eop_alignment 调整了命令行和处理流程,增加时间范围、误差筛选等设置;新增独立的 erm_to_eop,将地球自转模型转换为 EOP 时间序列。
    对应文件:utils/src_alignment/src_alignment.f、utils/eop_alignment/eop_alignment.f、utils/erm_to_eop/erm_to_eop.f。
  • 新增|频率选择和钟差检查工具:增加 fresel_heo,用于选择地球定向谐波模型的频率;增加 spl_find_bcl,从解算输出报告中筛选超过指定阈值的基线相关钟差;增加 spl_find_breaks,从报告中提取钟跳记录。
    对应文件:utils/fresel/fresel_heo.f、utils/procpar/spl_find_bcl.f、utils/procpar/spl_find_breaks.f。
  • 调整|模拟观测配置:simul 改用专门的配置文件集中设置 VTD、NERS、输入输出仓库、测站文件、名称替换表和噪声参数,命令行通过 -c 指定配置文件。
    对应文件:utils/simul/simul_main.f、utils/simul/simul_conf_parse.f。
  • 调整|安装依赖和初始数据:增加 TLE、FOURPACK、FFTW 的配置检查,并提高 VTD、PETOOLS 等依赖的最低版本。安装流程增加数据库仓库配置;当 OBS、INT 仓库为空时,会导入随包提供的示例数据库。
    对应文件:configure、support/config.csh、support/psolve_gen_db.csh。

使用提示

  • 控制文件:旧配置中的 TYPE DUAL 需要改为 TYPE FUSED。bsp_plot 默认不再画图,旧命令中的 -noplot 也需要调整。eop_alignment 和 simul 的参数接口有变化,原有调用脚本需要同步修改。
  • 解算结果:默认参考历元和部分约束标准差已经改变。标准差增大意味着约束放宽;复算旧解时,应明确指定历元和约束值。使用带非零右端项的测站无净旋转约束时,还需要核对新的系数定义。
  • 安装与运行:公共块和工作文件的结构已有变化,应重新编译整套程序,并通过 psolve_reset 重建旧工作文件。旧版 CGM 也不能直接当作兼容文件继续使用:当前 libs/cutil/cgm_com.f 没有覆盖本次旧源码中长度为 294 个块的 SOCOM 数据的读取分支。
  • 样条导数约束:progs/solve/norml/spe_cnst.f 中,同一节点区间内的六次采样仍写入约束系数数组的同一列,前面的结果会被覆盖。使用 CNS_DER_SIGMA 时需要先修正这一问题,使每个采样点分别生成约束方程,并相应调整数组容量。
  • 射电源表读取:utils/getpar/read_sou.f 读取 GETPAR_SOU 3.0 时,将实验总数字段的列范围写成了 STR(213:117),无法正确读取该字段,使用依赖此例程的工具前需要修正。
  • 先验射电源表更新:utils/procpar/update_apr_cat.f 的一种源表更新分支漏写了行下标:BUFA(60:60) 和 BUFA(68:69) 会清空第 60、68、69 条缓冲记录。应改为当前行的字符范围,即 BUFA(J1)(60:60) 和 BUFA(J1)(68:69)。
  • SINEX 输出:libs/cutil/resolve_dbname.f 对 master 文件 2.0 格式的判断写反了,会把正确的文件头判为未知格式,导致 SINEX 输出无法取得实验代号。这里应将与 VER2_SIGNATURE 比较的 .NE. 改为 .EQ.。