⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 有限元分析源代码
💻 C
字号:
/* *  =============================================================================  *  ALADDIN Version 1.0 : *               main.c : Check the input type *                                                                      *  Copyright (C) 1995 by Mark Austin, Xiaoguang Chen, and Wane-Jang Lin *  Institute for Systems Research,                                            *  University of Maryland, College Park, MD 20742                                    *                                                                      *  This software is provided "as is" without express or implied warranty. *  Permission is granted to use this software for any on any computer system *  and to redistribute it freely, subject to the following restrictions: *  *  1. The authors are not responsible for the consequences of use of *     this software, even if they arise from defects in the software. *  2. The origin of this software must not be misrepresented, either *     by explicit claim or by omission. *  3. Altered versions must be plainly marked as such, and must not *     be misrepresented as being the original software. *  4. This notice is to remain intact. *                                                                     *  Written by: Mark Austin, Xiaoguang Chen, and Wane-Jang Lin      December 1995 *  =============================================================================  */#include <stdio.h>       #include <ctype.h>		#include <signal.h>#include <setjmp.h>	#include "defs.h"#include "units.h"#include "matrix.h"#include "fe_database.h"#include "symbol.h"#include "code.h"#include "miscellaneous.h"#include "fe_functions.h"/* Declarations global frame and working element data structures */ARRAY     *array;EFRAME    *frame;jmp_buf  begin;				/* query this line.	*/char *progname;int        lineno = 1;char   *infile = NULL;FILE      *fin, *finp;char          **gargv;int             gargc;main(argc, argv)			char *argv[];{int    c;int    a=0, b=0;void   fpecatch();char **p;   /* [a] : Read flags and options from command input */   progname = argv[0];   fin      = stdin;   finp     = stdin;   /* [b] : Provide help when command flags are missing */   if (argc == 1) {        ProgramUsage();       exit(1);   }   /* [c] : Read and process command flags */   while(--argc > 0 && ((*++argv) != NULL))       if((*argv)[0] == '-')          while((*argv != NULL) && (c = *++argv[0]) != 0)             switch(c) {	        case 'f':                     a = c;                     if(infile == NULL) {                        if((*(argv-1) != NULL && strcmp(*(argv-1), progname))                            && ((*(argv-1))[0] != '-'))                            infile = SaveString(*(argv-1));                        else {                            p = argv;                            while(*++p != NULL)                               if((*p)[0] != '-')                                  infile = SaveString(*p);                                                    if((*(argv-1) == NULL) && (*p == NULL))                               FatalError("Specify inputfile name",(char*)NULL);                        }                   		        Open_File(infile);                     }		     break;                case 'k':                     a = c;                     finp = fopen("inputfile.std", "w");                     printf("ALADDIN : ");                     fflush(stdout);                     break;                case 's':                     b = c;                     if(a == 0 && infile == NULL) {                        if((*(argv-1) != NULL && strcmp(*(argv-1), progname))                            && ((*(argv-1))[0] != '-'))                            infile = SaveString(*(argv-1));                        else {                            p = argv;                            while(*++p != NULL)                                 if((*p)[0] != '-')                                    infile = SaveString(*p);                        if((*(argv-1) == NULL) && (*p == NULL))                            FatalError("Specify inputfile name",(char*)NULL);                        }                        if(infile != NULL)		           Open_File(infile);                     }		     break;                case 'h':                     ProgramUsage();                     exit(1);		     break;	        default:                     break;	   }   /* [d] : Load grammar, materials and AISC sections into symbol table */      Init_Problem();   /* Load_AISC_Sections(); Temporarily removed */   /* Load_AISC_Material(); Temporarily removed */   /* [e] : Set Output Flags */      set_print_output();      set_default_values();   /* [f] : Run Problem */            if(b == 's') ScanInput();      Run(a, b);}/* *  ================================================ *  ProgramUsage() : Provide hints on using ALADDIN. *  ================================================ */ProgramUsage() {   printf("Usage : ALADDIN -k                 : Input from keyboard            \n");   printf("        ALADDIN -f <input-file>    : Input from file                \n");   printf("        ALADDIN -s <input-file>    : Scan input for correct grammar,\n");   printf("                                   : but do not process.            \n");}/* *  ================================================ *  Open_File() : Open Input file for reading *  ================================================ */#ifdef __STDC_Open_File( char *filename )#elseOpen_File(filename)char *filename;#endif{   fin = fopen(filename, "r");   if(fin == NULL)      FatalError("Cannot open input file",(char *)NULL);}/* *  ================================================ *  ScanInput() : Scan Input for grammatical errors. *  ================================================ */ScanInput() {   Init_Code();   while(yyparse() != 0) {         Init_Code();   }  fclose(fin);}/* *  ================================================ *  Run() : Run ALADDIN Program *  ================================================ */#ifdef __STDC_Run(int c, int b)#elseRun(c, b)int c, b;#endif{void fpecatch();   setjmp(begin);			   signal(SIGFPE, fpecatch);   if(c == 'f')      Open_File(infile);   else if (c == 'k' && b == 's')       Open_File("inputfile.std");   Init_Code();   while(yyparse() != 0) {         Execute(progbase);         Init_Code();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -