/[MITgcm]/MITgcm/pkg/atm_compon_interf/cpl_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/atm_compon_interf/cpl_readparms.F

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


Revision 1.8 - (hide annotations) (download)
Thu Jul 18 20:03:10 2013 UTC (10 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64k, checkpoint64m, checkpoint64l, checkpoint64n
Changes since 1.7: +16 -7 lines
remove cpl_earlyExpImpCall=F option (was mainly a hack added for the old
 staggerTimeStep implementation) and disable (retired) corresponding
 parameter.

1 jmc 1.8 C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/cpl_readparms.F,v 1.7 2009/12/25 19:44:35 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: CPL_READPARMS
8     C !INTERFACE:
9     SUBROUTINE CPL_READPARMS( myThid )
10    
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | S/R CPL_READPARMS
14     C | o Read Coupling parameters that control import/export
15     C | from/to the coupler layer
16     C *==========================================================*
17     C | this version is specific to 1 component (atmos)
18     C *==========================================================*
19     C \ev
20 jmc 1.4
21 jmc 1.1 C !USES:
22     IMPLICIT NONE
23    
24     C == Global variables ===
25     #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28     #include "CPL_PARAMS.h"
29 jmc 1.4 #include "ATMIDS.h"
30 jmc 1.1
31     C !INPUT/OUTPUT PARAMETERS:
32 jmc 1.4 C == Routine Arguments ==
33 jmc 1.7 C myThid :: my Thread Id. number
34 jmc 1.1 INTEGER myThid
35     CEOP
36    
37     #ifdef COMPONENT_MODULE
38    
39 jmc 1.7 C !FUNCTIONS:
40     c INTEGER ILNBLNK
41 jmc 1.1
42 jmc 1.7 C !LOCAL VARIABLES:
43 jmc 1.4 C == Local Variables ==
44 jmc 1.7 C msgBuf :: Informational/error message buffer
45 jmc 1.1 C iUnit :: Work variable for IO unit number
46     C k :: loop counter
47     C iL :: Work variable for length of file-name
48 jmc 1.8 C cpl_earlyExpImpCall :: retired; always call coupler early in call sequence
49    
50 jmc 1.1 CHARACTER*(MAX_LEN_MBUF) msgBuf
51 jmc 1.7 INTEGER iUnit
52     c INTEGER k, iL
53 jmc 1.1 _RL cpl_atmSendFrq
54 jmc 1.8 LOGICAL cpl_earlyExpImpCall
55 jmc 1.1
56     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
57    
58 jmc 1.4 C-- Coupling parameters:
59 jmc 1.2 C cpl_earlyExpImpCall :: call coupler early in the time stepping call sequence
60 jmc 1.5 C cpl_oldPickup :: restart from an old pickup (= until checkpoint 59h)
61 jmc 1.2 C useImportMxlD :: True => use Imported Mix.Layer Detph from coupler
62     C useImportSST :: True => use the Imported SST from coupler
63     C useImportSSS :: True => use the Imported SSS from coupler
64     C useImportVsq :: True => use the Imported Surf. velocity^2
65 jmc 1.4 C useImportFlxCO2 :: True => use the Imported air-sea CO2 fluxes from coupler
66     C cpl_atmSendFrq :: Frequency^-1 for sending data to coupler (s)
67 jmc 1.1 NAMELIST /CPL_ATM_PARAM/
68 jmc 1.2 & cpl_earlyExpImpCall,
69     & cpl_oldPickup,
70 jmc 1.4 & useImportMxlD, useImportSST, useImportSSS,
71     & useImportVsq, useImportFlxCO2,
72 jmc 1.1 & cpl_atmSendFrq
73    
74     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
75    
76 jmc 1.7 _BEGIN_MASTER(myThid)
77    
78     C-- Open the data file
79     WRITE(msgBuf,'(A)') ' CPL_READPARMS: opening data.cpl'
80     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
81    
82     CALL OPEN_COPY_DATA_FILE( 'data.cpl', 'CPL_READPARMS',
83     O iUnit, myThid )
84    
85 jmc 1.1 C- Set default value:
86 jmc 1.4 cpl_earlyExpImpCall = .TRUE.
87     cpl_oldPickup = .FALSE.
88     useImportMxlD = .TRUE.
89     useImportSST = .TRUE.
90     useImportSSS = .TRUE.
91     useImportVsq = .TRUE.
92     IF ( atmCpl_exchange_DIC ) THEN
93     useImportFlxCO2 = .TRUE.
94     ELSE
95     useImportFlxCO2 = .FALSE.
96     ENDIF
97 jmc 1.2 cpl_atmSendFrq= deltaTClock
98 jmc 1.4
99 jmc 1.1 C-- Read parameters from open data file:
100    
101     C- Parameters for coupling interface:
102     READ(UNIT=iUnit,NML=CPL_ATM_PARAM)
103    
104 jmc 1.4 WRITE(msgBuf,'(A)')
105 jmc 1.1 & ' CPL_READPARMS: finished reading data.cpl'
106     CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
107 jmc 1.4
108 jmc 1.1 C-- Close the open data file
109     CLOSE(iUnit)
110    
111     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
112 jmc 1.8 C-- Check for retired parameters:
113     IF ( .NOT.cpl_earlyExpImpCall ) THEN
114     WRITE(msgBuf,'(2A)') 'CPL_READPARMS: ',
115     & 'Parameter "cpl_earlyExpImpCall" has been retired;'
116     CALL PRINT_ERROR( msgBuf, myThid )
117     WRITE(msgBuf,'(2A)') 'CPL_READPARMS: ',
118     & '=> always call coupler early in sequence of calls'
119     CALL PRINT_ERROR( msgBuf, myThid )
120     STOP 'ABNORMAL END: S/R CPL_READPARMS'
121     ENDIF
122    
123 jmc 1.1 C-- Check parameters and model configuration
124 jmc 1.4 IF ( useImportFlxCO2 .AND. .NOT.atmCpl_exchange_DIC ) THEN
125     WRITE(msgBuf,'(2A)') 'CPL_READPARMS: useImportFlxCO2',
126     & ' requires atmCpl_exchange_DIC TRUE'
127 jmc 1.8 CALL PRINT_ERROR( msgBuf, myThid )
128 jmc 1.4 STOP 'ABNORMAL END: S/R CPL_READPARMS'
129     ENDIF
130 jmc 1.1
131     C- derive other parameters:
132     cplSendFrq_iter = NINT( cpl_atmSendFrq / deltaTClock )
133     IF ( cplSendFrq_iter .LT. 1) cplSendFrq_iter = 1
134    
135     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
136     C-- Print out parameter values :
137    
138     iUnit = standardMessageUnit
139     WRITE(msgBuf,'(A)') ' '
140     CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,1)
141     WRITE(msgBuf,'(A)') '// ==================================='
142     CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,1)
143     WRITE(msgBuf,'(A)') '// Coupling package parameters :'
144     CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,1)
145     WRITE(msgBuf,'(A)') '// ==================================='
146     CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,1)
147    
148     C- namelist CPL_ATM_PARAM:
149 jmc 1.2 CALL WRITE_0D_L( cpl_oldPickup , INDEX_NONE,
150     & 'cpl_oldPickup =',
151 jmc 1.4 & ' /* restart from old pickup on/off flag */')
152 jmc 1.2 CALL WRITE_0D_L( useImportMxlD , INDEX_NONE,
153     & 'useImportMxlD =',
154 jmc 1.4 & ' /* use Imported MxL. Depth from Coupler flag */')
155 jmc 1.1 CALL WRITE_0D_L( useImportSST , INDEX_NONE,
156     & 'useImportSST =',
157 jmc 1.4 & ' /* use Imported SST from Coupler on/off flag */')
158 jmc 1.2 CALL WRITE_0D_L( useImportSSS , INDEX_NONE,
159     & 'useImportSSS =',
160 jmc 1.4 & ' /* use Imported SSS from Coupler on/off flag */')
161 jmc 1.2 CALL WRITE_0D_L( useImportVsq , INDEX_NONE,
162     & 'useImportVsq =',
163 jmc 1.4 & ' /* use Imported surf.Vel^2 from Coupler flag */')
164     CALL WRITE_0D_L( useImportFlxCO2 , INDEX_NONE,
165     & 'useImportFlxCO2 =',
166     & ' /* use Imported air-sea CO2 flux from Coupler flag */')
167 jmc 1.6 CALL WRITE_0D_RL( cpl_atmSendFrq, INDEX_NONE, 'cpl_atmSendFrq =',
168 jmc 1.1 & ' /* Frequency^o-1 for sending data to Coupler (s) */')
169 jmc 1.4 C cpl_atmSendFrq :: Frequency^-1 for sending data to coupler (s)
170 jmc 1.1 CALL WRITE_0D_I( cplSendFrq_iter, INDEX_NONE,'cplSendFrq_iter =',
171     &' /* send data to coupler every "cplSendFrq" iter */')
172    
173     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
174    
175     _END_MASTER(myThid)
176 jmc 1.4
177 jmc 1.1 C-- Everyone else must wait for the parameters to be loaded
178     _BARRIER
179    
180     #endif /* COMPONENT_MODULE */
181    
182     RETURN
183     END

  ViewVC Help
Powered by ViewVC 1.1.22