/[MITgcm]/MITgcm/verification/tutorial_global_oce_latlon/code/ptracers_forcing_surf.F
ViewVC logotype

Diff of /MITgcm/verification/tutorial_global_oce_latlon/code/ptracers_forcing_surf.F

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

revision 1.3 by jmc, Mon Oct 15 15:29:31 2007 UTC revision 1.4 by dfer, Thu Oct 25 20:00:22 2007 UTC
# Line 58  C Example of how to add forcing at the s Line 58  C Example of how to add forcing at the s
58        DO iTrc=1,PTRACERS_numInUse        DO iTrc=1,PTRACERS_numInUse
59            DO j = jMin, jMax            DO j = jMin, jMax
60             DO i = iMin, iMax             DO i = iMin, iMax
 C     Restoring to zero at the surface on a 10-day timescale  
61               surfaceForcingPtr(i,j,bi,bj,iTrc) =               surfaceForcingPtr(i,j,bi,bj,iTrc) =
62       &        + 1. _d 0 / (10. _d 0 * 86400. _d 0)       &        + 1. _d 0 / (10. _d 0 * 86400. _d 0)
63       &                  * ( 0. _d 0 - pTracer(i,j,ks,bi,bj,iTrc) )       &                  * ( 0. _d 0 - pTracer(i,j,ks,bi,bj,iTrc) )
# Line 90  c Line 89  c
89           ENDIF           ENDIF
90    
91         ENDDO         ENDDO
92        ENDIF  
93    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
94          ELSE
95    #else /* EXACT_CONSERV */
96          IF (.TRUE.) THEN
97  #endif /* EXACT_CONSERV */  #endif /* EXACT_CONSERV */
98    
99    C--   EmPmR does not really affect the water column height (for tracer budget)
100    C     and is converted to a salt tendency.
101    
102           IF (convertFW2Salt .EQ. -1.) THEN
103    C-    use local surface tracer field to calculate forcing term:
104    
105            DO iTrc=1,PTRACERS_numInUse
106    
107             IF (PtRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN
108    C        account for Rain/Evap tracer content (PtRACERS_EvPrRn) using
109    C        local surface tracer
110              DO j = jMin, jMax
111               DO i = iMin, iMax
112                surfaceForcingPtr(i,j,bi,bj,iTrc) =
113         &          surfaceForcingPtr(i,j,bi,bj,iTrc)
114         &        + EmPmR(i,j,bi,bj)
115         &          *( pTracer(i,j,ks,bi,bj,iTrc) - PtRACERS_EvPrRn(iTrc) )
116         &          *mass2rUnit
117               ENDDO
118              ENDDO
119             ENDIF
120    
121            ENDDO
122    
123           ELSE
124    C-    use uniform tracer value to calculate forcing term:
125    
126            DO iTrc=1,PTRACERS_numInUse
127    
128             IF (PtRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN
129    C     account for Rain/Evap tracer content (PtRACERS_EvPrRn) assuming uniform
130    C     surface tracer (=PTRACERS_ref)
131              DO j = jMin, jMax
132               DO i = iMin, iMax
133                surfaceForcingPtr(i,j,bi,bj,iTrc) =
134         &          surfaceForcingPtr(i,j,bi,bj,iTrc)
135         &        + EmPmR(i,j,bi,bj)
136         &            *( PTRACERS_ref(ks,iTrc) - PtRACERS_EvPrRn(iTrc) )
137         &            *mass2rUnit
138               ENDDO
139              ENDDO
140             ENDIF
141    
142            ENDDO
143    
144    C-    end local-surface-tracer / uniform-value distinction
145           ENDIF
146    
147          ENDIF
148    
149    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
150    
151  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
152    
153        RETURN        RETURN

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22