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

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

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

revision 1.19 by jmc, Fri Apr 4 21:16:09 2014 UTC revision 1.20 by gforget, Fri Jan 20 20:51:35 2017 UTC
# Line 6  C $Name$ Line 6  C $Name$
6  CBOP  CBOP
7  C     !ROUTINE: CTRL_MAP_FORCING  C     !ROUTINE: CTRL_MAP_FORCING
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE CTRL_MAP_FORCING(myThid)        SUBROUTINE CTRL_MAP_FORCING( myTime, myIter, myThid )
10    
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  c     *=================================================================  c     *=================================================================
# Line 38  C     == Global variables === Line 38  C     == Global variables ===
38    
39  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
40  C     == Routine arguments ==  C     == Routine arguments ==
41  C     myThid - Thread number for this instance of the routine.  C     myTime :: time counter for this thread
42    C     myIter :: iteration counter for this thread
43    C     myThid :: thread number for this instance of the routine.
44          _RL     myTime
45          INTEGER myIter
46        INTEGER myThid        INTEGER myThid
47    
48  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
49  C     == Local variables ==  C     == Local variables ==
50        integer bi,bj        integer bi,bj
51        integer i,j,k        integer i,j
52        integer itlo,ithi        integer itlo,ithi
53        integer jtlo,jthi        integer jtlo,jthi
54        integer jmin,jmax        integer jmin,jmax
55        integer imin,imax        integer imin,imax
56        integer il  #ifndef ALLOW_OPENAD
57    #ifdef ALLOW_GENTIM2D_CONTROL
58          integer iarr
59          _RL     tmpUE(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
60          _RL     tmpVN(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
61          _RL     tmpUX(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
62          _RL     tmpVY(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
63    #endif
64    #endif
65    
66        logical equal  #if (defined ALLOW_TAUU0_CONTROL) || (defined ALLOW_TAUV0_CONTROL) ||\
67        (defined ALLOW_SFLUX0_CONTROL) || (defined ALLOW_HFLUX0_CONTROL) ||\
68        (defined ALLOW_SSS_CONTROL) || (defined ALLOW_SST_CONTROL) ||\
69        (defined ALLOW_HFLUXM_CONTROL)
70          integer il
71        logical doglobalread        logical doglobalread
72        logical ladinit        logical ladinit
73    
# Line 68  cHFLUXM_CONTROL Line 84  cHFLUXM_CONTROL
84  c     == external ==  c     == external ==
85        integer  ilnblnk        integer  ilnblnk
86        external ilnblnk        external ilnblnk
87    #endif
88    
89  c     == end of interface ==  c     == end of interface ==
90  CEOP  CEOP
# Line 81  CEOP Line 98  CEOP
98        imin = 1        imin = 1
99        imax = snx        imax = snx
100    
101    #if (defined ALLOW_TAUU0_CONTROL) || (defined ALLOW_TAUV0_CONTROL) ||\
102        (defined ALLOW_SFLUX0_CONTROL) || (defined ALLOW_HFLUX0_CONTROL) ||\
103        (defined ALLOW_SSS_CONTROL) || (defined ALLOW_SST_CONTROL) ||\
104        (defined ALLOW_HFLUXM_CONTROL)
105    
106        doglobalread = .false.        doglobalread = .false.
107        ladinit      = .false.        ladinit      = .false.
108    
109          IF ( myIter .EQ. nIter0 ) THEN
110    
111  #ifdef ALLOW_TAUU0_CONTROL  #ifdef ALLOW_TAUU0_CONTROL
112  c--   tauu0.  c--   tauu0.
113        il=ilnblnk( xx_tauu_file )        il=ilnblnk( xx_tauu_file )
# Line 266  c--   hfluxm. Line 290  c--   hfluxm.
290         _EXCH_XY_RS(Qnetm, myThid )         _EXCH_XY_RS(Qnetm, myThid )
291  #endif  #endif
292    
293          ENDIF !IF ( myIter .EQ. nIter0 ) THEN
294    
295    #endif
296    
297    #ifndef ALLOW_OPENAD
298    #ifdef ALLOW_GENTIM2D_CONTROL
299          IF ( ctrlUseGen ) THEN
300    
301          do bj = mybylo(mythid),mybyhi(mythid)
302           do bi = mybxlo(mythid),mybxhi(mythid)
303            do j = 1-oly,sny+oly
304             do i = 1-olx,snx+olx
305               tmpUE(i,j,bi,bj) = 0. _d 0
306               tmpVN(i,j,bi,bj) = 0. _d 0
307               tmpUX(i,j,bi,bj) = 0. _d 0
308               tmpVY(i,j,bi,bj) = 0. _d 0
309             enddo
310            enddo
311           enddo
312          enddo
313    
314          DO bj = myByLo(myThid),myByHi(myThid)
315           DO bi = myBxLo(myThid),mybxhi(myThid)
316            DO j = 1,sNy
317             DO i = 1,sNx
318              DO iarr = 1, maxCtrlTim2D
319               if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fe') tmpUE
320         &      (i,j,bi,bj)=tmpUE(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
321               if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fn') tmpVN
322         &       (i,j,bi,bj)=tmpVN(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
323              ENDDO
324             ENDDO
325            ENDDO
326           ENDDO
327          ENDDO
328    
329          _EXCH_XY_RL(tmpUE,myThid)
330          _EXCH_XY_RL(tmpVN,myThid)
331          CALL rotate_uv2en_rl(tmpUX,tmpVY,tmpUE,tmpVN,
332         &     .FALSE.,.TRUE.,.TRUE.,1,mythid)
333    
334          DO bj = myByLo(myThid),myByHi(myThid)
335           DO bi = myBxLo(myThid),mybxhi(myThid)
336            DO j = 1,sny
337             DO i = 1,snx
338              fu(i,j,bi,bj)=fu(i,j,bi,bj)+tmpUX(i,j,bi,bj)
339              fv(i,j,bi,bj)=fv(i,j,bi,bj)+tmpVY(i,j,bi,bj)
340              DO iarr = 1, maxCtrlTim2D
341               if (xx_gentim2d_file(iarr)(1:7).EQ.'xx_qnet') Qnet
342         &      (i,j,bi,bj)=Qnet(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
343               if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_empmr') EmPmR
344         &      (i,j,bi,bj)=EmPmR(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
345               if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_qsw') Qsw
346         &      (i,j,bi,bj)=Qsw(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
347               if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sst') SST
348         &      (i,j,bi,bj)=SST(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
349               if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sss') SSS
350         &      (i,j,bi,bj)=SSS(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
351               if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_pload') pLoad
352         &      (i,j,bi,bj)=pLoad(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
353               if (xx_gentim2d_file(iarr)(1:11).EQ.'xx_saltflux') saltFlux
354         &      (i,j,bi,bj)=saltFlux(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
355               if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fu') fu
356         &      (i,j,bi,bj)=fu(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
357               if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fv') fv
358         &      (i,j,bi,bj)=fv(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr)
359              ENDDO
360             ENDDO
361            ENDDO
362           ENDDO
363          ENDDO
364    
365          CALL EXCH_XY_RS( Qnet , myThid )
366          CALL EXCH_XY_RS( EmPmR , myThid )
367          CALL EXCH_XY_RS( Qsw , myThid )
368          CALL EXCH_XY_RS( SST , myThid )
369          CALL EXCH_XY_RS( SSS , myThid )
370          CALL EXCH_XY_RS( pLoad , myThid )
371          CALL EXCH_XY_RS( saltFlux , myThid )
372          CALL EXCH_UV_XY_RS( fu, fv, .TRUE., myThid )
373    
374          ENDIF !IF (ctrlUseGen) then
375    #endif
376    #endif
377    
378          RETURN
379        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22