NCAR / Topo

NCAR Global Model Topography Generation Software for Unstructured Grids
26 stars 15 forks source link

jmax_segments #54

Open PeterHjortLauritzen opened 1 year ago

PeterHjortLauritzen commented 1 year ago

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?

adamrher commented 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