Skip to content

Commit 7b6e867

Browse files
authored
fix: add compiler support to readme and fix some compiler bugs (#1103)
1 parent af77ab5 commit 7b6e867

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,27 @@ The following external libraries are required when building libFMS
7777
Please see the [Build and Installation page](http://noaa-gfdl.github.io/FMS/build.html)
7878
for more information on building with each build system.
7979

80+
## Compiler Support
81+
82+
For most production environments and large scale regression testing, FMS is currently compiled with the
83+
Intel classic compiler (ifort) but will be transitioning to the llvm-based ifx intel compiler when it is
84+
available for production.
85+
86+
Below shows the status of our compiler support for various compilers and versions. Testing was done on
87+
CentOS 8, with additional testing using a larger cray SLES system. MPICH is used as the MPI library
88+
except for the intel compilers, which use intel's mpi library.
89+
Compilers used in our Github continuous integration testing are in bold.
90+
91+
|Compiler | Version |Builds Successfully | Unit Testing |
92+
|------------------------|---------|---------------------------|---------------------|
93+
|**intel classic(ifort)**| 2021.6.0| yes | passes |
94+
|**GNU (gfortran)** | 9.3.0 | yes | passes |
95+
|intel oneapi (ifx) | 2021.6.0| yes | passes |
96+
|GNU (gfortran) | 11.2.0 | yes | passes |
97+
|HP/Cray (cce) | 9.1.1 | yes | not passing |
98+
|Nvidia/PGI(nvfortran) | 22.9 | no | not passing |
99+
|AMD (aocc) | 3.2.0 | no(compiles,fails to link)| not passing |
100+
80101
## Documentation
81102

82103
Source code documentation for the FMS code base is available at http://noaa-gfdl.github.io/FMS.

parser/yaml_output_functions.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,8 @@ void write_yaml_from_struct_3 (char *yamlname, int asize, struct fmsyamloutkeys
395395
char* curr_topkey = topkeys->level2key;
396396

397397
/* loop through the top level 2 keys */
398-
for (int top_ind=0; top_ind < topkeys->level2key_offset; top_ind++) {
398+
int top_ind;
399+
for (top_ind=0; top_ind < topkeys->level2key_offset; top_ind++) {
399400
/* Start the secodn level event */
400401
yaml_scalar_event_initialize(&event, NULL, (yaml_char_t *)YAML_STR_TAG,
401402
(yaml_char_t *)curr_topkey, strlen(curr_topkey), 1, 0,
@@ -412,7 +413,8 @@ void write_yaml_from_struct_3 (char *yamlname, int asize, struct fmsyamloutkeys
412413
return;
413414
}
414415
/* loop through the structs for this key*/
415-
for (int s2 = 0 ; s2 < lvl2keyeach[top_ind]; s2++){
416+
int s2;
417+
for (s2 = 0 ; s2 < lvl2keyeach[top_ind]; s2++){
416418
yaml_mapping_start_event_initialize(&event, NULL, (yaml_char_t *)YAML_MAP_TAG,
417419
1, YAML_ANY_MAPPING_STYLE);
418420
if (!yaml_emitter_emit(&emitter, &event)){
@@ -424,7 +426,8 @@ void write_yaml_from_struct_3 (char *yamlname, int asize, struct fmsyamloutkeys
424426

425427
/* Next level keys */
426428
char * curr_l2key = (&l2keys[s2count])->level2key;
427-
for (int l2_ind = 0; l2_ind < (&l2keys[s2count])->level2key_offset; l2_ind++) {
429+
int l2_ind;
430+
for (l2_ind = 0; l2_ind < (&l2keys[s2count])->level2key_offset; l2_ind++) {
428431
/* Start the third level event */
429432
yaml_scalar_event_initialize(&event, NULL, (yaml_char_t *)YAML_STR_TAG,
430433
(yaml_char_t *)curr_l2key, strlen(curr_l2key), 1, 0,
@@ -444,7 +447,8 @@ void write_yaml_from_struct_3 (char *yamlname, int asize, struct fmsyamloutkeys
444447
int s3start = s3count;
445448
int s3end = s3start + n3each[i_n3];
446449
i_n3++;
447-
for (int s3 = s3start ; s3 < s3end ; s3++){
450+
int s3;
451+
for (s3 = s3start ; s3 < s3end ; s3++){
448452
yaml_mapping_start_event_initialize(&event, NULL, (yaml_char_t *)YAML_MAP_TAG,
449453
1, YAML_ANY_MAPPING_STYLE);
450454
if (!yaml_emitter_emit(&emitter, &event)){

test_fms/mpp/test_mpp_chksum.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ program test_mpp_chksum
5353
call mpp_error(FATAL, 'test_mpp_chksum: invalid test number given')
5454
endif
5555

56-
call MPI_FINALIZE
56+
call mpp_exit
5757

5858
contains
5959
!> tests mixed precision checksums with ints

0 commit comments

Comments
 (0)