scenario_obj.c
来自「CA仿真模型中SLEUTH模型」· C语言 代码 · 共 2,197 行 · 第 1/5 页
C
2,197 行
/*************************************************************************************************************************************************************** MODULE PROLOG *********************************************************************************The scenario_obj.c module or object encapsulates the UGM's interface to theuser generated scenario file. This object maintains the scenario_info scenariostructure which mirrors the input options present in the scenario file.It reads the scenario file and then provides the rest of the UGMcode access to its data values through its member functions.*************************************************************************************************************************************************************/#define SCENARIO_OBJ_MODULE#include <string.h>#include <assert.h>#include <stdlib.h>#include <errno.h>#ifdef MPI#include "mpi.h"#endif#include "scenario_obj.h"#include "utilities.h"#include "globals.h"#include "proc_obj.h"#include "ugm_macros.h"#include "wgrid_obj.h"/*****************************************************************************\********************************************************************************* **** MACROS **** *********************************************************************************\*****************************************************************************/#define SCEN_LINE_BUF_LEN 256/*****************************************************************************\********************************************************************************* **** SCCS ID **** *********************************************************************************\*****************************************************************************/char scenario_obj_c_sccs_id[] = "@(#)scenario_obj.c 1.84 12/4/00";/*****************************************************************************\********************************************************************************* **** STATIC MEMORY FOR THIS OBJECT **** *********************************************************************************\*****************************************************************************/static scenario_info scenario;static char log_filename[SCEN_MAX_FILENAME_LEN];/*****************************************************************************\********************************************************************************* **** STATIC FUNCTION PROTOTYPES **** *********************************************************************************\*****************************************************************************/static void scen_open_log ();static void scen_read_file (char *filename);static int scen_process_user_color (char *string2process);/*************************************************************************************************************************************************************** FUNCTION NAME: scen_MemoryLog** PURPOSE: log memory map to FILE* fp** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/void scen_MemoryLog (FILE * fp){ LOG_MEM (fp, &scenario, sizeof (scenario_info), 1);}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetScenarioFilename** PURPOSE: return scenario filename** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetScenarioFilename (){ return scenario.filename;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetLogFP** PURPOSE: return log file pointer** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/FILE * scen_GetLogFP (){ return scenario.log_fp;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_Append2Log** PURPOSE: open log for appending** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/void scen_Append2Log (){ char func[] = "scen_Append2Log"; FUNC_INIT; if (scenario.log_fp == NULL) { FILE_OPEN (scenario.log_fp, log_filename, "a"); } else { sprintf (msg_buf, "%s is already open", log_filename); LOG_ERROR (msg_buf); EXIT (1); } FUNC_END;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetOutputDir** PURPOSE: return output directory** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetOutputDir (){ return scenario.output_dir;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetWhirlgifBinary** PURPOSE: return whirlgif_binary** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetWhirlgifBinary (){ return scenario.whirlgif_binary;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetInputDir** PURPOSE: return input directory** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetInputDir (){ return scenario.input_dir;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetUrbanDataFileCount** PURPOSE: return # of urban input files** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/int scen_GetUrbanDataFileCount (){ return scenario.urban_data_file_count;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetRoadDataFileCount** PURPOSE: return # road data files** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/int scen_GetRoadDataFileCount (){ return scenario.road_data_file_count;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetLanduseDataFileCount** PURPOSE: return # landuse data files** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/int scen_GetLanduseDataFileCount (){ return scenario.landuse_data_file_count;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetDoingLanduseFlag** PURPOSE: return doing landuse flag** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION: if doing landuse, then landuse_data_file_count is = 2*****/int scen_GetDoingLanduseFlag (){ return scenario.landuse_data_file_count;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetUrbanDataFilename** PURPOSE: return urban data filename by index, i** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetUrbanDataFilename (int i){ return scenario.urban_data_file[i];}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetRoadDataFilename** PURPOSE: return road data filename by index, i** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetRoadDataFilename (int i){ return scenario.road_data_file[i];}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetLanduseDataFilename** PURPOSE: return landuse data filename by index** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetLanduseDataFilename (int i){ return scenario.landuse_data_file[i];}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetExcludedDataFilename** PURPOSE: return excluded data filename by index** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetExcludedDataFilename (){ return scenario.excluded_data_file;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetSlopeDataFilename** PURPOSE: return slope data filename** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetSlopeDataFilename (){ return scenario.slope_data_file;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetBackgroundDataFilename** PURPOSE: return background data filename** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/char * scen_GetBackgroundDataFilename (){ return scenario.background_data_file;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetEchoImageFlag** PURPOSE: return echo_image_files flag** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/BOOLEAN scen_GetEchoImageFlag (){ return scenario.echo_image_files;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetWriteColorKeyFlag** PURPOSE: return write_color_keys flag** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/BOOLEAN scen_GetWriteColorKeyFlag (){ return scenario.write_color_keys;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetPostprocessingFlag** PURPOSE: return Postprocessing flag** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/BOOLEAN scen_GetPostprocessingFlag (){ return scenario.postprocessing;}/*************************************************************************************************************************************************************** FUNCTION NAME: scen_GetLogFlag** PURPOSE: return Log flag** AUTHOR: Keith Clarke** PROGRAMMER: Tommy E. Cathey of NESC (919)541-1500** CREATION DATE: 11/11/1999** DESCRIPTION:*****/BOOLEAN scen_GetLogFlag (){ return scenario.logging;}/******************************************************************************
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?