| 25 | |
| 26 | Sometimes, when you get an error that you can't track down, I've found it helps to use the following flags (on obelix). It wasn't trivial to get XIOS, IOIPSL, and ORCHIDEE to all compile with the same flags, and perhaps this is not the best way to do it, but it works. I noticed this was necessary to catch a memory error one time: the error was in ORCHIDEE, but it was showing up as a crash in XIOS, until I compiled everything with full debug flags...then it pointed straight to the line number in ORCHIDEE that was writing out of bounds. |
| 27 | |
| 28 | For XIOS, |
| 29 | |
| 30 | {{{ |
| 31 | cd ./modeles/XIOS |
| 32 | vi ./arch/arch-ifort_LSCE.fcm |
| 33 | %DEBUG_CFLAGS -DBZ_DEBUG -g -fno-inline -ggdb --debug |
| 34 | %DEBUG_FFLAGS -g -ggdb -debug all -traceback |
| 35 | ./make_xios --arch ifort_LSCE --debug |
| 36 | }}} |
| 37 | |
| 38 | For IOIPSL, the ``ins\_make -d'' command doesn't seem to have any effect. I have to comment out the debug line in util/AA\_make.gdef |
| 39 | |
| 40 | {{{ |
| 41 | #-Q- lxiv8 F_O = -DCPP_PARA --i4 -r8 -fp-model precise -fpe0 -O0 -g -traceback -fp-stack-check |
| 42 | -ftrapuv -check bounds -check all -check noarg_temp_created -I$(MODDIR) -module $(MODDIR) |
| 43 | }}} |
| 44 | |
| 45 | and then redo ins\_make. |
| 46 | |
| 47 | Can change l\_dbg = .TRUE. in errioipsl.f90 to get more information printed out about reading in .nc files. |
| 48 | |
| 49 | Can also make the following changes to iodef.xml to get more information printed out from XIOS. |
| 50 | |
| 51 | {{{ |
| 52 | <variable id="info_level" type="int">100</variable> |
| 53 | <variable id="print_file" type="bool">true</variable> |
| 54 | }}} |
| 55 | |
| 56 | Make sure to do a full gmake clean, and recompile, checking to see that the flags flashing by on the screen are the same as the ones above. |