Commonly Used JFORCES Scripts

This is a list of the commonly used command line scripts employed by JFORCES users. Note that most of the scripts are documented in their headers. In order to avoid generating another set of documentation which is more likely to become outdated as the scripts are modified, only a brief description of the scripts and their locations will be provided here.

batch_run - This is the normal method of running a series of JFORCES runs to generate a statistical database by modifying the random number seed between runs. Command line options include the ability to specify the number of runs, dedicate a port number, specify whether standard data analysis should automatically be run on the results after completion, and specifing run level aggregation (i.e. whether individual assets should be modeled or whether they should be rolled up to higher organizational levels). See $SCRIPT_DIR/batch_run for a full list of options.

clean_up_ingres - This utility is automatically run against any code with embedded QUEL or SQL to bypass a problem in the Ingres precompiler. This script is not intended to be run from the command line

clean_up_scenario - This script removes any possible "hanging" references to assets that have been eliminated from a scenario. This often occurs when users modify the scenario directly instead of using the mission planning tools. See $SCRIPT_DIR/clean_up_scenario usage details

copy_definitional_tables - This script allows the definitional tables to be copied from a source database and/or overwrite the contents of that database with a file of the definitional tables generated on a different database. The definitional tables are those tables in the adilib database that specify:

  1. The definition of all constants shared by C, Fortran and TCL

  2. The definition of structures shared between C and Fortran

  3. The definition of all data collection messages and table structures

  4. The definition of all messages recognized by the executive

Note - DO NOT take these definitions lightly! JFORCES generates included code for each target language based on these definitional tables, so if these tables are out of date you could have a much more serious problem than just having outdated documentation. Typically a new set of definitional tables is delivered with every JFORCES update. See $SCRIPT_DIR/copy_definitional_tables for details..

cvs_mass - a simple script for maintaining all typical JFORCES modules under cvs. This only argument is the cvs operation to be employed. Thus, if you want to update all code in every JFORCES module according to the latest version in the cvs repository type "cvs_mass update". See $SCRIPT_DIR/cvs_mass for details.

db_tables_and_columns - This script dumps an organized schema of table name and column names found in a database. The typical use for this script is to compare the schemas between two scenario databases to simply updates. Typically one would run the file on the new database provided with the distribution as follows:

and on the existing database:

Then perform a difference check on them as follows:

Finally look at /tmp/schema.diffs and fix any problems as appropriate. See $SCRIPT_DIR/db_tables_and_columns for details.

define_graphics_calls - This is a simple script to replace all of the GPHIGS API calls in a set of files with more understandable names. If you wish to run this utility, make sure the header file " phigs_labels.cmn" is included in the modified files before attempting to recompile.


ipclear - This script clears all interprocess communications devices. There are no arguments. If errors occur when running this process type "ipcs -smqa" and verify that none of the ipc devices are owned by anybody other than the local user, root or Ingres. If they are owned by others, try to log in as the alternate user and run ipclear as that user - otherwise the JFORCES man-machine interface might fail because communications are blocked by a third party.

kill_all - This will stop all JFORCES man-machine interfaces and sim runs currently executing on the local machine and run by the current user.

kill_mmi - This will stop all JFORCES man-machine interfaces currently executing on the local machine and run by the current user. All sim runs will continue to execute.

load_da - batch means of loading data from a scenario file for post-processing. See $SCRIPT_DIR/load.da for details.

load_da_reports - Like load_da but also runs standard reports and stores them for evaluation after lunch.

make_archive - Simple utility to make a set of compressed files of the key elements of a JFORCES installation (code, scripts and the data directory). This is used for generic backup in environments not employing CVS.

make_deliv - An attempt to generate a fully automated installation script for JFORCES. Yes, we thought of it but, no, it wasn't useful because each site turned out to be slightly different. It has not been updated recently but should serve well as a basis for future attempts. This relies on a script name "sys.install". Both of these scripts are in the $SCRIPT_DIR directory.

make_it_all - This is the master update file - it regenerates all auto-generated components of a JFORCES installation and can recompile all source code. See $SCRIPT_DIR/make_it_all for details.

make_maps - TBD. I know this has to do with updating DTED source files for map background.

merge_replay - This script allows a user to merge the MMI replay file from various partial runs into a single file for replay. This is useful when, for example, the first part of an exercise is run and the execution is stopped either by a glitch or intentionally (e.g. end of the day) and the exercise is later restarted from a checkpoint file. This script can seamlessly integrate these partial run into a whole replay. See $SCRIPT_DIR/merge_replay for details.

pinger - A communications script to repeatedly ping another machine. Used to stop routers from falling asleep.

read_sats - A script to read satellite ephemerides into JFORCES from standard two-line element sets. This is an interactive script, so details will be skipped.

run_display - This script runs a test program that dumps RAP jss server output destined for MMI's, to the terminal.

run_jss_server - This script starts the JSS server that provides RAP data to MMI's. It's run in conjunction with run_rapRcvr.

run_parser - Script to start the interface to the CCS device for ACMI support. Not intended to be used from the command line, this is the script started by selecting "CCS Listen" on the system controls of a FORCES execution.

run_pcdsi - Script to start the interface to the PCDS debriefing device for ACMI support. Not intended to be used from the command line, this is the script started by selecting "CCS Listen" on the system controls of a JFORCES execution.

run_rapRcvr - This script starts the RAP program that interfaces the JSS feed with the RAP JSS server. It's run in conjunction with run_jss_server.

zap - Kills all processes that match a specifed regular expression. Thus, if you want to kill all processes with 3000 in the name, type "zap 3000".