source: CPL/oasis3/trunk/src/mod/oasis3/src/chksgc.F @ 1677

Last change on this file since 1677 was 1677, checked in by aclsce, 12 years ago

Imported oasis3 (tag ipslcm5a) from cvs server to svn server (igcmg project).

File size: 3.1 KB
Line 
1      SUBROUTINE chksgc
2C****
3C               *****************************
4C               * OASIS ROUTINE  -  LEVEL C *
5C               * -------------     ------- *
6C               *****************************
7C
8C**** *chksgc*  - Initialize signal handling
9C
10C     Purpose:
11C     -------
12C     Initialize signal handling related to fork stuff and fpe trapping
13C
14C**   Interface:
15C     ---------
16C       *CALL*  *chksgc*
17C
18C     Input:
19C     -----
20C     None
21C
22C     Output:
23C     ------
24C     None
25C
26C     Workspace:
27C     ---------
28C     None
29C
30C     Externals:
31C     ---------
32C     fsigctl, signal, ferror, getfpe
33C
34C     Reference:
35C     ---------
36C     See OASIS manual (1997)
37C
38C     History:
39C     -------
40C       Version   Programmer     Date      Description
41C       -------   ----------     ----      ----------- 
42C       2.2       L. Terray      97/12/24  created
43C       2.3       S. Valcke      99/04/30  added: printing levels
44C       2.3       L. Terray      99/09/15  added: GMEM branch
45C       2.5       S. Valcke      2K/09/04  Remove cmach
46C
47C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
48C
49C* ---------------------------- Include files ---------------------------
50C
51      USE mod_unit
52      USE mod_hardware
53      USE mod_printing
54C
55C* ---------------------------- External declarations -------------------
56C
57      EXTERNAL ferror, getfpe
58C
59C* ---------------------------- Poema verses ----------------------------
60C
61C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62C
63C
64C*    1. Initialization
65C        --------------
66C
67      IF (nlogprt .GE. 2) THEN
68          WRITE (UNIT = nulou,FMT = *) ' '
69          WRITE (UNIT = nulou,FMT = *) ' '
70          WRITE (UNIT = nulou,FMT = *) 
71     $    '           ROUTINE chksgc  -  Level C'
72          WRITE (UNIT = nulou,FMT = *) 
73     $    '           **************     *******'
74          WRITE (UNIT = nulou,FMT = *) ' '
75          WRITE (UNIT = nulou,FMT = *) ' Initialize signal handling '
76          WRITE (UNIT = nulou,FMT = *) ' '
77          WRITE (UNIT = nulou,FMT = *) ' '
78      ENDIF
79C
80C
81C*    2. Signal handling initialization
82C        ------------------------------
83C 1- Insure proper termination in case of child process death
84C 2- Catch floating point error within OASIS
85C
86C* Case PIPE-CRAY
87C
88#ifdef use_comm_PIPE
89          CALL fsigctl ('REGISTER', 'SIGCLD', ferror)
90          CALL fsigctl ('REGISTER', 'SIGFPE', getfpe)
91C
92C* Case SIPC,GMEM-IEEE
93C
94#elif defined use_comm_SIPC || defined use_comm_GMEM
95          CALL fpecatch
96
97C
98C* Child process death trapping only for SIPC (taken care thru MPI for GMEM)
99C
100#ifdef use_comm_SIPC
101             CALL cldcatch
102#endif
103C
104C* Others
105C
106#else
107          IF (nlogprt .GE. 2) THEN
108              WRITE (UNIT = nulou,FMT = *) 
109     $            ' CLIM or exotic cases ===>>> No signal handling' 
110          ENDIF
111#endif
112C
113C
114C*    3. End of routine
115C        --------------
116C
117      IF (nlogprt .GE. 2) THEN
118          WRITE (UNIT = nulou,FMT = *) ' '
119          WRITE (UNIT = nulou,FMT = *) 
120     $    '          --------- End of routine chksgc ---------'
121          CALL FLUSH (nulou)
122      ENDIF
123      RETURN
124      END
Note: See TracBrowser for help on using the repository browser.