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

Diff of /MITgcm/pkg/ctrl/ctrl_map_ini.F

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

revision 1.8 by heimbach, Tue Jan 21 19:18:35 2003 UTC revision 1.29 by heimbach, Fri Mar 28 18:48:05 2008 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    C $Name$
3    
4  #include "CTRL_CPPOPTIONS.h"  #include "CTRL_CPPOPTIONS.h"
5    
# Line 10  C     !INTERFACE: Line 11  C     !INTERFACE:
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  c     *=================================================================  c     *=================================================================
13  c     | SUBROUTINE ctrl_map_ini  c     | SUBROUTINE ctrl_map_ini
14  c     | Add the temperature, salinity, and diffusivity parts of the  c     | Add the temperature, salinity, and diffusivity parts of the
15  c     | control vector to the model state and update the tile halos.  c     | control vector to the model state and update the tile halos.
16  c     | The control vector is defined in the header file "ctrl.h".  c     | The control vector is defined in the header file "ctrl.h".
17  c     *=================================================================  c     *=================================================================
18  C     \ev  C     \ev
# Line 23  c     == global variables == Line 24  c     == global variables ==
24  #include "SIZE.h"  #include "SIZE.h"
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26  #include "PARAMS.h"  #include "PARAMS.h"
 #include "DYNVARS.h"  
27  #include "GRID.h"  #include "GRID.h"
28  #include "TR1.h"  #include "DYNVARS.h"
29    #include "FFIELDS.h"
30  #include "ctrl.h"  #include "ctrl.h"
31  #include "ctrl_dummy.h"  #include "ctrl_dummy.h"
32  #include "optim.h"  #include "optim.h"
33    #ifdef ALLOW_PTRACERS
34    # include "PTRACERS_SIZE.h"
35    c#include "PTRACERS_PARAMS.h"
36    # include "PTRACERS_FIELDS.h"
37    #endif
38    #ifdef ALLOW_ECCO
39    # include "ecco_cost.h"
40    #endif
41    
42  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
43  c     == routine arguments ==  c     == routine arguments ==
# Line 49  c     == local variables == Line 58  c     == local variables ==
58        logical doglobalread        logical doglobalread
59        logical ladinit        logical ladinit
60    
61        character*( 80)   fnametheta        character*( 80)   fnamegeneric
       character*( 80)   fnamesalt  
       character*( 80)   fnametr1  
       character*( 80)   fnamediffkr  
       character*( 80)   fnamekapgm  
       character*( 80)   fnameefluxy  
       character*( 80)   fnameefluxp  
       character*( 80)   fnamebottomdrag  
