/[MITgcm]/MITgcm_contrib/darwin2/pkg/monod/monod_forcing.F
ViewVC logotype

Diff of /MITgcm_contrib/darwin2/pkg/monod/monod_forcing.F

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

revision 1.1 by jahn, Wed Apr 13 18:56:25 2011 UTC revision 1.5 by jahn, Wed Nov 9 23:34:17 2011 UTC
# Line 111  C      always need for diagnostics Line 111  C      always need for diagnostics
111        _RL  Diver2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
112        _RL  Diver3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
113        _RL  Diver4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
114          _RL Shannon(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
115          _RL Simpson(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
116    
117        _RL  tmpphy(npmax)        _RL  tmpphy(npmax)
118        _RL  totphy, biotot, maxphy, phymax        _RL  totphy, biotot, maxphy, phymax
# Line 248  c tendencies Line 250  c tendencies
250         _RL do2l         _RL do2l
251         _RL dZooCl(nzmax)         _RL dZooCl(nzmax)
252  c air-sea fluxes  c air-sea fluxes
253         _RL flxCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
254         _RL flxALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
255         _RL flxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
256  #endif  #endif
257    
258         _RL tot_Nfix         _RL tot_Nfix
# Line 277  c Line 279  c
279             Diver2(i,j,k)=0. _d 0             Diver2(i,j,k)=0. _d 0
280             Diver3(i,j,k)=0. _d 0             Diver3(i,j,k)=0. _d 0
281             Diver4(i,j,k)=0. _d 0             Diver4(i,j,k)=0. _d 0
282               Shannon(i,j,k)=0. _d 0
283               Simpson(i,j,k)=1. _d 0
284  #endif  #endif
285    
286  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
287  COJ for diagnostics  COJ for diagnostics
288             PParr(i,j,k) = 0. _d 0             PParr(i,j,k) = 0. _d 0
289             Nfixarr(i,j,k) = 0. _d 0             Nfixarr(i,j,k) = 0. _d 0
290    #ifdef DAR_DIAG_CHL
291               GeiderChlarr(i,j,k) = 0. _d 0
292               GeiderChl2Carr(i,j,k) = 0. _d 0
293               DoneyChlarr(i,j,k) = 0. _d 0
294               DoneyChl2Carr(i,j,k) = 0. _d 0
295               CloernChlarr(i,j,k) = 0. _d 0
296               CloernChl2Carr(i,j,k) = 0. _d 0
297    #endif
298  c ANNA_TAVE  c ANNA_TAVE
299  #ifdef WAVES_DIAG_PCHL  #ifdef WAVES_DIAG_PCHL
300             DO np=1,npmax             DO np=1,npmax
# Line 727  c ratio of maximum species Line 739  c ratio of maximum species
739                      Diver4(i,j,k)=Diver4(i,j,k)+1. _d 0                      Diver4(i,j,k)=Diver4(i,j,k)+1. _d 0
740                   endif                   endif
741                 enddo                 enddo
742    c           totphy > thresh0
743                endif
744    c Shannon and Simpson indices
745                Shannon(i,j,k) = 0. _d 0
746    c note: minimal valid value is 1, but we set to zero below threshold
747                Simpson(i,j,k) = 0. _d 0
748                if (totphy.gt.shannon_thresh) then
749                  do np=1,npmax
750                   if (Phy(np) .gt. 0. _d 0) then
751                    tmpphy(np) = Phy(np)/totphy
752                    Shannon(i,j,k)=Shannon(i,j,k)+tmpphy(np)*LOG(tmpphy(np))
753                    Simpson(i,j,k)=Simpson(i,j,k)+tmpphy(np)*tmpphy(np)
754                   endif
755                  enddo
756                  Shannon(i,j,k) = -Shannon(i,j,k)
757                  Simpson(i,j,k) = 1./Simpson(i,j,k)
758              endif              endif
759  #endif  #endif
760    
# Line 931  c            endif Line 959  c            endif
959  c  c
960  #ifdef IRON_SED_SOURCE  #ifdef IRON_SED_SOURCE
961  c only above minimum depth (continental shelf)  c only above minimum depth (continental shelf)
962               if (rF(k).lt.depthfesed) then               if (rF(k).gt.-depthfesed) then
963  c only if bottom layer  c only if bottom layer
964                 if (bottom.eq.1.0 _d 0) then                 if (bottom.eq.1.0 _d 0) then
965  #ifdef IRON_SED_SOURCE_VARIABLE  #ifdef IRON_SED_SOURCE_VARIABLE
# Line 966  c Line 994  c
994               picupl = PICl               picupl = PICl
995  c include surface forcing  c include surface forcing
996               if (k.eq.1) then               if (k.eq.1) then
997                ddicl  =  ddicl  + flxCO2(i,j,bi,bj)                ddicl  =  ddicl  + flxCO2(i,j)
998                dalkl  =  dalkl  + flxALK(i,j,bi,bj)                dalkl  =  dalkl  + flxALK(i,j)
999                do2l   =  do2l   + flxO2(i,j,bi,bj)                do2l   =  do2l   + flxO2(i,j)
1000               endif               endif
1001  #endif  #endif
1002  c  c
# Line 1331  Coj            no Eu at surface (yet) Line 1359  Coj            no Eu at surface (yet)
1359  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1360               if (k.eq.1) then               if (k.eq.1) then
1361                SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+                SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+
1362       &                              flxCO2(i,j,bi,bj)*dtplankton       &                              flxCO2(i,j)*dtplankton
1363                SURCave(i,j,bi,bj)    =SURCave(i,j,bi,bj)+                SURCave(i,j,bi,bj)    =SURCave(i,j,bi,bj)+
1364       &                              FluxCO2(i,j,bi,bj)*dtplankton       &                              FluxCO2(i,j,bi,bj)*dtplankton
1365                SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+                SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+
1366       &                              flxO2(i,j,bi,bj)*dtplankton       &                              flxO2(i,j)*dtplankton
1367                pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+                pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+
1368       &                              pCO2(i,j,bi,bj)*dtplankton       &                              pCO2(i,j,bi,bj)*dtplankton
1369                pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+                pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+
# Line 1438  c ANNA end TAVE Line 1466  c ANNA end TAVE
1466          WRITE(diagname,'(A8)') 'Diver4  '          WRITE(diagname,'(A8)') 'Diver4  '
1467          CALL DIAGNOSTICS_FILL( Diver4(1-Olx,1-Oly,1), diagname,          CALL DIAGNOSTICS_FILL( Diver4(1-Olx,1-Oly,1), diagname,
1468       &                         0,Nr,2,bi,bj,myThid )       &                         0,Nr,2,bi,bj,myThid )
1469            WRITE(diagname,'(A8)') 'Shannon '
1470            CALL DIAGNOSTICS_FILL( Shannon(1-Olx,1-Oly,1), diagname,
1471         &                         0,Nr,2,bi,bj,myThid )
1472            WRITE(diagname,'(A8)') 'Simpson '
1473            CALL DIAGNOSTICS_FILL( Simpson(1-Olx,1-Oly,1), diagname,
1474         &                         0,Nr,2,bi,bj,myThid )
1475  #endif  #endif
1476  #ifdef ALLOW_DIAZ  #ifdef ALLOW_DIAZ
1477  #ifdef DAR_DIAG_NFIXP  #ifdef DAR_DIAG_NFIXP
# Line 1463  c ANNA end TAVE Line 1497  c ANNA end TAVE
1497       &                         0,Nr,2,bi,bj,myThid )       &                         0,Nr,2,bi,bj,myThid )
1498  #endif  #endif
1499  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1500          CALL DIAGNOSTICS_FILL( flxCO2(1-Olx,1-Oly,bi,bj), 'DICTFLX ',          CALL DIAGNOSTICS_FILL( flxCO2(1-Olx,1-Oly), 'DICTFLX ',
1501       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1502          CALL DIAGNOSTICS_FILL( FluxCO2(1-Olx,1-Oly,bi,bj), 'DICCFLX ',          CALL DIAGNOSTICS_FILL( FluxCO2(1-Olx,1-Oly,bi,bj), 'DICCFLX ',
1503       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1504          CALL DIAGNOSTICS_FILL( flxO2(1-Olx,1-Oly,bi,bj), 'DICOFLX ',          CALL DIAGNOSTICS_FILL( flxO2(1-Olx,1-Oly), 'DICOFLX ',
1505       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1506          CALL DIAGNOSTICS_FILL( pCO2(1-Olx,1-Oly,bi,bj), 'DICPCO2 ',          CALL DIAGNOSTICS_FILL( pCO2(1-Olx,1-Oly,bi,bj), 'DICPCO2 ',
1507       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22