/[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.9 by jahn, Mon Jul 30 15:21:51 2012 UTC revision 1.11 by jahn, Thu Aug 23 21:49:33 2012 UTC
# Line 95  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 c1(tlam,nr), c2(tlam,nr)         _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  #else  #else
110         _RL PARwdn(tlam)         _RL PARwdn(tlam)
111  #endif  #endif
# Line 330  COJ Line 332  COJ
332          enddo          enddo
333         ENDDO         ENDDO
334         ENDDO         ENDDO
335    
336    #ifdef DAR_RADTRANS
337           discEs = 0.
338           discEu = 0.
339    #endif
340  c  c
341  c bio-chemical time loop  c bio-chemical time loop
342  c--------------------------------------------------  c--------------------------------------------------
# Line 625  c           add water and CDOM Line 632  c           add water and CDOM
632              bt_k(k,ilam) = bw(ilam) + bctot + bpart_k(k,ilam)              bt_k(k,ilam) = bw(ilam) + bctot + bpart_k(k,ilam)
633              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)
634              bb_k(k,ilam) = MAX(darwin_bbmin, bb_k(k,ilam))              bb_k(k,ilam) = MAX(darwin_bbmin, bb_k(k,ilam))
635    c           initialize output variables
636                Edz(ilam,k) = 0.0
637                Esz(ilam,k) = 0.0
638                Euz(ilam,k) = 0.0
639                Estop(ilam,k) = 0.0
640                Eutop(ilam,k) = 0.0
641                amp1(ilam,k) = 0.0
642                amp2(ilam,k) = 0.0
643            ENDDO            ENDDO
644           ENDDO           ENDDO
645    
646  #ifdef DAR_RADTRANS_ITERATIVE           IF (darwin_radtrans_niter.GE.0) THEN
647           call MONOD_RADTRANS_ITER(             call MONOD_RADTRANS_ITER(
648       I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,       I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
649       I                darwin_radtrans_kmax,darwin_radtrans_niter,       I                darwin_radtrans_kmax,darwin_radtrans_niter,
650       O                Edz,Esz,Euz,Eutop,       O                Edz,Esz,Euz,Eutop,
651       O                tirrq,tirrwq,       O                tirrq,tirrwq,
652       O                c1,c2,       O                amp1,amp2,
653       I                myThid)       I                myThid)
654  #else           ELSEIF (darwin_radtrans_niter.EQ.-1) THEN
655  c dzlocal ?????  c dzlocal ?????
656           call MONOD_RADTRANS(             call MONOD_RADTRANS(
657       I                drF,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,       I                drF,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
658       O                Edz,Esz,Euz,Eutop,       O                Edz,Esz,Euz,Eutop,
659       O                tirrq,tirrwq,       O                tirrq,tirrwq,
660       I                myThid)       I                myThid)
661             ELSE
662               call MONOD_RADTRANS_DIRECT(
663         I                dz_k,rmud,Edwsf,Eswsf,a_k,bt_k,bb_k,
664         I                darwin_radtrans_kmax,
665         O                Edz,Esz,Euz,Estop,Eutop,
666         O                tirrq,tirrwq,
667         O                amp1,amp2,
668         I                myThid)
669    #ifdef DAR_CHECK_IRR_CONT
670               DO ilam = 1,tlam
671                 discEs=MAX(discEs,ABS(Estop(ilam,1)-Eswsf(ilam)))
672               ENDDO
673               DO k=1,darwin_radtrans_kmax-1
674                DO ilam = 1,tlam
675                 discEs=MAX(discEs,ABS(Estop(ilam,k+1)-Esz(ilam,k)))
676                 discEu=MAX(discEu,ABS(Eutop(ilam,k+1)-Euz(ilam,k)))
677                ENDDO
678               ENDDO
679             ENDIF
680  #endif  #endif
681  c  c
682  c uses chl from prev timestep (as wavebands does)  c uses chl from prev timestep (as wavebands does)
# Line 1337  Coj            no Eu at surface (yet) Line 1371  Coj            no Eu at surface (yet)
1371                 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)+
1372       &                                 Euz(ilam,k-1)*dtplankton       &                                 Euz(ilam,k-1)*dtplankton
1373                endif                endif
1374                  Estave(i,j,k,bi,bj,ilam)=Estave(i,j,k,bi,bj,ilam)+
1375         &                                 Estop(ilam,k)*dtplankton
1376                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)+
1377       &                                 Eutop(ilam,k)*dtplankton       &                                 Eutop(ilam,k)*dtplankton
1378               enddo               enddo
1379  #endif  #endif
1380  #ifdef DAR_DIAG_IRR_AMPS  #ifdef DAR_DIAG_IRR_AMPS
1381               do ilam = 1,tlam               do ilam = 1,tlam
1382                 c1ave(i,j,k,bi,bj,ilam)=c1ave(i,j,k,bi,bj,ilam)+                 amp1ave(i,j,k,bi,bj,ilam)=amp1ave(i,j,k,bi,bj,ilam)+
1383       &                                 c1(ilam,k)*dtplankton       &                                 amp1(ilam,k)*dtplankton
1384                 c2ave(i,j,k,bi,bj,ilam)=c2ave(i,j,k,bi,bj,ilam)+                 amp2ave(i,j,k,bi,bj,ilam)=amp2ave(i,j,k,bi,bj,ilam)+
1385       &                                 c2(ilam,k)*dtplankton       &                                 amp2(ilam,k)*dtplankton
1386               enddo               enddo
1387  #endif  #endif
1388  #ifdef DAR_DIAG_ABSORP  #ifdef DAR_DIAG_ABSORP
# Line 1484  C       reset the other slot for averagi Line 1520  C       reset the other slot for averagi
1520  C itistime  C itistime
1521  #endif  #endif
1522    
1523    #ifdef DAR_CHECK_IRR_CONT
1524           print*,'max Es, Eu discontinuties',discEs,discEu
1525    #endif
1526    
1527  COJ fill diagnostics  COJ fill diagnostics
1528  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
1529         IF ( useDiagnostics ) THEN         IF ( useDiagnostics ) THEN

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22