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 emillour

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:

URL : http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/tags/v2_2_3
Racine du dépôt : http://forge.ipsl.jussieu.fr/igcmg/svn
UUID du dépôt : 3dac97d5-0b0e-0410-82cc-f670d0d48e1c
Révision : 3207
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : mafoipsl
Révision de la dernière modification : 2313
Date de la dernière modification: 2014-08-04 16:13:59 +0200 (lun. 04 août 2014)

With more recent versions of modipsl (5153), it becomes:

URL : http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/tags/v2_2_5
Racine du dépôt : http://forge.ipsl.jussieu.fr/igcmg/svn
UUID du dépôt : 3dac97d5-0b0e-0410-82cc-f670d0d48e1c
Révision : 5153
Type de nœud : répertoire
Tâche programmée : normale
Auteur de la dernière modification : jgipsl
Révision de la dernière modification : 5058
Date de la dernière modification: 2020-04-09 16:06:47 +0200 (jeu. 09 avril 2020)

comment:2 Changed 4 years ago by emillour

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 emillour

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 emillour

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 emillour

Resolution: worksforme
Status: assignedclosed

Closing ticket as it is related to a compiler bug, not to problems in the code.

Note: See TracTickets for help on using tickets.