62    
63        _RL     fac        _RL     fac
64          _RL tmptest
65    
66  c     == external ==  c     == external ==
67        integer  ilnblnk        integer  ilnblnk
# Line 90  CEOP Line 93  CEOP
93  #ifdef ALLOW_THETA0_CONTROL  #ifdef ALLOW_THETA0_CONTROL
94  c--   Temperature field.  c--   Temperature field.
95        il=ilnblnk( xx_theta_file )        il=ilnblnk( xx_theta_file )
96        write(fnametheta(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
97       &     xx_theta_file(1:il),'.',optimcycle       &     xx_theta_file(1:il),'.',optimcycle
98        call active_read_xyz( fnametheta, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
99       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
100       &                      mythid, xx_theta_dummy )       &                      mythid, xx_theta_dummy )
101    
# Line 101  c--   Temperature field. Line 104  c--   Temperature field.
104            do k = 1,nr            do k = 1,nr
105              do j = jmin,jmax              do j = jmin,jmax
106                do i = imin,imax                do i = imin,imax
107    #ifdef ALLOW_ECCO
108                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
109         $          2.0/sqrt(wtheta(k,bi,bj)))
110         $          tmpfld3d(i,j,k,bi,bj)=
111         $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
112    #endif
113    #ifdef ALLOW_AUTODIFF_OPENAD
114                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
115         &                               fac*xx_theta(i,j,k,bi,bj) +
116       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
117  cph                gtNm1(i,j,k,bi,bj) = gtNm1(i,j,k,bi,bj) +  #else
118  cph     &                               fac*tmpfld3d(i,j,k,bi,bj)                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
119         &                               fac*tmpfld3d(i,j,k,bi,bj)
120    #endif
121    #ifndef DISABLE_CTRL_THETA_LIMIT
122                    if(theta(i,j,k,bi,bj).lt.-2.0)
123         &               theta(i,j,k,bi,bj)= -2.0
124    #endif
125                enddo                enddo
126              enddo              enddo
127            enddo            enddo
128         enddo         enddo
129        enddo        enddo
130    
131  #endif  #endif
132    
133  #ifdef ALLOW_SALT0_CONTROL  #ifdef ALLOW_SALT0_CONTROL
134  c--   Temperature field.  c--   Temperature field.
135        il=ilnblnk( xx_salt_file )        il=ilnblnk( xx_salt_file )
136        write(fnamesalt(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
137       &     xx_salt_file(1:il),'.',optimcycle       &     xx_salt_file(1:il),'.',optimcycle
138        call active_read_xyz( fnamesalt, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
139       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
140       &                      mythid, xx_salt_dummy )       &                      mythid, xx_salt_dummy )
141    
# Line 126  c--   Temperature field. Line 144  c--   Temperature field.
144            do k = 1,nr            do k = 1,nr
145              do j = jmin,jmax              do j = jmin,jmax
146                do i = imin,imax                do i = imin,imax
147    #ifdef ALLOW_ECCO
148                   IF (abs(tmpfld3d(i,j,k,bi,bj)).gt.
149         $          2.0/sqrt(wsalt(k,bi,bj)))
150         $          tmpfld3d(i,j,k,bi,bj)=
151         $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
152    #endif
153    #ifdef ALLOW_AUTODIFF_OPENAD
154                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
155         &                               fac*xx_salt(i,j,k,bi,bj) +
156       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
157  cph                gsNm1(i,j,k,bi,bj) = gsNm1(i,j,k,bi,bj) +  #else
158  cph     &                               fac*tmpfld3d(i,j,k,bi,bj)                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
159         &                               fac*tmpfld3d(i,j,k,bi,bj)
160    #endif
161    
162                enddo                enddo
163              enddo              enddo
164            enddo            enddo
165         enddo         enddo
166        enddo        enddO
167  #endif  #endif
168    
169  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
170    #ifdef ALLOW_PTRACERS
171  c--   Temperature field.  c--   Temperature field.
172        il=ilnblnk( xx_tr1_file )        il=ilnblnk( xx_tr1_file )
173        write(fnametr1(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
174       &     xx_tr1_file(1:il),'.',optimcycle       &     xx_tr1_file(1:il),'.',optimcycle
175        call active_read_xyz( fnametr1, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
176       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
177       &                      mythid, xx_tr1_dummy )       &                      mythid, xx_tr1_dummy )
178    
# Line 151  c--   Temperature field. Line 181  c--   Temperature field.
181            do k = 1,nr            do k = 1,nr
182              do j = jmin,jmax              do j = jmin,jmax
183                do i = imin,imax                do i = imin,imax
184                  tr1(i,j,k,bi,bj) = tr1(i,j,k,bi,bj) +                  ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) +
185       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
 cph                gtr1Nm1(i,j,k,bi,bj) = gtr1Nm1(i,j,k,bi,bj) +  
 cph     &                               fac*tmpfld3d(i,j,k,bi,bj)  
186                enddo                enddo
187              enddo              enddo
188            enddo            enddo
189         enddo         enddo
190        enddo        enddo
191  #endif  #endif
192    #endif
193    
194    #ifdef ALLOW_SST0_CONTROL
195    c--   sst0.
196          il=ilnblnk( xx_sst_file )
197          write(fnamegeneric(1:80),'(2a,i10.10)')
198         &     xx_sst_file(1:il),'.',optimcycle
199          call active_read_xy ( fnamegeneric, tmpfld2d, 1,
200         &                      doglobalread, ladinit, optimcycle,
201         &                      mythid, xx_sst_dummy )
202          do bj = jtlo,jthi
203            do bi = itlo,ithi
204              do j = jmin,jmax
205                do i = imin,imax
206    cph              sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
207                  theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
208         &                             + tmpfld2d(i,j,bi,bj)
209                enddo
210              enddo
211            enddo
212          enddo
213    #endif
214    
215    #ifdef ALLOW_SSS0_CONTROL
216    c--   sss0.
217          il=ilnblnk( xx_sss_file )
218          write(fnamegeneric(1:80),'(2a,i10.10)')
219         &     xx_sss_file(1:il),'.',optimcycle
220          call active_read_xy ( fnamegeneric, tmpfld2d, 1,
221         &                      doglobalread, ladinit, optimcycle,
222         &                      mythid, xx_sss_dummy )
223          do bj = jtlo,jthi
224            do bi = itlo,ithi
225              do j = jmin,jmax
226                do i = imin,imax
227    cph              sss(i,j,bi,bj) = sss(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
228                  salt(i,j,1,bi,bj) = salt(i,j,1,bi,bj)
229         &                             + tmpfld2d(i,j,bi,bj)
230                enddo
231              enddo
232            enddo
233          enddo
234    #endif
235    
236    #ifdef ALLOW_AUTODIFF
237  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
238  c--   diffkr.  c--   diffkr.
239        il=ilnblnk( xx_diffkr_file )        il=ilnblnk( xx_diffkr_file )
240        write(fnamediffkr(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
241       &     xx_diffkr_file(1:il),'.',optimcycle       &     xx_diffkr_file(1:il),'.',optimcycle
242        call active_read_xyz( fnamediffkr, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
243       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
244       &                      mythid, xx_diffkr_dummy )       &                      mythid, xx_diffkr_dummy )
245        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 183  c--   diffkr. Line 255  c--   diffkr.
255         enddo         enddo
256        enddo        enddo
257  #endif  #endif
258    #endif
259    
260    #ifdef ALLOW_AUTODIFF
261  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
262  c--   kapgm.  c--   kapgm.
263        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
264        write(fnamekapgm(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
265       &     xx_kapgm_file(1:il),'.',optimcycle       &     xx_kapgm_file(1:il),'.',optimcycle
266        call active_read_xyz( fnamekapgm, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
267       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
268       &                      mythid, xx_kapgm_dummy )       &                      mythid, xx_kapgm_dummy )
269        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 205  c--   kapgm. Line 279  c--   kapgm.
279         enddo         enddo
280        enddo        enddo
281  #endif  #endif
282    #endif
283    
284    #ifdef ALLOW_AUTODIFF
285    #ifdef ALLOW_KAPREDI_CONTROL
286    c--   kapredi.
287          il=ilnblnk( xx_kapredi_file )
288          write(fnamegeneric(1:80),'(2a,i10.10)')
289         &     xx_kapredi_file(1:il),'.',optimcycle
290          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
291         &                      doglobalread, ladinit, optimcycle,
292         &                      mythid, xx_kapredi_dummy )
293          do bj = jtlo,jthi
294            do bi = itlo,ithi
295              do k = 1,nr
296                do j = jmin,jmax
297                  do i = imin,imax
298                    kapredi(i,j,k,bi,bj) = kapredi(i,j,k,bi,bj) +
299         &                               tmpfld3d(i,j,k,bi,bj)
300                  enddo
301                enddo
302              enddo
303           enddo
304          enddo
305    #endif
306    #endif
307    
308  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
309  c--   y-component EP-flux field.  c--   y-component EP-flux field.
310        il=ilnblnk( xx_efluxy_file )        il=ilnblnk( xx_efluxy_file )
311        write(fnameefluxy(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
312       &     xx_efluxy_file(1:il),'.',optimcycle       &     xx_efluxy_file(1:il),'.',optimcycle
313        call active_read_xyz( fnameefluxy, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
314       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
315       &                      mythid, xx_efluxy_dummy )       &                      mythid, xx_efluxy_dummy )
316    
# Line 236  cph     & Line 335  cph     &
335  #ifdef ALLOW_EFLUXP0_CONTROL  #ifdef ALLOW_EFLUXP0_CONTROL
336  c--   p-component EP-flux field.  c--   p-component EP-flux field.
337        il=ilnblnk( xx_efluxp_file )        il=ilnblnk( xx_efluxp_file )
338        write(fnameefluxp(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
339       &     xx_efluxp_file(1:il),'.',optimcycle       &     xx_efluxp_file(1:il),'.',optimcycle
340        call active_read_xyz( fnameefluxp, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
341       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
342       &                      mythid, xx_efluxp_dummy )       &                      mythid, xx_efluxp_dummy )
343    
# Line 265  cph     & Line 364  cph     &
364  #ifdef ALLOW_BOTTOMDRAG_CONTROL  #ifdef ALLOW_BOTTOMDRAG_CONTROL
365  c--   bottom drag  c--   bottom drag
366        il=ilnblnk( xx_bottomdrag_file )        il=ilnblnk( xx_bottomdrag_file )
367        write(fnamebottomdrag(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
368       &     xx_bottomdrag_file(1:il),'.',optimcycle       &     xx_bottomdrag_file(1:il),'.',optimcycle
369        call active_read_xy ( fnamebottomdrag, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
370       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
371       &                      mythid, xx_bottomdrag_dummy )       &                      mythid, xx_bottomdrag_dummy )
372        do bj = jtlo,jthi        do bj = jtlo,jthi
373          do bi = itlo,ithi          do bi = itlo,ithi
374            do j = jmin,jmax            do j = jmin,jmax
375              do i = imin,imax              do i = imin,imax
376                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)
377       &                                   + tmpfld2d(i,j,bi,bj)       &                                   + tmpfld2d(i,j,bi,bj)
378              enddo              enddo
379            enddo            enddo
# Line 282  c--   bottom drag Line 381  c--   bottom drag
381        enddo        enddo
382  #endif  #endif
383    
384    #ifdef ALLOW_EDTAUX_CONTROL
385    c-- zonal eddy stress : edtaux
386          il=ilnblnk( xx_edtaux_file )
387          write(fnamegeneric(1:80),'(2a,i10.10)')
388         &     xx_edtaux_file(1:il),'.',optimcycle
389          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
390         &                      doglobalread, ladinit, optimcycle,
391         &                      mythid, xx_edtaux_dummy )
392          do bj = jtlo,jthi
393            do bi = itlo,ithi
394              do k = 1,nr
395                do j = jmin,jmax
396                  do i = imin,imax
397                    eddyTauX(i,j,k,bi,bj) = eddyTauX(i,j,k,bi,bj) +
398         &            fCori(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)
399                  enddo
400                enddo
401              enddo
402           enddo
403          enddo
404    #endif
405    
406    #ifdef ALLOW_EDTAUY_CONTROL
407    c-- meridional eddy stress : edtauy
408          il=ilnblnk( xx_edtauy_file )
409          write(fnamegeneric(1:80),'(2a,i10.10)')
410         &     xx_edtauy_file(1:il),'.',optimcycle
411          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
412         &                      doglobalread, ladinit, optimcycle,
413         &                      mythid, xx_edtauy_dummy )
414          do bj = jtlo,jthi
415            do bi = itlo,ithi
416              do k = 1,nr
417                do j = jmin,jmax
418                  do i = imin,imax
419                    eddyTauY(i,j,k,bi,bj) = eddyTauY(i,j,k,bi,bj) +
420         &            fCoriG(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)
421                  enddo
422                enddo
423              enddo
424           enddo
425          enddo
426    #endif
427    
428    #ifdef ALLOW_UVEL0_CONTROL
429    c-- initial zonal velocity
430          il=ilnblnk( xx_uvel_file )
431          write(fnamegeneric(1:80),'(2a,i10.10)')
432         &     xx_uvel_file(1:il),'.',optimcycle
433          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
434         &                      doglobalread, ladinit, optimcycle,
435         &                      mythid, xx_uvel_dummy )
436          do bj = jtlo,jthi
437            do bi = itlo,ithi
438              do k = 1,nr
439                do j = jmin,jmax
440                  do i = imin,imax
441    #ifdef ALLOW_AUTODIFF_OPENAD
442                    uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
443         &                                  fac*xx_uvel(i,j,k,bi,bj)
444    #else
445                    uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
446         &                                  fac*tmpfld3d(i,j,k,bi,bj)
447    #endif
448                  enddo
449                enddo
450              enddo
451           enddo
452          enddo
453    #endif
454    
455    #ifdef ALLOW_VVEL0_CONTROL
456    c-- initial merid. velocity
457          il=ilnblnk( xx_vvel_file )
458          write(fnamegeneric(1:80),'(2a,i10.10)')
459         &     xx_vvel_file(1:il),'.',optimcycle
460          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
461         &                      doglobalread, ladinit, optimcycle,
462         &                      mythid, xx_vvel_dummy )
463          do bj = jtlo,jthi
464            do bi = itlo,ithi
465              do k = 1,nr
466                do j = jmin,jmax
467                  do i = imin,imax
468    #ifdef ALLOW_AUTODIFF_OPENAD
469                    vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
470         &                                  fac*xx_vvel(i,j,k,bi,bj)
471    #else
472                    vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
473         &                                  fac*tmpfld3d(i,j,k,bi,bj)
474    #endif
475                  enddo
476                enddo
477              enddo
478           enddo
479          enddo
480    #endif
481    
482    #ifdef ALLOW_ETAN0_CONTROL
483    c--   initial Eta.
484          il=ilnblnk( xx_etan_file )
485          write(fnamegeneric(1:80),'(2a,i10.10)')
486         &     xx_etan_file(1:il),'.',optimcycle
487          call active_read_xy ( fnamegeneric, tmpfld2d, 1,
488         &                      doglobalread, ladinit, optimcycle,
489         &                      mythid, xx_etan_dummy )
490          do bj = jtlo,jthi
491            do bi = itlo,ithi
492              do j = jmin,jmax
493                do i = imin,imax
494    #ifdef ALLOW_AUTODIFF_OPENAD
495                  etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
496         &                              fac*xx_etan(i,j,bi,bj)
497    #else
498                  etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
499         &                              fac*tmpfld2d(i,j,bi,bj)
500    #endif
501                enddo
502              enddo
503            enddo
504          enddo
505    #endif
506    
507    #ifdef ALLOW_RELAXSST_CONTROL
508    c--   SST relaxation coefficient.
509          il=ilnblnk( xx_relaxsst_file )
510          write(fnamegeneric(1:80),'(2a,i10.10)')
511         &     xx_relaxsst_file(1:il),'.',optimcycle
512          call active_read_xy ( fnamegeneric, tmpfld2d, 1,
513         &                      doglobalread, ladinit, optimcycle,
514         &                      mythid, xx_relaxsst_dummy )
515          do bj = jtlo,jthi
516            do bi = itlo,ithi
517              do j = jmin,jmax
518                do i = imin,imax
519                  lambdaThetaClimRelax(i,j,bi,bj) =
520         &              lambdaThetaClimRelax(i,j,bi,bj)
521         &              + tmpfld2d(i,j,bi,bj)
522                enddo
523              enddo
524            enddo
525          enddo
526    #endif
527    
528    #ifdef ALLOW_RELAXSSS_CONTROL
529    c--   SSS relaxation coefficient.
530          il=ilnblnk( xx_relaxsss_file )
531          write(fnamegeneric(1:80),'(2a,i10.10)')
532         &     xx_relaxsss_file(1:il),'.',optimcycle
533          call active_read_xy ( fnamegeneric, tmpfld2d, 1,
534         &                      doglobalread, ladinit, optimcycle,
535         &                      mythid, xx_relaxsss_dummy )
536          do bj = jtlo,jthi
537            do bi = itlo,ithi
538              do j = jmin,jmax
539                do i = imin,imax
540                  lambdaSaltClimRelax(i,j,bi,bj) =
541         &              lambdaSaltClimRelax(i,j,bi,bj)
542         &              + tmpfld2d(i,j,bi,bj)
543                enddo
544              enddo
545            enddo
546          enddo
547    #endif
548    
549    #ifdef ALLOW_SEAICE
550          call seaice_ctrl_map_ini( mythid )
551    #endif
552    
553  c--   Update the tile edges.  c--   Update the tile edges.
554    
555  #ifdef ALLOW_THETA0_CONTROL  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))
556        _EXCH_XYZ_R8( theta, mythid )        _EXCH_XYZ_R8( theta, mythid )
 cph      _EXCH_XYZ_R8( gtNm1, mythid )  
557  #endif  #endif
558  #ifdef ALLOW_SALT0_CONTROL  #if (defined (ALLOW_SALT0_CONTROL) || defined (ALLOW_SSS0_CONTROL))
559        _EXCH_XYZ_R8(  salt, mythid )        _EXCH_XYZ_R8(  salt, mythid )
 cph      _EXCH_XYZ_R8( gsNm1, mythid )  
560  #endif  #endif
561  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
562        _EXCH_XYZ_R8(     tr1, mythid )  #ifdef ALLOW_PTRACERS
563  cph      _EXCH_XYZ_R8( gTr1Nm1, mythid )        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)
564  #endif  #endif
 #ifdef ALLOW_DIFFKR_CONTROL  
       _EXCH_XYZ_R8( diffkr, mythid)  
