Opened 4 years ago
Closed 4 years ago
#62 closed defect (worksforme)
Problems with the IOIPSL library
Reported by: | emillour | Owned by: | emillour |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | GENERIC GCM | Version: | |
Keywords: | Cc: |
Description
It seems with recent versions of IOIPSL downloaded via the scripts in "LMDZ.COMMON/ioipsl/*.bash", e.g. rev ~5053 the compilation fails...
And perhaps also that in some cases getin() doesn't work with strings...
Change History (5)
comment:1 Changed 4 years ago by
comment:2 Changed 4 years ago by
Could not reproduce the problem, but rewrote the install scripts to download the IOIPSL trunk and use fcm to compile IOIPSL (requires adequate arch files) with r2412
comment:3 Changed 4 years ago by
Still the problem remains: cf. slack ipsl-planeto
Alors en fait ça résout le problème de compilation mais il y a toujours cette erreur de lecture pour les chaînes de caractère. J'ai pu identifier, en comparant avec l'ancienne version qui marche, qu'en fait dans "getincom.f90", dans la fonction "getincs" ligne 431 il y a un problème dans la déclaration de "tmp_ret_val", du moins sur mascaret. En repassant par l'ancienne déclaration ça marche : CHARACTER(LEN=100),DIMENSION(1) :: tmp_ret_val
Et du coup il faut enlever les lignes d'allocation et de deallocation : ALLOCATE(CHARACTER(LEN(ret_val)) :: tmp_ret_val(1), stat=ier) IF (ier /= 0) CALL ipslerr(3, 'getincs', 'Allocation memory problem for', & 'tmp_ret_val' ,'') DEALLOCATE(tmp_ret_val)
comment:4 Changed 4 years ago by
The problem mentioned above occurs with gfortran 4.8.5 , but not with a more recent version of the compiler (gfortran 7.2) so this issue is most likely a compiler bug (bad handling of the
ALLOCATE(CHARACTER(LEN(ret_val)) :: tmp_ret_val(1), stat=ier)
construct) that has since been corrected.
comment:5 Changed 4 years ago by
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
Closing ticket as it is related to a compiler bug, not to problems in the code.
Actually one should be careful here to distinguish between revisions of "modipsl" and revisions of the IOIPSL library which it downloads...
With "older" versions of modipsl (e.g. 4080) things work fine and the IOIPSL package that is downloaded (in LMDZ.COMMON/ioipsl/modipsl/modeles/IOIPSL)is:
With more recent versions of modipsl (5153), it becomes: