/[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.20 by heimbach, Wed Feb 15 03:52:54 2006 UTC revision 1.32 by jmc, Tue Apr 28 18:09:28 2009 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 31  c     == global variables == Line 32  c     == global variables ==
32  #include "optim.h"  #include "optim.h"
33  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
34  # include "PTRACERS_SIZE.h"  # include "PTRACERS_SIZE.h"
35  # include "PTRACERS.h"  c#include "PTRACERS_PARAMS.h"
36    # include "PTRACERS_FIELDS.h"
37  #endif  #endif
38  #ifdef ALLOW_ECCO  #ifdef ALLOW_ECCO
39  # include "ecco_cost.h"  # include "ecco_cost.h"
# Line 93  c--   Temperature field. Line 95  c--   Temperature field.
95        il=ilnblnk( xx_theta_file )        il=ilnblnk( xx_theta_file )
96        write(fnamegeneric(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_loc( fnamegeneric, 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 108  c--   Temperature field. Line 110  c--   Temperature field.
110       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
111       $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))       $          sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
112  #endif  #endif
113  #ifdef ALLOW_OPENAD  #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)       &                               fac*xx_theta(i,j,k,bi,bj) +
116         &                               fac*tmpfld3d(i,j,k,bi,bj)
117  #else  #else
118                  theta(i,j,k,bi,bj) = theta(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)       &                               fac*tmpfld3d(i,j,k,bi,bj)
120  #endif  #endif
121                  if(theta(i,j,k,bi,bj).lt.-2.0)  #ifndef DISABLE_CTRL_THETA_LIMIT
122       &               theta(i,j,k,bi,bj)= -2.0                  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
# Line 130  c--   Temperature field. Line 135  c--   Temperature field.
135        il=ilnblnk( xx_salt_file )        il=ilnblnk( xx_salt_file )
136        write(fnamegeneric(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_loc( fnamegeneric, 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 145  c--   Temperature field. Line 150  c--   Temperature field.
150       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
151       $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))       $          sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj))
152  #endif  #endif
153  #ifdef ALLOW_OPENAD  #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)       &                               fac*xx_salt(i,j,k,bi,bj) +
156         &                               fac*tmpfld3d(i,j,k,bi,bj)
157  #else  #else
158                  salt(i,j,k,bi,bj) = salt(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)       &                               fac*tmpfld3d(i,j,k,bi,bj)
# Line 166  c--   Temperature field. Line 172  c--   Temperature field.
172        il=ilnblnk( xx_tr1_file )        il=ilnblnk( xx_tr1_file )
173        write(fnamegeneric(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_loc( fnamegeneric, 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 190  c--   sst0. Line 196  c--   sst0.
196        il=ilnblnk( xx_sst_file )        il=ilnblnk( xx_sst_file )
197        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
198       &     xx_sst_file(1:il),'.',optimcycle       &     xx_sst_file(1:il),'.',optimcycle
199        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
200       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
201       &                      mythid, xx_sst_dummy )       &                      mythid, xx_sst_dummy )
202        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 198  c--   sst0. Line 204  c--   sst0.
204            do j = jmin,jmax            do j = jmin,jmax
205              do i = imin,imax              do i = imin,imax
206  cph              sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)  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)                theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj)
208       &                             + tmpfld2d(i,j,bi,bj)       &                             + tmpfld2d(i,j,bi,bj)
209              enddo              enddo
210            enddo            enddo
# Line 211  c--   sss0. Line 217  c--   sss0.
217        il=ilnblnk( xx_sss_file )        il=ilnblnk( xx_sss_file )
218        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
219       &     xx_sss_file(1:il),'.',optimcycle       &     xx_sss_file(1:il),'.',optimcycle
220        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
221       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
222       &                      mythid, xx_sss_dummy )       &                      mythid, xx_sss_dummy )
223        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 227  cph              sss(i,j,bi,bj) = sss(i, Line 233  cph              sss(i,j,bi,bj) = sss(i,
233        enddo        enddo
234  #endif  #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(fnamegeneric(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_loc( fnamegeneric, 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 240  c--   diffkr. Line 247  c--   diffkr.
247            do k = 1,nr            do k = 1,nr
248              do j = jmin,jmax              do j = jmin,jmax
249                do i = imin,imax                do i = imin,imax
250    #ifdef ALLOW_AUTODIFF_OPENAD
251                    diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) +
252         &                                xx_diffkr(i,j,k,bi,bj) +
253         &                                tmpfld3d(i,j,k,bi,bj)
254    #else
255                  diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) +                  diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) +
256       &                                tmpfld3d(i,j,k,bi,bj)       &                                tmpfld3d(i,j,k,bi,bj)
257    #endif
258                enddo                enddo
259              enddo              enddo
260            enddo            enddo
261         enddo         enddo
262        enddo        enddo
263  #endif  #endif
264    #endif
265    
266    #ifdef ALLOW_AUTODIFF
267  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
268  c--   kapgm.  c--   kapgm.
269        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
270        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
271       &     xx_kapgm_file(1:il),'.',optimcycle       &     xx_kapgm_file(1:il),'.',optimcycle
272        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
273       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
274       &                      mythid, xx_kapgm_dummy )       &                      mythid, xx_kapgm_dummy )
275        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 262  c--   kapgm. Line 277  c--   kapgm.
277            do k = 1,nr            do k = 1,nr
278              do j = jmin,jmax              do j = jmin,jmax
279                do i = imin,imax                do i = imin,imax
280    #ifdef ALLOW_AUTODIFF_OPENAD
281                    kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) +
282         &                               xx_kapgm(i,j,k,bi,bj) +
283         &                               tmpfld3d(i,j,k,bi,bj)
284    #else
285                  kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) +                  kapgm(i,j,k,bi,bj) = kapgm(i,j,k,bi,bj) +
286       &                               tmpfld3d(i,j,k,bi,bj)       &                               tmpfld3d(i,j,k,bi,bj)
287    #endif
288                enddo                enddo
289              enddo              enddo
290            enddo            enddo
291         enddo         enddo
292        enddo        enddo
293  #endif  #endif
294    #endif
295    
296    #ifdef ALLOW_AUTODIFF
297    #ifdef ALLOW_KAPREDI_CONTROL
298    c--   kapredi.
299          il=ilnblnk( xx_kapredi_file )
300          write(fnamegeneric(1:80),'(2a,i10.10)')
301         &     xx_kapredi_file(1:il),'.',optimcycle
302          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
303         &                      doglobalread, ladinit, optimcycle,
304         &                      mythid, xx_kapredi_dummy )
305          do bj = jtlo,jthi
306            do bi = itlo,ithi
307              do k = 1,nr
308                do j = jmin,jmax
309                  do i = imin,imax
310                    kapredi(i,j,k,bi,bj) = kapredi(i,j,k,bi,bj) +
311         &                               tmpfld3d(i,j,k,bi,bj)
312                  enddo
313                enddo
314              enddo
315           enddo
316          enddo
317    #endif
318    #endif
319    
320  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
321  c--   y-component EP-flux field.  c--   y-component EP-flux field.
322        il=ilnblnk( xx_efluxy_file )        il=ilnblnk( xx_efluxy_file )
323        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
324       &     xx_efluxy_file(1:il),'.',optimcycle       &     xx_efluxy_file(1:il),'.',optimcycle
325        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
326       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
327       &                      mythid, xx_efluxy_dummy )       &                      mythid, xx_efluxy_dummy )
328    
# Line 303  c--   p-component EP-flux field. Line 349  c--   p-component EP-flux field.
349        il=ilnblnk( xx_efluxp_file )        il=ilnblnk( xx_efluxp_file )
350        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
351       &     xx_efluxp_file(1:il),'.',optimcycle       &     xx_efluxp_file(1:il),'.',optimcycle
352        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
353       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
354       &                      mythid, xx_efluxp_dummy )       &                      mythid, xx_efluxp_dummy )
355    
# Line 332  c--   bottom drag Line 378  c--   bottom drag
378        il=ilnblnk( xx_bottomdrag_file )        il=ilnblnk( xx_bottomdrag_file )
379        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
380       &     xx_bottomdrag_file(1:il),'.',optimcycle       &     xx_bottomdrag_file(1:il),'.',optimcycle
381        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
382       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
383       &                      mythid, xx_bottomdrag_dummy )       &                      mythid, xx_bottomdrag_dummy )
384        do bj = jtlo,jthi        do bj = jtlo,jthi
385          do bi = itlo,ithi          do bi = itlo,ithi
386            do j = jmin,jmax            do j = jmin,jmax
387              do i = imin,imax              do i = imin,imax
388                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)                bottomdragfld(i,j,bi,bj) = bottomdragfld(i,j,bi,bj)
389       &                                   + tmpfld2d(i,j,bi,bj)       &                                   + tmpfld2d(i,j,bi,bj)
390              enddo              enddo
391            enddo            enddo
# Line 347  c--   bottom drag Line 393  c--   bottom drag
393        enddo        enddo
394  #endif  #endif
395    
396  #ifdef ALLOW_EDTAUX_CONTROL  #ifdef ALLOW_EDDYPSI_CONTROL
397  c-- zonal eddy stress : edtaux  c-- zonal eddy streamfunction : eddyPsiX
398        il=ilnblnk( xx_edtaux_file )        il=ilnblnk( xx_edtaux_file )
399        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
400       &     xx_edtaux_file(1:il),'.',optimcycle       &     xx_edtaux_file(1:il),'.',optimcycle
# Line 360  c-- zonal eddy stress : edtaux Line 406  c-- zonal eddy stress : edtaux
406            do k = 1,nr            do k = 1,nr
407              do j = jmin,jmax              do j = jmin,jmax
408                do i = imin,imax                do i = imin,imax
409                  eddyTauX(i,j,k,bi,bj) = eddyTauX(i,j,k,bi,bj) +                  eddyPsiX(i,j,k,bi,bj) = eddyPsiX(i,j,k,bi,bj) +
410       &            fCori(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)       &            tmpfld3d(i,j,k,bi,bj)
411                enddo                enddo
412              enddo              enddo
413            enddo            enddo
414         enddo         enddo
415        enddo        enddo
416  #endif  c-- meridional eddy streamfunction : eddyPsiY
   
 #ifdef ALLOW_EDTAUY_CONTROL  
 c-- meridional eddy stress : edtauy  
