Changeset 8501


Ignore:
Timestamp:
2017-09-06T12:56:00+02:00 (3 years ago)
Author:
dford
Message:

Add omitted do loop and divide-by-zero check.

Location:
branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/TOP_SRC/MEDUSA
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_fin.F90

    r8495 r8501  
    234234      DO jj = 2,jpjm1 
    235235         DO ji = 2,jpim1 
    236             pgrow_avg(ji,jj) = pgrow_avg(ji,jj) / hmld(ji,jj) 
    237             ploss_avg(ji,jj) = ploss_avg(ji,jj) / hmld(ji,jj) 
    238             phyt_avg(ji,jj)  = phyt_avg(ji,jj)  / hmld(ji,jj) 
    239             IF ( hmld(ji,jj) .GT. mld_max(ji,jj) ) THEN 
    240                mld_max(ji,jj) = hmld(ji,jj) 
     236            IF ( hmld(ji,jj) .GT. 0.0 ) THEN 
     237               pgrow_avg(ji,jj) = pgrow_avg(ji,jj) / hmld(ji,jj) 
     238               ploss_avg(ji,jj) = ploss_avg(ji,jj) / hmld(ji,jj) 
     239               phyt_avg(ji,jj)  = phyt_avg(ji,jj)  / hmld(ji,jj) 
     240               IF ( hmld(ji,jj) .GT. mld_max(ji,jj) ) THEN 
     241                  mld_max(ji,jj) = hmld(ji,jj) 
     242               ENDIF 
    241243            ENDIF 
    242244         END DO 
  • branches/UKMO/dev_r5518_GO6_package_asm_surf_bgc_v2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/plankton.F90

    r8495 r8501  
    215215      !! Mixed layer averages for ocean colour assimilation 
    216216      !! 
    217       if (fdep1(ji,jj).le.hmld(ji,jj)) then 
    218          !! this level is entirely in the mixed layer 
    219          fq0 = 1.0 
    220       elseif (fsdepw(ji,jj,jk).ge.hmld(ji,jj)) then 
    221          !! this level is entirely below the mixed layer 
    222          fq0 = 0.0 
    223       else 
    224          !! this level straddles the mixed layer 
    225          fq0 = (hmld(ji,jj) - fsdepw(ji,jj,jk)) / fse3t(ji,jj,jk) 
    226       endif 
    227       !! 
    228       pgrow_avg(ji,jj) = pgrow_avg(ji,jj) +                                  & 
    229                          (((fprn(ji,jj) * zphn(ji,jj)) +                     & 
    230                            (fprd(ji,jj) * zphd(ji,jj))  ) *                  & 
    231                           fse3t(ji,jj,jk) * fq0) 
    232       ploss_avg(ji,jj) = ploss_avg(ji,jj) +  & 
    233                          ((fgmepd(ji,jj) + fdpd(ji,jj) + fdpd2(ji,jj) +      & 
    234                            fgmepn(ji,jj) + fdpn(ji,jj) + fdpn2(ji,jj) +      & 
    235                            fgmipn(ji,jj)                               ) *   & 
    236                           fse3t(ji,jj,jk) * fq0) 
    237       phyt_avg(ji,jj)  = phyt_avg(ji,jj)  +                                  & 
    238                          ((zphn(ji,jj) + zphd(ji,jj)) *                      & 
    239                           fse3t(ji,jj,jk) * fq0) 
     217      DO jj = 2,jpjm1 
     218         DO ji = 2,jpim1 
     219            IF (tmask(ji,jj,jk) == 1) THEN 
     220               if (fdep1(ji,jj).le.hmld(ji,jj)) then 
     221                  !! this level is entirely in the mixed layer 
     222                  fq0 = 1.0 
     223               elseif (fsdepw(ji,jj,jk).ge.hmld(ji,jj)) then 
     224                  !! this level is entirely below the mixed layer 
     225                  fq0 = 0.0 
     226               else 
     227                  !! this level straddles the mixed layer 
     228                  fq0 = (hmld(ji,jj) - fsdepw(ji,jj,jk)) / fse3t(ji,jj,jk) 
     229               endif 
     230               !! 
     231               pgrow_avg(ji,jj) = pgrow_avg(ji,jj) +                   & 
     232                                  (((fprn(ji,jj) * zphn(ji,jj)) +      & 
     233                                    (fprd(ji,jj) * zphd(ji,jj))  ) *   & 
     234                                   fse3t(ji,jj,jk) * fq0) 
     235               ploss_avg(ji,jj) = ploss_avg(ji,jj) +                   & 
     236                                  ((fgmepd(ji,jj) + fdpd(ji,jj) +      & 
     237                                    fdpd2(ji,jj)                +      & 
     238                                    fgmepn(ji,jj) + fdpn(ji,jj) +      & 
     239                                    fdpn2(ji,jj)  + fgmipn(ji,jj) ) *  & 
     240                                   fse3t(ji,jj,jk) * fq0) 
     241               phyt_avg(ji,jj)  = phyt_avg(ji,jj)  +                   & 
     242                                  ((zphn(ji,jj) + zphd(ji,jj)) *       & 
     243                                   fse3t(ji,jj,jk) * fq0) 
     244            ENDIF 
     245         ENDDO 
     246      ENDDO 
    240247# endif 
    241248 
Note: See TracChangeset for help on using the changeset viewer.