/[MITgcm]/MITgcm/pkg/gchem/gchem_forcing_sep.F
ViewVC logotype

Diff of /MITgcm/pkg/gchem/gchem_forcing_sep.F

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

revision 1.2 by stephd, Tue Oct 7 16:21:12 2003 UTC revision 1.11 by stephd, Thu Aug 18 19:29:51 2005 UTC
# Line 1  Line 1 
1  #include "CPP_OPTIONS.h"  C $Header$
2  #include "PTRACERS_OPTIONS.h"  C $Name$
3    
4  #include "GCHEM_OPTIONS.h"  #include "GCHEM_OPTIONS.h"
5    
6    CBOP
7    C !ROUTINE: GCHEM_FORCING_SEP
8  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
9        SUBROUTINE GCHEM_FORCING_SEP(myTime,myIter, myThid )        SUBROUTINE GCHEM_FORCING_SEP(myTime,myIter, myThid )
10    
11    C !DESCRIPTION:
12    C     calls subroutine that will update passive tracers values
13    C     with a separate timestep. Since GCHEM_FORCING_SEP is now
14    C     called before DO_FIELDS_BLOCKING_EXCHANGES, the passive
15    C     tracer values in the halo regions are not up to date and
16    C     must not be used.
17    
18    C !USES: ===============================================================
19        IMPLICIT NONE        IMPLICIT NONE
20  #include "SIZE.h"  #include "SIZE.h"
21  #include "GRID.h"  #include "GRID.h"
22  #include "DYNVARS.h"  #include "DYNVARS.h"
23  #include "EEPARAMS.h"  #include "EEPARAMS.h"
24  #include "PARAMS.h"  #include "PARAMS.h"
25  #ifdef ALLOW_PTRACERS  #include "PTRACERS_SIZE.h"
26  #include "PTRACERS.h"  #include "PTRACERS.h"
27  #endif  #ifdef ALLOW_DIC
 #ifdef DIC_BIOTIC  
28  #include "DIC_BIOTIC.h"  #include "DIC_BIOTIC.h"
29  #include "DIC_ABIOTIC.h"  #include "DIC_ABIOTIC.h"
30  #endif  #endif /* ALLOW_DIC */
31    
32  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
33  C  myThid               :: thread number  C  myThid               :: thread number
34        INTEGER myThid, myIter        INTEGER myThid, myIter
35        _RL myTime        _RL myTime
36    
37    c!LOCAL VARIABLES: ====================================================
38    C  i,j                  :: loop indices
39    C  bi,bj                :: tile indices
40    C  k                    :: vertical level
41        INTEGER bi,bj,imin,imax,jmin,jmax        INTEGER bi,bj,imin,imax,jmin,jmax
42        INTEGER i,j        INTEGER i,j
43        INTEGER niter        INTEGER niter
44    CEOP
45    
 #ifdef ALLOW_PTRACERS  
46  #ifdef ALLOW_GCHEM  #ifdef ALLOW_GCHEM
47    #ifdef GCHEM_SEPARATE_FORCING
48    
49           _BARRIER         _BARRIER
50           _BEGIN_MASTER( mythid )         _BEGIN_MASTER( mythid )
51    
52  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
53  c global calculations   c  c global calculations   c
54  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
55  #ifdef DIC_BIOTIC  #ifdef ALLOW_DIC
56  c find global surface averages  c find global surface averages
57           gsm_s = 0.
58           gsm_dic = 0.
59           gsm_alk = 0.
60         call tracer_meanarea(myThid,salt, 1,gsm_s)         call tracer_meanarea(myThid,salt, 1,gsm_s)
61         call tracer_meanarea(myThid,         call tracer_meanarea(myThid,
62       &               ptracer(1-Olx,1-Oly,1,1,1,1), 1, gsm_dic)       &               ptracer(1-Olx,1-Oly,1,1,1,1), 1, gsm_dic)
63         print*,'mean surface dic', gsm_dic,gsm_s         print*,'mean surface dic', gsm_dic,gsm_s
64         call tracer_meanarea(myThid,         call tracer_meanarea(myThid,
65       &               ptracer(1-Olx,1-Oly,1,1,1,2), 1, gsm_alk)       &               ptracer(1-Olx,1-Oly,1,1,1,2), 1, gsm_alk)
   
66  #endif  #endif
67  ccccccccccccccccccccccccccccccccccccccccccc  ccccccccccccccccccccccccccccccccccccccccccc
68    
# Line 55  cccccccccccccccccccccccccccccccccccccccc Line 73  cccccccccccccccccccccccccccccccccccccccc
73  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
74  c chemical forcing      c  c chemical forcing      c
75  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
76  C$TAF loop = parallel  C$taf loop = parallel
77         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
78  C$TAF loop = parallel  C$taf loop = parallel
79          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
80    
81          jMin=1-OLy          jMin=1
82          jMax=sNy+OLy          jMax=sNy
83          iMin=1-OLx          iMin=1
84          iMax=sNx+OLx          iMax=sNx
85  c  c
86  ccccccccccccccccccccccccccc DIC cccccccccccccccccccccccccccccccc  ccccccccccccccccccccccccccc DIC cccccccccccccccccccccccccccccccc
87  c  c
88  #ifdef DIC_BIOTIC  #ifdef ALLOW_DIC
89  #ifdef ALLOW_FE  #ifdef ALLOW_FE
90            call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),            call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),
91       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),
# Line 89  c Line 107  c
107  #endif  #endif
108  cccccccccccccccccccccccccc END DIC cccccccccccccccccccccccccccccccccc  cccccccccccccccccccccccccc END DIC cccccccccccccccccccccccccccccccccc
109    
 #ifdef PTRACERS_SEPARATE_FORCING  
 C     time averaging directly, here otherwise in the_correction_step  
            CALL PTRACERS_STATVARS(myTime, myIter, bi, bj, myThid)  
 #endif /* PTRACERS_SEPARATE_FORCING */  
   
110  c  c
111          ENDDO          ENDDO
112         ENDDO         ENDDO
113    
114    #endif /* GCHEM_SEPARATE_FORCING */
115  #endif /* ALLOW_GCHEM */  #endif /* ALLOW_GCHEM */
 #endif /* ALLOW_PTRACERS */  
116    
117        RETURN        RETURN
118        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22