Moist idealized baroclinic wave test case produces NaNs

jagu0521

New member
Hi everyone!

I am using the JW idealized baroclinic wave test case and I am having trouble getting the moist case to run. I have edited the subroutine in mpas_init_atm_cases.F by uncommenting logical, parameter :: moisture = .true. and commenting out logical, parameter :: moisture = .false. without changing anything else in the subroutine. init_atmosphere runs with no errors and x1.40962.init.nc shows that moisture has been initialized properly. In namelist.atmosphere, I have decreased the config_dt to 120.0, and set config_scalar_advection, config_positive_definite, and config_monotonic all to true. When I run atmosphere.model, I get NaNs for u and w almost immediately:
(excerpt from log.atmosphere.0000.out)

min/max of meshScalingDel2 = 1.00000 1.00000
min/max of meshScalingDel4 = 1.00000 1.00000
Timing for diagnostic computation: 0.211806 s
Timing for stream output: 0.596264 s

Begin timestep 0000-01-01_00:00:00
coupled RK3 dynamics-transport integration

global min, max w -0.735288E-02 0.451069E-04
global min, max u -5.45494 5.45494
Timing for integration step: 0.439597 s

Begin timestep 0000-01-01_00:00:05
coupled RK3 dynamics-transport integration

global min, max w -0.951185E-02 0.681508E-04
global min, max u -5.45492 5.45492
Timing for integration step: 0.438246 s

Begin timestep 0000-01-01_00:00:10
coupled RK3 dynamics-transport integration

global min, max w NaN NaN
global min, max u NaN NaN
Timing for integration step: 0.438428 s

Why is this happening? Should I be changing or adding other flags in namelist.atmosphere?

Any advice would be appreciated, thank you!
 
Could you attach your full namelist.init_atmosphere and namelist.atmosphere files? Which version of MPAS-A are you running?
 
Thanks very much for attaching your namelists. It may be that the values for config_v_theta_eddy_visc2 and config_v_mom_eddy_visc2 that you've specified are too large. Could you try running with the attached namelist? Also, if you do plan to eventually use the Kessler microphysics, you will likely need to patch in the fix from MPAS-Dev/MPAS-Model PR #1452, though other microphysics schemes should work without any issue.
 

Attachments

Thanks for looking over the namelists! Unfortunately, I am still getting the same issue with the above namelist.atmosphere. The following is an excerpt of the log.atmosphere.0000.out that was produced:

Begin timestep 0000-01-01_00:00:00
--- time to update background surface albedo, greeness fraction.
--- time to calculate additional physics_diagnostics = F
coupled RK3 dynamics-transport integration

global min, max w -0.161751E-02 0.377960E-02
global min, max u -5.45398 5.45399
global min, max scalar 1 0.00000 0.278022E-01
global min, max scalar 2 0.00000 0.00000
global min, max scalar 3 0.00000 0.00000
Timing for integration step: 0.558665 s

Begin timestep 0000-01-01_00:07:30
--- time to calculate additional physics_diagnostics = F
coupled RK3 dynamics-transport integration

global min, max w -0.174202E-02 0.183917E-03
global min, max u -5.45385 5.45386
global min, max scalar 1 0.00000 0.278022E-01
global min, max scalar 2 0.00000 0.00000
global min, max scalar 3 0.00000 0.00000
Timing for integration step: 0.556557 s

Begin timestep 0000-01-01_00:15:00
--- time to calculate additional physics_diagnostics = F
coupled RK3 dynamics-transport integration

global min, max w NaN NaN
global min, max u NaN NaN
global min, max scalar 1 0.00000 0.278022E-01
global min, max scalar 2 0.00000 0.00000
global min, max scalar 3 0.00000 0.00000
Timing for integration step: 0.556421 s

Begin timestep 0000-01-01_00:22:30
--- time to calculate additional physics_diagnostics = F
coupled RK3 dynamics-transport integration

global min, max w NaN NaN
global min, max u NaN NaN
global min, max scalar 1 0.00000 0.00000
global min, max scalar 2 0.00000 0.00000
global min, max scalar 3 0.00000 0.00000
Timing for integration step: 0.558373 s

I have run the dry baroclinic wave test case with no issue before and it is only when changing moisture to true in the subroutine, that I am getting NaNs for both u and w. Is there something else in the subroutine or namelists that I should be modifying?
 
In addition to the changes Michael suggested, please also modify your options as listed below, then try again.

Code:
config_dt = 450.0
config_scalar_advection  = false
config_positive_definite = false
config_coef_3rd_order = 1.0
config_monotonic = false

Let us know whether your case works or not. Thanks.
 
Thank you for the update. I am sorry to know that this case still doesn't work for you. I will repeat this case and get back to you once it is done.
 
@ jagu0521

I did a quick run of JW case and my case ran to the end successfully. I also use MPAS-v8.3.1, the same version as yours. Attached are namelist and streams files I used for this case. Would you please try again using my files? Let us know whether it works for you. Thanks.
 

Attachments

Hi Ming Chen,

I am helping @jagu0521 , so I tested the info you sent in the last message. To establish a baseline, I ran the dry baroclinic wave test case with all the standard files you sent and that works great with initial max/min u values of ~ 35 m/s and no problems running to long times. To try the moist baroclinic wave case I did the following:
(1)set the moisture keyword to .true. in mpas_init_atm_cases.F
(2)recompiled core_init_atmosphere: make ifort CORE=init_atmosphere AUTOCLEAN=true
(3)ran the executable the same way and I get max/min u values of ~ 5 m/s instead of the expected values of ~ 35 m/s. The model breaks with NaN after the second or third time step.

Please test the moist setup as I described above and you should see the NaNs the same way as I describe.

Note that I also included code to initialize "T_INIT" and "QV_INIT" because for moisture and microphysics, those need to have non-zero values. After including these, and adding in Kessler microphysics to the namelist, the code still breaks the same way as before with unrealistic u values near start up.
The initial condition files show correct max/min u values and other variables, so something is not recognizing these variables correctly during the initial startup of the model.

Steve
 
Steve,

Thanks for your post. Can you upload your namelist.init_atmosphere and namelist.atmosphere for me to take a look?
 
Hi Steve,

Thank you for posting your namelist files.

I have tried to repeat your case with moisture = true, and my run failed in the initialization with the error message:

Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.

Note that I am running MPAS-v8.4.0, the newest version of MPAS.

Sorry that I don't have an immediate answer why the model failed. I will continue to investigate the problem after June 17 (if the issue cannot be solved by then. I will be out of office for a while since tomorrow.)
 
Ming,
Thanks for your response. Do you mind trying this one more time with MPAS-v8.3.1? That is the one we are using.
Steve
 
Back
Top