/[MITgcm]/MITgcm/eesupp/src/eewrite_eeenv.F
ViewVC logotype

Annotation of /MITgcm/eesupp/src/eewrite_eeenv.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Wed Apr 22 19:15:30 1998 UTC (26 years, 1 month ago) by cnh
Branch: MAIN
Branch point for: cnh
Initial revision

1 cnh 1.1 C $Id$
2    
3     #include "CPP_EEOPTIONS.h"
4    
5     CStartOfInterface
6     SUBROUTINE EEWRITE_EEENV
7     C /==========================================================\
8     C | SUBROUTINE EERWITE_EEENV |
9     C | o Write execution environment summary |
10     C |==========================================================|
11     C | Write a summary of the execution environment as |
12     C | configured for this run. The execution environment is |
13     C | the computational mode in which the model operatoes. It |
14     C | includes the computational grid but does not include any |
15     C | model specific nuerical parameters. |
16     C \==========================================================/
17    
18     C === Global data ===
19     #include "SIZE.h"
20     #include "EEPARAMS.h"
21     #include "EESUPPORT.h"
22    
23     CEndOfInterface
24    
25     C === Local variables ===
26     CHARACTER*(MAX_LEN_MBUF) msgBuf
27    
28     WRITE(msgBuf,'(A)') '// ======================================================='
29     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
30     & SQUEEZE_RIGHT , 1)
31    
32     WRITE(msgBuf,'(A)') '// Computational Grid Specification ( see files "SIZE.h" )'
33     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
34     & SQUEEZE_RIGHT , 1)
35    
36     WRITE(msgBuf,'(A)') '// ( and "eedata" )'
37     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
38     & SQUEEZE_RIGHT , 1)
39    
40     WRITE(msgBuf,'(A)') '// ======================================================='
41     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
42     & SQUEEZE_RIGHT , 1)
43    
44     WRITE(msgBuf,'(A,I5,A)') ' nPx =',nPx,' ; /* No. processes in X */'
45     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
46     & SQUEEZE_RIGHT , 1)
47    
48     WRITE(msgBuf,'(A,I5,A)') ' nPy =',nPy,' ; /* No. processes in Y */'
49     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
50     & SQUEEZE_RIGHT , 1)
51    
52     WRITE(msgBuf,'(A,I5,A)') ' nSx =',nSx,' ; /* No. tiles in X per process */'
53     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
54     & SQUEEZE_RIGHT , 1)
55    
56     WRITE(msgBuf,'(A,I5,A)') ' nSy =',nSy,' ; /* No. tiles in Y per process */'
57     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
58     & SQUEEZE_RIGHT , 1)
59    
60     WRITE(msgBuf,'(A,I5,A)') ' sNx =',sNx,' ; /* Tile size in X */'
61     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
62     & SQUEEZE_RIGHT , 1)
63    
64     WRITE(msgBuf,'(A,I5,A)') ' sNy =',sNy,' ; /* Tile size in Y */'
65     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
66     & SQUEEZE_RIGHT , 1)
67    
68     WRITE(msgBuf,'(A,I5,A)') ' OLx =',OLx,
69     & ' ; /* Tile overlap distance in X */'
70     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
71     & SQUEEZE_RIGHT , 1)
72    
73     WRITE(msgBuf,'(A,I5,A)') ' OLy =',OLy,
74     & ' ; /* Tile overlap distance in Y */'
75     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
76     & SQUEEZE_RIGHT , 1)
77    
78     WRITE(msgBuf,'(A,I5,A)') ' nTx =',nTx,' ; /* No. threads in X per process */'
79     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
80     & SQUEEZE_RIGHT , 1)
81    
82     WRITE(msgBuf,'(A,I5,A)') ' nTy =',nTy,' ; /* No. threads in Y per process */'
83     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
84     & SQUEEZE_RIGHT , 1)
85    
86     WRITE(msgBuf,'(A,I5,A)') ' nZ =', nZ,' ; /* No. levels in the vertical */ '
87     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
88     & SQUEEZE_RIGHT , 1)
89    
90     WRITE(msgBuf,'(A,I5,A)') ' nX =', nX,
91     & ' ; /* Total domain size in X ( = nPx*nSx*sNx ) */'
92     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
93     & SQUEEZE_RIGHT , 1)
94    
95     WRITE(msgBuf,'(A,I5,A)') ' nY =', nY,
96     & ' ; /* Total domain size in Y ( = nPy*nSy*sNy ) */'
97     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
98     & SQUEEZE_RIGHT , 1)
99    
100     WRITE(msgBuf,'(A,I5,A)') ' nTiles =', nSx*nSy,
101     & ' ; /* Total no. tiles per process ( = nSx*nSy ) */'
102     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
103     & SQUEEZE_RIGHT , 1)
104    
105     WRITE(msgBuf,'(A,I5,A)') ' nProcs =', nPx*nPy,
106     & ' ; /* Total no. processes ( = nPx*nPy ) */'
107     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
108     & SQUEEZE_RIGHT , 1)
109    
110     WRITE(msgBuf,'(A,I5,A)') 'nThreads =', nTx*nTy,
111     & ' ; /* Total no. threads per process ( = nTx*nTy ) */'
112     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
113     & SQUEEZE_RIGHT , 1)
114    
115     WRITE(msgBuf,'(A,L5,A)') 'usingMPI =', usingMPI,
116     & ' ; /* Flag used to control whether MPI is in use */'
117     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
118     & SQUEEZE_RIGHT , 1)
119    
120     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
121     & ' /* note: To execute a program with MPI calls */'
122     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
123     & SQUEEZE_RIGHT , 1)
124    
125     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
126     & ' /* it must be launched appropriately e.g */'
127     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
128     & SQUEEZE_RIGHT , 1)
129    
130     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
131     & ' /* "mpirun -np 64 ......" */'
132     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
133     & SQUEEZE_RIGHT , 1)
134    
135     WRITE(msgBuf,'(A)') ' '
136     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
137     & SQUEEZE_RIGHT , 1)
138    
139     C
140     RETURN
141     END

  ViewVC Help
Powered by ViewVC 1.1.22