/[MITgcm]/MITgcm/model/src/load_fields_driver.F
ViewVC logotype

Diff of /MITgcm/model/src/load_fields_driver.F

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

revision 1.11 by jmc, Sun Aug 28 22:26:39 2011 UTC revision 1.22 by heimbach, Sun Sep 10 15:19:17 2017 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    #ifdef ALLOW_AUTODIFF
7    # include "AUTODIFF_OPTIONS.h"
8    #endif
9    #ifdef ALLOW_COST
10    # include "COST_OPTIONS.h"
11    #endif
12    #ifdef ALLOW_CTRL
13    # include "CTRL_OPTIONS.h"
14    #endif
15    #ifdef ALLOW_EXF
16    # include "EXF_OPTIONS.h"
17    #endif
18    
19  CBOP  CBOP
20  C     !ROUTINE: LOAD_FIELDS_DRIVER  C     !ROUTINE: LOAD_FIELDS_DRIVER
# Line 28  C       |-- CHEAPAML_FIELDS_LOAD Line 40  C       |-- CHEAPAML_FIELDS_LOAD
40  C       |  C       |
41  C       |-- EXTERNAL_FIELDS_LOAD  C       |-- EXTERNAL_FIELDS_LOAD
42  C       |  C       |
 C       |-- OFFLINE_FIELDS_LOAD  
 C       |  
43  C       |-- GCHEM_FIELDS_LOAD  C       |-- GCHEM_FIELDS_LOAD
44  C       |  C       |
45  C       |-- RBCS_FIELDS_LOAD  C       |-- RBCS_FIELDS_LOAD
# Line 42  C     == Global variables == Line 52  C     == Global variables ==
52  #include "SIZE.h"  #include "SIZE.h"
53  #include "EEPARAMS.h"  #include "EEPARAMS.h"
54  #include "PARAMS.h"  #include "PARAMS.h"
55    #include "FFIELDS.h"
56    
57  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF
58  # include "tamc.h"  # include "tamc.h"
59    # include "CTRL_SIZE.h"
60  # include "ctrl.h"  # include "ctrl.h"
61  # include "ctrl_dummy.h"  # include "ctrl_dummy.h"
62  # include "cost.h"  # include "cost.h"
 # include "FFIELDS.h"  
63  # include "EOS.h"  # include "EOS.h"
64  # ifdef ALLOW_EXF  # ifdef ALLOW_EXF
65  #  include "EXF_FIELDS.h"  #  include "EXF_FIELDS.h"
66  #  ifdef ALLOW_BULKFORMULAE  #  include "EXF_CONSTANTS.h"
 #   include "EXF_CONSTANTS.h"  
 #  endif  
