/[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.12 by jahn, Fri Aug 24 19:45:36 2012 UTC
# Line 21  C======================================= Line 21  C=======================================
21  #include "PARAMS.h"  #include "PARAMS.h"
22  #include "GRID.h"  #include "GRID.h"
23  #include "DYNVARS.h"  #include "DYNVARS.h"
24  #ifdef USE_QSW  c for Qsw and/or surfaceForcingT
25    c choice which field to take pCO2 from for pCO2limit
26    c this assumes we use Ttendency from offline
27  #include "FFIELDS.h"  #include "FFIELDS.h"
 #endif  
28  #ifdef ALLOW_LONGSTEP  #ifdef ALLOW_LONGSTEP
29  #include "LONGSTEP.h"  #include "LONGSTEP.h"
30  #endif  #endif
# Line 43  c ANNA include wavebands_params.h Line 44  c ANNA include wavebands_params.h
44  #include "WAVEBANDS_PARAMS.h"  #include "WAVEBANDS_PARAMS.h"
45  #endif  #endif
46    
47    
48  C     === Global variables ===  C     === Global variables ===
49  c tracers  c tracers
50         _RL Ptr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,nDarwin)         _RL Ptr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,nDarwin)
# Line 68  c plankton arrays Line 70  c plankton arrays
70        _RL  Phy_k(npmax,Nr)        _RL  Phy_k(npmax,Nr)
71        _RL  Phyup(npmax)        _RL  Phyup(npmax)
72        _RL  part_k(Nr)        _RL  part_k(Nr)
73    #ifdef ALLOW_CDOM
74          _RL cdom_k(Nr)
75    #endif
76  c iron partitioning  c iron partitioning
77        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
78  c some working variables  c some working variables
# Line 90  c ANNA define variables for wavebands Line 95  c ANNA define variables for wavebands
95  #ifdef DAR_RADTRANS  #ifdef DAR_RADTRANS
96         integer iday,iyr,imon,isec,lp,wd,mydate(4)         integer iday,iyr,imon,isec,lp,wd,mydate(4)
97         _RL Edwsf(tlam),Eswsf(tlam)         _RL Edwsf(tlam),Eswsf(tlam)
98         _RL Edz(tlam,Nr),Esz(tlam,Nr),Euz(tlam,Nr),Eutop(tlam,Nr)         _RL Edz(tlam,Nr),Esz(tlam,Nr),Euz(tlam,Nr)
99           _RL Estop(tlam,Nr),Eutop(tlam,Nr)
100         _RL tirrq(nr)         _RL tirrq(nr)
101         _RL tirrwq(tlam,nr)         _RL tirrwq(tlam,nr)
102           _RL amp1(tlam,nr), amp2(tlam,nr)
103         _RL solz         _RL solz
104         _RL rmud         _RL rmud
105         _RL actot,bctot,bbctot         _RL actot,bctot,bbctot
106         _RL apart_k(Nr,tlam),bpart_k(Nr,tlam),bbpart_k(Nr,tlam)         _RL apart_k(Nr,tlam),bpart_k(Nr,tlam),bbpart_k(Nr,tlam)
107         _RL bt_k(Nr,tlam), bb_k(Nr,tlam)         _RL bt_k(Nr,tlam), bb_k(Nr,tlam)
108           _RL discEs, discEu
109           INTEGER idiscEs,jdiscEs,kdiscEs,ldiscEs
110           INTEGER idiscEu,jdiscEu,kdiscEu,ldiscEu
111  #else  #else
112         _RL PARwdn(tlam)         _RL PARwdn(tlam)
113  #endif  #endif
# Line 111  C      always need for diagnostics Line 121  C      always need for diagnostics
121        _RL  Diver2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
122        _RL  Diver3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
123        _RL  Diver4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  Diver4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
124          _RL Shannon(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
125          _RL Simpson(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
126    
127        _RL  tmpphy(npmax)        _RL  tmpphy(npmax)
128        _RL  totphy, biotot, maxphy, phymax        _RL  totphy, biotot, maxphy, phymax
# Line 124  C      always need for diagnostics Line 136  C      always need for diagnostics
136        _RL chlup(npmax)        _RL chlup(npmax)
137  #endif  #endif
138  #endif  #endif
139    #ifdef ALLOW_CDOM
140          _RL cdoml  
141          _RL dcdoml
142    #endif
143    
144  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
145  COJ for diagnostics  COJ for diagnostics
# Line 185  c some local variables Line 201  c some local variables
201         _RL PSiupl         _RL PSiupl
202         _RL Tlocal         _RL Tlocal
203         _RL Slocal         _RL Slocal
204           _RL pCO2local
205         _RL Qswlocal         _RL Qswlocal
206         _RL NH4l         _RL NH4l
207         _RL NO2l         _RL NO2l
# Line 248  c tendencies Line 265  c tendencies
265         _RL do2l         _RL do2l
266         _RL dZooCl(nzmax)         _RL dZooCl(nzmax)
267  c air-sea fluxes  c air-sea fluxes
268         _RL flxCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
269         _RL flxALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
270         _RL flxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)         _RL flxO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
271  #endif  #endif
272    
273         _RL tot_Nfix         _RL tot_Nfix
# Line 277  c Line 294  c
294             Diver2(i,j,k)=0. _d 0             Diver2(i,j,k)=0. _d 0
295             Diver3(i,j,k)=0. _d 0             Diver3(i,j,k)=0. _d 0
296             Diver4(i,j,k)=0. _d 0             Diver4(i,j,k)=0. _d 0
297               Shannon(i,j,k)=0. _d 0
298               Simpson(i,j,k)=1. _d 0
299  #endif  #endif
300    
301  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
302  COJ for diagnostics  COJ for diagnostics
303             PParr(i,j,k) = 0. _d 0             PParr(i,j,k) = 0. _d 0
304             Nfixarr(i,j,k) = 0. _d 0             Nfixarr(i,j,k) = 0. _d 0
305    #ifdef DAR_DIAG_CHL
306               GeiderChlarr(i,j,k) = 0. _d 0
307               GeiderChl2Carr(i,j,k) = 0. _d 0
308               DoneyChlarr(i,j,k) = 0. _d 0
309               DoneyChl2Carr(i,j,k) = 0. _d 0
310               CloernChlarr(i,j,k) = 0. _d 0
311               CloernChl2Carr(i,j,k) = 0. _d 0
312    #endif
313  c ANNA_TAVE  c ANNA_TAVE
314  #ifdef WAVES_DIAG_PCHL  #ifdef WAVES_DIAG_PCHL
315             DO np=1,npmax             DO np=1,npmax
# Line 307  COJ Line 334  COJ
334          enddo          enddo
335         ENDDO         ENDDO
336         ENDDO         ENDDO
337    
338    #ifdef DAR_RADTRANS
339           idiscEs = 0
340           jdiscEs = 0
341           kdiscEs = 0
342           ldiscEs = 0
343           idiscEu = 0
344           jdiscEu = 0
345           kdiscEu = 0
346           ldiscEu = 0
347           discEs = 0.
348           discEu = 0.
349    #endif
350  c  c
351  c bio-chemical time loop  c bio-chemical time loop
352  c--------------------------------------------------  c--------------------------------------------------
# Line 405  C ========================== i,j loops = Line 445  C ========================== i,j loops =
445  c ------------ these are convenient ------------------------------------  c ------------ these are convenient ------------------------------------
446           DO k=1,Nr           DO k=1,Nr
447            part_k(k)  = max(Ptr(i,j,k,bi,bj,iPOP),0. _d 0)            part_k(k)  = max(Ptr(i,j,k,bi,bj,iPOP),0. _d 0)
448    #ifdef ALLOW_CDOM
449              cdom_k(k)  = max(Ptr(i,j,k,bi,bj,iCDOM),0. _d 0)
450    #endif
451            DO np = 1,npmax            DO np = 1,npmax
452              Phy_k(np,k) = max(Ptr(i,j,k,bi,bj,iPhy+np-1),0. _d 0)              Phy_k(np,k) = max(Ptr(i,j,k,bi,bj,iPhy+np-1),0. _d 0)
453  #ifdef GEIDER  #ifdef GEIDER
# Line 420  c ------------ these are convenient ---- Line 463  c ------------ these are convenient ----
463  c ------------ GET CDOM_k FOR WAVEBANDS_3D and RADTRANS ----------------  c ------------ GET CDOM_k FOR WAVEBANDS_3D and RADTRANS ----------------
464  #ifdef WAVEBANDS  #ifdef WAVEBANDS
465  #if defined(DAR_CALC_ACDOM) || defined(DAR_RADTRANS)  #if defined(DAR_CALC_ACDOM) || defined(DAR_RADTRANS)
466    #ifdef ALLOW_CDOM
467            call MONOD_ACDOM(cdom_k,
468         O                     acdom_k,
469         I                     myThid)
470    #else
471           call MONOD_ACDOM(phychl_k,aphy_chl,aw,           call MONOD_ACDOM(phychl_k,aphy_chl,aw,
472       O                     acdom_k,       O                     acdom_k,
473       I                     myThid)       I                     myThid)
474    #endif
475  #else  #else
476           DO k=1,Nr           DO k=1,Nr
477            DO ilam = 1,tlam            DO ilam = 1,tlam
# Line 593  c           add water and CDOM Line 642  c           add water and CDOM
642              bt_k(k,ilam) = bw(ilam) + bctot + bpart_k(k,ilam)              bt_k(k,ilam) = bw(ilam) + bctot + bpart_k(k,ilam)
643              bb_k(k,ilam) = darwin_bbw*bw(ilam)+bbctot+bbpart_k(k,ilam)              bb_k(k,ilam) = darwin_bbw*bw(ilam)+bbctot+bbpart_k(k,ilam)
644              bb_k(k,ilam) = MAX(darwin_bbmin, bb_k(k,ilam))              bb_k(k,ilam) = MAX(darwin_bbmin, bb_k(k,ilam))
645    c           initialize output variables
646                Edz(ilam,k) = 0.0
647                Esz(ilam,k) = 0.0
648                Euz(ilam,k) = 0.0
649                Estop(ilam,k) = 0.0
650                Eutop(ilam,k) = 0.0
651                amp1(ilam,k) = 0.0
652                amp2(ilam,k) = 0.0
653            ENDDO            ENDDO
654           ENDDO           ENDDO
655    
656  #ifdef DAR_RADTRANS_ITERATIVE           IF (darwin_radtrans_niter.GE.0) THEN
657           call MONOD_RADTRANS_ITER(             call MONOD_RADTRANS_ITER(
658       I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,       I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
659       I                darwin_radtrans_kmax,darwin_radtrans_niter,       I                darwin_radtrans_kmax,darwin_radtrans_niter,
660       O                Edz,Esz,Euz,Eutop,       O                Edz,Esz,Euz,Eutop,
661       O                tirrq,tirrwq,       O                tirrq,tirrwq,
662         O                amp1,amp2,
663       I                myThid)       I                myThid)
664  #else           ELSEIF (darwin_radtrans_niter.EQ.-1) THEN
665  c dzlocal ?????  c dzlocal ?????
666           call MONOD_RADTRANS(             call MONOD_RADTRANS(
667       I                drF,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,       I                drF,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
668       O                Edz,Esz,Euz,Eutop,       O                Edz,Esz,Euz,Eutop,
669       O                tirrq,tirrwq,       O                tirrq,tirrwq,
670       I                myThid)       I                myThid)
671             ELSE
672               call MONOD_RADTRANS_DIRECT(
673         I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
674         I                darwin_radtrans_kmax,
675         O                Edz,Esz,Euz,Estop,Eutop,
676         O                tirrq,tirrwq,
677         O                amp1,amp2,
678         I                myThid)
679    #ifdef DAR_CHECK_IRR_CONT
680               IF( dz_k(1) .GT. 0.0 )THEN
681               DO ilam = 1,tlam
682               IF(Eswsf(ilam).GE.darwin_radmodThresh .OR.
683         &        Edwsf(ilam).GE.darwin_radmodThresh ) THEN
684                IF(ABS(Estop(ilam,1)-Eswsf(ilam)) .GT. discEs )THEN
685                  discEs = ABS(Estop(ilam,1)-Eswsf(ilam))
686                  idiscEs = i
687                  jdiscEs = j
688                  kdiscEs = 1
689                  ldiscEs = ilam
690                ENDIF
691                DO k=1,darwin_radtrans_kmax-1
692                 IF(ABS(Estop(ilam,k+1)-Esz(ilam,k)) .GT. discEs)THEN
693                  discEs = ABS(Estop(ilam,k+1)-Esz(ilam,k))
694                  idiscEs = i
695                  jdiscEs = j
696                  kdiscEs = k+1
697                  ldiscEs = ilam
698                 ENDIF
699                 IF(ABS(Eutop(ilam,k+1)-Euz(ilam,k)) .GT. discEu)THEN
700                  discEu = ABS(Eutop(ilam,k+1)-Euz(ilam,k))
701                  idiscEu = i
702                  jdiscEu = j
703                  kdiscEu = k+1
704                  ldiscEu = ilam
705                 ENDIF
706                ENDDO
707               ENDIF
708               ENDDO
709               ENDIF
710  #endif  #endif
711             ENDIF
712  c  c
713  c uses chl from prev timestep (as wavebands does)  c uses chl from prev timestep (as wavebands does)
714  c keep like this in case need to consider upwelling irradiance as affecting the grid box above  c keep like this in case need to consider upwelling irradiance as affecting the grid box above
# Line 657  c brute force... Line 755  c brute force...
755               psil  = max(Ptr(i,j,k,bi,bj,iPOSi ),0. _d 0)               psil  = max(Ptr(i,j,k,bi,bj,iPOSi ),0. _d 0)
756               NH4l  = max(Ptr(i,j,k,bi,bj,iNH4  ),0. _d 0)               NH4l  = max(Ptr(i,j,k,bi,bj,iNH4  ),0. _d 0)
757               NO2l  = max(Ptr(i,j,k,bi,bj,iNO2  ),0. _d 0)               NO2l  = max(Ptr(i,j,k,bi,bj,iNO2  ),0. _d 0)
758    #ifdef ALLOW_CDOM
759                 cdoml = max(Ptr(i,j,k,bi,bj,iCDOM  ),0. _d 0)
760    #endif
761  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
762               dicl  = max(Ptr(i,j,k,bi,bj,iDIC  ),0. _d 0)               dicl  = max(Ptr(i,j,k,bi,bj,iDIC  ),0. _d 0)
763               docl  = max(Ptr(i,j,k,bi,bj,iDOC  ),0. _d 0)               docl  = max(Ptr(i,j,k,bi,bj,iDOC  ),0. _d 0)
# Line 727  c ratio of maximum species Line 828  c ratio of maximum species
828                      Diver4(i,j,k)=Diver4(i,j,k)+1. _d 0                      Diver4(i,j,k)=Diver4(i,j,k)+1. _d 0
829                   endif                   endif
830                 enddo                 enddo
831    c           totphy > thresh0
832                endif
833    c Shannon and Simpson indices
834                Shannon(i,j,k) = 0. _d 0
835    c note: minimal valid value is 1, but we set to zero below threshold
836                Simpson(i,j,k) = 0. _d 0
837                if (totphy.gt.shannon_thresh) then
838                  do np=1,npmax
839                   if (Phy(np) .gt. 0. _d 0) then
840                    tmpphy(np) = Phy(np)/totphy
841                    Shannon(i,j,k)=Shannon(i,j,k)+tmpphy(np)*LOG(tmpphy(np))
842                    Simpson(i,j,k)=Simpson(i,j,k)+tmpphy(np)*tmpphy(np)
843                   endif
844                  enddo
845                  Shannon(i,j,k) = -Shannon(i,j,k)
846                  Simpson(i,j,k) = 1./Simpson(i,j,k)
847              endif              endif
848  #endif  #endif
849    
# Line 763  c for explicit sinking of particulate ma Line 880  c for explicit sinking of particulate ma
880               Slocal = salt(i,j,k,bi,bj)               Slocal = salt(i,j,k,bi,bj)
881  #endif  #endif
882    
883    c choice where to get pCO2 from
884    c taking from igsm dic run - fed through Tflux array
885    c               pCO2local=surfaceForcingT(i,j,bi,bj)
886    c or from darwin carbon module
887    #ifdef ALLOW_CARBON
888                   pCO2local=pCO2(i,j,bi,bj)
889    #else
890                   pCO2local=280. _d -6
891    #endif
892    
893               freefu = max(freefe(i,j,k),0. _d 0)               freefu = max(freefe(i,j,k),0. _d 0)
894               if (k.eq.1) then               if (k.eq.1) then
895                 inputFel = inputFe(i,j,bi,bj)                 inputFel = inputFe(i,j,bi,bj)
# Line 807  c set tendencies to 0 Line 934  c set tendencies to 0
934                 dphychl(np)=0. _d 0                 dphychl(np)=0. _d 0
935               enddo               enddo
936  #endif  #endif
937    #ifdef ALLOW_CDOM
938                dcdoml=0. _d 0
939    #endif
940  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
941               ddicl=0. _d 0               ddicl=0. _d 0
942               ddocl=0. _d 0               ddocl=0. _d 0
# Line 876  c ANNA pass extra variables if WAVEBANDS Line 1006  c ANNA pass extra variables if WAVEBANDS
1006       I                       pofeupl, psiupl,       I                       pofeupl, psiupl,
1007       I                       PARl,       I                       PARl,
1008       I                       Tlocal, Slocal,       I                       Tlocal, Slocal,
1009         I                       pCO2local,
1010       I                       freefu, inputFel,       I                       freefu, inputFel,
1011       I                       bottom, dzlocal,       I                       bottom, dzlocal,
1012       O                       Rstarl, RNstarl,       O                       Rstarl, RNstarl,
# Line 906  c ANNA pass extra variables if WAVEBANDS Line 1037  c ANNA pass extra variables if WAVEBANDS
1037       I                       dphychl,       I                       dphychl,
1038       I                       chlup,       I                       chlup,
1039  #endif  #endif
1040    #ifdef ALLOW_CDOM
1041         O                       dcdoml,
1042         I                       cdoml,
1043    #endif
1044  #ifdef WAVEBANDS  #ifdef WAVEBANDS
1045       I                       PARw_k(1,k),       I                       PARw_k(1,k),
1046  #endif  #endif
# Line 931  c            endif Line 1066  c            endif
1066  c  c
1067  #ifdef IRON_SED_SOURCE  #ifdef IRON_SED_SOURCE
1068  c only above minimum depth (continental shelf)  c only above minimum depth (continental shelf)
1069               if (rF(k).lt.depthfesed) then               if (rF(k).gt.-depthfesed) then
1070  c only if bottom layer  c only if bottom layer
1071                 if (bottom.eq.1.0 _d 0) then                 if (bottom.eq.1.0 _d 0) then
1072  #ifdef IRON_SED_SOURCE_VARIABLE  #ifdef IRON_SED_SOURCE_VARIABLE
# Line 966  c Line 1101  c
1101               picupl = PICl               picupl = PICl
1102  c include surface forcing  c include surface forcing
1103               if (k.eq.1) then               if (k.eq.1) then
1104                ddicl  =  ddicl  + flxCO2(i,j,bi,bj)                ddicl  =  ddicl  + flxCO2(i,j)
1105                dalkl  =  dalkl  + flxALK(i,j,bi,bj)                dalkl  =  dalkl  + flxALK(i,j)
1106                do2l   =  do2l   + flxO2(i,j,bi,bj)                do2l   =  do2l   + flxO2(i,j)
1107               endif               endif
1108  #endif  #endif
1109  c  c
# Line 1112  c in darwin_plankton this is stored for Line 1247  c in darwin_plankton this is stored for
1247  #endif  #endif
1248  #endif  #endif
1249           ENDDO           ENDDO
1250    #ifdef ALLOW_CDOM
1251              Ptr(i,j,k,bi,bj,iCDOM ) = Ptr(i,j,k,bi,bj,iCDOM ) +
1252         &                                  dtplankton*dcdoml
1253    #endif
1254  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1255            Ptr(i,j,k,bi,bj,iDIC ) = Ptr(i,j,k,bi,bj,iDIC ) +            Ptr(i,j,k,bi,bj,iDIC ) = Ptr(i,j,k,bi,bj,iDIC ) +
1256       &                                  dtplankton*ddicl       &                                  dtplankton*ddicl
# Line 1263  Coj            no Eu at surface (yet) Line 1402  Coj            no Eu at surface (yet)
1402                 Euave(i,j,k,bi,bj,ilam)=Euave(i,j,k,bi,bj,ilam)+                 Euave(i,j,k,bi,bj,ilam)=Euave(i,j,k,bi,bj,ilam)+
1403       &                                 Euz(ilam,k-1)*dtplankton       &                                 Euz(ilam,k-1)*dtplankton
1404                endif                endif
1405                  Estave(i,j,k,bi,bj,ilam)=Estave(i,j,k,bi,bj,ilam)+
1406         &                                 Estop(ilam,k)*dtplankton
1407                Eutave(i,j,k,bi,bj,ilam)=Eutave(i,j,k,bi,bj,ilam)+                Eutave(i,j,k,bi,bj,ilam)=Eutave(i,j,k,bi,bj,ilam)+
1408       &                                 Eutop(ilam,k)*dtplankton       &                                 Eutop(ilam,k)*dtplankton
1409               enddo               enddo
1410  #endif  #endif
1411    #ifdef DAR_DIAG_IRR_AMPS
1412                 do ilam = 1,tlam
1413                   amp1ave(i,j,k,bi,bj,ilam)=amp1ave(i,j,k,bi,bj,ilam)+
1414         &                                 amp1(ilam,k)*dtplankton
1415                   amp2ave(i,j,k,bi,bj,ilam)=amp2ave(i,j,k,bi,bj,ilam)+
1416         &                                 amp2(ilam,k)*dtplankton
1417                 enddo
1418    #endif
1419  #ifdef DAR_DIAG_ABSORP  #ifdef DAR_DIAG_ABSORP
1420               do ilam = 1,tlam               do ilam = 1,tlam
1421                 aave(i,j,k,bi,bj,ilam)=aave(i,j,k,bi,bj,ilam)+                 aave(i,j,k,bi,bj,ilam)=aave(i,j,k,bi,bj,ilam)+
# Line 1291  Coj            no Eu at surface (yet) Line 1440  Coj            no Eu at surface (yet)
1440       &                                 bbpart_k(k,ilam)*dtplankton       &                                 bbpart_k(k,ilam)*dtplankton
1441               enddo               enddo
1442  #endif  #endif
1443    #ifdef DAR_RADTRANS
1444                 if (k.eq.1) then
1445                   rmudave(i,j,bi,bj)=rmudave(i,j,bi,bj)+
1446         &                                 rmud*dtplankton
1447                 endif
1448    #endif
1449  #ifdef DAR_DIAG_RSTAR  #ifdef DAR_DIAG_RSTAR
1450               do np=1,npmax               do np=1,npmax
1451                 Rstarave(i,j,k,bi,bj,np)=Rstarave(i,j,k,bi,bj,np)+                 Rstarave(i,j,k,bi,bj,np)=Rstarave(i,j,k,bi,bj,np)+
# Line 1331  Coj            no Eu at surface (yet) Line 1486  Coj            no Eu at surface (yet)
1486  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1487               if (k.eq.1) then               if (k.eq.1) then
1488                SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+                SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+
1489       &                              flxCO2(i,j,bi,bj)*dtplankton       &                              flxCO2(i,j)*dtplankton
1490                SURCave(i,j,bi,bj)    =SURCave(i,j,bi,bj)+                SURCave(i,j,bi,bj)    =SURCave(i,j,bi,bj)+
1491       &                              FluxCO2(i,j,bi,bj)*dtplankton       &                              FluxCO2(i,j,bi,bj)*dtplankton
1492                SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+                SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+
1493       &                              flxO2(i,j,bi,bj)*dtplankton       &                              flxO2(i,j)*dtplankton
1494                pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+                pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+
1495       &                              pCO2(i,j,bi,bj)*dtplankton       &                              pCO2(i,j,bi,bj)*dtplankton
1496                pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+                pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+
# Line 1396  C       reset the other slot for averagi Line 1551  C       reset the other slot for averagi
1551  C itistime  C itistime
1552  #endif  #endif
1553    
1554    #ifdef DAR_CHECK_IRR_CONT
1555           i = myXGlobalLo-1+(bi-1)*sNx+idiscEs
1556           j = myYGlobalLo-1+(bj-1)*sNy+jdiscEs
1557           write(6,'(I4.4,X,A,4(X,I4),1PE24.16)')myProcId,'max Es disc',
1558         &                                   i,j,kdiscEs,ldiscEs,discEs
1559           i = myXGlobalLo-1+(bi-1)*sNx+idiscEu
1560           j = myYGlobalLo-1+(bj-1)*sNy+jdiscEu
1561           write(6,'(I4.4,X,A,4(X,I4),1PE24.16)')myProcId,'max Eu disc',
1562         &                                   i,j,kdiscEu,ldiscEu,discEu
1563    #endif
1564    
1565  COJ fill diagnostics  COJ fill diagnostics
1566  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
1567         IF ( useDiagnostics ) THEN         IF ( useDiagnostics ) THEN
# Line 1438  c ANNA end TAVE Line 1604  c ANNA end TAVE
1604          WRITE(diagname,'(A8)') 'Diver4  '          WRITE(diagname,'(A8)') 'Diver4  '
1605          CALL DIAGNOSTICS_FILL( Diver4(1-Olx,1-Oly,1), diagname,          CALL DIAGNOSTICS_FILL( Diver4(1-Olx,1-Oly,1), diagname,
1606       &                         0,Nr,2,bi,bj,myThid )       &                         0,Nr,2,bi,bj,myThid )
1607            WRITE(diagname,'(A8)') 'Shannon '
1608            CALL DIAGNOSTICS_FILL( Shannon(1-Olx,1-Oly,1), diagname,
1609         &                         0,Nr,2,bi,bj,myThid )
1610            WRITE(diagname,'(A8)') 'Simpson '
1611            CALL DIAGNOSTICS_FILL( Simpson(1-Olx,1-Oly,1), diagname,
1612         &                         0,Nr,2,bi,bj,myThid )
1613  #endif  #endif
1614  #ifdef ALLOW_DIAZ  #ifdef ALLOW_DIAZ
1615  #ifdef DAR_DIAG_NFIXP  #ifdef DAR_DIAG_NFIXP
# Line 1463  c ANNA end TAVE Line 1635  c ANNA end TAVE
1635       &                         0,Nr,2,bi,bj,myThid )       &                         0,Nr,2,bi,bj,myThid )
1636  #endif  #endif
1637  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1638          CALL DIAGNOSTICS_FILL( flxCO2(1-Olx,1-Oly,bi,bj), 'DICTFLX ',          CALL DIAGNOSTICS_FILL( flxCO2(1-Olx,1-Oly), 'DICTFLX ',
1639       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1640          CALL DIAGNOSTICS_FILL( FluxCO2(1-Olx,1-Oly,bi,bj), 'DICCFLX ',          CALL DIAGNOSTICS_FILL( FluxCO2(1-Olx,1-Oly,bi,bj), 'DICCFLX ',
1641       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1642          CALL DIAGNOSTICS_FILL( flxO2(1-Olx,1-Oly,bi,bj), 'DICOFLX ',          CALL DIAGNOSTICS_FILL( flxO2(1-Olx,1-Oly), 'DICOFLX ',
1643       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )
1644          CALL DIAGNOSTICS_FILL( pCO2(1-Olx,1-Oly,bi,bj), 'DICPCO2 ',          CALL DIAGNOSTICS_FILL( pCO2(1-Olx,1-Oly,bi,bj), 'DICPCO2 ',
1645       &                         0,1,2,bi,bj,myThid )       &                         0,1,2,bi,bj,myThid )

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

  ViewVC Help
Powered by ViewVC 1.1.22