Ask Your Question

# Abnormal job end: Blow Up

Hi,

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\roms.in

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

edit retag close merge delete

## 6 answers

Sort by » oldest newest most voted

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

more

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?

more

## Comments

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

( 2019-02-19 10:53:46 +0200 )edit

Yes you should change ndtfast for the child grid too

( 2019-02-19 10:57:44 +0200 )edit

Anna,

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.

more

## Comments

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

( 2019-02-19 10:59:42 +0200 )edit

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 UV_VADV_SPLINES
define TS_HADV_RSUP3
define TS_VADV_AKIMA


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

define BULK_FAIRALL
define BULK_LW
define BULK_SMFLUX


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.

more

## Comments

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

( 2019-02-15 11:20:11 +0200 )edit
1

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

( 2019-02-15 16:20:17 +0200 )edit

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...

more

## Comments

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

( 2019-02-14 23:01:41 +0200 )edit

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?

more

## Comments

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!

( 2019-02-14 14:58:21 +0200 )edit

## Stats

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

Seen: 1,766 times

Last updated: Feb 19 '19