67  # endif  # endif
68  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF */
69    
70  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
71  C     myTime :: time counter for this thread  C     myTime :: time counter for this thread
# Line 67  C     myThid :: thread number for this i Line 76  C     myThid :: thread number for this i
76        INTEGER myThid        INTEGER myThid
77    
78  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
79    #if (defined ALLOW_ADDFLUID) || (defined ALLOW_FRICTION_HEATING)
80          INTEGER i,j,k,bi,bj
81    #endif
82  CEOP  CEOP
83    
84  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
85        IF (debugMode) CALL DEBUG_ENTER( 'LOAD_FIELDS_DRIVER', myThid )        IF (debugMode) CALL DEBUG_ENTER( 'LOAD_FIELDS_DRIVER', myThid )
86  #endif  #endif
87    
88    C--   Initialise forcing arrays that may receive multiple contributions
89    #ifdef ALLOW_ADDFLUID
90          IF ( selectAddFluid.NE.0 .AND. addMassFile.EQ.' ' ) THEN
91            DO bj=myByLo(myThid),myByHi(myThid)
92             DO bi=myBxLo(myThid),myBxHi(myThid)
93              DO k=1,Nr
94               DO j=1-OLy,sNy+OLy
95                DO i=1-OLx,sNx+OLx
96                 addMass(i,j,k,bi,bj) =  0. _d 0
97                ENDDO
98               ENDDO
99              ENDDO
100             ENDDO
101            ENDDO
102          ENDIF
103    #endif /* ALLOW_ADDFLUID */
104    
105    #ifdef ALLOW_FRICTION_HEATING
106          IF ( addFrictionHeating .AND. staggerTimeStep ) THEN
107            DO bj=myByLo(myThid),myByHi(myThid)
108             DO bi=myBxLo(myThid),myBxHi(myThid)
109              DO k=1,Nr
110               DO j=1-OLy,sNy+OLy
111                DO i=1-OLx,sNx+OLx
112                 frictionHeating(i,j,k,bi,bj) = 0. _d 0
113                ENDDO
114               ENDDO
115              ENDDO
116             ENDDO
117            ENDDO
118          ENDIF
119    #endif /* ALLOW_FRICTION_HEATING */
120    
121    C--   Map generic time varying controls to xx_gentim2d
122    #ifdef ALLOW_CTRL
123          if (useCTRL) CALL CTRL_MAP_GENTIM2D( myTime, myIter, myThid )
124    #endif
125    
126  #ifdef ALLOW_BULK_FORCE  #ifdef ALLOW_BULK_FORCE
127        IF ( useBulkForce ) THEN        IF ( useBulkForce ) THEN
128  C--   Bulk-Formulae pkg: load all forcing fields at current time  C--   Bulk-Formulae pkg: load all forcing fields at current time
# Line 107  C--   Call external CheapAML forcing pac Line 157  C--   Call external CheapAML forcing pac
157        ENDIF        ENDIF
158  #endif /*ALLOW_CHEAPAML */  #endif /*ALLOW_CHEAPAML */
159    
160        IF ( .NOT.(useEXF.OR.useCheapAML) ) THEN  #ifdef ALLOW_AUTODIFF
161           IF ( .NOT. useEXF ) THEN
162    #endif /* ALLOW_AUTODIFF */
163  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
164          IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FIELDS_LOAD',myThid)          IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FIELDS_LOAD',myThid)
165  #endif  #endif
166          CALL TIMER_START('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)          CALL TIMER_START('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
167          CALL EXTERNAL_FIELDS_LOAD( myTime, myIter, myThid )          CALL EXTERNAL_FIELDS_LOAD( myTime, myIter, myThid )
168          CALL TIMER_STOP ('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)          CALL TIMER_STOP ('EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]',myThid)
169    #ifdef ALLOW_AUTODIFF
170           ENDIF
171    #endif /* ALLOW_AUTODIFF */
172  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
173  CADJ STORE SST    = comlev1, key = ikey_dynamics, kind = isbyte  CADJ STORE SST    = comlev1, key = ikey_dynamics, kind = isbyte
174  CADJ STORE SSS    = comlev1, key = ikey_dynamics, kind = isbyte  CADJ STORE SSS    = comlev1, key = ikey_dynamics, kind = isbyte
# Line 121  CADJ STORE SSS    = comlev1, key = ikey_ Line 176  CADJ STORE SSS    = comlev1, key = ikey_
176  CADJ STORE Qsw    = comlev1, key = ikey_dynamics, kind = isbyte  CADJ STORE Qsw    = comlev1, key = ikey_dynamics, kind = isbyte
177  # endif  # endif
178  #endif  #endif
       ENDIF  
   
 #ifdef ALLOW_OFFLINE  
       IF ( useOffLine ) THEN  
 #ifdef ALLOW_DEBUG  
         IF (debugMode) CALL DEBUG_CALL('OFFLINE_FIELDS_LOAD',myThid)  
 #endif /* ALLOW_DEBUG */  
         CALL TIMER_START('OFFLINE_FLDS_LOAD  [LOAD_FLDS_DRIVER]',myThid)  
         CALL OFFLINE_FIELDS_LOAD( myTime, myIter, myThid )  
         CALL TIMER_STOP ('OFFLINE_FLDS_LOAD  [LOAD_FLDS_DRIVER]',myThid)  
       ENDIF  
 #endif /* ALLOW_OFFLINE */  
179    
180  #ifdef ALLOW_GCHEM  #ifdef ALLOW_GCHEM
181        IF ( useGCHEM ) THEN        IF ( useGCHEM ) THEN

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.22

  ViewVC Help
Powered by ViewVC 1.1.22