/[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.6 by stephd, Wed Sep 1 16:22:52 2004 UTC revision 1.20 by jmc, Thu Nov 8 22:36:08 2007 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
 #include "CPP_OPTIONS.h"  
 #include "PTRACERS_OPTIONS.h"  
4  #include "GCHEM_OPTIONS.h"  #include "GCHEM_OPTIONS.h"
5    
6  CBOP  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:  C !DESCRIPTION:
12  C calls subroutine that will update tracers values.  C     calls subroutine that will update passive tracers values
13  C this will be in a secondary timestep after that used for  C     with a separate timestep. Since GCHEM_FORCING_SEP is now
14  C advection and diffusion in ptracers_intergrate.F  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: ===============================================================  C !USES: ===============================================================
19        IMPLICIT NONE        IMPLICIT NONE
# Line 21  C !USES: =============================== Line 22  C !USES: ===============================
22  #include "DYNVARS.h"  #include "DYNVARS.h"
23  #include "EEPARAMS.h"  #include "EEPARAMS.h"
24  #include "PARAMS.h"  #include "PARAMS.h"
 #ifdef ALLOW_PTRACERS  
25  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
26  #include "PTRACERS.h"  c#include "PTRACERS_PARAMS.h"
27  #endif  #include "PTRACERS_FIELDS.h"
28  #ifdef ALLOW_DIC  #ifdef ALLOW_DIC
29  #include "DIC_BIOTIC.h"  #include "DIC_BIOTIC.h"
30  #include "DIC_ABIOTIC.h"  #include "DIC_ABIOTIC.h"
31  #endif  #endif /* ALLOW_DIC */
32    
33  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
34  C  myThid               :: thread number  C  myThid               :: thread number
# Line 44  C  k                    :: vertical leve Line 44  C  k                    :: vertical leve
44        INTEGER niter        INTEGER niter
45  CEOP  CEOP
46    
 #ifdef ALLOW_PTRACERS  
47  #ifdef ALLOW_GCHEM  #ifdef ALLOW_GCHEM
48    #ifdef GCHEM_SEPARATE_FORCING
        _BARRIER  
        _BEGIN_MASTER( mythid )  
49    
50  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
51  c global calculations   c  c global calculations   c
52  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
53  #ifdef DIC_BIOTIC  #ifdef ALLOW_DIC
54    #ifdef ALLOW_OLD_VIRTUALFLUX
55  c find global surface averages  c find global surface averages
56         gsm_s = 0.         gsm_s = 0.
57         gsm_dic = 0.         gsm_dic = 0.
# Line 64  c find global surface averages Line 62  c find global surface averages
62         print*,'mean surface dic', gsm_dic,gsm_s         print*,'mean surface dic', gsm_dic,gsm_s
63         call tracer_meanarea(myThid,         call tracer_meanarea(myThid,
64       &               ptracer(1-Olx,1-Oly,1,1,1,2), 1, gsm_alk)       &               ptracer(1-Olx,1-Oly,1,1,1,2), 1, gsm_alk)
65    #endif /* ALLOW_OLD_VIRTUALFLUX */
66  #endif  #endif
67  ccccccccccccccccccccccccccccccccccccccccccc  ccccccccccccccccccccccccccccccccccccccccccc
68    
       _END_MASTER( mythid )  
       _BARRIER  
   
69    
70  ccccccccccccccccccccccccc  ccccccccccccccccccccccccc
71  c chemical forcing      c  c chemical forcing      c
# Line 79  C$taf loop = parallel Line 75  C$taf loop = parallel
75  C$taf loop = parallel  C$taf loop = parallel
76          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
77    
78          jMin=1-OLy          jMin=1
79          jMax=sNy+OLy          jMax=sNy
80          iMin=1-OLx          iMin=1
81          iMax=sNx+OLx          iMax=sNx
82  c  c
83  ccccccccccccccccccccccccccc DIC cccccccccccccccccccccccccccccccc  ccccccccccccccccccccccccccc DIC cccccccccccccccccccccccccccccccc
84  c  c
85  #ifdef DIC_BIOTIC  #ifdef ALLOW_DIC
86  #ifdef ALLOW_FE  #ifdef ALLOW_FE
87            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),
88       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),
# Line 97  c Line 93  c
93       &                          bi,bj,imin,imax,jmin,jmax,       &                          bi,bj,imin,imax,jmin,jmax,
94       &                          myIter,myTime,myThid)       &                          myIter,myTime,myThid)
95  #else  #else
96    #ifdef ALLOW_O2
97            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),
98       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),
99       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,3),       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,3),
# Line 104  c Line 101  c
101       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,5),       &                          Ptracer(1-Olx,1-Oly,1,bi,bj,5),
102       &                          bi,bj,imin,imax,jmin,jmax,       &                          bi,bj,imin,imax,jmin,jmax,
103       &                          myIter,myTime,myThid)       &                          myIter,myTime,myThid)
104    #else
105              call DIC_BIOTIC_Forcing( Ptracer(1-Olx,1-Oly,1,bi,bj,1),
106         &                          Ptracer(1-Olx,1-Oly,1,bi,bj,2),
107         &                          Ptracer(1-Olx,1-Oly,1,bi,bj,3),
108         &                          Ptracer(1-Olx,1-Oly,1,bi,bj,4),
109         &                          bi,bj,imin,imax,jmin,jmax,
110         &                          myIter,myTime,myThid)
111  #endif  #endif
112  #endif  #endif
 cccccccccccccccccccccccccc END DIC cccccccccccccccccccccccccccccccccc  
113    
114  #ifdef PTRACERS_SEPARATE_FORCING  #endif
115  C     time averaging directly, here otherwise in the_correction_step  cccccccccccccccccccccccccc END DIC cccccccccccccccccccccccccccccccccc
            CALL PTRACERS_STATVARS(myTime, myIter, bi, bj, myThid)  
 #endif /* PTRACERS_SEPARATE_FORCING */  
116    
117  c  c
118          ENDDO          ENDDO
119         ENDDO         ENDDO
120    
121    #ifdef ALLOW_DIC
122           CALL DIC_ATMOS( 1, myTime, myIter, myThid )
123    #endif
124    
125    #endif /* GCHEM_SEPARATE_FORCING */
126  #endif /* ALLOW_GCHEM */  #endif /* ALLOW_GCHEM */
 #endif /* ALLOW_PTRACERS */  
127    
128        RETURN        RETURN
129        END        END

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22