Opened 8 years ago
Closed 6 years ago
#236 closed enhancement (fixed)
force to print text when there is an ipslerr_p error
Reported by: | ajornet | Owned by: | jgipsl |
---|---|---|---|
Priority: | trivial | Milestone: | ORCHIDEE 2.0 |
Component: | Driver files | Version: | trunc |
Keywords: | Cc: |
Description
Sometimes the message is not printed when ipslerr_p (3, ...) is called. It is possible to force to print it using the subroutine FLUSH(unit).
Even though, this is not standard Fortran 90 (only since Fortran 2003). It might cause an error in other compilers. For this reason it is introduced when intel or gnu compilers are used.
Code to add:
#if defined (__INTEL_COMPILER) || defined(__GFORTRAN__) CALL FLUSH(orch_ipslout) #endif
In the file src_parallel/ioipsl_para.f90, inside the subroutine ipslerr_p:
... ... ... IF (plev == 3) THEN WRITE(orch_ipslout,'("Fatal error from ORCHIDEE. STOP in ipslerr_p with code")') #if defined (__INTEL_COMPILER) || defined(__GFORTRAN__) CALL FLUSH(orch_ipslout) #endif #ifdef CPP_PARA CALL MPI_ABORT(plev) #endif STOP 'Fatal error from ORCHIDEE' ENDIF !--------------------- END SUBROUTINE ipslerr_p
Change History (5)
comment:1 Changed 8 years ago by ajornet
comment:2 Changed 6 years ago by jgipsl
This seems good but these cpp flags do not seem to be defined any more by the compilers (INTEL_COMPILER, GFORTRAN). I propose to add a key cpp CPP_FLUSH, to be added in the arch-XXXX.fcm in FPP_FLAGS where it is possible.
For example in arch-X64_CURIE.fcm:
%FPP_FLAGS -P -traditional CPP_FLUSH
And in src_parallel/ioipsl_para.f90:
#ifdef CPP_FLUSH CALL FLUSH(orch_ipslout) #endif
comment:3 Changed 6 years ago by jgipsl
- Milestone changed from orchidee_1_9_6 to ORCHIDEE 2.0
- Owner changed from somebody to jgipsl
- Status changed from new to assigned
comment:4 Changed 6 years ago by jgipsl
The initial problem: the text output is not written when model is aborting seems to be related to the call of MPI_ABORT in relation to XIOS.
Note that
- using IOIPSL instead of XIOS, the print is always done.
- when an input file is missing, IOIPSL makes an abort and the error message is successfully printed.
The problem seems to be the same as ticket #391 : the model stays hanging at obelix after MPI_ABORT. Committing a call FLUSH, can be a work-around at curie for this problem but when a solution for ticket 391 is found, it should be tested at curie as well.
comment:5 Changed 6 years ago by jgipsl
- Resolution set to fixed
- Status changed from assigned to closed
CALL FLUSH has been commited as work-around to force print of text output. This is only done at curie. It is not needed at ada or obelix. Done in the trunk rev [4627].
Done in revision [3287/branches/ORCHIDEE-MICT/]