/[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.8 - (hide annotations) (download)
Mon Dec 15 02:02:39 2003 UTC (20 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint52l_pre, hrcube4, hrcube5, checkpoint52j_pre, checkpoint52l_post, checkpoint52k_post, checkpoint52f_post, checkpoint52i_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint52e_pre, checkpoint52e_post, checkpoint52f_pre, checkpoint52d_post, checkpoint52i_post, checkpoint52h_pre, checkpoint52j_post
Changes since 1.7: +11 -1 lines
allow multi-components set-up with a coupler interface and using MPI.

1 jmc 1.8 C $Header: /u/gcmpack/MITgcm/eesupp/src/eewrite_eeenv.F,v 1.7 2001/09/21 03:54:34 cnh Exp $
2 cnh 1.7 C $Name: $
3 cnh 1.1
4     #include "CPP_EEOPTIONS.h"
5    
6 cnh 1.7 CBOP
7     C !ROUTINE: EEWRITE_EEENV
8    
9     C !INTERFACE:
10 cnh 1.1 SUBROUTINE EEWRITE_EEENV
11 adcroft 1.5 IMPLICIT NONE
12 cnh 1.1
13 cnh 1.7 C !DESCRIPTION:
14     C *==========================================================*
15     C | SUBROUTINE EERWITE_EEENV
16     C | o Write execution environment summary
17     C *==========================================================*
18     C | Write a summary of the execution environment as
19     C | configured for this run. The execution environment is
20     C | the computational mode in which the model operatoes. It
21     C | includes the computational grid but does not include any
22     C | model specific nuerical parameters.
23     C *==========================================================*
24    
25     C !USES:
26     C == Global data ==
27 cnh 1.1 #include "SIZE.h"
28     #include "EEPARAMS.h"
29     #include "EESUPPORT.h"
30    
31 cnh 1.7 C !LOCAL VARIABLES:
32     C == Local variables ==
33     C msgBuf :: Temp. for building text messages.
34 cnh 1.1 CHARACTER*(MAX_LEN_MBUF) msgBuf
35 cnh 1.7 CEOP
36 cnh 1.1
37 cnh 1.4 WRITE(msgBuf,'(A)')
38     & '// ======================================================='
39 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
40     & SQUEEZE_RIGHT , 1)
41    
42 cnh 1.4 WRITE(msgBuf,'(A)')
43     & '// Computational Grid Specification ( see files "SIZE.h" )'
44 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
45     & SQUEEZE_RIGHT , 1)
46    
47 cnh 1.4 WRITE(msgBuf,'(A)')
48     & '// ( and "eedata" )'
49 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
50     & SQUEEZE_RIGHT , 1)
51    
52 cnh 1.4 WRITE(msgBuf,'(A)')
53     & '// ======================================================='
54 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
55     & SQUEEZE_RIGHT , 1)
56    
57 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nPx =',nPx,
58     & ' ; /* No. processes in X */'
59 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
60     & SQUEEZE_RIGHT , 1)
61    
62 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nPy =',nPy,
63     & ' ; /* No. processes in Y */'
64 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
65     & SQUEEZE_RIGHT , 1)
66    
67 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nSx =',nSx,
68     & ' ; /* No. tiles in X per process */'
69 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
70     & SQUEEZE_RIGHT , 1)
71    
72 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nSy =',nSy,
73     & ' ; /* No. tiles in Y per process */'
74 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
75     & SQUEEZE_RIGHT , 1)
76    
77 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' sNx =',sNx,
78     & ' ; /* Tile size in X */'
79 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
80     & SQUEEZE_RIGHT , 1)
81    
82 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' sNy =',sNy,
83     & ' ; /* Tile size in Y */'
84 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
85     & SQUEEZE_RIGHT , 1)
86    
87     WRITE(msgBuf,'(A,I5,A)') ' OLx =',OLx,
88     & ' ; /* Tile overlap distance in X */'
89     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
90     & SQUEEZE_RIGHT , 1)
91    
92     WRITE(msgBuf,'(A,I5,A)') ' OLy =',OLy,
93     & ' ; /* Tile overlap distance in Y */'
94     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
95     & SQUEEZE_RIGHT , 1)
96    
97 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nTx =',nTx,
98     & ' ; /* No. threads in X per process */'
99 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
100     & SQUEEZE_RIGHT , 1)
101    
102 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' nTy =',nTy,
103     & ' ; /* No. threads in Y per process */'
104 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
105     & SQUEEZE_RIGHT , 1)
106    
107 cnh 1.4 WRITE(msgBuf,'(A,I5,A)') ' Nr =', Nr,
108     & ' ; /* No. levels in the vertical */ '
109 cnh 1.1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
110     & SQUEEZE_RIGHT , 1)
111    
112     WRITE(msgBuf,'(A,I5,A)') ' nX =', nX,
113     & ' ; /* Total domain size in X ( = nPx*nSx*sNx ) */'
114     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
115     & SQUEEZE_RIGHT , 1)
116    
117     WRITE(msgBuf,'(A,I5,A)') ' nY =', nY,
118     & ' ; /* Total domain size in Y ( = nPy*nSy*sNy ) */'
119     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
120     & SQUEEZE_RIGHT , 1)
121    
122     WRITE(msgBuf,'(A,I5,A)') ' nTiles =', nSx*nSy,
123     & ' ; /* Total no. tiles per process ( = nSx*nSy ) */'
124     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
125     & SQUEEZE_RIGHT , 1)
126    
127     WRITE(msgBuf,'(A,I5,A)') ' nProcs =', nPx*nPy,
128     & ' ; /* Total no. processes ( = nPx*nPy ) */'
129     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
130     & SQUEEZE_RIGHT , 1)
131    
132     WRITE(msgBuf,'(A,I5,A)') 'nThreads =', nTx*nTy,
133     & ' ; /* Total no. threads per process ( = nTx*nTy ) */'
134     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
135     & SQUEEZE_RIGHT , 1)
136    
137     WRITE(msgBuf,'(A,L5,A)') 'usingMPI =', usingMPI,
138     & ' ; /* Flag used to control whether MPI is in use */'
139     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
140     & SQUEEZE_RIGHT , 1)
141    
142     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
143     & ' /* note: To execute a program with MPI calls */'
144     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
145     & SQUEEZE_RIGHT , 1)
146    
147     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
148     & ' /* it must be launched appropriately e.g */'
149     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
150     & SQUEEZE_RIGHT , 1)
151    
152     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
153     & ' /* "mpirun -np 64 ......" */'
154     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
155     & SQUEEZE_RIGHT , 1)
156 jmc 1.8
157     WRITE(msgBuf,'(A,L4,A)') 'useCoupler=', useCoupler,
158     & ' ; /* Flag used to control communications with */'
159     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
160     & SQUEEZE_RIGHT , 1)
161     WRITE(msgBuf,'(A,A,A)') ' ', ' ' ,
162     & ' /* other model components, through a coupler */'
163     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
164     & SQUEEZE_RIGHT , 1)
165    
166 cnh 1.1
167     WRITE(msgBuf,'(A)') ' '
168     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
169     & SQUEEZE_RIGHT , 1)
170    
171     C
172     RETURN
173     END

  ViewVC Help
Powered by ViewVC 1.1.22