565  #endif  #endif
566  #ifdef ALLOW_KAPGM_CONTROL  
567    #ifdef ALLOW_AUTODIFF
568    # ifdef ALLOW_DIFFKR_CONTROL
569          _EXCH_XYZ_R8( diffkr, mythid)
570    # endif
571    # ifdef ALLOW_KAPGM_CONTROL
572        _EXCH_XYZ_R8( kapgm, mythid)        _EXCH_XYZ_R8( kapgm, mythid)
573    # endif
574    # ifdef ALLOW_KAPREDI_CONTROL
575          _EXCH_XYZ_R8( kapredi, mythid)
576    # endif
577  #endif  #endif
578    
579  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
580        _EXCH_XYZ_R8( EfluxY, mythid )        _EXCH_XYZ_R8( EfluxY, mythid )
581  #endif  #endif
# Line 313  cph      _EXCH_XYZ_R8( gTr1Nm1, mythid ) Line 586  cph      _EXCH_XYZ_R8( gTr1Nm1, mythid )
586        _EXCH_XY_R8( bottomdragfld, mythid )        _EXCH_XY_R8( bottomdragfld, mythid )
587  #endif  #endif
588    
589    #if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL))
590           CALL EXCH_UV_XYZ_RS(eddyTauX,eddyTauY,.TRUE.,myThid)
591    #elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL))
592           STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'
593    #endif
594    
595    #ifdef ALLOW_UVEL0_CONTROL
596          _EXCH_XYZ_R8( uVel, mythid)
597    #endif
598    
599    #ifdef ALLOW_VVEL0_CONTROL
600          _EXCH_XYZ_R8( vVel, mythid)
601    #endif
602    
603    #ifdef ALLOW_ETAN0_CONTROL
604          _EXCH_XY_R8( etaN, mythid )
605    #endif
606    
607    #ifdef ALLOW_RELAXSST_CONTROL
608          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
609    #endif
610    
611    #ifdef ALLOW_RELAXSSS_CONTROL
612          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
613    #endif
614    
615        return        return
616        end        end

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.22