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

Contents of /MITgcm/pkg/ctrl/ctrl_depth_ini.F

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


Revision 1.7 - (show annotations) (download)
Mon Feb 23 23:22:45 2015 UTC (9 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, HEAD
Changes since 1.6: +9 -9 lines
change loop range to cover the interior only (no overlap) like in
 similar ctrl_ini routines

1 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/ctrl_depth_ini.F,v 1.6 2012/08/10 19:38:57 jmc Exp $
2 C $Name: $
3
4 #include "CTRL_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: ctrl_depth_ini
8 C !INTERFACE:
9 subroutine ctrl_depth_ini( mythid )
10
11 C !DESCRIPTION: \bv
12 c *=================================================================
13 c | SUBROUTINE ctrl_depth_ini
14 c | Add the depth part of the control vector to the model state
15 c | and update the tile halos.
16 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_SIZE.h"
28 #include "ctrl.h"
29 #include "ctrl_dummy.h"
30 #include "optim.h"
31
32 C !INPUT/OUTPUT PARAMETERS:
33 c == routine arguments ==
34 integer mythid
35
36 #ifdef ALLOW_DEPTH_CONTROL
37 C !LOCAL VARIABLES:
38 c == local variables ==
39
40 integer bi,bj
41 integer i,j,k
42 integer itlo,ithi
43 integer jtlo,jthi
44 integer jmin,jmax
45 integer imin,imax
46 integer il
47
48 logical equal
49 logical doglobalread
50 logical ladinit
51
52 character*( 80) fnamedepth
53 character*(max_len_mbuf) msgbuf
54
55 _RL fac
56
57 c == external ==
58 integer ilnblnk
59 external ilnblnk
60
61 c == end of interface ==
62 CEOP
63
64 jtlo = mybylo(mythid)
65 jthi = mybyhi(mythid)
66 itlo = mybxlo(mythid)
67 ithi = mybxhi(mythid)
68 jmin = 1
69 jmax = sny
70 imin = 1
71 imax = snx
72
73 doglobalread = .false.
74 ladinit = .false.
75
76 equal = .true.
77
78 if ( equal ) then
79 fac = 1. _d 0
80 else
81 fac = 0. _d 0
82 endif
83
84 write(standardmessageunit,'(21x,a)')
85 & 'ctrl_depth_ini: ctrl update R_low,'
86 write(standardmessageunit,'(21x,a)')
87 & ' adding the control vector.'
88
89 C Re-initialize hFacC, so that TAMC/TAF can see it
90 C Once hFacC is the control variable, and not its anomaly
91 C this will be no longer necessary
92 do bj = jtlo,jthi
93 do bi = itlo,ithi
94 do j = 1-oly,sny+oly
95 do i = 1-olx,snx+olx
96 tmpfld2d(i,j,bi,bj) = 0. _d 0
97 enddo
98 enddo
99 enddo
100 enddo
101
102 C--
103 do bj = jtlo,jthi
104 do bi = itlo,ithi
105 do j = 1-oly,sny+oly
106 do i = 1-olx,snx+olx
107 xx_r_low(i,j,bi,bj) = 0. _d 0
108 enddo
109 enddo
110 enddo
111 enddo
112
113 il=ilnblnk( xx_depth_file )
114 write(fnamedepth(1:80),'(2a,i10.10)')
115 & xx_depth_file(1:il),'.',optimcycle
116 call active_read_xy( fnamedepth, tmpfld2d, 1,
117 & doglobalread, ladinit, optimcycle,
118 & mythid, xx_depth_dummy )
119 do bj = jtlo,jthi
120 do bi = itlo,ithi
121 do j = jmin,jmax
122 do i = imin,imax
123 xx_r_low(i,j,bi,bj) = r_low(i,j,bi,bj)
124 & + fac*tmpfld2d(i,j,bi,bj)
125 enddo
126 enddo
127 enddo
128 enddo
129
130 c-- Update the tile edges.
131
132 _EXCH_XY_RL( xx_r_low, myThid )
133
134 #endif /* ALLOW_DEPTH_CONTROL */
135
136 return
137 end
138

  ViewVC Help
Powered by ViewVC 1.1.22