/[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.2 by stephd, Wed Jul 9 19:59:18 2003 UTC revision 1.4 by edhill, Thu Oct 9 04:19:19 2003 UTC
# Line 1  Line 1 
1  #include "CPP_OPTIONS.h"  #include "DIC_OPTIONS.h"
2  #include "GCHEM_OPTIONS.h"  #include "GCHEM_OPTIONS.h"
3    
4  CStartOfInterFace  CStartOfInterFace
# Line 22  C     == GLobal variables == Line 22  C     == GLobal variables ==
22  #include "DIC_ABIOTIC.h"  #include "DIC_ABIOTIC.h"
23  #ifdef DIC_BIOTIC  #ifdef DIC_BIOTIC
24  #include "DIC_BIOTIC.h"  #include "DIC_BIOTIC.h"
25  #endif  #include "DIC_LOAD.h"
 #ifdef ALLOW_SEAICE  
 #include "ICE.h"  
26  #endif  #endif
27    
28  C     == Routine arguments ==  C     == Routine arguments ==
# Line 34  C     == Routine arguments == Line 32  C     == Routine arguments ==
32    
33  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
34  C     == Local variables ==  C     == Local variables ==
       COMMON /dic_load/  
      &    wspeed0, wspeed1, ice0, ice1, atmosp0,  
      &    atmosp1, silica0, silica1  
 #ifdef DIC_BIOTIC  
      &    ,feinput0,feinput1  
 #endif  
       _RS wspeed0  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS wspeed1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS wind  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS ice0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS ice1  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS atmosp0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS atmosp1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS silica0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS silica1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
 #ifdef DIC_BIOTIC  
       _RS feinput0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
       _RS feinput1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
 #endif  
35         INTEGER bi,bj,i,j,intime0,intime1         INTEGER bi,bj,i,j,intime0,intime1
36        _RL aWght,bWght,rdt        _RL aWght,bWght,rdt
37        INTEGER nForcingPeriods,Imytm,Ifprd,Ifcyc,Iftm        INTEGER nForcingPeriods,Imytm,Ifprd,Ifcyc,Iftm
38  c  c
 c  
       IF ( periodicExternalForcing ) THEN  
   
   
39  C First call requires that we initialize everything to zero for safety  C First call requires that we initialize everything to zero for safety
40  cQQQ need to check timing         IF (myIter .EQ. nIter0) THEN
        IF ( myIter .EQ. nIter0+1 ) THEN  
41           CALL LEF_ZERO( wspeed0,myThid )           CALL LEF_ZERO( wspeed0,myThid )
42           CALL LEF_ZERO( wspeed1,myThid )           CALL LEF_ZERO( wspeed1,myThid )
43           CALL LEF_ZERO( atmosp0,myThid )           CALL LEF_ZERO( atmosp0,myThid )
# Line 72  cQQQ need to check timing Line 46  cQQQ need to check timing
46           CALL LEF_ZERO( silica1,myThid )           CALL LEF_ZERO( silica1,myThid )
47           CALL LEF_ZERO( ice0,myThid )           CALL LEF_ZERO( ice0,myThid )
48           CALL LEF_ZERO( ice1,myThid )           CALL LEF_ZERO( ice1,myThid )
49  #ifdef DIC_BIOTIC  #ifdef ALLOW_FE
50           CALL LEF_ZERO( feinput0,myThid )           CALL LEF_ZERO( feinput0,myThid )
51           CALL LEF_ZERO( feinput1,myThid )           CALL LEF_ZERO( feinput1,myThid )
52  #endif  #endif
53         ENDIF         ENDIF
54    c
55          IF ( periodicExternalForcing ) THEN
56    
57    
58  C Now calculate whether it is time to update the forcing arrays  C Now calculate whether it is time to update the forcing arrays
# Line 99  cswd QQ change for placement of chem for Line 75  cswd QQ change for placement of chem for
75         intime1=intime1+1         intime1=intime1+1
76    
77    
 cswd QQ  need nIter0+1 since chem forcing after time step  
78         IF (         IF (
79       &   Iftm-Ifprd*(intime0-1).EQ. 0       &   Iftm-Ifprd*(intime0-1).EQ. 0
80       &   .OR. myIter .EQ. nIter0+1       &   .OR. myIter .EQ. nIter0
81       &    ) THEN       &    ) THEN
82    
83    
# Line 132  C      data for the period ahead and the Line 107  C      data for the period ahead and the
107           CALL READ_REC_XY_RS( SilicaFile,silica1,intime1,           CALL READ_REC_XY_RS( SilicaFile,silica1,intime1,
108       &        myIter,myThid )       &        myIter,myThid )
109         ENDIF         ENDIF
 #ifndef ALLOW_SEAICE  
110         IF ( IceFile .NE. ' '  ) THEN         IF ( IceFile .NE. ' '  ) THEN
111           CALL READ_REC_XY_RS( IceFile,ice0,intime0,           CALL READ_REC_XY_RS( IceFile,ice0,intime0,
112       &       myIter,myThid )       &       myIter,myThid )
113           CALL READ_REC_XY_RS( IceFile,ice1,intime1,           CALL READ_REC_XY_RS( IceFile,ice1,intime1,
114       &       myIter,myThid )       &       myIter,myThid )
115         ENDIF         ENDIF
116  #endif  #ifdef ALLOW_FE
 #ifdef DIC_BIOTIC    
117         IF ( IronFile .NE. ' '  ) THEN         IF ( IronFile .NE. ' '  ) THEN
118           CALL READ_REC_XY_RS( IronFile,feinput0,intime0,           CALL READ_REC_XY_RS( IronFile,feinput0,intime0,
119       &       myIter,myThid )       &       myIter,myThid )
# Line 158  C Line 131  C
131         _EXCH_XY_R4(atmosp1, myThid )         _EXCH_XY_R4(atmosp1, myThid )
132         _EXCH_XY_R4(silica0, myThid )         _EXCH_XY_R4(silica0, myThid )
133         _EXCH_XY_R4(silica1, myThid )         _EXCH_XY_R4(silica1, myThid )
 #ifndef ALLOW_SEAICE  
134         _EXCH_XY_R4(ice0, myThid )         _EXCH_XY_R4(ice0, myThid )
135         _EXCH_XY_R4(ice1, myThid )         _EXCH_XY_R4(ice1, myThid )
136  #endif  #ifdef ALLOW_FE
 #ifdef DIC_BIOTIC    
137         _EXCH_XY_R4(feinput0, myThid )         _EXCH_XY_R4(feinput0, myThid )
138         _EXCH_XY_R4(feinput1, myThid )         _EXCH_XY_R4(feinput1, myThid )
139  #endif  #endif
# Line 196  c QQ         also need to check units, a Line 167  c QQ         also need to check units, a
167             ELSE             ELSE
168               SILICA(i,j,bi,bj)   =7.6838e-3*maskC(i,j,1,bi,bj)               SILICA(i,j,bi,bj)   =7.6838e-3*maskC(i,j,1,bi,bj)
169             ENDIF             ENDIF
 #ifndef ALLOW_SEAICE  
170             IF ( IceFile .NE. ' '  ) THEN             IF ( IceFile .NE. ' '  ) THEN
171              FIce(i,j,bi,bj)    = bWght*ice0(i,j,bi,bj)              FIce(i,j,bi,bj)    = bWght*ice0(i,j,bi,bj)
172       &                          +aWght*ice1(i,j,bi,bj)       &                          +aWght*ice1(i,j,bi,bj)
173             ELSE             ELSE
174              FIce(i,j,bi,bj) =0.d0              FIce(i,j,bi,bj) =0.d0
175             ENDIF             ENDIF
 #else  
            FIce(i,j,bi,bj) = IceMask(i,j,bi,bj)  
 #endif  
176             if (FIce(i,j,bi,bj).lt.1d-2) then             if (FIce(i,j,bi,bj).lt.1d-2) then
177                FIce(i,j,bi,bj) = 0.d0                FIce(i,j,bi,bj) = 0.d0
178             endif             endif
179  #ifdef DIC_BIOTIC  #ifdef ALLOW_FE
180             IF ( IronFile .NE. ' '  ) THEN             IF ( IronFile .NE. ' '  ) THEN
181              InputFe(i,j,bi,bj)   = bWght*feinput0(i,j,bi,bj)              InputFe(i,j,bi,bj)   = bWght*feinput0(i,j,bi,bj)
182       &                          +aWght*feinput1(i,j,bi,bj)       &                          +aWght*feinput1(i,j,bi,bj)

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

  ViewVC Help
Powered by ViewVC 1.1.22