/[MITgcm]/MITgcm_contrib/ocean_inversion_project/code/ptracers_init.F
ViewVC logotype

Diff of /MITgcm_contrib/ocean_inversion_project/code/ptracers_init.F

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

revision 1.1 by dimitri, Thu Sep 18 02:33:38 2003 UTC revision 1.3 by dimitri, Sat Sep 27 07:45:51 2003 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "PTRACERS_OPTIONS.h"  #include "PTRACERS_OPTIONS.h"
 #ifdef ALLOW_GCHEM  
 # include "GCHEM_OPTIONS.h"  
 #endif  
5    
6  CBOP  CBOP
7  C !ROUTINE: PTRACERS_INIT  C !ROUTINE: PTRACERS_INIT
# Line 14  C !INTERFACE: ========================== Line 11  C !INTERFACE: ==========================
11    
12  C !DESCRIPTION:  C !DESCRIPTION:
13  C     Initialize PTRACERS data structures  C     Initialize PTRACERS data structures
14  cdm   This file is customized to compute CO2 perturbations from 30 ocean  C     This file is customized to compute CO2 perturbations from
15  cdm   regions for Gruber's ocean inversion project.  C     30 ocean regions for Gruber's ocean inversion project.
16    
17  C !USES: ===============================================================  C !USES: ===============================================================
18        IMPLICIT NONE        IMPLICIT NONE
# Line 24  C !USES: =============================== Line 21  C !USES: ===============================
21  #include "PARAMS.h"  #include "PARAMS.h"
22  #include "GRID.h"  #include "GRID.h"
23  #include "PTRACERS.h"  #include "PTRACERS.h"
 cswdptr -- add ---  
 #ifdef ALLOW_GCHEM  
 # include "GCHEM.h"  
 #endif  
 cswdptr --- end add --  
24    
25    
26  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
# Line 42  C  none Line 34  C  none
34    
35  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
36  C  i,j,k,bi,bj,iTracer  :: loop indices  C  i,j,k,bi,bj,iTracer  :: loop indices
37        INTEGER i,j,k,bi,bj,iTracer        INTEGER i,j,k,bi,bj,iTracer,iMonth
38        CHARACTER*(10) suff        CHARACTER*(10) suff
39  #ifndef ALLOW_GCHEM        _RL SumPtracer
       INTEGER tIter0  
       PARAMETER ( tIter0 = 0 )  
 #endif  
40  CEOP  CEOP
41                    
42  C Loop over tracers  C Loop over tracers
43        DO iTracer = 1, PTRACERS_num        DO iTracer = 1, PTRACERS_num
44    
45  C Loop over tiles  C Loop over tiles
46        DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
47         DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
48    
49  C Initialize arrays in common blocks :  C Initialize arrays in common blocks :
50          DO k=1,Nr           DO k=1,Nr
51              DO j=1-Oly,sNy+OLy
52               DO i=1-Olx,sNx+Olx
53                pTracer(i,j,k,bi,bj,iTracer) = 0. _d 0
54                gPtr(i,j,k,bi,bj,iTracer)    = 0. _d 0
55                gPtrNM1(i,j,k,bi,bj,iTracer) = 0. _d 0
56               ENDDO
57              ENDDO
58             ENDDO
59           DO j=1-Oly,sNy+OLy           DO j=1-Oly,sNy+OLy
60            DO i=1-Olx,sNx+Olx            DO i=1-Olx,sNx+Olx
61             pTracer(i,j,k,bi,bj,iTracer) = 0. _d 0             surfaceTendencyPtr(i,j,bi,bj,iTracer) = 0. _d 0
            gPtr(i,j,k,bi,bj,iTracer)    = 0. _d 0  
            gPtrNM1(i,j,k,bi,bj,iTracer) = 0. _d 0  
62            ENDDO            ENDDO
63           ENDDO           ENDDO
         ENDDO  
64    
65  C end bi,bj loops  C end bi,bj loops
66            ENDDO
67         ENDDO         ENDDO
       ENDDO  
68    
69  C end of Tracer loop  C end of Tracer loop
70        ENDDO        ENDDO
71    
72  C Read from a pickup file if nIter0  C Read from a pickup file if nIter0 is not zero
73  cswdptr IF (nIter0.NE.0) THEN        IF (nIter0.NE.0) THEN
 cswdptr -- change --  
       IF (nIter0.GT.tIter0) THEN  
74  C--     Suffix for pickup files  C--     Suffix for pickup files
75         IF (pickupSuff.EQ.' ') THEN         IF (pickupSuff.EQ.' ') THEN
76           WRITE(suff,'(I10.10)') nIter0           WRITE(suff,'(I10.10)') nIter0
# Line 88  C--     Suffix for pickup files Line 80  C--     Suffix for pickup files
80         CALL PTRACERS_READ_CHECKPOINT( nIter0,myThid )         CALL PTRACERS_READ_CHECKPOINT( nIter0,myThid )
81        ENDIF        ENDIF
82    
83  cdm   Initialize pTracerMasks  C     Initialize pTracerMasks
84        CALL PTRACERS_READ_MASK ( mythid )        CALL PTRACERS_READ_MASK ( mythid )
85    
86    C     Initialize pTracerTakahashi
87          CALL PTRACERS_READ_Takahashi ( mythid )
88    
89    C     Normalize pTracerTakahashi so that 1e18 mol/yr is released
90    C     from each model region defined in pTracerMasks.
91    C     It is assumed that each year is 365.25 days (31557600 s)
92    C     long and that each month is 2629800 s.
93    
94          DO iTracer = 1, PTRACERS_num
95           SumPtracer = 0.
96           DO bj = myByLo(myThid), myByHi(myThid)
97            DO bi = myBxLo(myThid), myBxHi(myThid)
98             DO j=1,sNy
99              DO i=1,sNx
100               DO iMonth=1,12
101                SumPtracer = SumPtracer + 2629800. * rA(I,J,bi,bj) *
102         &             pTracerMasks    (I,J,iTracer,bi,bj) *
103         &             pTracerTakahashi(I,J,iMonth ,bi,bj)
104               ENDDO
105              ENDDO
106             ENDDO
107            ENDDO
108           ENDDO
109           _GLOBAL_SUM_R8( SumPtracer, myThid )
110           DO bj = myByLo(myThid), myByHi(myThid)
111            DO bi = myBxLo(myThid), myBxHi(myThid)
112             DO j=1,sNy
113              DO i=1,sNx
114               DO iMonth=1,12
115                IF ( pTracerMasks(I,J,iTracer,bi,bj) .eq. 1. )
116         &             pTracerTakahashi(I,J,iMonth ,bi,bj) = 1.e18 *
117         &             pTracerTakahashi(I,J,iMonth ,bi,bj) / SumPtracer
118               ENDDO
119              ENDDO
120             ENDDO
121            ENDDO
122           ENDDO
123          ENDDO
124    
125  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
126    
127        RETURN        RETURN

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22