CCC $Header$ CCC TOP 1.0 , LOCEAN-IPSL (2005) C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt C --------------------------------------------------------------------------- CDIR$ LIST SUBROUTINE p4zmicro #if defined key_passivetrc && defined key_trc_pisces CCC--------------------------------------------------------------------- CCC CCC ROUTINE p4zmicro : PISCES MODEL CCC ******************************* CCC CCC PURPOSE : CCC --------- CCC Compute the sources/sinks for microzooplankton CCC CC INPUT : CC ----- CC argument CC None CC common CC all the common defined in opa CC CC CC OUTPUT : : no CC ------ CC CC EXTERNAL : CC -------- CC None CC CC MODIFICATIONS: CC -------------- CC original : O. Aumont (2004) CC---------------------------------------------------------------------- CC parameters and commons CC ====================== CDIR$ NOLIST USE oce_trc USE trp_trc USE sms IMPLICIT NONE CDIR$ LIST CC---------------------------------------------------------------------- CC local declarations CC ================== INTEGER ji, jj, jk REAL compadi,compadi2,compaz,compaph,compapoc REAL graze,zdenom REAL zinano,zidiat,zipoc C DO jk = 1,jpkm1 DO jj = 1,jpj DO ji = 1,jpi C compaz = max((trn(ji,jj,jk,jpzoo)-1.E-9),0.) C C Respiration rates of both zooplankton C ------------------------------------- C respz(ji,jj,jk) = resrat*rfact2/rjjss & *trn(ji,jj,jk,jpzoo)/(xkmort+trn(ji,jj,jk,jpzoo)) & *compaz*tmask(ji,jj,jk) # if defined key_off_degrad & *facvol(ji,jj,jk) # endif C C Zooplankton mortality. A square function has been selected with C no real reason except that it seems to be more stable and may C mimic predation. C --------------------------------------------------------------- C tortz(ji,jj,jk) = mzrat*rfact2*1E6/rjjss*tgfunc(ji,jj,jk) & *compaz*trn(ji,jj,jk,jpzoo)*tmask(ji,jj,jk) # if defined key_off_degrad & *facvol(ji,jj,jk) # endif END DO END DO END DO C DO jk = 1,jpkm1 DO jj = 1,jpj DO ji = 1,jpi C compadi = max((trn(ji,jj,jk,jpdia)-1E-8),0.) compadi2=min(compadi,2.E-6) compaph = max((trn(ji,jj,jk,jpphy)-1E-8),0.) compapoc=max((trn(ji,jj,jk,jppoc)-1E-9),0.) C C Microzooplankton grazing C ------------------------ C graze = grazrat*rfact2/rjjss*tmask(ji,jj,jk) & *tgfunc(ji,jj,jk) # if defined key_off_degrad & *facvol(ji,jj,jk) # endif zdenom = 1./(xkgraz+zprefp*compaph & +zprefc*trn(ji,jj,jk,jppoc)+zprefd*compadi2) zinano=zprefp*trn(ji,jj,jk,jpphy)/ & (zprefp*trn(ji,jj,jk,jpphy) & +zprefc*trn(ji,jj,jk,jppoc) & +zprefd*trn(ji,jj,jk,jpdia)+rtrn) zipoc=zprefc*trn(ji,jj,jk,jppoc)/ & (zprefp*trn(ji,jj,jk,jpphy) & +zprefc*trn(ji,jj,jk,jppoc) & +zprefd*trn(ji,jj,jk,jpdia)+rtrn) zidiat=zprefd*trn(ji,jj,jk,jpdia)/ & (zprefp*trn(ji,jj,jk,jpphy) & +zprefc*trn(ji,jj,jk,jppoc) & +zprefd*trn(ji,jj,jk,jpdia)+rtrn) grazp(ji,jj,jk) = graze*zinano*compaph*zdenom & *trn(ji,jj,jk,jpzoo) grazpf(ji,jj,jk) = grazp(ji,jj,jk)* & trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn) grazpch(ji,jj,jk) = grazp(ji,jj,jk)* & trn(ji,jj,jk,jpnch)/(trn(ji,jj,jk,jpphy)+rtrn) grazm(ji,jj,jk) = graze*zipoc*compapoc & *zdenom*trn(ji,jj,jk,jpzoo) grazmf(ji,jj,jk) = grazm(ji,jj,jk) & *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) grazsd(ji,jj,jk) = graze*zidiat*compadi2*zdenom & *trn(ji,jj,jk,jpzoo) grazsf(ji,jj,jk) = grazsd(ji,jj,jk) & *trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn) grazss(ji,jj,jk) = grazsd(ji,jj,jk) & *trn(ji,jj,jk,jpbsi)/(trn(ji,jj,jk,jpdia)+rtrn) grazsch(ji,jj,jk) = grazsd(ji,jj,jk) & *trn(ji,jj,jk,jpdch)/(trn(ji,jj,jk,jpdia)+rtrn) C END DO END DO END DO C DO jk = 1,jpkm1 DO jj = 1,jpj DO ji = 1,jpi C C Various remineralization and excretion terms C -------------------------------------------- C grarem(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk) & +grazsd(ji,jj,jk))*(1.-epsher-unass) grafer(ji,jj,jk)=(grazpf(ji,jj,jk)+grazsf(ji,jj,jk) & +grazmf(ji,jj,jk))*(1.-epsher-unass) & +(grazm(ji,jj,jk)*max((trn(ji,jj,jk,jpsfe)/ & (trn(ji,jj,jk,jppoc)+rtrn)-ferat3),0.) & +grazp(ji,jj,jk)*max((trn(ji,jj,jk,jpnfe)/ & (trn(ji,jj,jk,jpphy)+rtrn)-ferat3),0.) & +grazsd(ji,jj,jk)*max((trn(ji,jj,jk,jpdfe)/ & (trn(ji,jj,jk,jpdia)+rtrn)-ferat3),0.))*epsher grapoc(ji,jj,jk)=(grazp(ji,jj,jk)+grazm(ji,jj,jk) & +grazsd(ji,jj,jk))*unass C END DO END DO END DO C #endif RETURN END