Open PeterHjortLauritzen opened 1 year ago
Can you remind me what is "nrank" in invoking the dynamic option? Does nrank==1 refer to unstructured grids? Your case above does not invoke dynamic but rather the fall back value of 10000, right?
if (nrank == 1) then
da_min_ncube = 4.0*pi/(6.0*DBLE(ncube*ncube))
da_min_target = MAXVAL(target_area)
if (da_min_target==0) then !bug with MPAS files
write(*,*) "ERROR: da_min_target =",da_min_target
stop
else
write(*,*) "using dynamic estimate for jmax_segments "
!++ jtb : Increased by 4x. Needed for c1440 FV3
!jmax_segments = 10 * ncorner*NINT(da_min_target/da_min_ncube)!phl - FAILS for MPAS ~3km
jmax_segments = 4 * ncorner*NINT(da_min_target/da_min_ncube)
end if
write(*,*) "ncorner, da_min_target, da_min_ncube =", ncorner, da_min_target, da_min_ncube
write(*,*) "jmax_segments",jmax_segments,da_min_target,da_min_ncube
else
jmax_segments = 100000 !can be tweaked
end if
For low resolution grids (e.g. ne16, mpas480) source code change is needed:
replace
jmax_segments = MIN( jmax_segments, 10000 )!for low resolution grids this line needs to be uncommented (makes code slow!)
with
jmax_segments = MIN( jmax_segments,100000 )!for low resolution grids, e.g., mpasa480
in cube_to_target.F90.
Note: if jmax_segments is large then high resolution grids make the model run very slow ...!
Maybe jmax_segments could be optional argument?