417        il=ilnblnk( xx_edtauy_file )        il=ilnblnk( xx_edtauy_file )
418        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
419       &     xx_edtauy_file(1:il),'.',optimcycle       &     xx_edtauy_file(1:il),'.',optimcycle
# Line 382  c-- meridional eddy stress : edtauy Line 425  c-- meridional eddy stress : edtauy
425            do k = 1,nr            do k = 1,nr
426              do j = jmin,jmax              do j = jmin,jmax
427                do i = imin,imax                do i = imin,imax
428                  eddyTauY(i,j,k,bi,bj) = eddyTauY(i,j,k,bi,bj) +                  eddyPsiY(i,j,k,bi,bj) = eddyPsiY(i,j,k,bi,bj) +
429       &            fCoriG(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)       &            tmpfld3d(i,j,k,bi,bj)
430                enddo                enddo
431              enddo              enddo
432            enddo            enddo
# Line 404  c-- initial zonal velocity Line 447  c-- initial zonal velocity
447            do k = 1,nr            do k = 1,nr
448              do j = jmin,jmax              do j = jmin,jmax
449                do i = imin,imax                do i = imin,imax
450  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
451                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +                  uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
452       &                                  fac*xx_uvel(i,j,k,bi,bj)       &                                  fac*xx_uvel(i,j,k,bi,bj)
453  #else  #else
# Line 431  c-- initial merid. velocity Line 474  c-- initial merid. velocity
474            do k = 1,nr            do k = 1,nr
475              do j = jmin,jmax              do j = jmin,jmax
476                do i = imin,imax                do i = imin,imax
477  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
478                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +                  vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
479       &                                  fac*xx_vvel(i,j,k,bi,bj)       &                                  fac*xx_vvel(i,j,k,bi,bj)
480  #else  #else
# Line 450  c--   initial Eta. Line 493  c--   initial Eta.
493        il=ilnblnk( xx_etan_file )        il=ilnblnk( xx_etan_file )
494        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
495       &     xx_etan_file(1:il),'.',optimcycle       &     xx_etan_file(1:il),'.',optimcycle
496        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
497       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
498       &                      mythid, xx_etan_dummy )       &                      mythid, xx_etan_dummy )
499        do bj = jtlo,jthi        do bj = jtlo,jthi
500          do bi = itlo,ithi          do bi = itlo,ithi
501            do j = jmin,jmax            do j = jmin,jmax
502              do i = imin,imax              do i = imin,imax
503  #ifdef ALLOW_OPENAD  #ifdef ALLOW_AUTODIFF_OPENAD
504                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
505       &                              fac*xx_etan(i,j,bi,bj)       &                              fac*xx_etan(i,j,bi,bj)
506  #else  #else
507                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +                etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
508       &                              fac*tmpfld2d(i,j,bi,bj)       &                              fac*tmpfld2d(i,j,bi,bj)
509  #endif  #endif
510              enddo              enddo
# Line 475  c--   SST relaxation coefficient. Line 518  c--   SST relaxation coefficient.
518        il=ilnblnk( xx_relaxsst_file )        il=ilnblnk( xx_relaxsst_file )
519        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
520       &     xx_relaxsst_file(1:il),'.',optimcycle       &     xx_relaxsst_file(1:il),'.',optimcycle
521        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
522       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
523       &                      mythid, xx_relaxsst_dummy )       &                      mythid, xx_relaxsst_dummy )
524        do bj = jtlo,jthi        do bj = jtlo,jthi
525          do bi = itlo,ithi          do bi = itlo,ithi
526            do j = jmin,jmax            do j = jmin,jmax
527              do i = imin,imax              do i = imin,imax
528                lambdaThetaClimRelax(i,j,bi,bj) =                lambdaThetaClimRelax(i,j,bi,bj) =
529       &              lambdaThetaClimRelax(i,j,bi,bj)       &              lambdaThetaClimRelax(i,j,bi,bj)
530       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
531              enddo              enddo
532            enddo            enddo
# Line 496  c--   SSS relaxation coefficient. Line 539  c--   SSS relaxation coefficient.
539        il=ilnblnk( xx_relaxsss_file )        il=ilnblnk( xx_relaxsss_file )
540        write(fnamegeneric(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
541       &     xx_relaxsss_file(1:il),'.',optimcycle       &     xx_relaxsss_file(1:il),'.',optimcycle
542        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,        call active_read_xy ( fnamegeneric, tmpfld2d, 1,
543       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
544       &                      mythid, xx_relaxsss_dummy )       &                      mythid, xx_relaxsss_dummy )
545        do bj = jtlo,jthi        do bj = jtlo,jthi
546          do bi = itlo,ithi          do bi = itlo,ithi
547            do j = jmin,jmax            do j = jmin,jmax
548              do i = imin,imax              do i = imin,imax
549                lambdaSaltClimRelax(i,j,bi,bj) =                lambdaSaltClimRelax(i,j,bi,bj) =
550       &              lambdaSaltClimRelax(i,j,bi,bj)       &              lambdaSaltClimRelax(i,j,bi,bj)
551       &              + tmpfld2d(i,j,bi,bj)       &              + tmpfld2d(i,j,bi,bj)
552              enddo              enddo
553            enddo            enddo
# Line 512  c--   SSS relaxation coefficient. Line 555  c--   SSS relaxation coefficient.
555        enddo        enddo
556  #endif  #endif
557    
558    #ifdef ALLOW_SEAICE
559          call seaice_ctrl_map_ini( mythid )
560    #endif
561    
562  c--   Update the tile edges.  c--   Update the tile edges.
563    
564  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))
565        _EXCH_XYZ_R8( theta, mythid )        _EXCH_XYZ_RL( theta, mythid )
566  #endif  #endif
567  #if (defined (ALLOW_SALT0_CONTROL) || defined (ALLOW_SSS0_CONTROL))  #if (defined (ALLOW_SALT0_CONTROL) || defined (ALLOW_SSS0_CONTROL))
568        _EXCH_XYZ_R8(  salt, mythid )        _EXCH_XYZ_RL(  salt, mythid )
569  #endif  #endif
570  #ifdef ALLOW_TR10_CONTROL  #ifdef ALLOW_TR10_CONTROL
571  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
572        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)        _EXCH_XYZ_RL(pTracer(1-Olx,1-Oly,1,1,1,1),myThid)
573  #endif  #endif
574  #endif  #endif
575  #ifdef ALLOW_DIFFKR_CONTROL  
576        _EXCH_XYZ_R8( diffkr, mythid)  #ifdef ALLOW_AUTODIFF
577  #endif  # ifdef ALLOW_DIFFKR_CONTROL
578  #ifdef ALLOW_KAPGM_CONTROL        _EXCH_XYZ_RL( diffkr, mythid)
579        _EXCH_XYZ_R8( kapgm, mythid)  # endif
580    # ifdef ALLOW_KAPGM_CONTROL
581          _EXCH_XYZ_RL( kapgm, mythid)
582    # endif
583    # ifdef ALLOW_KAPREDI_CONTROL
584          _EXCH_XYZ_RL( kapredi, mythid)
585    # endif
586  #endif  #endif
587    
588  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
589        _EXCH_XYZ_R8( EfluxY, mythid )        _EXCH_XYZ_RL( EfluxY, mythid )
590  #endif  #endif
591  #ifdef ALLOW_EFLUXP0_CONTROL  #ifdef ALLOW_EFLUXP0_CONTROL
592        _EXCH_XYZ_R8( EfluxP, mythid )        _EXCH_XYZ_RL( EfluxP, mythid )
593  #endif  #endif
594  #ifdef ALLOW_BOTTOMDRAG_CONTROL  #ifdef ALLOW_BOTTOMDRAG_CONTROL
595        _EXCH_XY_R8( bottomdragfld, mythid )        _EXCH_XY_RL( bottomdragfld, mythid )
596  #endif  #endif
597    
598  #if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL))  #ifdef ALLOW_EDDYPSI_CONTROL
599         CALL EXCH_UV_XYZ_RS(eddyTauX,eddyTauY,.TRUE.,myThid)         CALL EXCH_UV_XYZ_RS(eddyPsiX,eddyPsiY,.TRUE.,myThid)
 #elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL))  
        STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'  
