Oasis3 4.0.2
|
00001 SUBROUTINE getfpe 00002 C**** 00003 C ***************************** 00004 C * OASIS ROUTINE - LEVEL C * 00005 C * ------------- ------- * 00006 C ***************************** 00007 C 00008 C**** *getfpe* - Signal handler 00009 C 00010 C Purpose: 00011 C ------- 00012 C getfpe is executed each time signal sigfpe is caught. 00013 C Then code stops due to floating point exception error. 00014 C 00015 C** Interface: 00016 C --------- 00017 C 00018 C Input: 00019 C ----- 00020 C None 00021 C 00022 C Output: 00023 C ------ 00024 C None 00025 C 00026 C Workspace: 00027 C --------- 00028 C None 00029 C 00030 C Externals: 00031 C --------- 00032 C None 00033 C 00034 C Reference: 00035 C --------- 00036 C Epicoa 920203 (1992) and OASIS manual (1995) 00037 C 00038 C History: 00039 C ------- 00040 C Version Programmer Date Description 00041 C ------- ---------- ---- ----------- 00042 C 1.0 L. Terray 94/01/01 created 00043 C 2.0 L. Terray 95/09/10 modified: new structure 00044 C 00045 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00046 C 00047 C* ---------------------------- Include files --------------------------- 00048 C 00049 USE mod_unit 00050 C 00051 C* ---------------------------- Poema verses ---------------------------- 00052 C 00053 C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00054 C 00055 C* 1. Initialization 00056 C -------------- 00057 C 00058 WRITE (UNIT = nulou,FMT = *) ' ' 00059 WRITE (UNIT = nulou,FMT = *) ' ' 00060 WRITE (UNIT = nulou,FMT = *) 00061 $ ' ROUTINE getfpe - Level C' 00062 WRITE (UNIT = nulou,FMT = *) 00063 $ ' ************** *******' 00064 WRITE (UNIT = nulou,FMT = *) ' ' 00065 WRITE (UNIT = nulou,FMT = *) ' catch fpe error ' 00066 WRITE (UNIT = nulou,FMT = *) ' ' 00067 WRITE (UNIT = nulou,FMT = *) ' ' 00068 C 00069 C 00070 C* 2. Abort simulation in case of floating point error 00071 C ------------------------------------------------ 00072 C 00073 WRITE (UNIT = nulou,FMT = *) ' ***WARNING***' 00074 WRITE (UNIT = nulou,FMT = *) 00075 $ ' ===>>> : fpe error has occurred in coupler' 00076 WRITE (UNIT = nulou,FMT = *) 00077 $ ' ====== === ===== =======' 00078 WRITE (UNIT = nulou,FMT = *) ' ' 00079 WRITE (UNIT = nulou,FMT = *) 00080 $ ' We STOP !!! Check non initialized variables' 00081 CALL FLUSH (nulou) 00082 CALL HALTE ('STOP in getfpe') 00083 C 00084 C 00085 C* 3. End of routine 00086 C -------------- 00087 C 00088 RETURN 00089 END