Package - gylien/scale-letkf

404: Not Found

Github

link
Stars: 3

Advertisement

Releases

v0.8.1 - Aug 15, 2016

_Tested with SCALE version 5.0.0 (develop)_

New modifications:

  1. Fix a bug in obsope_cal subroutine:
    • In v0.8.0, obsope/letkf program would suspend when no observations are found in some subdomains.

v0.8 - Aug 1, 2016

_Tested with SCALE version 5.0.0 (develop)_

New modifications:

  1. Major modifications to adapt to SCALE v5.0.0 (scale-les renamed to scale-rm).
  2. Use $PRESET option to simplify config.main configuration files:
    • Add new variables associated with the $PRESET setting and remove some other variables:
      • $PRESET: K, K_rankdir, K_micro, Linux, Linux_torque
      • $STG_TYPE: K, K_rankdir, builtin, other: no staging
      • $NODELIST_TYPE: nodefile, K
      • $MPI_TYPE: K, sgimpt, openmpi
      • $MACHINE_TYPE deprecated
      • $USE_RANKDIR deprecated
      • $BUILTIN_STAGING deprecated
    • Remove all config.main.K_micro configuration files and use config.main.K for all types of K computer jobs, using $PRESET.
    • Temporally remove the support for K interactive jobs (K_interact).
    • Online stage-out disabled.
  3. Tested in various platforms:
    • Make the code compatible to the GNU compiler.
    • Tested in a single-machine Linux computer (Ubuntu) and a Linux cluster (SUSE Enterprise) with Torque scheduler.
    • Fully support OpenMPI in run/src/func_util.sh.
    • Recognize ftype (l/s) in run/src/stage_in.sh, same as in run/src/stage_K.sh.
  4. Merge obsope and letkf; observation operators can be run either externally or internally in letkf.
    • Add an option $OBSOPE_SEPARATE to indicate which observation set use internal or external observation operator programs (default: run observation operator internally in letkf).
    • Update namelist settings for merging obsope and letkf:
      • All variables need to be moved to config.nml.letkf if using merged (internal) observational operator in letkf. See below for detailed changes.
      • Move some namelist variables to &PARAM_OBSOPE group.
    • Fix a bug in many of the configuration files: some namelist variables in &PARAM_LETKF_RADAR group need to be specified in config.nml.obsope, not in config.nml.letkf.
  5. Support single-precision version of SCALE (-DSINGLE flag when compiling SCALE):
    • scale-rm_pp_ens, scale-rm_init_ens, and scale-rm_ens can run with single precision; obsope and letkf cannot.
  6. Add $BDY_SCALE_DIR option: directory name of the SCALE history files when $BDY_FORMAT = 1.
  7. Add $BDY_ROTATING option to use different series of boundary files for different initial time, useful for running near-real-time analysis and forecast in an operational mode.
  8. Make $CYCLE parameter in config.cycle optional (default: $parallel_mems / $fmember).
  9. Change all K language environment to Env_base_1.2.0-20-1.
  10. Remove old and unused configuration files in scale/run/config/.
  11. Add tar_stgin.py and tar.sh tools in scale/run/misc/ for doing tarball stage-in.
  12. Improve code structure:
    • Clean up the code: change both $bdyscale and $bdywrf to $bdyorg_path in the scripts.
    • In obsope_tools.f90, change nproc, nproc_0, nprocslot to nobs, nobs_0, nobs_slot, respectively, to prevent confusion with nprocs (number of processes).
    • Remove the maximum and summation operations in read_obs_da subroutine in common_obs_scale.f90 and do such operations directly in obsope_tools.f90 and letkf_obs.f90, for preventing confusion.
  13. Changes in the Himawari-8 assimilation.
  14. Summary of the changes of configuration options:
    • In config.nml.obsope and config.nml.letkf:
      • New:
        • OBSDA_RUN
        • OBSDA_OUT
        • OBSDA_IN
      • Moved from &PARAM_LETKF group to &PARAM_OBSOPE group:
        • OBS_IN_NUM
        • OBS_IN_NAME
        • OBS_IN_FORMAT:
        • SLOT_START
        • SLOT_END
        • SLOT_BASE
        • SLOT_TINTERVAL
    • In config.main:
      • New:
        • $PRESET
        • $MPI_TYPE
        • $BDY_SCALE_DIR
        • $BDY_ROTATING
        • $OBSOPE_SEPARATE[1...$OBSNUM]
      • Removed:
        • $MACHINE_TYPE
    • In config.fcst:
      • Modified:
        • $CYCLE (become optional; default: $parallel_mems / $fmember)

v0.7 - Jun 3, 2016

_Tested with SCALE version 4.3.1 (develop)_

