/[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.11 by jahn, Thu Aug 23 21:49:33 2012 UTC revision 1.14 by jahn, Thu Oct 25 15:58:24 2012 UTC
# Line 92  c ANNA define variables for wavebands Line 92  c ANNA define variables for wavebands
92         _RL PARw_k(tlam,Nr)         _RL PARw_k(tlam,Nr)
93         _RL PARwup(tlam)         _RL PARwup(tlam)
94         _RL acdom_k(Nr,tlam)         _RL acdom_k(Nr,tlam)
95           _RL Ek_nll(npmax,tlam)
96           _RL EkoverE_nll(npmax,tlam)
97  #ifdef DAR_RADTRANS  #ifdef DAR_RADTRANS
98         integer iday,iyr,imon,isec,lp,wd,mydate(4)         integer iday,iyr,imon,isec,lp,wd,mydate(4)
99         _RL Edwsf(tlam),Eswsf(tlam)         _RL Edwsf(tlam),Eswsf(tlam)
# Line 106  c ANNA define variables for wavebands Line 108  c ANNA define variables for wavebands
108         _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)
109         _RL bt_k(Nr,tlam), bb_k(Nr,tlam)         _RL bt_k(Nr,tlam), bb_k(Nr,tlam)
110         _RL discEs, discEu         _RL discEs, discEu
111           INTEGER idiscEs,jdiscEs,kdiscEs,ldiscEs
112           INTEGER idiscEu,jdiscEu,kdiscEu,ldiscEu
113  #else  #else
114         _RL PARwdn(tlam)         _RL PARwdn(tlam)
115  #endif  #endif
# Line 129  C      always need for diagnostics Line 133  C      always need for diagnostics
133  #ifdef GEIDER  #ifdef GEIDER
134        _RL phychl(npmax)        _RL phychl(npmax)
135        _RL phychl_k(npmax,Nr)        _RL phychl_k(npmax,Nr)
136          _RL Ekl(npmax)
137          _RL EkoverEl(npmax)
138          _RL chl2cl(npmax)
139  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
140        _RL dphychl(npmax)        _RL dphychl(npmax)
141        _RL chlup(npmax)        _RL chlup(npmax)
142          _RL accliml(npmax)
143  #endif  #endif
144  #endif  #endif
145  #ifdef ALLOW_CDOM  #ifdef ALLOW_CDOM
# Line 334  COJ Line 342  COJ
342         ENDDO         ENDDO
343    
344  #ifdef DAR_RADTRANS  #ifdef DAR_RADTRANS
345           idiscEs = 0
346           jdiscEs = 0
347           kdiscEs = 0
348           ldiscEs = 0
349           idiscEu = 0
350           jdiscEu = 0
351           kdiscEu = 0
352           ldiscEu = 0
353         discEs = 0.         discEs = 0.
354         discEu = 0.         discEu = 0.
355  #endif  #endif
# Line 489  c ------------ GET INCIDENT NON-SPECTRAL Line 505  c ------------ GET INCIDENT NON-SPECTRAL
505    
506  #else /* not USE_QSW */  #else /* not USE_QSW */
507    
508           lite = sfac(j)*maskC(i,j,1,bi,bj)/86400*1 _d 6  C        convert W/m2 to uEin/s/m2
509             lite = sfac(j)*parconv*maskC(i,j,1,bi,bj)
510    
511  #endif /* not USE_QSW */  #endif /* not USE_QSW */
512  #endif /* not READ_PAR */  #endif /* not READ_PAR */
# Line 667  c dzlocal ????? Line 684  c dzlocal ?????
684       O                amp1,amp2,       O                amp1,amp2,
685       I                myThid)       I                myThid)
686  #ifdef DAR_CHECK_IRR_CONT  #ifdef DAR_CHECK_IRR_CONT
687               IF( dz_k(1) .GT. 0.0 )THEN
688             DO ilam = 1,tlam             DO ilam = 1,tlam
689               discEs=MAX(discEs,ABS(Estop(ilam,1)-Eswsf(ilam)))             IF(Eswsf(ilam).GE.darwin_radmodThresh .OR.
690             ENDDO       &        Edwsf(ilam).GE.darwin_radmodThresh ) THEN
691             DO k=1,darwin_radtrans_kmax-1              IF(ABS(Estop(ilam,1)-Eswsf(ilam)) .GT. discEs )THEN
692              DO ilam = 1,tlam                discEs = ABS(Estop(ilam,1)-Eswsf(ilam))
693               discEs=MAX(discEs,ABS(Estop(ilam,k+1)-Esz(ilam,k)))                idiscEs = i
694               discEu=MAX(discEu,ABS(Eutop(ilam,k+1)-Euz(ilam,k)))                jdiscEs = j
695                  kdiscEs = 1
696                  ldiscEs = ilam
697                ENDIF
698                DO k=1,darwin_radtrans_kmax-1
699                 IF(ABS(Estop(ilam,k+1)-Esz(ilam,k)) .GT. discEs)THEN
700                  discEs = ABS(Estop(ilam,k+1)-Esz(ilam,k))
701                  idiscEs = i
702                  jdiscEs = j
703                  kdiscEs = k+1
704                  ldiscEs = ilam
705                 ENDIF
706                 IF(ABS(Eutop(ilam,k+1)-Euz(ilam,k)) .GT. discEu)THEN
707                  discEu = ABS(Eutop(ilam,k+1)-Euz(ilam,k))
708                  idiscEu = i
709                  jdiscEu = j
710                  kdiscEu = k+1
711                  ldiscEu = ilam
712                 ENDIF
713              ENDDO              ENDDO
714               ENDIF
715             ENDDO             ENDDO
716           ENDIF             ENDIF
717  #endif  #endif
718             ENDIF
719  c  c
720  c uses chl from prev timestep (as wavebands does)  c uses chl from prev timestep (as wavebands does)
721  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 933  c set other arguments to zero Line 971  c set other arguments to zero
971                  NfixPl(np)=0. _d 0                  NfixPl(np)=0. _d 0
972  #endif  #endif
973  #endif  #endif
974    #ifdef DAR_DIAG_PARW
975                    chl2cl(np)=0. _d 0
976    #endif
977    #ifdef DAR_DIAG_EK
978                    Ekl(np)=0. _d 0
979                    EkoverEl(np)=0. _d 0
980                    do ilam=1,tlam
981                      Ek_nll(np,ilam)=0. _d 0
982                      EkoverE_nll(np,ilam)=0. _d 0
983                    enddo
984    #endif
985               enddo               enddo
986    
987    
# Line 1002  c ANNA pass extra variables if WAVEBANDS Line 1051  c ANNA pass extra variables if WAVEBANDS
1051  #endif  #endif
1052  #ifdef GEIDER  #ifdef GEIDER
1053       O                       phychl,       O                       phychl,
1054    #ifdef DAR_DIAG_EK
1055         I                       Ekl, EkoverEl,
1056    #endif
1057    #ifdef DAR_DIAG_PARW
1058         I                       chl2cl,
1059    #endif
1060  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
1061       I                       dphychl,       I                       dphychl,
1062       I                       chlup,       I                       chlup,
1063    #ifdef DAR_DIAG_EK
1064         O                       accliml,
1065    #endif
1066  #endif  #endif
1067  #ifdef ALLOW_CDOM  #ifdef ALLOW_CDOM
1068       O                       dcdoml,       O                       dcdoml,
# Line 1012  c ANNA pass extra variables if WAVEBANDS Line 1070  c ANNA pass extra variables if WAVEBANDS
1070  #endif  #endif
1071  #ifdef WAVEBANDS  #ifdef WAVEBANDS
1072       I                       PARw_k(1,k),       I                       PARw_k(1,k),
1073    #ifdef DAR_DIAG_EK
1074         I                       Ek_nll, EkoverE_nll,
1075    #endif
1076  #endif  #endif
1077  #endif  #endif
1078  #ifdef ALLOW_PAR_DAY  #ifdef ALLOW_PAR_DAY
# Line 1350  c    &                       deltaTclock Line 1411  c    &                       deltaTclock
1411       &                           phychl(np)*dtplankton       &                           phychl(np)*dtplankton
1412               enddo               enddo
1413  #endif  #endif
1414    #ifdef DAR_DIAG_PARW
1415                do ilam=1,tlam
1416                   PARwave(i,j,k,bi,bj,ilam)=PARwave(i,j,k,bi,bj,ilam)+
1417         &                           PARw_k(ilam,k)*dtplankton
1418                enddo
1419                do np=1,npmax
1420                  chl2cave(i,j,k,bi,bj,np)=chl2cave(i,j,k,bi,bj,np)+
1421         &                          chl2cl(np)*dtplankton
1422                enddo
1423    #endif
1424  #ifdef DAR_DIAG_ACDOM  #ifdef DAR_DIAG_ACDOM
1425  c            print*,'acdom',k,acdom_k(k,darwin_diag_acdom_ilam)  c            print*,'acdom',k,acdom_k(k,darwin_diag_acdom_ilam)
1426               aCDOMave(i,j,k,bi,bj)=aCDOMave(i,j,k,bi,bj)+               aCDOMave(i,j,k,bi,bj)=aCDOMave(i,j,k,bi,bj)+
# Line 1415  Coj            no Eu at surface (yet) Line 1486  Coj            no Eu at surface (yet)
1486       &                                 rmud*dtplankton       &                                 rmud*dtplankton
1487               endif               endif
1488  #endif  #endif
1489    #ifdef DAR_DIAG_EK
1490                do np=1,npmax
1491                 Ekave(i,j,k,bi,bj,np)=Ekave(i,j,k,bi,bj,np)+
1492         &                        Ekl(np)*dtplankton
1493                 EkoverEave(i,j,k,bi,bj,np)=EkoverEave(i,j,k,bi,bj,np)+
1494         &                        EkoverEl(np)*dtplankton
1495                 acclimave(i,j,k,bi,bj,np)=acclimave(i,j,k,bi,bj,np)+
1496         &                        accliml(np)*dtplankton
1497                 do ilam=1,tlam
1498                    Ek_nlave(i,j,k,bi,bj,np,ilam)=
1499         &                        Ek_nlave(i,j,k,bi,bj,np,ilam)+
1500         &                        Ek_nll(np,ilam)*dtplankton
1501                    EkoverE_nlave(i,j,k,bi,bj,np,ilam)=
1502         &                        EkoverE_nlave(i,j,k,bi,bj,np,ilam)+
1503         &                        EkoverE_nll(np,ilam)*dtplankton
1504                 enddo
1505                enddo
1506    #endif
1507  #ifdef DAR_DIAG_RSTAR  #ifdef DAR_DIAG_RSTAR
1508               do np=1,npmax               do np=1,npmax
1509                 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 1521  C itistime Line 1610  C itistime
1610  #endif  #endif
1611    
1612  #ifdef DAR_CHECK_IRR_CONT  #ifdef DAR_CHECK_IRR_CONT
1613         print*,'max Es, Eu discontinuties',discEs,discEu         i = myXGlobalLo-1+(bi-1)*sNx+idiscEs
1614           j = myYGlobalLo-1+(bj-1)*sNy+jdiscEs
1615           write(6,'(I4.4,X,A,4(X,I4),1PE24.16)')myProcId,'max Es disc',
1616         &                                   i,j,kdiscEs,ldiscEs,discEs
1617           i = myXGlobalLo-1+(bi-1)*sNx+idiscEu
1618           j = myYGlobalLo-1+(bj-1)*sNy+jdiscEu
1619           write(6,'(I4.4,X,A,4(X,I4),1PE24.16)')myProcId,'max Eu disc',
1620         &                                   i,j,kdiscEu,ldiscEu,discEu
1621  #endif  #endif
1622    
1623  COJ fill diagnostics  COJ fill diagnostics

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

  ViewVC Help
Powered by ViewVC 1.1.22