Ask Your Question

Abnormal job end: Blow Up

asked 2019-02-14 14:28:52 +0100

updated 2019-02-15 16:19:58 +0100


We're trying to run a model in CROCO that was set up in an old version of Roms-Agrif. I have set all parameters in cppdefs.h to "defined" that were "defined" in the old cppdefs.h I have set all parameters in cppdefs.h to "undef" that were "undef" in the old cppdefs.h Parameters that were new in CROCO, as compared to Roms-Agrif, I have set to "undef". Some parameters that were defined in the old cppdefs.h, such as SPLIT_EOS and OBC_M2FLATHER I added (and "defined"). I didn't want to go into the cppdefs_dev.h, since it is discouraged to do that for normal users.

The files were prepared with CROCO-tools and settings were the same as for the old files. Somehow we keep getting a Blow Up within the first 3 time-steps of running the model, at the eastern border I believe (IMAX = 330 and JMAX = 2; LLm = 332 and MMm = 370).

It was supposed to be a nested run, but because the parent grid keeps crashing we are running it with just the parent grid. Since it worked before we don't understand why it is blowing up now.

Anyone any ideas why this happens? Anyone experiencing the same and found a fix?

These are the old files we used (to use): C:\fakepath\cppdefs.h C:\fakepath\param.h

These are the new files we use: C:\fakepath\cppdefs.h C:\fakepath\param.h

This is the .in file: C:\fakepath\

This is the croco.out file, after changing Swen's suggestions from below. C:\fakepath\croco_out.txt

edit retag flag offensive close merge delete

6 answers

Sort by ยป oldest newest most voted

answered 2019-02-19 10:49:38 +0100

swen gravatar image

Can you try running your simulation again but with NDTFAST=60 in your .in file?

edit flag offensive delete link more

answered 2019-02-19 10:51:55 +0100

Hi Swen,

This solved it! It ran over 400 timesteps without crashing. Why did it ran with an NDTFAST of 40 in Roms, but needs and NDTFAST of 60 in CROCO? We would like to run a nested model eventually. Probably we need to change NDTFAST for the child grid then as well, don't we?

edit flag offensive delete link more


if you were using an old version of Roms, the predictor-corrector scheme of the time stepping was slightly different and allowed a lower ndtfast than in the present version used in Croco

swen gravatar imageswen ( 2019-02-19 10:53:46 +0100 )edit

Yes you should change ndtfast for the child grid too

swen gravatar imageswen ( 2019-02-19 10:57:44 +0100 )edit

answered 2019-02-19 10:55:48 +0100

swen gravatar image

updated 2019-02-19 10:57:17 +0100


Something that is undef in your cppdefs and that you should define is:

define SPONGE

It is clearly better to improve the stability at the boundaries, and prevents instabilities to develop at the boundaries.

edit flag offensive delete link more


Another cppkey that you used to use and should change is: OBC_M2FLATHER. It has a smaller range of stability than OBC_M2CHARACT. I suggest you to use OBC_M2CHARACT, which is the more recent version, and will be kept in the future in Croco, while M2FLATHER will be removed in future versions

swen gravatar imageswen ( 2019-02-19 10:59:42 +0100 )edit

answered 2019-02-15 10:47:31 +0100

swen gravatar image

updated 2019-02-19 10:46:11 +0100

Hi Anna,

In your new cppdefs.h, multiple things need to be corrected:

The bigger issues are :

You have undef all the advection terms, which makes no sense... You should put them back :

define UV_HADV_UP3
define TS_HADV_RSUP3

You have also undef the requested bulk fluxes for momentum, you should put them back:

define BULK_LW

Other minor things that should be removed :

define SPLIT_EOS

It is useless in your new cppdefs.h because it is defined in cppdefs_dev.h when NONLIN_EOS is defined (as it is your case)

Now some things I have noted in your new param.h:

Your grid parameters are:

parameter (LLm0=332,   MMm0=370,   N=32)

While, in your old param.h the grid parameters were:

parameter (LLm0=248, MMm0=248,  N=32)

Also the number of tasks for openmp are not the same in the old and new versions of param.h (8 vs 80).

One last thing is that in your new cppdefs.h, you have defined NEW_S_COORD. It is ok, but have you take care when preparing your files during pre-processing to use this in crocotools_param.m?

vtransform =  2.
edit flag offensive delete link more


Hi Swen, Thanks for your answer! This clarifies things a lot. I will try switching on the advection and bulk flux parameters. And will let you know the result. W tried with a bigger grid, on a computer with more threads, hence the changes in param.h The new_s_coord was still on by accident. Tnx!Anna

Anna3216 gravatar imageAnna3216 ( 2019-02-15 11:20:11 +0100 )edit

Hi Swen, I've changed all your suggestion, but I got the same issue: blow up after 1 or 2 time steps at the border. I've attached the croco.out file in my initial question. Hope you can read it. Thanks so much for looking into this! Anna

Anna3216 gravatar imageAnna3216 ( 2019-02-15 16:20:17 +0100 )edit

answered 2019-02-14 18:11:00 +0100

swen gravatar image

Both files you attached are param.h, so I could not check on cppdefs.h But already looking at param.h, I can see that your param.h is quite different that the new param.h of CROCO. Maybe you should first try using new param.h from CROCO sources modified for your configuration...

edit flag offensive delete link more


Hi Swen, Thank you so much for helping. I am, apparently, really bad at posting things on a forum, sorry for this. So to be clear I have added to my question the old param.h and cppdefs.h files and the new ones. I hope the links are correct now. Thanks a lot again. Cheers, Anna

Anna3216 gravatar imageAnna3216 ( 2019-02-14 23:01:41 +0100 )edit

answered 2019-02-14 14:54:27 +0100

Also, why don't you try to run with the new cppdefs.h. If it is a regular regional configuration, it should work as is. could you also try with a lower time step for a test?

edit flag offensive delete link more


Hi pmarches. Sorry, I think I wasn't clear. We do try to run it with the new cppdefs.h. But this doesn't work. When I use the default cppdefs.h, i.e. the way you download it from CROCO-ocean, it blows up all over the grid. With the time-step lowered it takes about 19 time-steps to blow up. Thanks!

Anna3216 gravatar imageAnna3216 ( 2019-02-14 14:58:21 +0100 )edit
Login/Signup to Answer

Question Tools

1 follower


Asked: 2019-02-14 14:28:52 +0100

Seen: 3,805 times

Last updated: Feb 19 '19