New modifications:

  1. Add the "observation number limit" (Hamrud et al. 2015) option:
    • MAX_NOBS_PER_GRID namelist option for letkf
    • When obs number limit is enabled, select observations in terms of the 'effective obs error' (rdiag) considering also the different obs errors and variable localization, instead of simple considering localization weighting:
      • obs_local subroutine returns (rdiag / rloc) in rdiag.
      • Add rdiag_wloc optional flag in letkf_core subroutine to accept rdiag = rdiag / rloc.
    • Set the observation type read by read_obs_radar subroutine to be always 22.
    • Change dist_zero_fac from a variable to a parameter and add dist_zero_fac_square parameter.
  2. Add diagnostic outputs:
    • Add netCDF output of observation numbers used per grid:
      • NOBS_OUT and NOBS_OUT_BASENAME namelist option for letkf
    • Add netCDF output of the equivalent inflation field of RTPS:
      • RTPS_INFL_OUT and INFL_OUT_BASENAME namelist option for letkf
  3. Add a new level of $OUT_OPT in config.cycle to stage out analysis members only every certain cycles.
    • Delete unnecessary 'anal' and 'gues' files of ensemble members online.
  4. Improve code structure:
    • In common_obs_letkf.f90, add nid_obs_varlocal and obelmlist_varlocal variables and uid_obs_varlocal function for a general definition of variable localization.
    • In letkf_tools.f90, create index variables iof, iidx, ielm to replace multiple references of index arrays.
    • Add relax_beta subroutine to calculate the grid-location-based relaxation, used for the Q update level upper limit and the boundary buffer.
    • Improve the readability of das_letkf subroutine.
    • Clear unnecessary code.
  5. Enable the adaptive inflation (not tested yet).
  6. Summary of the changes of configuration options:
    • In config.nml.letkf:
      • New:
        • INFL_ADD_IN_BASENAME
        • RELAX_SPREAD_OUT
        • RELAX_SPREAD_OUT_BASENAME
        • PS_ADJUST_THRES
        • MAX_NOBS_PER_GRID
        • NOBS_OUT
        • NOBS_OUT_BASENAME
        • USE_RADAR_REF
        • USE_RADAR_VR
        • PS_ADJUST_THRES
      • Renamed:
        • SP_INFL_ADD -> INFL_ADD
        • COV_INFL_MUL -> INFL_MUL (backward compatibility maintained)
        • MIN_INFL_MUL -> MIN_INFL_MUL (backward compatibility maintained)
        • ADAPTIVE_INFL_INIT -> INFL_MUL_ADAPTIVE (backward compatibility maintained)
        • LEV_UPDATE_Q -> Q_UPDATE_TOP (unit: model level -> pressure)
        • BOUNDARY_TAPER_WIDTH -> BOUNDARY_BUFFER_WIDTH (backward compatibility maintained)
      • Removed:
        • RADAR_EDGE_TAPER_WIDTH (function dropped)
        • RADAR_RANGE (function dropped)
    • In config.cycle:
      • New:
        • $OUT_CYCLE_SKIP
        • $RTPS_INFL_OUT
        • $NOBS_OUT
      • Modified:
        • $OUT_OPT (add a new output level)

v0.6 - Apr 13, 2016

_Tested with SCALE version 4.3.1 (develop)_

New modifications:

  1. Optimized IO (for both cycle and fcst jobs):
    • Avoid to use symbolic links for the input/output files in scale_pp, scale_init, scale, obsope, and letkf programs.
    • Stage in topo/landuse/boundary(mean) files only to the nodes that require them.
    • Remove the vcoordfile option for the pdbash program.
  2. Improve the staging process (for both cycle and fcst jobs):
    • Change the directory structure of topo and landuse files (add const directory).
    • Change the location of history files from <analysis time>/gues/history* to <initial time>/hist/history*.
    • Stage-in SCALE boundary files (offline nesting) by giving the entire directory.
    • Improve the stage-out list and add an option to stageout log files only at the head node.
    • Copy configuration files and scheduler log files into $OUTDIR/exp after the job completes, also save the SCALE-LETKF and SCALE versions in the same place.
    • Add an option to archive log files after staged out in the finalization step, with a $TAR_THREAD option for parallelly archiving.
    • Add parallel copy for built-in stage-in/out, useful for the K micro job.
    • Completely remove the log output in $LOGDIR.
  3. Change the way to link the boundary data files in the scale_init step.
    • Use bdy_setting function in func_util.sh.
    • Effectively use the ATMOS_BOUNDARY_START_DATE setting in scale and add a $PARENT_REF_TIME option to allow arbitrary parent history time.
    • In the offline nesting run, use continuous boundary data from gues files in multiple cycles.
    • In the offline nesting run, merge the code for WRF boundaries and SCALE boundaries.
  4. TC vital assimilation:
    • Assimilate TC center location (longitude/latitude) and minimum pressure.
  5. New namelist options for letkf:
    • MIN_RADAR_REF_MEMBER_OBSREF
    • LOW_REF_SHIFT
    • SIGMA_OBS_RADAR_OBSNOREF
    • POSITIVE_DEFINITE_Q
    • POSITIVE_DEFINITE_QHYD
  6. Enable the CNVTOPO_copy_parent option in scale_pp for merging parent topography in a offline nesting run.
  7. Remove unused old source code and scripts left from GFS-LETKF.
  8. Add || exit $? to most of function calls in scripts to abort a job whenever an error occurs.
  9. Change the admin script for the updated near-real-time system.