/[MITgcm]/MITgcm/pkg/ocn_compon_interf/ocn_import_fields.F
ViewVC logotype

Contents of /MITgcm/pkg/ocn_compon_interf/ocn_import_fields.F

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


Revision 1.5 - (show annotations) (download)
Wed Jan 6 01:02:28 2016 UTC (10 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65s, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, HEAD
Changes since 1.4: +49 -8 lines
- to save memory space in ATM & OCN comp: add some #ifdef ALLOW_${PKG} around
  optionally exchanged fields (ALLOW_SALT_PLUME, ALLOW_DIC for DIC,
   ALLOW_THSICE for 2-W thsice)
- rename:   fracIce     -> sIceFrac_cpl (<- match coupler var name)
- add 2-way thSIce vars exchange ; add Salt-Plume flux ; add RunOff in OCN.
- add argument: myIter to S/R OCN_EXPORT_FIELDS & OCN_IMPORT_FIELDS

1 C $Header: /u/gcmpack/MITgcm/pkg/ocn_compon_interf/ocn_import_fields.F,v 1.4 2015/11/12 00:58:25 jmc Exp $
2 C $Name: $
3
4 #include "OCN_CPL_OPTIONS.h"
5
6 CBOP 0
7 C !ROUTINE: OCN_IMPORT_FIELDS
8
9 C !INTERFACE:
10 SUBROUTINE OCN_IMPORT_FIELDS( myIter, myThid )
11
12 C !DESCRIPTION:
13 C *==========================================================*
14 C | SUBROUTINE OCN_IMPORT_FIELDS
15 C | o Routine for importing fields (e.g. surface fluxes)
16 C | from coupling layer.
17 C *==========================================================*
18 C | This version talks to the MIT Coupler. It uses the
19 C | MIT Coupler "checkpoint 1" library calls.
20 C *==========================================================*
21
22 C !USES:
23 IMPLICIT NONE
24 C == Global variables ==
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "CPL_PARAMS.h"
28 #include "OCNIDS.h"
29 #include "OCNCPL.h"
30
31 C !INPUT/OUTPUT PARAMETERS:
32 C == Routine arguments ==
33 C myIter :: Current timestep number.
34 C myThid :: Thread number for this instance of the routine
35 INTEGER myIter
36 INTEGER myThid
37 CEOP
38
39 #ifdef COMPONENT_MODULE
40 C !LOCAL VARIABLES:
41
42 C Note: 1) all fields will have been gridded onto ocean grid.
43 C 2) MIT Coupler checkpoint1 does not allow asynchronous posting of
44 C data, so ordering has to be consistent with coupling layer ordering
45
46 _BARRIER
47 _BEGIN_MASTER( myThid )
48
49 C- Receive Atmospheric Sea-Level pressure from coupling layer.
50 CALL COMPRECV_R8TILES( ocnSLPrName,
51 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
52 O atmSLPr )
53
54 C- Receive surface heatflux from coupling layer.
55 CALL COMPRECV_R8TILES( ocnHeatFluxName,
56 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
57 O HeatFlux )
58
59 C- Receive net shortwave radiation from coupling layer.
60 CALL COMPRECV_R8TILES( ocnQshortWaveName,
61 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
62 O qShortWave )
63
64 C- Receive Zonal surface wind-stress from coupling layer.
65 CALL COMPRECV_R8TILES( ocnTauXName,
66 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
67 O tauX )
68
69 C- Receive Meridional surface wind-stress from coupling layer.
70 CALL COMPRECV_R8TILES( ocnTauYName,
71 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
72 O tauY )
73
74 C- Receive fresh water flux from coupling layer.
75 CALL COMPRECV_R8TILES( ocnFWFluxName,
76 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
77 O FWFlux )
78
79 IF ( ocn_cplExch1W_sIce ) THEN
80 C- Receive salt flux (sea-ice model) from coupling layer.
81 CALL COMPRECV_R8TILES( ocnSaltFxName,
82 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
83 O iceSaltFlx )
84
85 C- Receive sea-ice mass (sea-ice model) from coupling layer.
86 CALL COMPRECV_R8TILES( ocnSIceMassName,
87 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
88 O seaIceMass )
89 ENDIF
90
91 #ifdef ALLOW_SALT_PLUME
92 IF ( ocn_cplExch_SaltPl ) THEN
93 C- Receive salt-plume flux (for pkg/salt_plume) from coupling layer.
94 CALL COMPRECV_R8TILES( ocnSaltPlmFlxName,
95 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
96 O saltPlmFlx_cpl )
97 ENDIF
98 #endif
99 #ifdef ALLOW_DIC
100 IF ( ocn_cplExch_RunOff ) THEN
101 C- Receive Run-Off from coupling layer.
102 CALL COMPRECV_R8TILES( ocnRunOffName,
103 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
104 O RunOff_cpl )
105 ENDIF
106 IF ( ocn_cplExch_DIC ) THEN
107 C- Receive atmos CO2 level from coupling layer.
108 CALL COMPRECV_R8TILES( ocnAirCO2Name,
109 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
110 O airCO2 )
111
112 C- Receive surface windspeed from coupling layer.
113 CALL COMPRECV_R8TILES( ocnWindSpdName,
114 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
115 O surfWSpeed )
116 ENDIF
117 #endif /* ALLOW_DIC */
118 #if (defined ALLOW_DIC) || (defined ALLOW_THSICE)
119 IF ( ( ocn_cplExch1W_sIce.AND.ocn_cplExch_DIC )
120 & .OR. ocn_cplExch2W_sIce ) THEN
121 C- Receive seaice fraction from coupling layer.
122 CALL COMPRECV_R8TILES( ocnSIceFracName,
123 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
124 O sIceFrac_cpl )
125 ENDIF
126 #endif /* ALLOW_DIC or ALLOW_THSICE */
127 #ifdef ALLOW_THSICE
128 IF ( ocn_cplExch2W_sIce ) THEN
129 C- Receive thSIce state-vars from coupling layer.
130 CALL COMPRECV_R8TILES( ocnSIceThickName,
131 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
132 O sIceThick_cpl )
133 CALL COMPRECV_R8TILES( ocnSIceSnowName,
134 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
135 O sIceSnowH_cpl )
136 CALL COMPRECV_R8TILES( ocnSIceQ1Name,
137 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
138 O sIceQ1_cpl )
139 CALL COMPRECV_R8TILES( ocnSIceQ2Name,
140 I sNx, OLx, sNy, OLy, 1, nSx, nSy,
141 O sIceQ2_cpl )
142 ENDIF
143 #endif /* ALLOW_THSICE */
144
145 _END_MASTER( myThid )
146 _BARRIER
147
148 #endif /* COMPONENT_MODULE */
149
150 RETURN
151 END

  ViewVC Help
Powered by ViewVC 1.1.22