/[MITgcm]/MITgcm/pkg/ctrl/ctrl_hfacc_ini.F
ViewVC logotype

Annotation of /MITgcm/pkg/ctrl/ctrl_hfacc_ini.F

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


Revision 1.6 - (hide annotations) (download)
Tue Apr 28 18:09:28 2009 UTC (15 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62c, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62w, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint63g, checkpoint62, checkpoint63, checkpoint63p, checkpoint63q, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint62b, checkpoint61n, checkpoint61q, checkpoint61o, checkpoint61m, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.5: +3 -5 lines
change macros (EXCH & GLOBAL_SUM/MAX) sufix _R4/_R8 to _RS/_RL
 when applied to _RS/_RL variable

1 jmc 1.6 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_hfacc_ini.F,v 1.5 2007/10/09 00:00:00 jmc Exp $
2 jmc 1.5 C $Name: $
3 heimbach 1.1
4     #include "CTRL_CPPOPTIONS.h"
5    
6     CBOP
7     C !ROUTINE: ctrl_hfacc_ini
8     C !INTERFACE:
9     subroutine ctrl_hfacc_ini( mythid )
10    
11     C !DESCRIPTION: \bv
12     c *=================================================================
13 jmc 1.5 c | SUBROUTINE ctrl_hfacc_ini
14 heimbach 1.1 c | Add the hFacC part of the control vector to the model state
15 jmc 1.5 c | and update the tile halos.
16 heimbach 1.1 c | The control vector is defined in the header file "ctrl.h".
17     c *=================================================================
18     C \ev
19    
20     C !USES:
21     implicit none
22    
23     c == global variables ==
24     #include "EEPARAMS.h"
25     #include "SIZE.h"
26     #include "GRID.h"
27     #include "ctrl.h"
28     #include "ctrl_dummy.h"
29     #include "optim.h"
30    
31     C !INPUT/OUTPUT PARAMETERS:
32     c == routine arguments ==
33     integer mythid
34    
35     #ifdef ALLOW_HFACC_CONTROL
36     C !LOCAL VARIABLES:
37     c == local variables ==
38    
39     integer bi,bj
40     integer i,j,k
41     integer itlo,ithi
42     integer jtlo,jthi
43     integer jmin,jmax
44     integer imin,imax
45     integer il
46    
47     logical equal
48     logical doglobalread
49     logical ladinit
50    
51     character*( 80) fnamehfacc
52     character*(max_len_mbuf) msgbuf
53    
54     _RL fac
55    
56     c == external ==
57     integer ilnblnk
58     external ilnblnk
59    
60     c == end of interface ==
61     CEOP
62    
63     jtlo = mybylo(mythid)
64     jthi = mybyhi(mythid)
65     itlo = mybxlo(mythid)
66     ithi = mybxhi(mythid)
67     jmin = 1-oly
68     jmax = sny+oly
69     imin = 1-olx
70     imax = snx+olx
71    
72     doglobalread = .false.
73     ladinit = .false.
74    
75     equal = .true.
76    
77     if ( equal ) then
78     fac = 1. _d 0
79     else
80     fac = 0. _d 0
81     endif
82    
83 jmc 1.5 Cml write(msgbuf,'(a)')
84 heimbach 1.1 Cml & 'ctrl_hfacc_ini: Re-initialising hFacC,'
85     Cml call print_message( msgbuf, standardmessageunit,
86     Cml & SQUEEZE_RIGHT , mythid)
87 jmc 1.5 Cml write(msgbuf,'(a)')
88 heimbach 1.1 Cml & ' adding the control vector.'
89     Cml call print_message( msgbuf, standardmessageunit,
90     Cml & SQUEEZE_RIGHT , mythid)
91 jmc 1.5 write(standardmessageunit,'(21x,a)')
92 heimbach 1.1 & 'ctrl_hfacc_ini: Re-initialising hFacC,'
93 jmc 1.5 write(standardmessageunit,'(21x,a)')
94 heimbach 1.1 & ' adding the control vector.'
95    
96     C Re-initialize hFacC, so that TAMC/TAF can see it
97     C Once hFacC is the control variable, and not its anomaly
98     C this will be no longer necessary
99     do bj = jtlo,jthi
100     do bi = itlo,ithi
101     do k = 1,nr
102     do j = jmin,jmax
103     do i = imin,imax
104     hFacC(i,j,k,bi,bj) = 0.
105     tmpfld3d(i,j,k,bi,bj) = 0. _d 0
106     enddo
107     enddo
108     enddo
109     enddo
110     enddo
111     _BEGIN_MASTER( myThid )
112     CALL READ_FLD_XYZ_RL( 'hFacC', ' ', hFacC, 0, myThid )
113     _END_MASTER( myThid )
114 jmc 1.6 _EXCH_XYZ_RS( hFacC ,myThid )
115 heimbach 1.1
116 jmc 1.5 C--
117 heimbach 1.1 il=ilnblnk( xx_hfacc_file )
118     write(fnamehfacc(1:80),'(2a,i10.10)')
119     & xx_hfacc_file(1:il),'.',optimcycle
120     #ifdef ALLOW_HFACC3D_CONTROL
121 heimbach 1.4 call active_read_xyz( fnamehfacc, tmpfld3d, 1,
122 heimbach 1.1 & doglobalread, ladinit, optimcycle,
123     & mythid, xx_hfacc_dummy )
124     do bj = jtlo,jthi
125     do bi = itlo,ithi
126     do k = 1,nr
127     do j = jmin,jmax
128     do i = imin,imax
129     hFacC(i,j,k,bi,bj) = hFacC(i,j,k,bi,bj) +
130     & fac*tmpfld3d(i,j,k,bi,bj)
131     enddo
132     enddo
133     enddo
134     enddo
135     enddo
136     #else /* ALLOW_HFACC3D_CONTROL undefined */
137 heimbach 1.4 call active_read_xy( fnamehfacc, tmpfld2d, 1,
138 heimbach 1.1 & doglobalread, ladinit, optimcycle,
139     & mythid, xx_hfacc_dummy )
140     do bj = jtlo,jthi
141     do bi = itlo,ithi
142     do j = jmin,jmax
143     do i = imin,imax
144     k = k_lowC(i,j,bi,bj)
145     c if ( k .gt. 0 ) then
146 jmc 1.5 hFacC(i,j,k,bi,bj) = hFacC(i,j,k,bi,bj)
147 heimbach 1.1 & + fac*tmpfld2d(i,j,bi,bj)
148     c end if
149     enddo
150     enddo
151     enddo
152     enddo
153     #endif /* ALLOW_HFACC3D_CONTROL */
154    
155     c-- Update the tile edges.
156    
157     CALL dummy_in_hfac( 'C', 0, myThid )
158 jmc 1.6 _EXCH_XYZ_RS( hFacC, myThid )
159 heimbach 1.1 CALL dummy_in_hfac( 'C', 1, myThid )
160    
161     #endif /* ALLOW_HFACC_CONTROL */
162    
163     return
164     end
165    

  ViewVC Help
Powered by ViewVC 1.1.22