/[MITgcm]/MITgcm/pkg/dic/fe_chem.F
ViewVC logotype

Diff of /MITgcm/pkg/dic/fe_chem.F

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

revision 1.4 by jmc, Tue Jul 13 18:03:31 2004 UTC revision 1.10 by dfer, Fri Oct 26 21:08:13 2007 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "DIC_OPTIONS.h"  #include "DIC_OPTIONS.h"
5  #include "GCHEM_OPTIONS.h"  #include "GCHEM_OPTIONS.h"
6    
 #ifdef ALLOW_FE  
7  CStartOfInterFace  CStartOfInterFace
8        SUBROUTINE Fe_CHEM(        SUBROUTINE Fe_CHEM(
9       I           bi,bj,iMin,iMax,jMin,jMax,       I           bi,bj,iMin,iMax,jMin,jMax,
# Line 24  C     == GLobal variables == Line 23  C     == GLobal variables ==
23  #include "PARAMS.h"  #include "PARAMS.h"
24  #include "GRID.h"  #include "GRID.h"
25  #include "DIC_BIOTIC.h"  #include "DIC_BIOTIC.h"
 #include "PTRACERS_SIZE.h"  
 #include "PTRACERS.h"  
26    
27  C     == Routine arguments ==                  C     == Routine arguments ==                
28  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation
# Line 35  C     myThid - Instance number for this Line 32  C     myThid - Instance number for this
32        _RL  fe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL  fe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
33        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
34        INTEGER myIter,myThid        INTEGER myIter,myThid
35    #ifdef AD_SAFE
36          _RL thx, thy, theps
37    #endif
38  CEndOfInterface  CEndOfInterface
39    
40    #ifdef ALLOW_FE
41    
42        INTEGER I,J,K        INTEGER I,J,K
43        _RL  lig, FeL        _RL  lig, FeL
# Line 55  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC Line 56  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
56  C ligand balance in surface layer  C ligand balance in surface layer
57  C in surface layer  C in surface layer
58    
59         DO j=jMin,jMax         DO j=jmin,jmax
60          DO i=iMin,iMax          DO i=imin,imax
61           DO k=1,nR           DO k=1,Nr
62            IF(hFacC(i,j,k,bi,bj) .gt. 0.0)THEN            IF (hFacC(i,j,k,bi,bj) .GT. 0. _d 0) THEN
63    
64  C   Ligand,FeL,Fe calculation  C   Ligand,FeL,Fe calculation
65                            
66                lig=(-ligand_stab*fe (i,j,k,bi,bj)+                lig=(-ligand_stab*fe (i,j,k,bi,bj)+
67       &              ligand_stab*ligand_tot-1       &              ligand_stab*ligand_tot-1. _d 0
68       &             +((ligand_stab*fe (i,j,k,bi,bj)       &             +((ligand_stab*fe (i,j,k,bi,bj)
69       &                -ligand_stab*ligand_tot+1)**2+4       &                -ligand_stab*ligand_tot+1. _d 0)**2
70       &                *ligand_stab*ligand_tot)**0.5)/(2*ligand_stab)       &               +4. _d 0*ligand_stab*ligand_tot)**0.5 _d 0
71         &            )/(2. _d 0*ligand_stab)
72    
73                FeL = ligand_tot-lig                FeL = ligand_tot-lig
74                freefe(i,j,k,bi,bj) = fe (i,j,k,bi,bj)-FeL                freefe(i,j,k,bi,bj) = fe (i,j,k,bi,bj)-FeL
75    #ifdef MINFE
76    #ifdef AD_SAFE
77                  thx=freefe(i,j,k,bi,bj)
78                  thy=freefemax
79                  theps=1. _d -8
80                  freefe(i,j,k,bi,bj) =
81         &                 ( 1. _d 0 - tanh((thx-thy)/theps) ) * thx/2.+
82         &                 ( 1. _d 0 + tanh((thx-thy)/theps) ) * thy/2.
83    
84    #else
85                  freefe(i,j,k,bi,bj) = min(freefe(i,j,k,bi,bj),freefemax)
86    #endif
87                  fe(i,j,k,bi,bj) = FeL+freefe(i,j,k,bi,bj)
88    #endif
89            END IF              END IF  
90           ENDDO           ENDDO
91          ENDDO          ENDDO
92         ENDDO             ENDDO    
93  c  c
94    #endif
95          RETURN          RETURN
96          END                                END
 #endif  

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

  ViewVC Help
Powered by ViewVC 1.1.22