#1416 closed Bug (fixed)
ORCA2_LIM3 does not compile on Met Office IBM
Reported by: | timgraham | Owned by: | nemo |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | LIM3 | Version: | trunk |
Severity: | Keywords: | LIM* | |
Cc: |
Description
There are some problems in the LIM3 code meaning it won't compile on our system at r4879 (i.e. the revision being used for the merge).
The first bug is in NEMOGCM/NEMO/LIM_SRC_3/limistate.F90. At line 302 the extra commas in the write statements cause a syntax error:
IF(lwp) THEN WRITE(numout,*), ' ztests : ', ztests IF ( ztests .NE. 4 ) THEN WRITE(numout,*) WRITE(numout,*), ' !!!! ALERT !!! ' WRITE(numout,*), ' !!!! Something is wrong in the LIM3 initialization procedure ' WRITE(numout,*) WRITE(numout,*), ' *** ztests is not equal to 4 ' WRITE(numout,*), ' *** ztest_i (i=1,4) = ', ztest_1, ztest_2, ztest_3, ztest_4 WRITE(numout,*), ' zat_i_ini : ', zat_i_ini(i_hemis) WRITE(numout,*), ' zht_i_ini : ', zht_i_ini(i_hemis) ENDIF ! ztests .NE. 4 ENDIF
After fixing this error I've come across the following error:
ORCA2LIM3_LONG/BLD/ppsrc/nemo/limdiahsb.f90", line 89.40: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "sign".
I'm investigating this now.
Commit History (3)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
4911 | timgraham | 2014-11-28T10:23:19+01:00 | Bug fix so the ORCA2_LIM3 will compile with IBM xlf compiler (see ticket #1416) |
4909 | timgraham | 2014-11-28T10:20:18+01:00 | Bug fix so that ORCA2_LIM3 will compile qith IBM XLF compiler (see ticket #1416) |
4908 | timgraham | 2014-11-28T09:53:28+01:00 | Bug fixes in LIM3 (ticket #1416) |
Change History (4)
comment:1 Changed 9 years ago by timgraham
comment:2 Changed 9 years ago by clem
It seems that SIGN is not treated the same way depending on the machine (ok on IBM ifort compiler). Your fix seems ok to me, but Gurvan will confirm (?).
comment:3 Changed 9 years ago by timgraham
- Resolution set to fixed
- Status changed from new to closed
I've made a slight improvement to the fix above by changing the line to
zinda = MAX( 0._wp , SIGN( 1._wp , glob_sum( area(:,:) * tms(:,:) ) - epsi06 ) )
in r4908.
We will need to pick up these changes in our branches next week if we want to test ORCA2_LIM3 on the Met Office IBM.
comment:4 Changed 6 years ago by nemo
- Keywords LIM* added
The problem arises because the arguments to SIGN have different types. At line 79,
the first argument is double precision but the second is not. The same is true for the MAX function which also fails.
I can get this to compile by changing 1.d0 and 0.d0 to 1.0 and 0.0 but is this an acceptable fix? Any suggestions welcome.