/[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.18 by heimbach, Tue Jan 3 17:10:35 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 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 392  c-- meridional eddy stress : edtauy Line 391  c-- meridional eddy stress : edtauy
391        enddo        enddo
392  #endif  #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                    uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) +
408         &                              tmpfld3d(i,j,k,bi,bj)
409                  enddo
410                enddo
411              enddo
412           enddo
413          enddo
414    #endif
415    
416    #ifdef ALLOW_VVEL0_CONTROL
417    c-- initial merid. velocity
418          il=ilnblnk( xx_vvel_file )
419          write(fnamegeneric(1:80),'(2a,i10.10)')
420         &     xx_vvel_file(1:il),'.',optimcycle
421          call active_read_xyz( fnamegeneric, tmpfld3d, 1,
422         &                      doglobalread, ladinit, optimcycle,
423         &                      mythid, xx_vvel_dummy )
424          do bj = jtlo,jthi
425            do bi = itlo,ithi
426              do k = 1,nr
427                do j = jmin,jmax
428                  do i = imin,imax
429                    vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) +
430         &                              tmpfld3d(i,j,k,bi,bj)
431                  enddo
432                enddo
433              enddo
434           enddo
435          enddo
436    #endif
437    
438    #ifdef ALLOW_ETAN0_CONTROL
439    c--   initial Eta.
440          il=ilnblnk( xx_etan_file )
441          write(fnamegeneric(1:80),'(2a,i10.10)')
442         &     xx_etan_file(1:il),'.',optimcycle
443          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
444         &                      doglobalread, ladinit, optimcycle,
445         &                      mythid, xx_etan_dummy )
446          do bj = jtlo,jthi
447            do bi = itlo,ithi
448              do j = jmin,jmax
449                do i = imin,imax
450                  etaN(i,j,bi,bj) = etaN(i,j,bi,bj) + tmpfld2d(i,j,bi,bj)
451                enddo
452              enddo
453            enddo
454          enddo
455    #endif
456    
457    #ifdef ALLOW_RELAXSST_CONTROL
458    c--   SST relaxation coefficient.
459          il=ilnblnk( xx_relaxsst_file )
460          write(fnamegeneric(1:80),'(2a,i10.10)')
461         &     xx_relaxsst_file(1:il),'.',optimcycle
462          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
463         &                      doglobalread, ladinit, optimcycle,
464         &                      mythid, xx_relaxsst_dummy )
465          do bj = jtlo,jthi
466            do bi = itlo,ithi
467              do j = jmin,jmax
468                do i = imin,imax
469                  lambdaThetaClimRelax(i,j,bi,bj) =
470         &              lambdaThetaClimRelax(i,j,bi,bj)
471         &              + tmpfld2d(i,j,bi,bj)
472                enddo
473              enddo
474            enddo
475          enddo
476    #endif
477    
478    #ifdef ALLOW_RELAXSSS_CONTROL
479    c--   SSS relaxation coefficient.
480          il=ilnblnk( xx_relaxsss_file )
481          write(fnamegeneric(1:80),'(2a,i10.10)')
482         &     xx_relaxsss_file(1:il),'.',optimcycle
483          call active_read_xy_loc ( fnamegeneric, tmpfld2d, 1,
484         &                      doglobalread, ladinit, optimcycle,
485         &                      mythid, xx_relaxsss_dummy )
486          do bj = jtlo,jthi
487            do bi = itlo,ithi
488              do j = jmin,jmax
489                do i = imin,imax
490                  lambdaSaltClimRelax(i,j,bi,bj) =
491         &              lambdaSaltClimRelax(i,j,bi,bj)
492         &              + tmpfld2d(i,j,bi,bj)
493                enddo
494              enddo
495            enddo
496          enddo
497    #endif
498    
499  c--   Update the tile edges.  c--   Update the tile edges.
500    
501  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))  #if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL))
# Line 427  c--   Update the tile edges. Line 531  c--   Update the tile edges.
531         STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'         STOP 'ctrl_map_forcing: need BOTH ALLOW_EDTAU[X,Y]_CONTROL'
532  #endif  #endif
533    
534    #ifdef ALLOW_UVEL0_CONTROL
535          _EXCH_XYZ_R8( uVel, mythid)
536    #endif
537    
538    #ifdef ALLOW_VVEL0_CONTROL
539          _EXCH_XYZ_R8( vVel, mythid)
540    #endif
541    
542    #ifdef ALLOW_ETAN0_CONTROL
543          _EXCH_XY_R8( etaN, mythid )
544    #endif
545    
546    #ifdef ALLOW_RELAXSST_CONTROL
547          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
548    #endif
549    
550    #ifdef ALLOW_RELAXSSS_CONTROL
551          _EXCH_XY_R4( lambdaThetaClimRelax, mythid )
552    #endif
553    
554        return        return
555        end        end
556    

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

  ViewVC Help
Powered by ViewVC 1.1.22