/[MITgcm]/MITgcm/pkg/dic/dic_fields_load.F
ViewVC logotype

Diff of /MITgcm/pkg/dic/dic_fields_load.F

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

revision 1.23 by dfer, Mon Apr 7 20:31:16 2008 UTC revision 1.24 by dfer, Tue Apr 8 20:21:35 2008 UTC
# Line 20  C !USES: =============================== Line 20  C !USES: ===============================
20  #include "EEPARAMS.h"  #include "EEPARAMS.h"
21  #include "PARAMS.h"  #include "PARAMS.h"
22  #include "GRID.h"  #include "GRID.h"
 c#include "PTRACERS_SIZE.h"  
 c#include "PTRACERS_PARAMS.h"  
 c#include "PTRACERS_FIELDS.h"  
 #include "GCHEM.h"  
23  #include "DIC_VARS.h"  #include "DIC_VARS.h"
24  #include "DIC_LOAD.h"  #include "DIC_LOAD.h"
25  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
# Line 51  c !LOCAL VARIABLES: ==================== Line 47  c !LOCAL VARIABLES: ====================
47  CEOP  CEOP
48    
49  c  c
50        IF (  gchem_ForcingCycle.gt.0. _d 0 ) THEN        IF (  dic_ForcingCycle.gt.0. _d 0 ) THEN
51    
52    
53  C Now calculate whether it is time to update the forcing arrays  C Now calculate whether it is time to update the forcing arrays
54        rdt = 1. _d 0 / deltaTclock        rdt = 1. _d 0 / deltaTclock
55        nForcingPeriods = NINT(gchem_ForcingCycle/gchem_ForcingPeriod)        nForcingPeriods = NINT(dic_ForcingCycle/dic_ForcingPeriod)
56  cswd QQ change for placement of chem forcing (ie. after timestep)  cswd QQ change for placement of chem forcing (ie. after timestep)
57        Imytm = NINT(myTime*rdt)        Imytm = NINT(myTime*rdt)
58        Ifprd = NINT(gchem_ForcingPeriod*rdt)        Ifprd = NINT(dic_ForcingPeriod*rdt)
59        Ifcyc = NINT(gchem_ForcingCycle*rdt)        Ifcyc = NINT(dic_ForcingCycle*rdt)
60        Iftm  = MOD( Imytm+Ifcyc-Ifprd/2, Ifcyc)        Iftm  = MOD( Imytm+Ifcyc-Ifprd/2, Ifcyc)
61    
62        intime0 = 1 + INT(Iftm/Ifprd)        intime0 = 1 + INT(Iftm/Ifprd)
# Line 88  C      data for the period ahead and the Line 84  C      data for the period ahead and the
84          _END_MASTER(myThid)          _END_MASTER(myThid)
85    
86    
87         IF ( WindFile .NE. ' '  ) THEN         IF ( WindFileDic .NE. ' '  ) THEN
88           CALL READ_REC_XY_RS( WindFile,wspeed0,intime0,           CALL READ_REC_XY_RS( WindFileDic,wspeed0,intime0,
89       &        myIter,myThid )       &        myIter,myThid )
90           CALL READ_REC_XY_RS( WindFile,wspeed1,intime1,           CALL READ_REC_XY_RS( WindFileDic,wspeed1,intime1,
91       &        myIter,myThid )       &        myIter,myThid )
92         ENDIF         ENDIF
93         IF ( AtmospFile .NE. ' '  ) THEN         IF ( AtmospFileDic .NE. ' '  ) THEN
94           CALL READ_REC_XY_RS( AtmospFile,atmosp0,intime0,           CALL READ_REC_XY_RS( AtmospFileDic,atmosp0,intime0,
95       &        myIter,myThid )       &        myIter,myThid )
96           CALL READ_REC_XY_RS( AtmospFile,atmosp1,intime1,           CALL READ_REC_XY_RS( AtmospFileDic,atmosp1,intime1,
97       &        myIter,myThid )       &        myIter,myThid )
98         ENDIF         ENDIF
99         IF ( SilicaFile .NE. ' '  ) THEN         IF ( SilicaFileDic .NE. ' '  ) THEN
100           CALL READ_REC_XY_RS( SilicaFile,silica0,intime0,           CALL READ_REC_XY_RS( SilicaFileDic,silica0,intime0,
101       &        myIter,myThid )       &        myIter,myThid )
102           CALL READ_REC_XY_RS( SilicaFile,silica1,intime1,           CALL READ_REC_XY_RS( SilicaFileDic,silica1,intime1,
103       &        myIter,myThid )       &        myIter,myThid )
104         ENDIF         ENDIF
105         IF ( IceFile .NE. ' '  ) THEN         IF ( IceFileDic .NE. ' '  ) THEN
106           CALL READ_REC_XY_RS( IceFile,ice0,intime0,           CALL READ_REC_XY_RS( IceFileDic,ice0,intime0,
107       &       myIter,myThid )       &       myIter,myThid )
108           CALL READ_REC_XY_RS( IceFile,ice1,intime1,           CALL READ_REC_XY_RS( IceFileDic,ice1,intime1,
109       &       myIter,myThid )       &       myIter,myThid )
110         ENDIF         ENDIF
111  #ifdef READ_PAR  #ifdef READ_PAR
# Line 121  C      data for the period ahead and the Line 117  C      data for the period ahead and the
117         ENDIF         ENDIF
118  #endif  #endif
119  #ifdef ALLOW_FE  #ifdef ALLOW_FE
120         IF ( IronFile .NE. ' '  ) THEN         IF ( IronFileDic .NE. ' '  ) THEN
121           CALL READ_REC_XY_RS( IronFile,feinput0,intime0,           CALL READ_REC_XY_RS( IronFileDic,feinput0,intime0,
122       &       myIter,myThid )       &       myIter,myThid )
123           CALL READ_REC_XY_RS( IronFile,feinput1,intime1,           CALL READ_REC_XY_RS( IronFileDic,feinput1,intime1,
124       &       myIter,myThid )       &       myIter,myThid )
125         ENDIF         ENDIF
126  #endif  #endif
# Line 134  C Line 130  C
130    
131         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
132          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
133           IF ( WindFile .NE. ' '  ) THEN           IF ( WindFileDic .NE. ' '  ) THEN
134             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
135              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
136               WIND(i,j,bi,bj) = bWght*wspeed0(i,j,bi,bj)               WIND(i,j,bi,bj) = bWght*wspeed0(i,j,bi,bj)
# Line 147  c QQ         also need to check units, a Line 143  c QQ         also need to check units, a
143  c          pisvel(i,j,bi,bj)  =0.337*wind(i,j,bi,bj)**2/3.6d5    !QQQQ  c          pisvel(i,j,bi,bj)  =0.337*wind(i,j,bi,bj)**2/3.6d5    !QQQQ
144           ENDIF           ENDIF
145  #ifndef USE_PLOAD  #ifndef USE_PLOAD
146           IF ( AtmospFile .NE. ' '  ) THEN           IF ( AtmospFileDic .NE. ' '  ) THEN
147             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
148              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
149               AtmosP(i,j,bi,bj) = bWght*atmosp0(i,j,bi,bj)               AtmosP(i,j,bi,bj) = bWght*atmosp0(i,j,bi,bj)
# Line 156  c          pisvel(i,j,bi,bj)  =0.337*win Line 152  c          pisvel(i,j,bi,bj)  =0.337*win
152             ENDDO             ENDDO
153           ENDIF           ENDIF
154  #endif  #endif
155           IF ( SilicaFile .NE. ' '  ) THEN           IF ( SilicaFileDic .NE. ' '  ) THEN
156             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
157              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
158               SILICA(i,j,bi,bj) = bWght*silica0(i,j,bi,bj)               SILICA(i,j,bi,bj) = bWght*silica0(i,j,bi,bj)
# Line 164  c          pisvel(i,j,bi,bj)  =0.337*win Line 160  c          pisvel(i,j,bi,bj)  =0.337*win
160              ENDDO              ENDDO
161             ENDDO             ENDDO
162           ENDIF           ENDIF
163           IF ( IceFile .NE. ' '  ) THEN           IF ( IceFileDic .NE. ' '  ) THEN
164             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
165              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
166               FIce(i,j,bi,bj) = bWght*ice0(i,j,bi,bj)               FIce(i,j,bi,bj) = bWght*ice0(i,j,bi,bj)
# Line 190  c          pisvel(i,j,bi,bj)  =0.337*win Line 186  c          pisvel(i,j,bi,bj)  =0.337*win
186           ENDIF           ENDIF
187  #endif  #endif
188  #ifdef ALLOW_FE  #ifdef ALLOW_FE
189           IF ( IronFile .NE. ' '  ) THEN           IF ( IronFileDic .NE. ' '  ) THEN
190             DO j=1-Oly,sNy+Oly             DO j=1-Oly,sNy+Oly
191              DO i=1-Olx,sNx+Olx              DO i=1-Olx,sNx+Olx
192               InputFe(i,j,bi,bj) = bWght*feinput0(i,j,bi,bj)               InputFe(i,j,bi,bj) = bWght*feinput0(i,j,bi,bj)
# Line 202  c          pisvel(i,j,bi,bj)  =0.337*win Line 198  c          pisvel(i,j,bi,bj)  =0.337*win
198          ENDDO          ENDDO
199         ENDDO         ENDDO
200    
201  C endif for gchem_ForcingCycle  C endif for dic_ForcingCycle
202        ENDIF        ENDIF
203    
204         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24

  ViewVC Help
Powered by ViewVC 1.1.22