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

Contents 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.3 - (show annotations) (download)
Sat Sep 27 07:45:51 2003 UTC (21 years, 10 months ago) by dimitri
Branch: MAIN
Changes since 1.2: +6 -1 lines
I/O bug fixes

1 C $Header: /usr/local/gcmpack/MITgcm_contrib/ocean_inversion_project/code/ptracers_init.F,v 1.2 2003/09/23 04:34:23 dimitri Exp $
2 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 C This file is customized to compute CO2 perturbations from
15 C 30 ocean regions for Gruber's ocean inversion project.
16
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 INTEGER i,j,k,bi,bj,iTracer,iMonth
38 CHARACTER*(10) suff
39 _RL SumPtracer
40 CEOP
41
42 C Loop over tracers
43 DO iTracer = 1, PTRACERS_num
44
45 C Loop over tiles
46 DO bj = myByLo(myThid), myByHi(myThid)
47 DO bi = myBxLo(myThid), myBxHi(myThid)
48
49 C Initialize arrays in common blocks :
50 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
60 DO i=1-Olx,sNx+Olx
61 surfaceTendencyPtr(i,j,bi,bj,iTracer) = 0. _d 0
62 ENDDO
63 ENDDO
64
65 C end bi,bj loops
66 ENDDO
67 ENDDO
68
69 C end of Tracer loop
70 ENDDO
71
72 C Read from a pickup file if nIter0 is not zero
73 IF (nIter0.NE.0) THEN
74 C-- Suffix for pickup files
75 IF (pickupSuff.EQ.' ') THEN
76 WRITE(suff,'(I10.10)') nIter0
77 ELSE
78 WRITE(suff,'(A10)') pickupSuff
79 ENDIF
80 CALL PTRACERS_READ_CHECKPOINT( nIter0,myThid )
81 ENDIF
82
83 C Initialize pTracerMasks
84 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 */
126
127 RETURN
128 END

  ViewVC Help
Powered by ViewVC 1.1.22