1 |
jmc |
1.6 |
C $Header: /u/gcmpack/MITgcm/pkg/atm_compon_interf/cpl_import_external_data.F,v 1.5 2013/09/24 23:13:54 jmc Exp $ |
2 |
jmc |
1.3 |
C $Name: $ |
3 |
jmc |
1.1 |
|
4 |
|
|
#include "CPP_OPTIONS.h" |
5 |
|
|
|
6 |
jmc |
1.3 |
CBOP |
7 |
|
|
C !ROUTINE: CPL_IMPORT_EXTERNAL_DATA |
8 |
|
|
C !INTERFACE: |
9 |
jmc |
1.1 |
SUBROUTINE CPL_IMPORT_EXTERNAL_DATA( |
10 |
jmc |
1.4 |
I myTime, myIter, myThid ) |
11 |
jmc |
1.3 |
|
12 |
|
|
C !DESCRIPTION: \bv |
13 |
|
|
C *==========================================================* |
14 |
|
|
C | SUBROUTINE CPL_IMPORT_EXTERNAL_DATA |
15 |
|
|
C | o Routine for controlling import of coupling data from |
16 |
|
|
C | coupler layer. |
17 |
|
|
C *==========================================================* |
18 |
|
|
C | This version talks to the MIT Coupler. It uses the MIT |
19 |
|
|
C | Coupler "checkpoint1" library calls. |
20 |
|
|
C *==========================================================* |
21 |
|
|
C \ev |
22 |
|
|
|
23 |
|
|
C !USES |
24 |
jmc |
1.1 |
IMPLICIT NONE |
25 |
|
|
|
26 |
|
|
#include "EEPARAMS.h" |
27 |
|
|
#include "CPL_PARAMS.h" |
28 |
|
|
|
29 |
jmc |
1.3 |
C !INPUT/OUTPUT PARAMETERS: |
30 |
jmc |
1.1 |
C == Routine arguments == |
31 |
jmc |
1.4 |
C myTime :: Current time in simulation. |
32 |
|
|
C myIter :: Current timestep number. |
33 |
|
|
C myThid :: Thread number for this instance of the routine. |
34 |
|
|
_RL myTime |
35 |
jmc |
1.2 |
INTEGER myIter |
36 |
jmc |
1.1 |
INTEGER myThid |
37 |
jmc |
1.3 |
CEOP |
38 |
jmc |
1.1 |
|
39 |
jmc |
1.2 |
#ifdef COMPONENT_MODULE |
40 |
jmc |
1.4 |
C !LOCAL VARIABLES: |
41 |
jmc |
1.1 |
C == Local variables == |
42 |
jmc |
1.5 |
C msgBuf :: Informational/error message buffer |
43 |
|
|
CHARACTER*(MAX_LEN_MBUF) msgBuf |
44 |
jmc |
1.1 |
|
45 |
|
|
C Fetch data from coupling layer. Note MIT Coupler checkpoint1 |
46 |
jmc |
1.3 |
C does not allow asynchronous extraction of data, so ordering |
47 |
jmc |
1.1 |
C has to be consistent with ordering coupling layer. |
48 |
jmc |
1.2 |
|
49 |
jmc |
1.3 |
IF ( MOD(myIter,cplSendFrq_iter).EQ.0 ) THEN |
50 |
jmc |
1.4 |
_BEGIN_MASTER( myThid ) |
51 |
jmc |
1.5 |
IF ( debugMode .OR. countPrtImp.LT.maxNumberPrint ) THEN |
52 |
|
|
c WRITE(0,'(A,I5,A,I10)') ' Importing (pid=', myProcId, |
53 |
|
|
c & ' ) oceanic fields at iteration', myIter |
54 |
|
|
WRITE(msgBuf,'(A,I10)') |
55 |
|
|
& ' Importing oceanic fields at iteration', myIter |
56 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
57 |
|
|
& SQUEEZE_RIGHT, myThid ) |
58 |
|
|
countPrtImp = countPrtImp + 1 |
59 |
|
|
ENDIF |
60 |
jmc |
1.4 |
_END_MASTER( myThid ) |
61 |
jmc |
1.2 |
CALL ATM_IMPORT_FIELDS( myThid ) |
62 |
jmc |
1.1 |
ENDIF |
63 |
jmc |
1.2 |
|
64 |
|
|
#endif /* COMPONENT_MODULE */ |
65 |
jmc |
1.1 |
|
66 |
|
|
RETURN |
67 |
|
|
END |