我需要一个可移植函数/子程序来定位字符串中最后一个非空白字符的位置。我找到了两个选项:  LEN_TRIM和LNBLNK. 但是,不同的编译器似乎有不同的标准。以下编译器的官方文档表明 LEN_TRIM 是以下平台上 Fortran 95 标准的一部分:
但是,在 F95 标准之前发布的编译器似乎没有任何保证。  我的经验是,较旧的编译器可能会指定一个LEN_TRIM或LNBLNK,但不一定同时指定两者。我的解决方案是使用预处理器条件:
#ifdef USE_LEN_TRIM
        iNameLen = LEN_TRIM(cabase)
        iExtLen = LEN_TRIM(caext)
#else
        iNameLen = LNBLNK(cabase)
        iExtLen = LNBLNK(caext)
#endif
然后传递-DUSE_LEN_TRIM给预处理器。但是,我不是预处理器条件和额外编译时标志的忠实粉丝。  您对定位字符串中最后一个非空白字符的位置的可移植(在 Fortran 95 标准之前)函数有什么建议吗?