600  #endif  #endif
601    
602  #ifdef ALLOW_UVEL0_CONTROL  #ifdef ALLOW_UVEL0_CONTROL
603        _EXCH_XYZ_R8( uVel, mythid)        _EXCH_XYZ_RL( uVel, mythid)
604  #endif  #endif
605    
606  #ifdef ALLOW_VVEL0_CONTROL  #ifdef ALLOW_VVEL0_CONTROL
607        _EXCH_XYZ_R8( vVel, mythid)        _EXCH_XYZ_RL( vVel, mythid)
608  #endif  #endif
609    
610  #ifdef ALLOW_ETAN0_CONTROL  #ifdef ALLOW_ETAN0_CONTROL
611        _EXCH_XY_R8( etaN, mythid )        _EXCH_XY_RL( etaN, mythid )
612  #endif  #endif
613    
614  #ifdef ALLOW_RELAXSST_CONTROL  #ifdef ALLOW_RELAXSST_CONTROL
615        _EXCH_XY_R4( lambdaThetaClimRelax, mythid )        _EXCH_XY_RS( lambdaThetaClimRelax, mythid )
616  #endif  #endif
617    
618  #ifdef ALLOW_RELAXSSS_CONTROL  #ifdef ALLOW_RELAXSSS_CONTROL
619        _EXCH_XY_R4( lambdaThetaClimRelax, mythid )        _EXCH_XY_RS( lambdaThetaClimRelax, mythid )
620  #endif  #endif
621    
622        return        return

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.32

  ViewVC Help
Powered by ViewVC 1.1.22