/[MITgcm]/MITgcm/pkg/exf/exf_getforcing.F
ViewVC logotype

Diff of /MITgcm/pkg/exf/exf_getforcing.F

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

revision 1.1 by heimbach, Mon May 14 22:08:40 2001 UTC revision 1.2 by heimbach, Fri Sep 28 15:55:25 2001 UTC
# Line 2  c $Header$ Line 2  c $Header$
2    
3  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
4    
5    CBOI
6        subroutine exf_GetForcing(  C
7       I                           mytime,  C !TITLE: EXTERNAL FORCING
8       I                           myiter,  C !AUTHORS: mitgcm developers ( support@mitgcm.org )
9       I                           mythid  C !AFFILIATION: Massachussetts Institute of Technology
10       &                         )  C !DATE:
11    C !INTRODUCTION: External forcing package
12  c     ==================================================================  c \bv
13  c     SUBROUTINE exf_GetForcing  c * The external forcing package, in conjunction with the
14  c     ==================================================================  c   calendar package, enables the handling of realistic forcing
15  c  c   fields of differing temporal forcing patterns.
16    c * It comprises climatological restoring and relaxation
17    c * Bulk formulae are implemented to convert atmospheric fields
18    c   to surface fluxes.
19    c
20    C     !CALLING SEQUENCE:
21    c ...
22    c  exf_getforcing
23    c  |
24    c  |-- exf_getclim (get climatological fields used e.g. for relax.)
25    c  |
26    c  |-- exf_getsurfacefluxes
27    c  |   |  
28    c  |   |-- exf_getffields <- this one does almost everything
29    c  |   |   1. reads in fields, either flux or atmos. state,
30    c  |   |      depending on CPP options
31    c  |   |   2. If forcing and control is flux, we're already done here
32    c  |   |   3. If forcing is atmos. state, then
33    c  |   |      (a) if control is atmos. state, then the control variable
34    c  |   |          anomalies are read here
35    c  |   |          * ctrl_getatemp
36    c  |   |          * ctrl_getaqh
37    c  |   |          * ctrl_getuwind
38    c  |   |          * ctrl_getvwind
39    c  |   |   4. flux fields are interpolated on current time
40    c  |   |      (b) next the flux fields are computed via bulk formulae
41    c  |   |   5. if forcing and control is flux, then the control vector
42    c  |   |      anomalies are read here
43    c  |   |      * ctrl_getheatflux
44    c  |   |      * ctrl_getsaltflux
45    c  |   |      * ctrl_getzonstress
46    c  |   |      * call ctrl_getmerstress
47    c  |   |
48    c  |   |-- exf_obcs
49    c  |   |   If open boundaries are prescribed externally,
50    c  |   |   OB values for current time step are read here
51    c  |   |   1. for each boundary (north, south, west, east)
52    c  |   |      sliced fields are read for T,S,U,V
53    c  |   |   2. if OB's are part of control vector,
54    c  |   |      control variable anomalies are added to OB values
55    c  |   |      * ctrl_getobcsn
56    c  |   |      * ctrl_getobcss
57    c  |   |      * ctrl_getobcsw
58    c  |   |      * ctrl_getobcse
59    c  |   |
60    c  |   |-- exf_mapfields
61    c  |   |   Forcing fields from exf package are mapped onto
62    c  |   |   mitgcm forcing arrays.
63    c  |   |   Mapping enables a runtime rescaling of fields
64    c
65    c \ev
66    CEOI
67    
68    CBOP
69    C     !ROUTINE: exf_getforcing
70    C     !INTERFACE:
71          subroutine exf_getforcing( mytime, myiter, mythid )
72    
73    C     !DESCRIPTION: \bv
74    c     *=================================================================
75    c     | SUBROUTINE exf_getforcing
76    c     *=================================================================
77  c     o Get the forcing fields for the current time step. The switches  c     o Get the forcing fields for the current time step. The switches
78  c       for the inclusion of the individual forcing components have to  c       for the inclusion of the individual forcing components have to
79  c       be set in CPP_OPTIONS.h .  c       be set in EXF_CPPOPTIONS.h (or ECCO_CPPOPTIONS.h).
 c  
80  c       A note on surface fluxes:  c       A note on surface fluxes:
 c  
81  c       The MITgcmUV's vertical coordinate z is positive upward.  c       The MITgcmUV's vertical coordinate z is positive upward.
82  c       This implies that a positive flux is out of the ocean  c       This implies that a positive flux is out of the ocean
83  c       model. However, the wind stress forcing is not treated  c       model. However, the wind stress forcing is not treated
84  c       this way. A positive zonal wind stress accelerates the  c       this way. A positive zonal wind stress accelerates the
85  c       model ocean towards the east.  c       model ocean towards the east.
86  c  c       started: eckert@mit.edu, heimbach@mit.edu, ralf@ocean.mit.edu
87  c     started: Christian Eckert eckert@mit.edu  30-Jun-1999  c     *=================================================================
88  c  c     | SUBROUTINE exf_getforcing
89  c     changed: Christian Eckert eckert@mit.edu  11-Jan-2000  c     *=================================================================
90  c  C     \ev
 c              - Restructured the code in order to create a package  
 c                for the MITgcmUV.  
 c  
 c              Christian Eckert eckert@mit.edu  12-Feb-2000  
 c  
 c              - Changed Routine names (package prefix: exf_)  
 c  
 c     ==================================================================  
 c     SUBROUTINE exf_GetForcing  
 c     ==================================================================  
91    
92    C     !USES:
93        implicit none        implicit none
94    
95  c     == global variables ==  c     == global variables ==
96    
97    C     !INPUT/OUTPUT PARAMETERS:
98  c     == routine arguments ==  c     == routine arguments ==
   
 c     mythid - thread number for this instance of the routine.  
   
99        integer mythid        integer mythid
100        integer myiter        integer myiter
101        _RL     mytime        _RL     mytime
102    
103    C     !LOCAL VARIABLES:
104  c     == local variables ==  c     == local variables ==
105    
106  c     == end of interface ==  c     == end of interface ==
107    CEOP
108    
109  c     Get values of climatological fields.  c     Get values of climatological fields.
110        call exf_getclim(        call exf_getclim(

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22