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

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

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


Revision 1.2 - (hide annotations) (download)
Tue Sep 23 04:34:23 2003 UTC (21 years, 10 months ago) by dimitri
Branch: MAIN
Changes since 1.1: +57 -31 lines
o Mods and bug fixes to pkg/cal and pkg/exf needed for computation
  of tracer Green's fucntions for ocean inversion project.

1 dimitri 1.2 C $Header: /usr/local/gcmpack/MITgcm_contrib/ocean_inversion_project/code/ptracers_init.F,v 1.1 2003/09/18 02:33:38 dimitri Exp $
2 dimitri 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: PTRACERS_INIT
8    
9     C !INTERFACE: ==========================================================
10     SUBROUTINE PTRACERS_INIT( myThid )
11    
12     C !DESCRIPTION:
13     C Initialize PTRACERS data structures
14 dimitri 1.2 C This file is customized to compute CO2 perturbations from
15     C 30 ocean regions for Gruber's ocean inversion project.
16 dimitri 1.1
17     C !USES: ===============================================================
18     IMPLICIT NONE
19     #include "SIZE.h"
20     #include "EEPARAMS.h"
21     #include "PARAMS.h"
22     #include "GRID.h"
23     #include "PTRACERS.h"
24    
25    
26     C !INPUT PARAMETERS: ===================================================
27     C myThid :: thread number
28     INTEGER myThid
29    
30     C !OUTPUT PARAMETERS: ==================================================
31     C none
32    
33     #ifdef ALLOW_PTRACERS
34    
35     C !LOCAL VARIABLES: ====================================================
36     C i,j,k,bi,bj,iTracer :: loop indices
37 dimitri 1.2 INTEGER i,j,k,bi,bj,iTracer,iMonth
38 dimitri 1.1 CHARACTER*(10) suff
39 dimitri 1.2 _RL SumPtracer
40 dimitri 1.1 CEOP
41    
42     C Loop over tracers
43     DO iTracer = 1, PTRACERS_num
44    
45     C Loop over tiles
46 dimitri 1.2 DO bj = myByLo(myThid), myByHi(myThid)
47     DO bi = myBxLo(myThid), myBxHi(myThid)
48 dimitri 1.1
49     C Initialize arrays in common blocks :
50 dimitri 1.2 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 dimitri 1.1 ENDDO
58     ENDDO
59    
60     C end bi,bj loops
61 dimitri 1.2 ENDDO
62 dimitri 1.1 ENDDO
63    
64     C end of Tracer loop
65     ENDDO
66    
67 dimitri 1.2 C Read from a pickup file if nIter0 is not zero
68     IF (nIter0.NE.0) THEN
69 dimitri 1.1 C-- Suffix for pickup files
70     IF (pickupSuff.EQ.' ') THEN
71     WRITE(suff,'(I10.10)') nIter0
72     ELSE
73     WRITE(suff,'(A10)') pickupSuff
74     ENDIF
75     CALL PTRACERS_READ_CHECKPOINT( nIter0,myThid )
76     ENDIF
77    
78 dimitri 1.2 C Initialize pTracerMasks
79 dimitri 1.1 CALL PTRACERS_READ_MASK ( mythid )
80 dimitri 1.2
81     C Initialize pTracerTakahashi
82     CALL PTRACERS_READ_Takahashi ( mythid )
83    
84     C Normalize pTracerTakahashi so that 1e18 mol/yr is released
85     C from each model region defined in pTracerMasks.
86     C It is assumed that each year is 365.25 days (31557600 s)
87     C long and that each month is 2629800 s.
88    
89     DO iTracer = 1, PTRACERS_num
90     SumPtracer = 0.
91     DO bj = myByLo(myThid), myByHi(myThid)
92     DO bi = myBxLo(myThid), myBxHi(myThid)
93     DO j=1,sNy
94     DO i=1,sNx
95     DO iMonth=1,12
96     SumPtracer = SumPtracer + 2629800. * rA(I,J,bi,bj) *
97     & pTracerMasks (I,J,iTracer,bi,bj) *
98     & pTracerTakahashi(I,J,iMonth ,bi,bj)
99     ENDDO
100     ENDDO
101     ENDDO
102     ENDDO
103     ENDDO
104     _GLOBAL_SUM_R8( SumPtracer, myThid )
105     DO bj = myByLo(myThid), myByHi(myThid)
106     DO bi = myBxLo(myThid), myBxHi(myThid)
107     DO j=1,sNy
108     DO i=1,sNx
109     DO iMonth=1,12
110     IF ( pTracerMasks(I,J,iTracer,bi,bj) .eq. 1. )
111     & pTracerTakahashi(I,J,iMonth ,bi,bj) = 1.e18 *
112     & pTracerTakahashi(I,J,iMonth ,bi,bj) / SumPtracer
113     ENDDO
114     ENDDO
115     ENDDO
116     ENDDO
117     ENDDO
118     ENDDO
119 dimitri 1.1
120     #endif /* ALLOW_PTRACERS */
121    
122     RETURN
123     END

  ViewVC Help
Powered by ViewVC 1.1.22