/[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.16 by heimbach, Mon Feb 28 19:05:12 2005 UTC revision 1.20 by heimbach, Wed Feb 15 03:52:54 2006 UTC
# Line 56  c     == local variables == Line 56  c     == local variables ==
56        logical doglobalread        logical doglobalread
57        logical ladinit        logical ladinit
58    
59        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  
       character*( 80)   fnamesss  
       character*( 80)   fnamesst  
       character*( 80)   fnameedtaux  
       character*( 80)   fnameedtauy  
60    
61        _RL     fac        _RL     fac
62        _RL tmptest        _RL tmptest
# Line 102  CEOP Line 91  CEOP
91  #ifdef ALLOW_THETA0_CONTROL  #ifdef ALLOW_THETA0_CONTROL
92  c--   Temperature field.  c--   Temperature field.
93        il=ilnblnk( xx_theta_file )        il=ilnblnk( xx_theta_file )
94        write(fnametheta(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
95       &     xx_theta_file(1:il),'.',optimcycle       &     xx_theta_file(1:il),'.',optimcycle
96        call active_read_xyz_loc( fnametheta, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
97       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
98       &                      mythid, xx_theta_dummy )       &                      mythid, xx_theta_dummy )
99    
# Line 119  c--   Temperature field. Line 108  c--   Temperature field.
108       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
109       $          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))
110  #endif  #endif
111    #ifdef ALLOW_OPENAD
112                    theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
113         &                               fac*xx_theta(i,j,k,bi,bj)
114    #else
115                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +                  theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +
116       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
117    #endif
118                  if(theta(i,j,k,bi,bj).lt.-2.0)                  if(theta(i,j,k,bi,bj).lt.-2.0)
119       &               theta(i,j,k,bi,bj)= -2.0       &               theta(i,j,k,bi,bj)= -2.0
120                enddo                enddo
# Line 134  c--   Temperature field. Line 128  c--   Temperature field.
128  #ifdef ALLOW_SALT0_CONTROL  #ifdef ALLOW_SALT0_CONTROL
129  c--   Temperature field.  c--   Temperature field.
130        il=ilnblnk( xx_salt_file )        il=ilnblnk( xx_salt_file )
131        write(fnamesalt(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
132       &     xx_salt_file(1:il),'.',optimcycle       &     xx_salt_file(1:il),'.',optimcycle
133        call active_read_xyz_loc( fnamesalt, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
134       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
135       &                      mythid, xx_salt_dummy )       &                      mythid, xx_salt_dummy )
136    
# Line 151  c--   Temperature field. Line 145  c--   Temperature field.
145       $          tmpfld3d(i,j,k,bi,bj)=       $          tmpfld3d(i,j,k,bi,bj)=
146       $          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))
147  #endif  #endif
148    #ifdef ALLOW_OPENAD
149                    salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
150         &                               fac*xx_salt(i,j,k,bi,bj)
151    #else
152                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +                  salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) +
153       &                               fac*tmpfld3d(i,j,k,bi,bj)       &                               fac*tmpfld3d(i,j,k,bi,bj)
154    #endif
155    
156                enddo                enddo
157              enddo              enddo
# Line 165  c--   Temperature field. Line 164  c--   Temperature field.
164  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
165  c--   Temperature field.  c--   Temperature field.
166        il=ilnblnk( xx_tr1_file )        il=ilnblnk( xx_tr1_file )
167        write(fnametr1(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
168       &     xx_tr1_file(1:il),'.',optimcycle       &     xx_tr1_file(1:il),'.',optimcycle
169        call active_read_xyz_loc( fnametr1, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
170       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
171       &                      mythid, xx_tr1_dummy )       &                      mythid, xx_tr1_dummy )
172    
# Line 189  c--   Temperature field. Line 188  c--   Temperature field.
188  #ifdef ALLOW_SST0_CONTROL  #ifdef ALLOW_SST0_CONTROL
189  c--   sst0.  c--   sst0.
190        il=ilnblnk( xx_sst_file )        il=ilnblnk( xx_sst_file )
191        write(fnamesst(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
192       &     xx_sst_file(1:il),'.',optimcycle       &     xx_sst_file(1:il),'.',optimcycle
193        call active_read_xy_loc ( fnamesst, tmpfld2d, 1,        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
194       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
195       &                      mythid, xx_sst_dummy )       &                      mythid, xx_sst_dummy )
196        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 210  cph              sst(i,j,bi,bj) = sst(i, Line 209  cph              sst(i,j,bi,bj) = sst(i,
209  #ifdef ALLOW_SSS0_CONTROL  #ifdef ALLOW_SSS0_CONTROL
210  c--   sss0.  c--   sss0.
211        il=ilnblnk( xx_sss_file )        il=ilnblnk( xx_sss_file )
212        write(fnamesss(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
213       &     xx_sss_file(1:il),'.',optimcycle       &     xx_sss_file(1:il),'.',optimcycle
214        call active_read_xy_loc ( fnamesss, tmpfld2d, 1,        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
215       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
216       &                      mythid, xx_sss_dummy )       &                      mythid, xx_sss_dummy )
217        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 231  cph              sss(i,j,bi,bj) = sss(i, Line 230  cph              sss(i,j,bi,bj) = sss(i,
230  #ifdef ALLOW_DIFFKR_CONTROL  #ifdef ALLOW_DIFFKR_CONTROL
231  c--   diffkr.  c--   diffkr.
232        il=ilnblnk( xx_diffkr_file )        il=ilnblnk( xx_diffkr_file )
233        write(fnamediffkr(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
234       &     xx_diffkr_file(1:il),'.',optimcycle       &     xx_diffkr_file(1:il),'.',optimcycle
235        call active_read_xyz_loc( fnamediffkr, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
236       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
237       &                      mythid, xx_diffkr_dummy )       &                      mythid, xx_diffkr_dummy )
238        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 253  c--   diffkr. Line 252  c--   diffkr.
252  #ifdef ALLOW_KAPGM_CONTROL  #ifdef ALLOW_KAPGM_CONTROL
253  c--   kapgm.  c--   kapgm.
254        il=ilnblnk( xx_kapgm_file )        il=ilnblnk( xx_kapgm_file )
255        write(fnamekapgm(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
256       &     xx_kapgm_file(1:il),'.',optimcycle       &     xx_kapgm_file(1:il),'.',optimcycle
257        call active_read_xyz_loc( fnamekapgm, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
258       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
259       &                      mythid, xx_kapgm_dummy )       &                      mythid, xx_kapgm_dummy )
260        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 275  c--   kapgm. Line 274  c--   kapgm.
274  #ifdef ALLOW_EFLUXY0_CONTROL  #ifdef ALLOW_EFLUXY0_CONTROL
275  c--   y-component EP-flux field.  c--   y-component EP-flux field.
276        il=ilnblnk( xx_efluxy_file )        il=ilnblnk( xx_efluxy_file )
277        write(fnameefluxy(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
278       &     xx_efluxy_file(1:il),'.',optimcycle       &     xx_efluxy_file(1:il),'.',optimcycle
279        call active_read_xyz_loc( fnameefluxy, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
280       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
281       &                      mythid, xx_efluxy_dummy )       &                      mythid, xx_efluxy_dummy )
282    
# Line 302  cph     & Line 301  cph     &
301  #ifdef ALLOW_EFLUXP0_CONTROL  #ifdef ALLOW_EFLUXP0_CONTROL
302  c--   p-component EP-flux field.  c--   p-component EP-flux field.
303        il=ilnblnk( xx_efluxp_file )        il=ilnblnk( xx_efluxp_file )
304        write(fnameefluxp(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
305       &     xx_efluxp_file(1:il),'.',optimcycle       &     xx_efluxp_file(1:il),'.',optimcycle
306        call active_read_xyz_loc( fnameefluxp, tmpfld3d, 1,        call active_read_xyz_loc( fnamegeneric, tmpfld3d, 1,
307       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
308       &                      mythid, xx_efluxp_dummy )       &                      mythid, xx_efluxp_dummy )
309    
# Line 331  cph     & Line 330  cph     &
330  #ifdef ALLOW_BOTTOMDRAG_CONTROL  #ifdef ALLOW_BOTTOMDRAG_CONTROL
331  c--   bottom drag  c--   bottom drag
332        il=ilnblnk( xx_bottomdrag_file )        il=ilnblnk( xx_bottomdrag_file )
333        write(fnamebottomdrag(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
334       &     xx_bottomdrag_file(1:il),'.',optimcycle       &     xx_bottomdrag_file(1:il),'.',optimcycle
335        call active_read_xy_loc ( fnamebottomdrag, tmpfld2d, 1,        call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
336       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
337       &                      mythid, xx_bottomdrag_dummy )       &                      mythid, xx_bottomdrag_dummy )
338        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 351  c--   bottom drag Line 350  c--   bottom drag
350  #ifdef ALLOW_EDTAUX_CONTROL  #ifdef ALLOW_EDTAUX_CONTROL
351  c-- zonal eddy stress : edtaux  c-- zonal eddy stress : edtaux
352        il=ilnblnk( xx_edtaux_file )        il=ilnblnk( xx_edtaux_file )
353        write(fnameedtaux(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
354       &     xx_edtaux_file(1:il),'.',optimcycle       &     xx_edtaux_file(1:il),'.',optimcycle
355        call active_read_xyz( fnameedtaux, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
356       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
357       &                      mythid, xx_edtaux_dummy )       &                      mythid, xx_edtaux_dummy )
358        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 361  c-- zonal eddy stress : edtaux Line 360  c-- zonal eddy stress : edtaux
360            do k = 1,nr            do k = 1,nr
361              do j = jmin,jmax              do j = jmin,jmax
362                do i = imin,imax                do i = imin,imax
363                  Eddytaux(i,j,k,bi,bj) = Eddytaux(i,j,k,bi,bj) +                  eddyTauX(i,j,k,bi,bj) = eddyTauX(i,j,k,bi,bj) +
364       &                                tmpfld3d(i,j,k,bi,bj)       &            fCori(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)
365                enddo                enddo
366              enddo              enddo
367            enddo            enddo
# Line 373  c-- zonal eddy stress : edtaux Line 372  c-- zonal eddy stress : edtaux
372  #ifdef ALLOW_EDTAUY_CONTROL  #ifdef ALLOW_EDTAUY_CONTROL
373  c-- meridional eddy stress : edtauy  c-- meridional eddy stress : edtauy
374        il=ilnblnk( xx_edtauy_file )        il=ilnblnk( xx_edtauy_file )
375        write(fnameedtauy(1:80),'(2a,i10.10)')        write(fnamegeneric(1:80),'(2a,i10.10)')
376       &     xx_edtauy_file(1:il),'.',optimcycle       &     xx_edtauy_file(1:il),'.',optimcycle
377        call active_read_xyz( fnameedtauy, tmpfld3d, 1,        call active_read_xyz( fnamegeneric, tmpfld3d, 1,
378       &                      doglobalread, ladinit, optimcycle,       &                      doglobalread, ladinit, optimcycle,
379       &                      mythid, xx_edtauy_dummy )       &                      mythid, xx_edtauy_dummy )
380        do bj = jtlo,jthi        do bj = jtlo,jthi
# Line 383  c-- meridional eddy stress : edtauy Line 382  c-- meridional eddy stress : edtauy
382            do k = 1,nr            do k = 1,nr
383              do j = jmin,jmax              do j = jmin,jmax
384                do i = imin,imax                do i = imin,imax
385                  Eddytauy(i,j,k,bi,bj) = Eddytauy(i,j,k,bi,bj) +                  eddyTauY(i,j,k,bi,bj) = eddyTauY(i,j,k,bi,bj) +
386       &                                tmpfld3d(i,j,k,bi,bj)       &            fCoriG(i,j,bi,bj)*tmpfld3d(i,j,k,bi,bj)
387                  enddo
388                enddo
389              enddo
390           enddo
391          enddo
392    #endif
393    
394    #ifdef ALLOW_UVEL0_CONTROL
395    c-- initial zonal velocity
396          il=ilnblnk( xx_uvel_file )
397          write(fnamegeneric(1:80),'(2a,i10.10)')
398         &     xx_uvel_file(1:il),'.',optimcycle
399          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
400         &                      doglobalread, ladinit, optimcycle,
401         &                      mythid, xx_uvel_dummy )
402          do bj = jtlo,jthi
403            do bi = itlo,ithi
404              do k = 1,nr
405                do j = jmin,jmax
406                  do i = imin,imax
407    #ifdef ALLOW_OPENAD
408                    uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
409         &                                  fac*xx_uvel(i,j,k,bi,bj)
410    #else
411                    uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
412         &                                  fac*tmpfld3d(i,j,k,bi,bj)
413    #endif
414                enddo                enddo
415              enddo              enddo
416            enddo            enddo
# Line 392  c-- meridional eddy stress : edtauy Line 418  c-- meridional eddy stress : edtauy
418        enddo        enddo
419  #endif  #endif
420    
421    #ifdef ALLOW_VVEL0_CONTROL
422    c-- initial merid. velocity
423          il=ilnblnk( xx_vvel_file )
424          write(fnamegeneric(1:80),'(2a,i10.10)')
425         &     xx_vvel_file(1:il),'.',optimcycle
426          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
427         &                      doglobalread, ladinit, optimcycle,
428         &                      mythid, xx_vvel_dummy )
429          do bj = jtlo,jthi
430            do bi = itlo,ithi
431              do k = 1,nr
432                do j = jmin,jmax
433                  do i = imin,imax
434    #ifdef ALLOW_OPENAD
435                    vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
436         &                                  fac*xx_vvel(i,j,k,bi,bj)
437    #else
438                    vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
439         &                                  fac*tmpfld3d(i,j,k,bi,bj)
440    #endif
441                  enddo
442                enddo
443              enddo
444           enddo
445          enddo
446    #endif
447    
448    #ifdef ALLOW_ETAN0_CONTROL
449    c--   initial Eta.
450          il=ilnblnk( xx_etan_file )
451          write(fnamegeneric(1:80),'(2a,i10.10)')
452         &     xx_etan_file(1:il),'.',optimcycle
453          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
454         &                      doglobalread, ladinit, optimcycle,
455         &                      mythid, xx_etan_dummy )
456          do bj = jtlo,jthi
457            do bi = itlo,ithi
458              do j = jmin,jmax
459                do i = imin,imax
460    #ifdef ALLOW_OPENAD
461                  etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
462         &                              fac*xx_etan(i,j,bi,bj)
463    #else
464                  etaN(i,j,bi,bj) = etaN(i,j,bi,bj) +
465         &                              fac*tmpfld2d(i,j,bi,bj)
466    #endif
467                enddo
468              enddo
469            enddo
470          enddo
471    #endif
472    
473    #ifdef ALLOW_RELAXSST_CONTROL
474    c--   SST relaxation coefficient.
475          il=ilnblnk( xx_relaxsst_file )
476          write(fnamegeneric(1:80),'(2a,i10.10)')
477         &     xx_relaxsst_file(1:il),'.',optimcycle
478          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
479         &                      doglobalread, ladinit, optimcycle,
480         &                      mythid, xx_relaxsst_dummy )
481          do bj = jtlo,jthi
482            do bi = itlo,ithi
483              do j = jmin,jmax
484                do i = imin,imax
485                  lambdaThetaClimRelax(i,j,bi,bj) =
486         &              lambdaThetaClimRelax(i,j,bi,bj)
487         &              + tmpfld2d(i,j,bi,bj)
488                enddo
489              enddo
490            enddo
491          enddo
492    #endif
493    
494    #ifdef ALLOW_RELAXSSS_CONTROL
495    c--   SSS relaxation coefficient.
496          il=ilnblnk( xx_relaxsss_file )
497          write(fnamegeneric(1:80),'(2a,i10.10)')
498         &     xx_relaxsss_file(1:il),'.',optimcycle
499          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
500         &                      doglobalread, ladinit, optimcycle,
501         &                      mythid, xx_relaxsss_dummy )
502          do bj = jtlo,jthi
503            do bi = itlo,ithi
504              do j = jmin,jmax
505                do i = imin,imax
506                  lambdaSaltClimRelax(i,j,bi,bj) =
507         &              lambdaSaltClimRelax(i,j,bi,bj)
508         &              + tmpfld2d(i,j,bi,bj)
509                enddo
510              enddo
511            enddo
512          enddo
513    #endif
514    
515  c--   Update the tile edges.  c--   Update the tile edges.
516    
517  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))
# Line 422  c--   Update the tile edges. Line 542  c--   Update the tile edges.
542  #endif  #endif
543    
544  #if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL))  #if (defined (ALLOW_EDTAUX_CONTROL) && defined (ALLOW_EDTAUY_CONTROL))
545         CALL EXCH_UV_XYZ_RS(Eddytaux,Eddytauy,.TRUE.,myThid)         CALL EXCH_UV_XYZ_RS(eddyTauX,eddyTauY,.TRUE.,myThid)
546  #elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL))  #elif (defined (ALLOW_EDTAUX_CONTROL) || defined (ALLOW_EDTAUY_CONTROL))
547         STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'         STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'
548  #endif  #endif
549    
550    #ifdef ALLOW_UVEL0_CONTROL
551          _EXCH_XYZ_R8( uVel, mythid)
552    #endif
553    
554    #ifdef ALLOW_VVEL0_CONTROL
555          _EXCH_XYZ_R8( vVel, mythid)
556    #endif
557    
558    #ifdef ALLOW_ETAN0_CONTROL
559          _EXCH_XY_R8( etaN, mythid )
560    #endif
561    
562    #ifdef ALLOW_RELAXSST_CONTROL
563          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
564    #endif
565    
566    #ifdef ALLOW_RELAXSSS_CONTROL
567          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
568    #endif
569    
570        return        return
571        end        end
572    

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

  ViewVC Help
Powered by ViewVC 1.1.22