New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 617 for trunk/NEMO/TOP_SRC – NEMO

Changeset 617 for trunk/NEMO/TOP_SRC


Ignore:
Timestamp:
2007-02-21T14:03:10+01:00 (17 years ago)
Author:
opalod
Message:

* empty log message *

Location:
trunk/NEMO/TOP_SRC
Files:
1 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/SMS/p4zbio.F

    r341 r617  
    4242      INTEGER ji, jj, jk, jn 
    4343 
    44       REAL zdenom,zdenom1(jpi,jpj,jpk),zdenom2(jpi,jpj,jpk) 
     44      REAL zdenom,zdenom1(jpi,jpj,jpk) 
    4545      REAL prodca,ztemp 
     46 
     47#if ! defined key_trc_kriest 
     48      REAL zdenom2(jpi,jpj,jpk) 
     49#else 
     50      REAL znumpoc, znumdoc 
     51#endif 
    4652C      
    4753      REAL prodt 
     
    5157C     OF PHYTOPLANKTON AND DETRITUS 
    5258C 
    53       zdiss=0.01 
     59       zdiss(:,:,:) = 0.01 
    5460C 
    5561      DO jk=1,jpkm1 
     
    6773         DO jj=1,jpj 
    6874           DO ji=1,jpi 
     75#if ! defined key_trc_kriest 
    6976         zdenom=1./(trn(ji,jj,jk,jppoc)+trn(ji,jj,jk,jpgoc) 
    7077     $     +trn(ji,jj,jk,jpdsi)+trn(ji,jj,jk,jpcal)+rtrn) 
     
    7279         zdenom1(ji,jj,jk)=trn(ji,jj,jk,jppoc)*zdenom 
    7380         zdenom2(ji,jj,jk)=trn(ji,jj,jk,jpgoc)*zdenom 
     81 
     82#else 
     83         zdenom=1./(trn(ji,jj,jk,jppoc) 
     84     $     +trn(ji,jj,jk,jpdsi)+trn(ji,jj,jk,jpcal)+rtrn) 
     85         zdenom1(ji,jj,jk)=trn(ji,jj,jk,jppoc)*zdenom 
     86 
     87#endif 
    7488           END DO 
    7589         END DO 
     
    93107 
    94108C 
     109C     Call subroutine for computation of the vertical flux 
     110C     of particulate organic matter 
     111C     ---------------------------------------------------- 
     112C 
     113      CALL p4zsink 
     114 
     115C 
    95116C  Call optical routine to compute the PAR in the water column 
    96117C  ----------------------------------------------------------- 
     
    124145      CALL p4zmicro 
    125146      CALL p4zmeso 
    126 C 
    127 C     Call subroutine for computation of the vertical flux  
    128 C     of particulate organic matter 
    129 C     ---------------------------------------------------- 
    130 C 
    131       CALL p4zsink 
    132 C 
     147 
     148C  
    133149C     Call subroutine for computation of remineralization 
    134150C     terms of organic matter+scavenging of Fe 
     
    220236      END DO 
    221237 
    222       DO jk = 1,jpkm1 
    223         DO jj = 1,jpj 
    224           DO ji = 1,jpi 
    225 C     
    226 C     Evolution of DOC 
    227 C     ---------------- 
    228 C      
    229           trn(ji,jj,jk,jpdoc) = trn(ji,jj,jk,jpdoc) 
    230      &      +orem(ji,jj,jk)+excret2*prorca2(ji,jj,jk) 
    231      &      +excret*prorca(ji,jj,jk)-olimi(ji,jj,jk)-denitr(ji,jj,jk) 
    232      &      +grarem(ji,jj,jk)*(1.-sigma1)+grarem2(ji,jj,jk) 
    233      &      *(1.-sigma2)-xaggdoc(ji,jj,jk)-xaggdoc2(ji,jj,jk) 
    234           END DO 
    235         END DO 
    236       END DO 
    237  
    238       DO jk = 1,jpkm1 
    239         DO jj = 1,jpj 
    240           DO ji = 1,jpi 
    241 C      
    242 C     Evolution of Detritus 
    243 C     --------------------- 
    244 C      
    245           trn(ji,jj,jk,jppoc) = trn(ji,jj,jk,jppoc) 
    246      &     -grazpoc(ji,jj,jk)+grapoc(ji,jj,jk)-grazm(ji,jj,jk) 
    247      &     +respz(ji,jj,jk)-xagg(ji,jj,jk)+xaggdoc(ji,jj,jk) 
    248      &     +(1.-0.5*zfracal(ji,jj,jk))*(tortp(ji,jj,jk) 
    249      &     +respp(ji,jj,jk))+0.5*tortp2(ji,jj,jk) 
    250      &     +orem2(ji,jj,jk)+tortz(ji,jj,jk)-orem(ji,jj,jk) 
    251 C     
    252 C     Evolution of rapid Detritus 
    253 C     --------------------- 
    254 C     
    255           trn(ji,jj,jk,jpgoc) = trn(ji,jj,jk,jpgoc) 
    256      &     +grapoc2(ji,jj,jk)+respp2(ji,jj,jk)+xagg(ji,jj,jk) 
    257      &     +tortz2(ji,jj,jk)+respz2(ji,jj,jk)-orem2(ji,jj,jk) 
    258      &     +0.5*zfracal(ji,jj,jk)*(respp(ji,jj,jk)+tortp(ji,jj,jk)) 
    259      &     +0.5*tortp2(ji,jj,jk)+xaggdoc2(ji,jj,jk)-grazffe(ji,jj,jk) 
    260 C 
    261           END DO 
    262         END DO 
    263       END DO 
    264238 
    265239      DO jk = 1,jpkm1 
     
    279253        END DO 
    280254      END DO 
    281   
     255 
    282256 
    283257      DO jk = 1,jpkm1 
     
    298272      END DO 
    299273 
    300       DO jk = 1,jpkm1 
    301         DO jj = 1,jpj 
    302           DO ji = 1,jpi 
    303 C 
    304 C     Evolution of small biogenic Iron 
    305 C     -------------------------- 
    306 C 
    307           trn(ji,jj,jk,jpsfe) = trn(ji,jj,jk,jpsfe) 
    308      &     +unass*(grazpf(ji,jj,jk)+grazsf(ji,jj,jk)) 
    309      &     -grazpof(ji,jj,jk)-(1.-unass)*grazmf(ji,jj,jk) 
    310      &     +(1.-0.5*zfracal(ji,jj,jk))*(tortnf(ji,jj,jk) 
    311      &     +respnf(ji,jj,jk))+0.5*tortdf(ji,jj,jk)+ferat3* 
    312      &     (tortz(ji,jj,jk)+respz(ji,jj,jk))-ofer(ji,jj,jk) 
    313      &     +ofer2(ji,jj,jk)-xaggfe(ji,jj,jk) 
    314      &     +xscave(ji,jj,jk)*zdenom1(ji,jj,jk) 
    315 C 
    316 C     Evolution of big biogenic Iron 
    317 C     -------------------------- 
    318 C 
    319           trn(ji,jj,jk,jpbfe) = trn(ji,jj,jk,jpbfe) 
    320      &     +unass2*(graznf(ji,jj,jk)+grazf(ji,jj,jk)+grazfff(ji,jj,jk) 
    321      &     +grazpof(ji,jj,jk)+ferat3*grazz(ji,jj,jk))+ferat3* 
    322      &     (tortz2(ji,jj,jk)+respz2(ji,jj,jk))-ofer2(ji,jj,jk) 
    323      &     +0.5*zfracal(ji,jj,jk)*(respnf(ji,jj,jk)+tortnf(ji,jj,jk)) 
    324      &     +0.5*tortdf(ji,jj,jk)+respdf(ji,jj,jk)+xaggfe(ji,jj,jk) 
    325      &     +xbactfer(ji,jj,jk)-grazfff(ji,jj,jk)+xscave(ji,jj,jk) 
    326      &     *zdenom2(ji,jj,jk) 
    327           END DO 
    328         END DO 
    329       END DO 
     274 
     275#if defined key_trc_kriest 
     276 
     277#include "p4zbio.kriest.h" 
     278 
     279#else 
     280 
     281#include "p4zbio.std.h" 
     282 
     283#endif 
     284 
     285 
    330286 
    331287      DO jk = 1,jpkm1 
     
    405361C      
    406362          prcaca(ji,jj,jk)= 
    407      &      zfracal(ji,jj,jk)*(0.5*(unass*grazp(ji,jj,jk)+ 
     363     &      zfracal(ji,jj,jk)*(part*(unass*grazp(ji,jj,jk)+ 
    408364     &      unass2*grazn(ji,jj,jk))+tortp(ji,jj,jk)+respp(ji,jj,jk)) 
    409365C      
     
    470426          trc3d(:,:,:,9)=prorca3(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 
    471427          trc3d(:,:,:,10)=prorca4(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 
     428#if ! defined key_trc_kriest 
    472429          trc3d(:,:,:,11)=prorca5(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 
     430#else 
     431          trc3d(:,:,:,11)=prcaca(:,:,:)*znegtr(:,:,:)*1e3*rfact2r 
     432#endif 
    473433#    endif 
    474434C      
  • trunk/NEMO/TOP_SRC/SMS/p4zche.F

    r341 r617  
    1414CCC     PURPOSE. 
    1515CCC     -------- 
    16 CCC          *P4ZCHE* SETS CHEMICAL CONSTANTS  
     16CCC          *P4ZCHE* : Sea water chemistry computed following OCMIP protocol 
    1717CCC 
    1818CCC 
     
    2727CC      modifications : 1999 C. Le Quere 
    2828CC      modifications : 2004 O. Aumont 
     29CC      modifications : 2006 R. Gangsto 
    2930CC---------------------------------------------------------------------- 
    3031CC parameters and commons 
     
    4546      REAL pres, tc, cl, cpexp, cek0, oxy, cpexp2 
    4647      REAL zsqrt, ztr, zlogt, cek1 
    47       REAL zqtt, qtt2, sal15, zis, zis2 
     48      REAL zqtt, qtt2, sal15, zis, zis2, zisqrt 
    4849      REAL ckb, ck1, ck2, ckw, ak1, ak2, akb, aksp0, akw 
     50      REAL ckp1, ckp2, ckp3, cksi, akp1, akp2, akp3, aksi 
     51      REAL st, ft, cks, ckf, aks, akf, aksp1 
     52 
    4953C 
    5054C* 1. CHEMICAL CONSTANTS - SURFACE LAYER 
     
    110114            zis    = 19.924*sal/(1000.-1.005*sal) 
    111115            zis2   = zis*zis 
     116            zisqrt = sqrt(zis) 
    112117            tc = tn(ji,jj,jk) + (1.-tmask(ji,jj,jk))*20. 
    113118C 
     
    116121C 
    117122            cl = sal*salchl 
     123C 
     124C* 2.4 TOTAL SULFATE CONCENTR. [MOLES/kg soln] 
     125C -------------------------------------------- 
     126C 
     127            st = st1*cl*st2 
     128C 
     129C* 2.5 TOTAL FLUORIDE CONCENTR. [MOLES/kg soln] 
     130C --------------------------------------------- 
     131C 
     132            ft = ft1*cl*ft2 
     133C 
     134C* 2.6 DISSOCIATION CONSTANT FOR SULFATES 
     135C on free H scale (Dickson 1990) 
     136C ------------------------------------------------------- 
     137C 
     138            cks=exp(ks1*ztr+ks0+ks2*zlogt+(ks3*ztr+ks4+ks5*zlogt) 
     139     &      *zisqrt+(ks6*ztr+ks7+ks8*zlogt)*zis+ks9*ztr*zis 
     140     &      *zisqrt+ks10*ztr*zis2+log(ks11+ks12*sal)) 
     141C 
     142C* 2.7 DISSOCIATION CONSTANT FOR FLUORIDES 
     143C on free H scale (Dickson and Riley 79) 
     144C ------------------------------------------------------- 
     145C 
     146            ckf=exp(kf1*ztr+kf0+kf2*zisqrt+log(kf3+kf4*sal)) 
     147 
    118148C 
    119149C* 2.4 DISSOCIATION CONSTANT FOR CARBONATE AND BORATE 
     
    123153     &          +(cb5+cb6*zsqrt+cb7*sal)+ 
    124154     &          (cb8+cb9*zsqrt+cb10*sal)*zlogt+cb11*zsqrt*tkel 
     155     &          +log((1.+st/cks+ft/ckf)/(1.+st/cks)) 
    125156            ck1 = c10*ztr+c11+c12*zlogt+c13*sal+c14*sal**2 
    126157            ck2 = c20*ztr+c21+c22*sal+c23*sal**2 
     
    131162            ckw = cw0*ztr+cw1+cw2*zlogt+(cw3*ztr+cw4+cw5*zlogt)* 
    132163     &          zsqrt+cw6*sal 
     164 
     165C 
     166C 
     167C* 2.10 DISSOCIATION CONSTANT FOR PHOSPHATE AND SILICATE (seawater scale) 
     168C  --------------------------------------------------------------------- 
     169C 
     170            ckp1 = cp10+cp11*ztr+cp12*zlogt+zsqrt*(cp13*ztr 
     171     &           +cp14)+sal*(cp15*ztr+cp16) 
     172            ckp2 = cp20+cp21*ztr+cp22*zlogt+zsqrt*(cp23*ztr 
     173     &           +cp24)+sal*(cp25*ztr+cp26) 
     174            ckp3 = cp30+cp31*ztr+zsqrt*(cp32*ztr 
     175     &           +cp33)+sal*(cp34*ztr+cp35) 
     176            cksi = cs10+cs11*ztr+cs12*zlogt+zisqrt*(cs13*ztr 
     177     &           +cs14)+zis*(cs15*ztr+cs16)+zis2*(cs17*ztr 
     178     &           +cs18)+log(1.+cs19*sal) 
     179     &           +log(cs20+cs21*sal) 
     180 
    133181C 
    134182C* 2.6 K1, K2 OF CARBONIC ACID, KB OF BORIC ACID, KW (H2O) (LIT.?) 
    135183C ----------------------------------------------------------------- 
    136184C 
    137             ak1 = 10**(ck1) 
    138             ak2 = 10**(ck2) 
    139             akb = exp(ckb) 
    140             akw = exp(ckw) 
     185            ak1   = 10**(ck1) 
     186            ak2   = 10**(ck2) 
     187            akb   = exp(ckb) 
     188            akp1  = exp(ckp1) 
     189            akp2  = exp(ckp2) 
     190            akp3  = exp(ckp3) 
     191            aksi  = exp(cksi) 
     192            akw   = exp(ckw) 
     193            aksp1 = 10**(aksp0) 
     194            aks   = exp(cks) 
     195            akf   = exp(ckf) 
     196 
     197 
    141198C 
    142199C*2.7 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE IN SEAWATER 
    143200C       (S=27-43, T=2-25 DEG C) AT pres =0 (ATMOSPH. PRESSURE) 
    144 C       (INGLE, 1800, EQ. 6) 
     201C       (MUCCI 1983) 
    145202C ------------------------------------------------------------- 
    146203C 
    147             aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log10(sal) 
    148      &          +akcc4*tkel*tkel) 
     204            aksp0 = akcc1+akcc2*tkel+akcc3*ztr+akcc4*log10(tkel)+ 
     205     &      (akcc5+akcc6*tkel+ 
     206     &      akcc7*ztr)*zsqrt+akcc8*sal+akcc9*sal15 
     207 
    149208C 
    150209C* 2.8 FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) 
     
    183242            zbuf1 = -(devk1(4)+devk2(4)*tc+devk3(4)*tc*tc) 
    184243            zbuf2 = 0.5*(devk4(4)+devk5(4)*tc) 
     244            akp13(ji,jj,jk) = akp1*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     245 
     246            zbuf1 = -(devk1(5)+devk2(5)*tc+devk3(5)*tc*tc) 
     247            zbuf2 = 0.5*(devk4(5)+devk5(5)*tc) 
     248            akp23(ji,jj,jk) = akp2*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     249 
     250            zbuf1 = -(devk1(6)+devk2(6)*tc+devk3(6)*tc*tc) 
     251            zbuf2 = 0.5*(devk4(6)+devk5(6)*tc) 
     252            akp33(ji,jj,jk) = akp3*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     253 
     254            zbuf1 = -(devk1(7)+devk2(7)*tc+devk3(7)*tc*tc) 
     255            zbuf2 = 0.5*(devk4(7)+devk5(7)*tc) 
    185256            akw3(ji,jj,jk) = akw*exp(zbuf1*cpexp+zbuf2*cpexp2) 
    186 C 
    187 C  2.10 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE (OR ARAGONITE) 
    188 C        AS FUNCTION OF PRESSURE FOLLWING EDMOND AND GIESKES (1970) 
     257 
     258C  Ksi 
     259C            aksi3(ji,jj,jk) = aksi 
     260C 
     261C  Or using coefficient of borates (cf millero 95+ corrected version html doc co2sys) 
     262C  "deltaVsi and deltaKsi have been estimated from the value of boric acid" 
     263C 
     264            zbuf1 = -(devk1(3)+devk2(3)*tc+devk3(3)*tc*tc) 
     265            zbuf2 = 0.5*(devk4(3)+devk5(3)*tc) 
     266            aksi3(ji,jj,jk) = aksi*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     267 
     268C 
     269C 
     270C* 2.15 APPARENT SOLUBILITY PRODUCT K'SP OF CALCITE  
     271C        AS FUNCTION OF PRESSURE FOLLOWING MILLERO 
    189272C        (P. 1285) AND BERNER (1976) 
    190 C ----------------------------------------------------------------- 
    191 C 
    192             aksp(ji,jj,jk) = aksp0*exp(cpexp*(devks-devkst*tc)) 
     273C ------------------------------------------------- 
     274 
     275            zbuf1 = -(devk1(8)+devk2(8)*tc+devk3(8)*tc*tc) 
     276            zbuf2 = 0.5*(devk4(8)+devk5(8)*tc) 
     277            aksp(ji,jj,jk) = aksp1*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     278 
     279C  Pressure correction for sulfate and fluoride 
     280C 
     281            zbuf1 = -(devk1(9)+devk2(9)*tc+devk3(9)*tc*tc) 
     282            zbuf2 = 0.5*(devk4(9)+devk5(9)*tc) 
     283            aks3(ji,jj,jk) = aks*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     284 
     285            zbuf1 = -(devk1(10)+devk2(10)*tc+devk3(10)*tc*tc) 
     286            zbuf2 = 0.5*(devk4(10)+devk5(10)*tc) 
     287            akf3(ji,jj,jk) = akf*exp(zbuf1*cpexp+zbuf2*cpexp2) 
     288 
     289 
    193290C 
    194291C* 2.11 TOTAL BORATE CONCENTR. [MOLES/L] 
  • trunk/NEMO/TOP_SRC/SMS/p4zflx.F

    r502 r617  
    4343      INTEGER nspyr, ji, jj, krorr 
    4444      REAL zpdtan 
    45       REAL kgco2(jpi,jpj),kgo2(jpi,jpj) 
     45      REAL kgco2(jpi,jpj),kgo2(jpi,jpj),h2co3(jpi,jpj) 
    4646      REAL ttc, ws 
    4747      REAL fld, flu, oxy16, flu16, zfact 
     
    5656      zpdtan = raass / rdt 
    5757      nspyr  = nint(zpdtan) 
     58 
    5859C 
    5960C* 1.1 SURFACE CHEMISTRY (PCO2 AND [H+] IN 
  • trunk/NEMO/TOP_SRC/SMS/p4zlim.F

    r341 r617  
    126126     &      +concdfe(ji,jj,jk)) 
    127127        xlimdia(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4) 
    128         xlim4=trn(ji,jj,jk,jpfer)/(trn(ji,jj,jk,jpfer)+conc3) 
    129         xlimdia2(ji,jj,jk)=min(xlim1,xlim2,xlim3,xlim4) 
    130128C 
    131129            END DO 
  • trunk/NEMO/TOP_SRC/SMS/p4zlys.F

    r341 r617  
    4444      INTEGER ji, jj, jk, jn 
    4545      REAL zbot, zalk, zdic, zph, remco3, ah2 
    46       REAL delco3, excess, dispot, zfact, zalka 
     46      REAL dispot, zfact, zalka 
     47      REAL omegaca, excess, excess0 
     48      REAL co3(jpi,jpj,jpk) 
    4749C 
    4850C 
     
    114116C ------------------------------------------------ 
    115117C 
    116             delco3 = co3(ji,jj,jk)-aksp(ji,jj,jk)/calcon 
     118            omegaca = ( calcon * co3(ji,jj,jk) )/aksp(ji,jj,jk) 
     119 
    117120C 
    118121C* 2.2  SET DEGREE OF UNDER-/SUPERSATURATION 
    119122C ------------------------------------------ 
    120123C 
    121             excess = max(0.,-delco3) 
     124            excess0 = max(0.,(1.-omegaca)) 
     125            excess = excess0**nca 
     126 
    122127C 
    123128C* 2.3  AMOUNT CACO3 (12C) THAT RE-ENTERS SOLUTION 
     
    126131C -------------------------------------------------------------- 
    127132C 
    128             dispot = trn(ji,jj,jk,jpcal)* 
    129      &        excess/(dispo0+excess) 
     133            dispot = kdca * excess * trn(ji,jj,jk,jpcal) 
    130134#    if defined key_off_degrad 
    131135     &        *facvol(ji,jj,jk) 
    132136#    endif 
     137 
    133138C 
    134139C* 2.4  CHANGE OF [CO3--] , [ALK], PARTICULATE [CACO3], 
  • trunk/NEMO/TOP_SRC/SMS/p4zmeso.F

    r341 r617  
    146146C    ---------------------------------- 
    147147C 
     148#if ! defined key_trc_kriest 
    148149        grazffe(ji,jj,jk) = 5E3*zstep*wsbio4(ji,jj,jk) 
    149150     &    *tgfunc2(ji,jj,jk)*trn(ji,jj,jk,jpgoc)*trn(ji,jj,jk,jpmes) 
     
    154155        grazfff(ji,jj,jk) = grazffe(ji,jj,jk) 
    155156     &    *trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn) 
     157#else 
     158C KRIEST3 
     159        grazffe(ji,jj,jk) = 0.5*1.3E-2/5.5E-7*0.3*zstep*wsbio3(ji,jj,jk) 
     160     &    *tgfunc(ji,jj,jk)*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpmes) 
     161     &    /(trn(ji,jj,jk,jppoc)*1E7+0.1) 
     162#    if defined key_off_degrad 
     163     &    *facvol(ji,jj,jk) 
     164#    endif 
     165 
     166 
     167C        grazffe(ji,jj,jk) = 5E3*zstep*wsbio3(ji,jj,jk) 
     168C     &    *tgfunc2(ji,jj,jk)*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpmes) 
     169C#    if defined key_off_degrad 
     170C     &    *facvol(ji,jj,jk) 
     171C#    endif 
     172        grazfff(ji,jj,jk) = grazffe(ji,jj,jk) 
     173     &    *trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 
     174#endif 
     175 
     176 
    156177C 
    157178            END DO 
     
    169190     &    +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk)) 
    170191     &    *(1.-epsher2-unass2) 
    171  
     192#if ! defined key_trc_kriest 
    172193        grafer2(ji,jj,jk)=(grazf(ji,jj,jk)+graznf(ji,jj,jk) 
    173194     &    +grazz(ji,jj,jk)*ferat3+grazpof(ji,jj,jk) 
     
    182203     &    (trn(ji,jj,jk,jpbfe)/(trn(ji,jj,jk,jpgoc)+rtrn) 
    183204     &    -ferat3),0.)) 
    184  
     205#else 
     206        grafer2(ji,jj,jk)=(grazf(ji,jj,jk)+graznf(ji,jj,jk) 
     207     &    +grazz(ji,jj,jk)*ferat3+grazpof(ji,jj,jk) 
     208     &    +grazfff(ji,jj,jk))*(1.-epsher2-unass2) 
     209     &    +epsher2*(grazd(ji,jj,jk)*max( 
     210     &    (trn(ji,jj,jk,jpdfe)/(trn(ji,jj,jk,jpdia)+rtrn) 
     211     &    -ferat3),0.)+grazn(ji,jj,jk)*max( 
     212     &    (trn(ji,jj,jk,jpnfe)/(trn(ji,jj,jk,jpphy)+rtrn) 
     213     &    -ferat3),0.)+grazpoc(ji,jj,jk)*max( 
     214     &    (trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 
     215     &    -ferat3),0.)+grazffe(ji,jj,jk)*max( 
     216     &    (trn(ji,jj,jk,jpsfe)/(trn(ji,jj,jk,jppoc)+rtrn) 
     217     &    -ferat3),0.)) 
     218#endif 
    185219        grapoc2(ji,jj,jk)=(grazd(ji,jj,jk)+grazz(ji,jj,jk) 
    186220     &    +grazn(ji,jj,jk)+grazpoc(ji,jj,jk)+grazffe(ji,jj,jk))*unass2 
  • trunk/NEMO/TOP_SRC/SMS/p4zprod.F

    r341 r617  
    5555      REAL prdia(jpi,jpj,jpk),prbio(jpi,jpj,jpk) 
    5656      REAL etot2(jpi,jpj,jpk),pislopead2(jpi,jpj,jpk) 
    57       REAL xlim,silfac2,siborn,zprod,zprod2 
    58       REAL zmxltst,zmxlday 
     57      REAL xlim,silfac2,siborn,zprod 
     58      REAL zmxltst,zmxlday,xlim1 
    5959C 
    6060C     Computation of the optimal production 
     
    128128C 
    129129C 
     130        xlim1=trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil)+xksi1) 
    130131        xlim=xdiatno3(ji,jj,jk)+xdiatnh4(ji,jj,jk) 
    131132C 
     
    134135     &    trn(ji,jj,jk,jppo4)/(concdnh4+trn(ji,jj,jk,jppo4)), 
    135136     &    xlim) 
    136         silfac=5.4*exp(-4.23*silim)+1.13 
     137        silfac=5.4*exp(-4.23*silim)*max(0.,min(1.,2.2*(xlim1-0.5)))+1. 
    137138        siborn=max(0.,(trn(ji,jj,jk,jpsil)-15.E-6)) 
    138139        silfac2=1.+3.*siborn/(siborn+xksi2) 
    139         silfac=min(7.6,silfac*silfac2) 
     140        silfac=min(6.4,silfac*silfac2) 
    140141C 
    141142        ysopt(ji,jj,jk)=grosip*trn(ji,jj,jk,jpsil)/(trn(ji,jj,jk,jpsil) 
     
    195196C     ---------------------------------------------------------- 
    196197C 
     198        pislopen(ji,jj,jk)=pislopead(ji,jj,jk) 
     199     &    *trn(ji,jj,jk,jpnch)/(rtrn+trn(ji,jj,jk,jpphy)*12.) 
     200     &    /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimphy(ji,jj,jk))+rtrn) 
     201 
    197202        prbiochl = prmax(ji,jj,jk) 
    198203     &    *(1.-exp(-pislopen(ji,jj,jk)*etot2(ji,jj,jk))) 
     
    206211C 
    207212        zprod=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy) 
    208      &    *xlimphy(ji,jj,jk) 
    209  
    210         zprod2=rjjss*prorca(ji,jj,jk)*prbiochl*trn(ji,jj,jk,jpphy) 
    211213     &    *max(0.1,xlimphy(ji,jj,jk)) 
    212214 
     
    215217     &    +rtrn) 
    216218 
    217         prorca6(ji,jj,jk) = chlcnm*144.*zprod2/(pislopead(ji,jj,jk) 
    218      &    *etot2(ji,jj,jk)*max(trn(ji,jj,jk,jpnch),1.E-10)+rtrn) 
     219        prorca6(ji,jj,jk) = chlcnm*144.*zprod/(pislopead(ji,jj,jk) 
     220     &    *etot2(ji,jj,jk)*trn(ji,jj,jk,jpnch)+rtrn) 
    219221 
    220222            END DO 
     
    229231C       ------------------------------------------------------- 
    230232C 
     233        pislope2n(ji,jj,jk)=pislopead2(ji,jj,jk) 
     234     &    *trn(ji,jj,jk,jpdch)/(rtrn+trn(ji,jj,jk,jpdia)*12.) 
     235     &    /(prmax(ji,jj,jk)*rjjss*max(0.1,xlimdia(ji,jj,jk))+rtrn) 
     236 
    231237        prdiachl = prmax(ji,jj,jk) 
    232238     &    *(1.-exp(-etot2(ji,jj,jk)*pislope2n(ji,jj,jk))) 
     
    243249     &    *max(0.1,xlimdia(ji,jj,jk)) 
    244250 
    245         zprod2=rjjss*prorca2(ji,jj,jk)*prdiachl*xlimdia2(ji,jj,jk) 
    246      &    *trn(ji,jj,jk,jpdia) 
    247  
    248 C 
    249         prorca4(ji,jj,jk) = (fecdm)**2*zprod2/chlcdm 
     251C 
     252        prorca4(ji,jj,jk) = (fecdm)**2*zprod/chlcdm 
    250253     &    /(pislopead2(ji,jj,jk)*etot2(ji,jj,jk)*trn(ji,jj,jk,jpdfe) 
    251254     &    +rtrn) 
    252255C 
    253256        prorca7(ji,jj,jk) = chlcdm*144.*zprod/(pislopead2(ji,jj,jk) 
    254      &    *etot2(ji,jj,jk)*max(trn(ji,jj,jk,jpdch),1.E-10)+rtrn) 
     257     &    *etot2(ji,jj,jk)*trn(ji,jj,jk,jpdch)+rtrn) 
    255258C 
    256259            END DO 
     
    261264      RETURN 
    262265      END 
    263  
  • trunk/NEMO/TOP_SRC/SMS/p4zrem.F

    r341 r617  
    181181C 
    182182         orem(ji,jj,jk)=remip*trn(ji,jj,jk,jppoc) 
     183         ofer(ji,jj,jk)=remip*trn(ji,jj,jk,jpsfe) 
     184#if ! defined key_trc_kriest 
    183185         orem2(ji,jj,jk)=remip*trn(ji,jj,jk,jpgoc) 
    184          ofer(ji,jj,jk)=remip*trn(ji,jj,jk,jpsfe) 
    185186         ofer2(ji,jj,jk)=remip*trn(ji,jj,jk,jpbfe) 
     187#else 
     188         orem2(ji,jj,jk)=remip*trn(ji,jj,jk,jpnum) 
     189#endif 
    186190C 
    187191             END DO 
     
    228232     &     +4.*trn(ji,jj,jk,jpfer)*xkeq))/(2.*xkeq) 
    229233 
     234#if ! defined key_trc_kriest 
    230235         xlam1b=3E-5+xlam1*(trn(ji,jj,jk,jppoc) 
    231236     &     +trn(ji,jj,jk,jpgoc)+trn(ji,jj,jk,jpcal)+ 
    232237     &      trn(ji,jj,jk,jpdsi))*1E6 
    233  
     238#else 
     239         xlam1b=3E-5+xlam1*(trn(ji,jj,jk,jppoc) 
     240     &     +trn(ji,jj,jk,jpcal)+trn(ji,jj,jk,jpdsi))*1E6 
     241#endif 
    234242         xscave(ji,jj,jk)=xfeequi*xlam1b*zstep 
    235243#    if defined key_off_degrad 
     
    244252         zlamfac=max(0.,(gphit(ji,jj)+55.)/30.) 
    245253         zlamfac=min(1.,zlamfac) 
     254#if ! defined key_trc_kriest 
    246255         xlam1b=(80.*(trn(ji,jj,jk,jpdoc)+40E-6)+698. 
    247256     &    *trn(ji,jj,jk,jppoc)+1.05E4*trn(ji,jj,jk,jpgoc)) 
    248257     &    *zdiss(ji,jj,jk)+1E-5*(1.-zlamfac)+xlam1*max(0., 
    249258     &    (trn(ji,jj,jk,jpfer)*1E9-1.)) 
     259#else 
     260         xlam1b=(80.*(trn(ji,jj,jk,jpdoc)+40E-6)+698. 
     261     &    *trn(ji,jj,jk,jppoc)) 
     262     &    *zdiss(ji,jj,jk)+1E-5*(1.-zlamfac)+xlam1*max(0., 
     263     &    (trn(ji,jj,jk,jpfer)*1E9-1.)) 
     264#endif 
     265 
    250266 
    251267         xaggdfe(ji,jj,jk)=xlam1b*zstep*0.76*(trn(ji,jj,jk,jpfer) 
  • trunk/NEMO/TOP_SRC/SMS/p4zsed.F

    r502 r617  
    142142        DO jj=2,jpjm1 
    143143          DO ji=2,jpim1 
    144         ikt=max(mbathy(ji,jj)-1,1) 
    145         zfact=e1t(ji,jj)*e2t(ji,jj)/rjjss 
    146         sumsedsi=sumsedsi+trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt) 
    147      &    *zfact 
    148         sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt) 
    149      &    *2.*zfact 
    150         sumsedpo4=sumsedpo4+(trn(ji,jj,ikt,jpgoc)*wsbio4(ji,jj,ikt) 
    151      &    +trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))*zfact 
     144            ikt=max(mbathy(ji,jj)-1,1) 
     145            zfact=e1t(ji,jj)*e2t(ji,jj)/rjjss 
     146            sumsedsi=sumsedsi+zfact*trn(ji,jj,ikt,jpdsi) 
     147#if ! defined key_trc_kriest 
     148     &               *wsbio4(ji,jj,ikt)  
     149#else 
     150     &               *wscal(ji,jj,ikt) 
     151#endif 
     152            sumsedcal=sumsedcal+trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt) 
     153     &          *2.*zfact 
     154            sumsedpo4=sumsedpo4+ 
     155     &          (trn(ji,jj,ikt,jppoc)*wsbio3(ji,jj,ikt))*zfact 
    152156          END DO 
    153157        END DO 
     
    167171        DO jj=1,jpj 
    168172          DO ji=1,jpi 
    169         ikt=max(mbathy(ji,jj)-1,1) 
    170         xconctmp=trn(ji,jj,ikt,jpdsi)*wsbio4(ji,jj,ikt)*zstep 
    171      &    /fse3t(ji,jj,ikt) 
    172         trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)-xconctmp 
    173         trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)+xconctmp 
    174      &    *(1.-(sumdepsi+rivalkinput/raass/6.)/sumsedsi) 
    175           END DO 
    176         END DO 
    177  
    178         DO jj=1,jpj 
    179           DO ji=1,jpi 
    180         ikt=max(mbathy(ji,jj)-1,1) 
    181         xconctmp=trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)*zstep 
    182      &    /fse3t(ji,jj,ikt) 
    183         trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)-xconctmp 
    184         trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)+xconctmp 
    185      &    *(1.-(rivalkinput/raass)/sumsedcal)*2. 
    186         trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)+xconctmp 
    187      &    *(1.-(rivalkinput/raass)/sumsedcal) 
    188          END DO 
    189        END DO 
    190  
    191         DO jj=1,jpj 
    192           DO ji=1,jpi 
    193         ikt=max(mbathy(ji,jj)-1,1) 
    194         xconctmp=trn(ji,jj,ikt,jpgoc) 
    195         xconctmp2=trn(ji,jj,ikt,jppoc) 
    196         trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc) 
    197      &    -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
    198         trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 
    199      &    -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
    200         trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 
    201      &    +(xconctmp*wsbio4(ji,jj,ikt)+xconctmp2*wsbio3(ji,jj,ikt)) 
    202      &    *zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input 
    203      &    /(raass*sumsedpo4)) 
    204         trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe) 
    205      &    -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*zstep 
    206      &    /fse3t(ji,jj,ikt) 
    207         trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 
    208      &    -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 
    209      &    /fse3t(ji,jj,ikt) 
     173            ikt=max(mbathy(ji,jj)-1,1) 
     174            xconctmp=trn(ji,jj,ikt,jpdsi)*zstep/fse3t(ji,jj,ikt) 
     175#if ! defined key_trc_kriest 
     176     &               *wsbio4(ji,jj,ikt)  
     177#else 
     178     &               *wscal(ji,jj,ikt) 
     179#endif 
     180            trn(ji,jj,ikt,jpdsi)=trn(ji,jj,ikt,jpdsi)-xconctmp 
     181            trn(ji,jj,ikt,jpsil)=trn(ji,jj,ikt,jpsil)+xconctmp 
     182     &          *(1.-(sumdepsi+rivalkinput/raass/6.)/sumsedsi) 
     183          END DO 
     184        END DO 
     185 
     186        DO jj=1,jpj 
     187          DO ji=1,jpi 
     188            ikt=max(mbathy(ji,jj)-1,1) 
     189            xconctmp=trn(ji,jj,ikt,jpcal)*wscal(ji,jj,ikt)*zstep 
     190     &          /fse3t(ji,jj,ikt) 
     191            trn(ji,jj,ikt,jpcal)=trn(ji,jj,ikt,jpcal)-xconctmp 
     192            trn(ji,jj,ikt,jptal)=trn(ji,jj,ikt,jptal)+xconctmp 
     193     &          *(1.-(rivalkinput/raass)/sumsedcal)*2. 
     194            trn(ji,jj,ikt,jpdic)=trn(ji,jj,ikt,jpdic)+xconctmp 
     195     &          *(1.-(rivalkinput/raass)/sumsedcal) 
     196          END DO 
     197        END DO 
     198 
     199        DO jj=1,jpj 
     200          DO ji=1,jpi 
     201            ikt=max(mbathy(ji,jj)-1,1) 
     202#if ! defined key_trc_kriest 
     203            xconctmp=trn(ji,jj,ikt,jpgoc) 
     204            xconctmp2=trn(ji,jj,ikt,jppoc) 
     205            trn(ji,jj,ikt,jpgoc)=trn(ji,jj,ikt,jpgoc) 
     206     &          -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
     207            trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 
     208     &          -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
     209            trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 
     210     &          +(xconctmp*wsbio4(ji,jj,ikt)+xconctmp2*wsbio3(ji,jj,ikt) 
     211     $          )*zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input/(raass 
     212     $          *sumsedpo4)) 
     213            trn(ji,jj,ikt,jpbfe)=trn(ji,jj,ikt,jpbfe) 
     214     &          -trn(ji,jj,ikt,jpbfe)*wsbio4(ji,jj,ikt)*zstep 
     215     &          /fse3t(ji,jj,ikt) 
     216            trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 
     217     &          -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 
     218     &          /fse3t(ji,jj,ikt) 
     219#else 
     220            xconctmp=trn(ji,jj,ikt,jpnum) 
     221            xconctmp2=trn(ji,jj,ikt,jppoc) 
     222            trn(ji,jj,ikt,jpnum)=trn(ji,jj,ikt,jpnum) 
     223     &          -xconctmp*wsbio4(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
     224            trn(ji,jj,ikt,jppoc)=trn(ji,jj,ikt,jppoc) 
     225     &          -xconctmp2*wsbio3(ji,jj,ikt)*zstep/fse3t(ji,jj,ikt) 
     226            trn(ji,jj,ikt,jpdoc)=trn(ji,jj,ikt,jpdoc) 
     227     &          +(xconctmp2*wsbio3(ji,jj,ikt)) 
     228     $          *zstep/fse3t(ji,jj,ikt)*(1.-rivpo4input/(raass 
     229     $          *sumsedpo4)) 
     230            trn(ji,jj,ikt,jpsfe)=trn(ji,jj,ikt,jpsfe) 
     231     &          -trn(ji,jj,ikt,jpsfe)*wsbio3(ji,jj,ikt)*zstep 
     232     &          /fse3t(ji,jj,ikt) 
     233 
     234#endif 
    210235          END DO 
    211236        END DO 
  • trunk/NEMO/TOP_SRC/SMS/p4zsink.F

    r341 r617  
    1  
    2 CCC $Header$  
    3 CCC  TOP 1.0 , LOCEAN-IPSL (2005)  
    4 C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    5 C --------------------------------------------------------------------------- 
    6 CDIR$ LIST 
    71      SUBROUTINE p4zsink 
    82#if defined key_passivetrc && defined key_trc_pisces 
     
    4236      IMPLICIT NONE 
    4337#include "domzgr_substitute.h90" 
    44 CDIR$ LIST 
    45 CC---------------------------------------------------------------------- 
    46 CC local declarations 
    47 CC ================== 
    48       INTEGER jksed, ji, jj, jk 
    49       REAL xagg1,xagg2,xagg3,xagg4 
    50       REAL zfact,zstep,wsmax 
    51 C 
    52 C    Time step duration for biology 
    53 C    ------------------------------ 
    54 C 
    55        zstep=rfact2/rjjss 
    56 C 
    57 C    Sinking speeds of detritus is increased with depth as shown 
    58 C    by data and from the coagulation theory 
    59 C    ----------------------------------------------------------- 
    60 C 
    61        jksed=10 
    62 C 
    63        DO jk=1,jpk-1 
    64          DO jj=1,jpj 
    65            DO ji=1,jpi 
    66        zfact=max(0.,fsdepw(ji,jj,jk+1)-hmld(ji,jj))/2000. 
    67        wsbio4(ji,jj,jk)=wsbio2+(200.-wsbio2)*zfact 
    68              END DO 
    69            END DO 
    70          END DO 
    71 C 
    72 C      LIMIT THE VALUES OF THE SINKING SPEEDS  
    73 C      TO AVOID NUMERICAL INSTABILITIES 
    74 C 
    75       wsbio3(:,:,:)=wsbio 
    7638 
    77       Do jk=1,jpk-1 
    78         DO jj=1,jpj 
    79           DO ji=1,jpi 
    80        wsmax=0.8*fse3t(ji,jj,jk)/zstep 
    81        wsbio4(ji,jj,jk)=min(wsbio4(ji,jj,jk),wsmax) 
    82        wsbio3(ji,jj,jk)=min(wsbio3(ji,jj,jk),wsmax) 
    83           END DO 
    84         END DO 
    85        END DO 
     39#if defined key_trc_kriest 
    8640 
    87       wscal(:,:,:)=wsbio4(:,:,:) 
    88 C 
    89 C 
    90 C   INITIALIZE TO ZERO ALL THE SINKING ARRAYS 
    91 C   ----------------------------------------- 
    92 C 
    93          sinking=0. 
    94          sinking2=0. 
    95          sinkcal=0. 
    96          sinkfer=0. 
    97          sinksil=0. 
    98          sinkfer2=0. 
    99 C 
    100 C   Compute the sedimentation term using p4zsink2 for all 
    101 C   the sinking particles 
    102 C   ----------------------------------------------------- 
    103 C 
    104          CALL p4zsink2(wsbio3,sinking,jppoc) 
    105          CALL p4zsink2(wsbio3,sinkfer,jpsfe) 
    106          CALL p4zsink2(wsbio4,sinking2,jpgoc) 
    107          CALL p4zsink2(wsbio4,sinkfer2,jpbfe) 
    108          CALL p4zsink2(wsbio4,sinksil,jpdsi) 
    109          CALL p4zsink2(wscal,sinkcal,jpcal) 
    110 C 
    111 C  Exchange between organic matter compartments due to 
    112 C  coagulation/disaggregation 
    113 C  --------------------------------------------------- 
    114 C 
    115          DO jk = 1,jpkm1 
    116            DO jj = 1,jpj 
    117              DO ji = 1,jpi 
    118 C 
    119         zfact=zstep*zdiss(ji,jj,jk) 
    120 C 
    121 C    Part I : Coagulation dependent on turbulence 
    122 C    ---------------------------------------------- 
    123 C 
    124          xagg1=940.*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc) 
    125 #    if defined key_off_degrad 
    126      &     *facvol(ji,jj,jk) 
    127 #    endif 
     41# include "p4zsink.kriest.h" 
    12842 
    129          xagg2=1.054E4*zfact*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc) 
    130 #    if defined key_off_degrad 
    131      &     *facvol(ji,jj,jk) 
    132 #    endif 
    133 C 
    134 C    Aggregation of small into large particles 
    135 C    Part II : Differential settling 
    136 C    ---------------------------------------------- 
    137 C 
    138          xagg3=0.66*zstep*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jppoc) 
    139 #    if defined key_off_degrad 
    140      &     *facvol(ji,jj,jk) 
    141 #    endif 
     43#else 
    14244 
    143          xagg4=0.*zstep*trn(ji,jj,jk,jppoc)*trn(ji,jj,jk,jpgoc) 
    144 #    if defined key_off_degrad 
    145      &     *facvol(ji,jj,jk) 
    146 #    endif 
    147 C 
    148          xagg(ji,jj,jk)=xagg1+xagg2+xagg3+xagg4 
    149          xaggfe(ji,jj,jk)=xagg(ji,jj,jk)*trn(ji,jj,jk,jpsfe)/ 
    150      &     (trn(ji,jj,jk,jppoc)+rtrn) 
    151 C 
    152 C     Aggregation of DOC to small particles 
    153 C     -------------------------------------- 
    154 C 
    155          xaggdoc(ji,jj,jk)=(80*trn(ji,jj,jk,jpdoc)+698. 
    156      &     *trn(ji,jj,jk,jppoc))*zfact*trn(ji,jj,jk,jpdoc) 
    157 #    if defined key_off_degrad 
    158      &     *facvol(ji,jj,jk) 
    159 #    endif 
     45# include "p4zsink.std.h" 
    16046 
    161          xaggdoc2(ji,jj,jk)=1.05E4*zfact*trn(ji,jj,jk,jpgoc) 
    162      &     *trn(ji,jj,jk,jpdoc) 
    163 #    if defined key_off_degrad 
    164      &     *facvol(ji,jj,jk) 
    165 #    endif 
    166 C 
    167              END DO 
    168            END DO 
    169          END DO 
     47#endif 
    17048 
    171 #    if defined key_trc_dia3d 
    172           trc2d(:,:,5) = sinking(:,:,jksed+1)*1.e3*rfact2r 
    173           trc2d(:,:,6) = sinking2(:,:,jksed+1)*1.e3*rfact2r 
    174           trc2d(:,:,7) = sinkfer(:,:,jksed+1)*1.e3*rfact2r 
    175           trc2d(:,:,8) = sinkfer2(:,:,jksed+1)*1.e3*rfact2r 
    176           trc2d(:,:,9) = sinksil(:,:,jksed+1)*1.e3*rfact2r 
    177           trc2d(:,:,10) = sinkcal(:,:,jksed+1)*1.e3*rfact2r 
    178 #    endif 
    179 C 
    18049#endif 
    18150      RETURN 
  • trunk/NEMO/TOP_SRC/SMS/p4zsink2.F

    r341 r617  
    6565! -------------- 
    6666 
    67         zstep  = rdt*ndttrc 
     67        zstep  = rfact2 
    6868 
    6969        ztraz  = 0 
     
    122122              zew   = wstmp2(ji,jj,jk+1) 
    123123              sinktemp(ji,jj,jk+1) = -zew*(trn(ji,jj,jk,jn) 
    124      $           -0.5*(1+zigma)*zakz(ji,jj,jk))*rfact2 
     124     $           -0.5*(1+zigma)*zakz(ji,jj,jk))*zstep 
    125125            ENDDO 
    126126          ENDDO 
  • trunk/NEMO/TOP_SRC/SMS/par_sms_pisces.h90

    r274 r617  
    1 !!--------------------------------------------------------------------- 
    2 !! 
    3 !!                         PARAMETER passivetrc.PISCES 
    4 !!                       ******************************* 
    5 !! 
    6 !!  purpose : 
    7 !!  --------- 
    8 !!     INCLUDE PARAMETER FILE for passive tracer PISCES model 
    9 !! 
    10 !! 
    11 !! number of biological trends 
    12 !! --------------------------- 
    13 !! 
    14 !!---------------------------------------------------------------------- 
    15 !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    16 !! $Header$ 
    17 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    18 !!---------------------------------------------------------------------- 
     1   !!====================================================================== 
     2   !!                        ***  par_sms_pisces.h90  *** 
     3   !! pisces model :   assign a parameter to name individual tracers 
     4   !!====================================================================== 
    195 
    20       INTEGER jpdiabio 
    21       PARAMETER (jpdiabio = 1) 
    22 !! 
    23 !!    NOW ASSIGN A PARAMETER TO NAME INDIVIDUAL TRACERS 
    24 !!    WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 
    25 !! 
    26 !!    JPDIC : dissolved inoganic carbon concentration (mol/L) 
    27 !!    JPTAL : total alkalinity (ueq/L) 
    28 !!    JPOXY : oxygen carbon concentration (mol/L) 
    29 !!    JP13C : isotope 13 of DIC (mol/L) 
    30 !!    JPCAL : calcite  concentration (mol/L) 
    31 !!    JPPO4 : phosphate concentration (mol C/L) 
    32 !!    JPPOC : particulate organic phosphate concentration (mol C/L) 
    33 !!    JPSIL : silicate concentration (mol/L) 
    34 !!    JPPHY : phytoplancton concentration (mol/L) 
    35 !!    JPZOO : zooplancton concentration (mol/L) 
    36 !!    JPDOC : dissolved organic carbon concentration (mol/L) 
    37 !! 
     6   INTEGER, PARAMETER ::  jpdiabio = 1 
    387 
    39       INTEGER jpdic,jptal,jpoxy,jpcal,jppo4,jppoc 
    40       INTEGER jpsil,jpphy,jpzoo,jpdoc,jpgoc,jpnfe,jpnch 
    41       INTEGER jpdia,jpmes,jpbsi,jpfer,jpbfe,jpsfe,jpdfe,jpdsi 
    42       INTEGER jpdch,jpno3,jpnh4 
    43       PARAMETER(jpdic=1,jptal=2,jpoxy=3,jpcal=4,jppo4=5,jppoc=6) 
    44       PARAMETER(jpsil=7,jpphy=8,jpzoo=9,jpdoc=10) 
    45       PARAMETER(jpdia=11,jpmes=12,jpbsi=13,jpfer=14,jpbfe=15) 
    46       PARAMETER(jpgoc=16, jpsfe=17, jpdfe=18, jpdsi=19) 
    47       PARAMETER(jpnfe=20, jpnch=21, jpdch=22, jpno3=23, jpnh4=24) 
     8   !! WARNING: BE CAREFUL ABOUT THE ORDER WHEN READING THE RESTART FILE 
     9   !! 
     10   INTEGER, PARAMETER :: & 
     11      jpdic = 1  ,  &  ! dissolved inoganic carbon concentration  
     12      jptal = 2  ,  &  ! total alkalinity  
     13      jpoxy = 3  ,  &  ! oxygen carbon concentration  
     14      jpcal = 4  ,  &  ! calcite  concentration  
     15      jppo4 = 5  ,  &  ! phosphate concentration  
     16      jppoc = 6  ,  &  ! small particulate organic phosphate concentration 
     17      jpsil = 7  ,  &  ! silicate concentration 
     18      jpphy = 8  ,  &  ! phytoplancton concentration  
     19      jpzoo = 9  ,  &  ! zooplancton concentration 
     20      jpdoc = 10 ,  &  ! dissolved organic carbon concentration  
     21      jpdia = 11 ,  &  ! Diatoms Concentration 
     22      jpmes = 12 ,  &  ! Mesozooplankton Concentration 
     23      jpbsi = 13 ,  &  ! (big) Silicate Concentration 
     24      jpfer = 14 ,  &  ! Iron Concentration 
     25#if ! defined key_trc_kriest 
     26      jpbfe = 15 ,  &  ! Big iron particles Concentration 
     27      jpgoc = 16 ,  &  ! big particulate organic phosphate concentration 
     28      jpsfe = 17 ,  &  ! Small iron particles Concentration 
     29      jpdfe = 18 ,  &  ! Diatoms iron Concentration 
     30      jpdsi = 19 ,  &  ! Diatoms Silicate Concentration 
     31      jpnfe = 20 ,  &  ! Nano iron Concentration 
     32      jpnch = 21 ,  &  ! Nano Chlorophyll Concentration 
     33      jpdch = 22 ,  &  ! Diatoms Chlorophyll Concentration 
     34      jpno3 = 23 ,  &  ! Nitrates Concentration 
     35      jpnh4 = 24       ! Ammonium Concentration 
     36#else 
     37      jpnum = 15 ,  &  ! Big iron particles Concentration 
     38      jpsfe = 16 ,  &  ! number of particulate organic phosphate concentration 
     39      jpdfe = 17 ,  &  ! Diatoms iron Concentration 
     40      jpdsi = 18 ,  &  ! Diatoms Silicate Concentration 
     41      jpnfe = 19 ,  &  ! Nano iron Concentration 
     42      jpnch = 20 ,  &  ! Nano Chlorophyll Concentration 
     43      jpdch = 21 ,  &  ! Diatoms Chlorophyll Concentration 
     44      jpno3 = 22 ,  &  ! Nitrates Concentration 
     45      jpnh4 = 23       ! Ammonium Concentration 
     46#endif 
     47 
  • trunk/NEMO/TOP_SRC/SMS/sms.F90

    r341 r617  
    1717   USE par_trc 
    1818   USE par_sms 
     19 
    1920   IMPLICIT NONE 
     21 
     22   PUBLIC 
    2023 
    2124#if defined key_trc_lobster1 
  • trunk/NEMO/TOP_SRC/SMS/sms_lobster1.h90

    r341 r617  
    2323!!---------------------------------------------------------------------- 
    2424!! 
    25 !! COMMON/cotbio/ : biological parameters 
     25!! biological parameters 
    2626!! -------------------------------------------- 
    2727!! 
     
    8787      REAL remdmp(jpk,jptra) 
    8888 
    89       COMMON/cotbio/  apmin,azmin,anmin,admin,  & 
    90                      redf,reddom,slopet,toptp,aknut,psinut,akno3,aknh4,rcchl,  & 
    91                      rgamma,toptgz,tmaxgz,rgz,  & 
    92                      rppz,taus,aks,filmax,rpnaz,rdnaz,eggzoo,tauzn,  & 
    93                      tmmaxp,tmminp,tmmaxz,tmminz,anumin,afdmin,taudn,  & 
    94                      vsed,tmumax,aki,  & 
    95                      tmaxr,tminr,remdmp,fdoml,taunn,taudomn,xhr,  & 
    96                      fphylab,fzoolab,fdetlab,fdbod 
    9789!! 
    9890!! 
     
    10193!!---------------------------------------------------------------------- 
    10294!! 
    103 !! COMMON/cottbd/ : biological trends  
     95!! biological trends  
    10496!! ------------------------------------------------------------------ 
    10597!! 
     
    114106      REAL trbio(jpi,jpj,jpk,jpdiabio) 
    115107 
    116       COMMON/cittbd/ctrbio, ctrbil, ctrbiu 
    117  
    118       COMMON/cottbd/trbio 
    119108!! 
    120109!!    netcdf files and index COMMON biological trends files 
     
    127116!! 
    128117      INTEGER nwritebio,nitb,ndepitb,nhoritb 
    129       COMMON/cibcdf/nwritebio,nitb,ndepitb,nhoritb 
    130118 
    131119#    endif  
     120 
    132121!!---------------------------------------------------------------------- 
    133122!! 
    134 !! COMMON/cotopt/ : optical parameters 
     123!! optical parameters 
    135124!! ----------------------------------- 
    136125!! 
     
    149138      REAL xze(jpi,jpj) 
    150139      REAL xpar(jpi,jpj,jpk) 
    151       COMMON/cotopt/xze,xpar,xkr0,xkg0, & 
    152                      xkgp,xkrp,xlg,xlr,rpig 
     140 
    153141!!---------------------------------------------------------------------- 
    154142!! 
    155 !! COMMON/cotsedim/ : sediment parameters 
     143!! sediment parameters 
    156144!! -------------------------------------- 
    157145!! 
     
    171159      REAL fbod(jpi,jpj),cmask(jpi,jpj),areacot 
    172160 
    173       COMMON/cotsedim/sedlam,dmin3,dminl,fbod,sedlostpoc, & 
    174          &               sedpoca, sedpocb, sedpocn, & 
    175          &                cmask, areacot 
  • trunk/NEMO/TOP_SRC/SMS/sms_pisces.h90

    r341 r617  
    1212!!      original    : 00-02 (O. Aumont) 
    1313!! 
    14 !!--------------------------------------------------------------------- 
    15 !!  TOP 1.0 , LOCEAN-IPSL (2005)  
    16    !! $Header$  
    17    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    18 !!--------------------------------------------------------------------- 
    1914!! 
    2015#if defined key_trc_pisces 
     
    2217!!---------------------------------------------------------------------- 
    2318!! 
    24 !! COMMON/cchem1/ : Variable for chemistry of the CO2 cycle 
    25 !! 
    26 !! --------------------------------------------------------------------- 
    27 !! 
    28       REAL akb3(jpi,jpj,jpk), ak13(jpi,jpj,jpk), ak23(jpi,jpj,jpk) 
    29       REAL aksp(jpi,jpj,jpk), co3(jpi,jpj,jpk), hi(jpi,jpj,jpk) 
    30       REAL borat(jpi,jpj,jpk), akw3(jpi,jpj,jpk), h2co3(jpi,jpj) 
    31       REAL fugaci(jpi,jpj), atcco2, atcox 
    32  
    33       COMMON/cchem1/ akb3,ak13,ak23,aksp,co3,hi,borat,akw3,h2co3,  & 
    34                      fugaci, atcco2, atcox 
    35 !! 
    36 !!---------------------------------------------------------------------- 
    37 !! 
    38 !! COMMON/cchem2/ : Variable for chemistry of the CO2 cycle 
    39 !! 
    40 !! --------------------------------------------------------------------- 
    41 !! 
    42       REAL akcc1, akcc2, akcc3, akcc4, devk1(4), devk2(4) 
    43       REAL devk3(4), devk4(4), devk5(4), devkst, devks 
    44       REAL bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11 
    45       REAL c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3 
    46       REAL cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14 
    47       REAL cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1 
    48       REAL ox2, ox3, ox4, salchl, rgas, oxyco, ox5 
    49       REAL ca0, ca1, ca2, ca3, ca4, ca5, ca6, chemc(jpi,jpj,3) 
    50       REAL cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21 
    51       REAL cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33 
    52       REAL cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16 
    53       REAL cs17, cs18, cs19 
    54  
    55       COMMON/cchem2/ akcc1, akcc2, akcc3, akcc4, devk1, devk2,   & 
    56        devk3, devk4, devk5, devkst, devks,   & 
    57        bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11, & 
    58        c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3,  & 
    59        c14, cb4, cb5, ca0, ca1, ca2, ca3, ca4, ca5, ca6,  & 
    60        cb6, cb7, cb8, cb9, cb10, cb11,  cw3, cw4, cw5, cw6,  & 
    61        cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4, ox5, salchl,  & 
    62        cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21,  & 
    63        cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33,  & 
    64        cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16,  & 
    65        cs17, cs18, cs19, rgas, oxyco, chemc 
    66 !! 
    67 !! COMMON/cchem3/ : Variable for chemistry of Fe and SIO3 
    68 !! 
    69 !! --------------------------------------------------------------------- 
    70 !! 
    71       REAL sio3eq(jpi,jpj,jpk),fekeq(jpi,jpj,jpk) 
    72  
    73       COMMON/cchem3/ sio3eq, fekeq 
    74 !! 
    75 !!---------------------------------------------------------------------- 
    76 !! 
    77 !! COMMON/cotsedim/ : Variable for simplified sediments 
    78 !! 
    79 !! --------------------------------------------------------------------- 
    80 !! 
    81       REAL sedpoc(jpi,jpj),sedcal(jpi,jpj),sedsil(jpi,jpj) 
    82       REAL sedlam,sedlostpoc, sedlostsil,sedlostcal 
    83  
    84       COMMON/cotsedim/sedpoc,sedcal,sedsil,sedlam,  & 
    85                       sedlostpoc, sedlostsil,sedlostcal 
    86 !! 
    87 !!---------------------------------------------------------------------- 
    88 !! 
    89 !! COMMON/cotcon/ : Time variables 
    90 !! 
    91 !! --------------------------------------------------------------------- 
    92 !! 
    93  
    94       INTEGER iabsyr, nrdttrc, ndayflxtr 
    95       REAL tspyr, absyr, xtvit 
    96       REAL rfact, rfactr, rfact2, rfact2r 
    97  
    98       COMMON/cottim/iabsyr,nrdttrc,tspyr, absyr,xtvit, ndayflxtr, & 
    99                     rfact, rfactr, rfact2, rfact2r 
    100  
    101 !! 
    102 !!---------------------------------------------------------------------- 
    103 !! 
    104 !! COMMON/cotgas/ : Gas exchange 
    105 !! 
    106 !! --------------------------------------------------------------------- 
    107 !! 
    108       INTEGER igaswind,icice 
    109       REAL gasfac, strn(jpi,jpj) 
    110       REAL wind(jpi,jpj), kgwanin(jpi,jpj) 
    111       REAL wsmo(jpi,jpj,12), kgwanmo(jpi,jpj,12) 
    112       REAL cicemo(jpi,jpj,12) 
    113       REAL patm(jpi,jpj),ppres(jpi,jpj,12) 
    114  
    115       COMMON/cotgas/ gasfac, igaswind, icice,  & 
    116                    wind, kgwanin, wsmo, kgwanmo, cicemo,  & 
    117                   patm,ppres,strn 
    118  
     19!! Variable for chemistry of the CO2 cycle 
     20!! 
     21!! --------------------------------------------------------------------- 
     22!! 
     23      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
     24         akb3, ak13, ak23, aksp, akw3, & 
     25         akp13, akp23, akp33, aksi3, aks3, akf3, & 
     26         hi, borat 
     27 
     28      REAL :: & 
     29         atcco2, atcox 
     30 
     31!! 
     32!!---------------------------------------------------------------------- 
     33!! 
     34!!  Variable for chemistry of the CO2 cycle 
     35!! 
     36!! --------------------------------------------------------------------- 
     37!! 
     38      REAL(wp), DIMENSION(10)  :: & 
     39         devk1, devk2, devk3, devk4, devk5      
     40    
     41      REAL(wp) :: &  
     42         akcc1, akcc2, akcc3, akcc4,akcc5, akcc6, akcc7, akcc8, akcc9 , & 
     43         bor1, bor2, c00, c01, c02, c03, c04, c05, c10, c11, & 
     44         c12, c13, c20, c21, c22, c23, cb0, cb1, cb2, cb3, & 
     45         cb4, cb5, cb6, cb7, cb8, cb9, cb10, cb11, c14, & 
     46         cw3, cw4, cw5, cw6, cw0, cw1, cw2, ox0, ox1, ox2, ox3, ox4,ox5, & 
     47         salchl, rgas, oxyco, ca0, ca1, ca2, ca3, ca4, ca5, ca6, & 
     48         cp10, cp11, cp12, cp13, cp14, cp15, cp16, cp20, cp21, & 
     49         cp22, cp23, cp24, cp25, cp26, cp30, cp31, cp32, cp33, & 
     50         cp34, cp35, cs10, cs11, cs12, cs13, cs14, cs15, cs16, & 
     51         cs17, cs18, cs19, cs20, cs21, & 
     52         st1, st2, ft1, ft2, ks0, ks1, ks2, ks3, ks4, ks5, & 
     53         ks6, ks7, ks8, ks9, ks10, ks11, ks12, kf0, kf1, & 
     54         kf2, kf3, kf4 
     55 
     56      REAL(wp), DIMENSION(jpi,jpj,3) :: & 
     57         chemc 
     58 
     59!! 
     60!!---------------------------------------------------------------------- 
     61!! 
     62!!  Variable for chemistry of Fe and SIO3 
     63!! 
     64!! --------------------------------------------------------------------- 
     65!! 
     66      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
     67         sio3eq, fekeq 
     68!! 
     69!!---------------------------------------------------------------------- 
     70!! 
     71!!  Variable for simplified sediments 
     72!! 
     73!! --------------------------------------------------------------------- 
     74!! 
     75      REAL(wp), DIMENSION(jpi,jpj) :: &  
     76         sedpoc, sedcal, sedsil 
     77 
     78      REAL(wp) :: & 
     79         sedlam,sedlostpoc, sedlostsil,sedlostcal 
     80 
     81 
     82!! 
     83!!---------------------------------------------------------------------- 
     84!! 
     85!!  Time variables 
     86!! 
     87!! --------------------------------------------------------------------- 
     88!! 
     89 
     90      INTEGER :: & 
     91         iabsyr, nrdttrc, ndayflxtr 
     92 
     93      REAL(wp) :: & 
     94         tspyr, absyr, xtvit , & 
     95         rfact, rfactr, rfact2, rfact2r 
     96 
     97 
     98!! 
     99!!---------------------------------------------------------------------- 
     100!! 
     101!!  Gas exchange 
     102!! 
     103!! --------------------------------------------------------------------- 
     104!! 
     105      REAL(wp), DIMENSION(jpi,jpj) :: &  
     106         strn 
    119107!!--------------------------------------- 
    120108!! 
    121 !! COMMON/cotham/ : biological parameters  
     109!!  Biological parameters  
    122110!! 
    123111!! -------------------------------------- 
    124112!!  
    125       INTEGER jkopt 
    126       REAL caco3r, rno3, o2ut, po4r 
    127       REAL sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput 
    128       REAL calcon, rivpo4input,nitdepinput,oxymin,spocri 
    129       REAL nitrif,rdenit,o2nit,concnnh4,concdnh4 
    130       REAL pislope,excret,wsbio,wchl,resrat,mprat,wchld 
    131       REAL mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort 
    132       REAL xksi1,xksi2,sicmax,xremik,xremip,xkdoc1 
    133       REAL xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz 
    134       REAL xkgraz2,grazrat2,xlam1,conc1,conc2,conc3 
    135       REAL unass2,xprefpoc,epsher,epsher2,pislope2,mpratm 
    136       REAL sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3 
    137       REAL xsirem, fecnm, fecdm, chlcnm, chlcdm 
    138  
    139  
    140       COMMON/cotham/jkopt,caco3r, rno3, o2ut, po4r,   & 
    141                     sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput,   & 
    142                     calcon, rivpo4input,nitdepinput,oxymin,spocri,   & 
    143                     nitrif,rdenit,o2nit,concnnh4,concdnh4, & 
    144                     pislope,excret,wsbio,wchl,resrat,mprat,wchld,   & 
    145                     mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort,   & 
    146                     xksi1,xksi2,sicmax,xremik,xremip,xkdoc1,   & 
    147                     xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz,   & 
    148                     xkgraz2,grazrat2,xlam1,conc1,conc2,conc3, & 
    149                     unass2,xprefpoc,epsher,epsher2,pislope2,mpratm, & 
    150                     sigma1,sigma2, zprefc, zprefp, zprefd, wchl2, ferat3, & 
    151                     xsirem, fecnm, fecdm, chlcnm, chlcdm 
    152  
    153 !! 
    154 !!--------------------------------------------- 
    155 !! 
    156 !! COMMON/cotpar/ : Biological fluxes for light 
    157 !! 
    158 !!--------------------------------------------- 
    159 !! 
    160       REAL etot(jpi,jpj,jpk),etot3(jpi,jpj,jpk),emoy(jpi,jpj,jpk) 
    161       REAL xkrgb(3,61),zmeu(jpi,jpj) 
    162  
    163       COMMON/cotpar/etot,etot3,emoy,xkrgb,zmeu 
     113      INTEGER :: & 
     114         jkopt 
     115 
     116      REAL(wp) :: & 
     117         caco3r, kdca, nca, part, rno3, o2ut, po4r,  & 
     118         sco2, dispo0, conc0,sumdepsi,rivalkinput,sedfeinput, & 
     119         calcon, rivpo4input,nitdepinput,oxymin,spocri, & 
     120         nitrif,rdenit,o2nit,concnnh4,concdnh4, & 
     121         pislope,excret,wsbio,resrat,mprat,wchl,wchld, & 
     122         mzrat,grazrat,xprefc,xprefp,unass,xkgraz,xkmort, & 
     123         xksi1,xksi2,sicmax,xremik,xremip,xkdoc1, & 
     124         xkdoc2,grosip,resrat2,excret2,mprat2,mzrat2,xprefz, & 
     125         xkgraz2,grazrat2,xlam1,conc1,conc2,conc3, & 
     126         unass2,xprefpoc,epsher,epsher2,pislope2,mpratm, & 
     127         sigma1, sigma2, zprefc, zprefp, zprefd, wchl2, ferat3, & 
     128         xsirem, fecnm, fecdm, chlcnm, chlcdm 
     129 
     130 
     131 
     132!! 
     133!!--------------------------------------------- 
     134!! 
     135!!  Biological fluxes for light 
     136!! 
     137!!--------------------------------------------- 
     138!! 
     139      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
     140         etot, etot3, emoy 
     141 
     142      REAL(wp), DIMENSION(jpi,jpj) :: & 
     143         zmeu 
     144 
     145      REAL(wp), DIMENSION(3,61) :: &  
     146         xkrgb 
     147 
     148 
    164149!! 
    165150!!---------------------------------------------------------- 
    166151!! 
    167 !! COMMON/cotppp/ : Biological fluxes for primary production 
     152!! Biological fluxes for primary production 
    168153!! 
    169154!!---------------------------------------------------------- 
    170155!! 
    171       REAL prmax(jpi,jpj,jpk),tgfunc(jpi,jpj,jpk), tgfunc2(jpi,jpj,jpk) 
    172       REAL prcaca(jpi,jpj,jpk), silpro(jpi,jpj,jpk), prorca(jpi,jpj,jpk) 
    173       REAL prorca2(jpi,jpj,jpk),prorca3(jpi,jpj,jpk) 
    174       REAL prorca4(jpi,jpj,jpk),prorca5(jpi,jpj,jpk) 
    175       REAL prorca6(jpi,jpj,jpk),prorca7(jpi,jpj,jpk) 
    176       REAL pronew(jpi,jpj,jpk),pronew2(jpi,jpj,jpk) 
    177       REAL proreg(jpi,jpj,jpk),proreg2(jpi,jpj,jpk) 
    178       REAL xnanono3(jpi,jpj,jpk),xdiatno3(jpi,jpj,jpk) 
    179       REAL xnanonh4(jpi,jpj,jpk),xdiatnh4(jpi,jpj,jpk) 
    180       REAL xlimphy(jpi,jpj,jpk),xlimdia(jpi,jpj,jpk) 
    181       REAL xksimax(jpi,jpj), xksi(jpi,jpj) 
    182       REAL concdfe(jpi,jpj,jpk),xlimdia2(jpi,jpj,jpk) 
    183       REAL concnfe(jpi,jpj,jpk),znegtr(jpi,jpj,jpk) 
    184  
    185  
    186  
    187       COMMON/cotppp/prmax,tgfunc,prcaca,silpro,prorca,prorca2,  & 
    188           prorca3,prorca4,prorca5,prorca6,prorca7,pronew,  & 
    189           pronew2,proreg,proreg2,xnanono3,xdiatno3,tgfunc2,  & 
    190           xnanonh4,xdiatnh4,xlimphy,xlimdia,xksimax,xksi,  & 
    191           concdfe, xlimdia2, concnfe, znegtr 
     156      REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 
     157         prmax, tgfunc, tgfunc2, & 
     158         prcaca, prorca, prorca2, prorca3, & 
     159         prorca4, prorca5, prorca6, prorca7, & 
     160         pronew, pronew2, proreg, proreg2, & 
     161         xnanono3, xdiatno3, xnanonh4, xdiatnh4, & 
     162         xlimphy, xlimdia, concdfe, concnfe, znegtr 
     163 
     164      REAL(wp), DIMENSION(jpi,jpj) :: &       
     165         xksimax, xksi 
     166 
     167 
     168 
    192169!! 
    193170!!------------------------------------------ 
    194171!! 
    195 !! COMMON/cotmorp/ : sinks for phytoplankton 
     172!! Sinks for phytoplankton 
    196173!! 
    197174!!------------------------------------------ 
    198175!! 
    199       REAL tortp(jpi,jpj,jpk),tortnf(jpi,jpj,jpk) 
    200       REAL tortnch(jpi,jpj,jpk),respp(jpi,jpj,jpk) 
    201       REAL respnch(jpi,jpj,jpk),respdch(jpi,jpj,jpk) 
    202       REAL tortp2(jpi,jpj,jpk),tortdf(jpi,jpj,jpk) 
    203       REAL tortdch(jpi,jpj,jpk),respp2(jpi,jpj,jpk) 
    204       REAL tortds(jpi,jpj,jpk),respds(jpi,jpj,jpk) 
    205       REAL respdf(jpi,jpj,jpk),respnf(jpi,jpj,jpk) 
    206  
    207       COMMON/cotmorp/tortp,tortnf,tortnch,respp,respnch,  & 
    208            respdch,tortp2,tortdf,tortdch,respp2,tortds,  & 
    209            respds,respdf,respnf 
     176      REAL(wp), DIMENSION(jpi,jpj,jpk) :: &       
     177         tortp, tortnf, tortnch, & 
     178         respp, respp2, respnch, respdch, & 
     179         tortp2, tortdf, tortdch, tortds, & 
     180         respds, respdf, respnf 
     181 
     182 
    210183!! 
    211184!!------------------------------------ 
    212185!! 
    213 !! COMMON/cotzoo/ : SMS for zooplankton 
     186!! SMS for zooplankton 
    214187!! 
    215188!!------------------------------------- 
    216189!! 
    217       REAL respz(jpi,jpj,jpk),tortz(jpi,jpj,jpk) 
    218       REAL grazp(jpi,jpj,jpk),grazpf(jpi,jpj,jpk) 
    219       REAL grazpch(jpi,jpj,jpk),grazm(jpi,jpj,jpk) 
    220       REAL grazmf(jpi,jpj,jpk),grazsd(jpi,jpj,jpk) 
    221       REAL grazsf(jpi,jpj,jpk),grazss(jpi,jpj,jpk) 
    222       REAL grazsch(jpi,jpj,jpk),grarem(jpi,jpj,jpk) 
    223       REAL grafer(jpi,jpj,jpk),respz2(jpi,jpj,jpk) 
    224       REAL tortz2(jpi,jpj,jpk),grazd(jpi,jpj,jpk) 
    225       REAL grazz(jpi,jpj,jpk),grazn(jpi,jpj,jpk) 
    226       REAL grazpoc(jpi,jpj,jpk),graznf(jpi,jpj,jpk) 
    227       REAL graznch(jpi,jpj,jpk),grazs(jpi,jpj,jpk) 
    228       REAL grazf(jpi,jpj,jpk),grazdch(jpi,jpj,jpk) 
    229       REAL grazpof(jpi,jpj,jpk),grarem2(jpi,jpj,jpk) 
    230       REAL grafer2(jpi,jpj,jpk),grapoc2(jpi,jpj,jpk) 
    231       REAL grapoc(jpi,jpj,jpk) 
    232       REAL grazffe(jpi,jpj,jpk),grazfff(jpi,jpj,jpk) 
    233  
    234       COMMON/cotzoo/respz,tortz,grazp,grazpf,grazpch,grazm,  & 
    235           grazmf,grazsd,grazsf,grazss,grazsch,grarem,grafer,  & 
    236           respz2,tortz2,grazd,grazz,grazn,grazpoc,graznf,  & 
    237           graznch,grazs,grazf,grazdch,grazpof,grarem2,  & 
    238           grafer2,grapoc2,grapoc,grazffe,grazfff 
    239 !! 
    240 !!--------------------------------------------- 
    241 !! 
    242 !! COMMON/cotpdom/ : SMS for the organic matter 
    243 !! 
    244 !!--------------------------------------------- 
    245 !! 
    246       REAL sinking2(jpi,jpj,jpk),phymoy(jpi,jpj) 
    247       REAL sinking(jpi,jpj,jpk),sinkfer(jpi,jpj,jpk) 
    248       REAL sinkfer2(jpi,jpj,jpk),zdiss(jpi,jpj,jpk) 
    249       REAL xagg(jpi,jpj,jpk),xaggfe(jpi,jpj,jpk) 
    250       REAL xbact(jpi,jpj,jpk),xaggdoc(jpi,jpj,jpk) 
    251       REAL xaggdfe(jpi,jpj,jpk),xbactfer(jpi,jpj,jpk) 
    252       REAL xscave(jpi,jpj,jpk),olimi(jpi,jpj,jpk) 
    253       REAL orem(jpi,jpj,jpk),orem2(jpi,jpj,jpk) 
    254       REAL ofer(jpi,jpj,jpk),ofer2(jpi,jpj,jpk) 
    255       REAL osil(jpi,jpj,jpk),xaggdoc2(jpi,jpj,jpk) 
    256       REAL wsbio4(jpi,jpj,jpk),wsbio3(jpi,jpj,jpk),wsbio2 
    257       REAL sinksil(jpi,jpj,jpk),sinkcal(jpi,jpj,jpk) 
    258       REAL nitrfac(jpi,jpj,jpk),xlimbac(jpi,jpj,jpk) 
    259       REAL wscal(jpi,jpj,jpk) 
    260  
    261       COMMON/cotpdom/sinking2,phymoy,sinking,sinkfer,sinkfer2,  & 
    262           xagg,xaggfe,xbact,xaggdoc,xaggdfe,xbactfer,xscave,  & 
    263           olimi,orem,orem2,ofer,ofer2,osil,xaggdoc2,wsbio4,  & 
    264           wsbio3,wsbio2,sinksil,sinkcal,nitrfac,xlimbac,zdiss, & 
    265           wscal 
    266 !! 
    267 !!--------------------------------------------------------- 
    268 !! 
    269 !! COMMON/cotesms/ : external sources of nutrients in ocean 
    270 !! 
    271 !!--------------------------------------------------------- 
    272 !! 
    273       REAL onitr(jpi,jpj,jpk),denitr(jpi,jpj,jpk) 
    274       REAL dust(jpi,jpj),dustmo(jpi,jpj,12) 
    275       REAL cmask(jpi,jpj,jpk),areacot,cotdep(jpi,jpj) 
    276       REAL nitdep(jpi,jpj)  
    277       REAL ironsed(jpi,jpj,jpk),rivinp(jpi,jpj) 
    278       LOGICAL bdustfer, briver, bndepo, bsedinput 
    279  
    280       COMMON/cotesms/onitr,denitr,dust,dustmo,cmask,areacot, & 
    281                      cotdep,nitdep,ironsed,rivinp,bdustfer,briver, & 
    282                      bndepo,bsedinput 
    283  
     190      REAL(wp), DIMENSION(jpi,jpj,jpk) :: &    
     191         respz, tortz, grazp, grazpf, & 
     192         grazpch, grazm, grazmf, grazsd, & 
     193         grazsf, grazss, grazsch, grarem, & 
     194         grafer,respz2,tortz2,grazd, grazz,grazn, & 
     195         grazpoc,graznf, graznch, grazs, grazf, & 
     196         grazdch, grazpof, grarem2, grafer2, grapoc2, & 
     197         grapoc, grazffe, grazfff 
     198 
     199 
     200!! 
     201!!--------------------------------------------- 
     202!! 
     203!!  SMS for the organic matter 
     204!! 
     205!!--------------------------------------------- 
     206!! 
     207      REAL(wp), DIMENSION(jpi,jpj,jpk) :: &    
     208         xagg, xaggfe, zdiss, xaggdoc, xaggdfe, xbactfer, & 
     209         xscave, olimi, orem, orem2, ofer, ofer2, & 
     210         osil, xaggdoc2, nitrfac, xlimbac, &  
     211         wsbio4, wsbio3, wscal 
     212 
     213      REAL(wp) :: & 
     214         wsbio2 
     215 
     216 
     217  
     218!! 
     219!!--------------------------------------------------------- 
     220!! 
     221!! External sources of nutrients in ocean 
     222!! 
     223!!--------------------------------------------------------- 
     224!! 
     225      REAL(wp), DIMENSION(jpi,jpj,jpk) :: &          
     226         onitr, denitr, ironsed 
     227 
     228      REAL(wp), DIMENSION(jpi,jpj) :: &  
     229         dust, cotdep, nitdep, rivinp 
     230 
     231      REAL(wp), DIMENSION(jpi,jpj,12) ::  &   
     232         dustmo 
     233 
     234      REAL(wp) :: & 
     235         areacot 
     236 
     237      LOGICAL :: & 
     238         bdustfer, briver, bndepo, bsedinput 
     239 
     240 
     241 
     242#if defined key_trc_kriest 
     243!! 
     244!!--------------------------------------------------------- 
     245!! 
     246!!  Kriest parameter for aggregation 
     247!! 
     248!!--------------------------------------------------------- 
     249!! 
     250      REAL(wp) :: & 
     251         xkr_eta, xkr_zeta, xkr_sfact, xkr_stick,  & 
     252         xkr_mass_min, xkr_mass_max, xkr_massp, xkr_frac, & 
     253         xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr, & 
     254         xkr_nnano, xkr_ndiat, xkr_nmeso, xkr_naggr, & 
     255         xkr_wsbio_min, xkr_wsbio_max 
     256       
     257      REAL(wp), DIMENSION(jpk) :: & 
     258         xnumm 
    284259#endif 
    285260 
     261#endif 
     262 
  • trunk/NEMO/TOP_SRC/SMS/trcctl.pisces.h90

    r341 r617  
    1212   ! ----------------------- 
    1313 
    14       IF (jptra /= 24) THEN  
     14#if  defined key_trc_kriest 
     15      IF (jptra /= 23) THEN  
     16#else 
     17      IF (jptra /= 24) THEN 
     18#endif 
    1519          IF (lwp) THEN  
    1620              WRITE (numout,*) ' ===>>>> : w a r n i n g ' 
    1721              WRITE (numout,*) ' =======   ============= ' 
    1822              WRITE (numout,*)                               & 
    19               &   ' STOP, change jptra to 24',               &  
     23              &   ' STOP, change jptra',               &  
    2024              &   ' in parameter.passivetrc.pisces.h '   
    2125          END IF  
  • trunk/NEMO/TOP_SRC/SMS/trcini.pisces.h90

    r564 r617  
    5151      REAL(wp) :: ztoto,expide,denitide,ztra,zmaskt 
    5252      REAL(wp) , DIMENSION (jpi,jpj) :: riverdoc,river,ndepo 
     53      REAL(wp) , DIMENSION (jpi,jpj,jpk) :: cmask 
    5354 
    5455      INTEGER :: numriv,numdust,numbath,numdep 
    5556      INTEGER :: numlight = 49 
    5657 
     58#if defined key_trc_kriest 
     59      REAL(wp) ::  & 
     60         znum, zdiv, & 
     61         zws,zwr, zwl,wmax, xnummax, & 
     62         zmin, zmax, zl, zr, xacc 
     63 
     64      INTEGER :: jn, kiter 
     65#endif 
    5766 
    5867      !! 1. initialization 
     
    8392         dustmo(:,:,:) = 0. 
    8493      ENDIF 
     94 
    8595 
    8696 
     
    215225      ! Lateral boundary conditions on ( ironsed )   (sign unchanged) 
    216226      CALL lbc_lnk( ironsed , 'T', 1. ) 
     227 
     228 
     229#if defined key_trc_kriest 
     230      !---------------------------------------------------------------------- 
     231      !  COMPUTATION OF THE VERTICAL PROFILE OF MAXIMUM SINKING SPEED 
     232      !  Search of the maximum number of particles in aggregates for each k-level.   
     233      !  Bissection Method 
     234      !-------------------------------------------------------------------- 
     235      WRITE(numout,*)'  ' 
     236      WRITE(numout,*)'Compute maximum number of particles in aggregates' 
     237      WRITE(numout,*)'  ' 
     238             
     239      xacc     = 0.001 
     240      kiter    = 50 
     241      zmin     = 1.10 
     242      zmax     = xkr_mass_max/xkr_mass_min 
     243      xkr_frac = zmax 
     244 
     245      DO jk =1,jpk 
     246         zl = zmin 
     247         zr = zmax 
     248         wmax = 0.5 * fse3t(1,1,jk) * rjjss / rfact2 
     249         zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
     250         znum = zl - 1. 
     251         zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
     252            & - ( xkr_wsbio_max * xkr_eta * znum * & 
     253            &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
     254            & - wmax 
     255   
     256         zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
     257         znum = zr - 1. 
     258         zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
     259            & - ( xkr_wsbio_max * xkr_eta * znum * & 
     260            &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
     261            & - wmax 
     262 
     263iflag:  DO jn = 1, kiter                
     264           IF( zwl == 0. ) THEN 
     265              xnummax = zl 
     266           ELSE IF ( zwr == 0. ) THEN 
     267              xnummax = zr 
     268           ELSE 
     269              xnummax = ( zr + zl ) / 2. 
     270              zdiv = xkr_zeta + xkr_eta - xkr_eta * xnummax 
     271              znum = xnummax - 1. 
     272              zws =  xkr_wsbio_min * xkr_zeta / zdiv & 
     273                 & - ( xkr_wsbio_max * xkr_eta * znum * & 
     274                 &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
     275                 & - wmax 
     276              IF( zws * zwl < 0. ) THEN 
     277                 zr = xnummax 
     278              ELSE 
     279                 zl = xnummax 
     280              ENDIF 
     281              zdiv = xkr_zeta + xkr_eta - xkr_eta * zl 
     282              znum = zl - 1. 
     283              zwl =  xkr_wsbio_min * xkr_zeta / zdiv & 
     284                 & - ( xkr_wsbio_max * xkr_eta * znum * & 
     285                 &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
     286                 & - wmax 
     287               
     288              zdiv = xkr_zeta + xkr_eta - xkr_eta * zr 
     289              znum = zr - 1. 
     290              zwr =  xkr_wsbio_min * xkr_zeta / zdiv & 
     291                 & - ( xkr_wsbio_max * xkr_eta * znum * & 
     292                 &     xkr_frac**( -xkr_zeta / znum ) / zdiv ) & 
     293                 & - wmax 
     294 
     295              IF ( ABS ( zws )  <= xacc ) EXIT iflag 
     296 
     297           ENDIF 
     298                     
     299        ENDDO iflag 
     300                
     301        xnumm(jk) = xnummax 
     302        WRITE(numout,*) 'jk = ',jk,' wmax = ',wmax,' xnum max = ',xnumm(jk) 
     303         
     304     END DO 
     305 
     306     WRITE(numout,*) '------------------------------------' 
     307#endif 
     308 
    217309      !!---------------------------------------------------------------------- 
    218310      !! 
     
    246338      calcon = 1.03E-2 
    247339 
    248       !! Set coefficients for apparent solubility equilibrium 
    249       !!   of calcite (Ingle, 1800, eq. 6) 
    250       !! ---------------------------------------------------- 
    251  
    252       akcc1 = -34.452 
    253       akcc2 = -39.866 
    254       akcc3 = 110.21 
    255       akcc4 = -7.5752E-6 
     340 
     341 
     342      !! Set coefficients for apparent solubility equilibrium of calcite 
     343      !! Millero et al. 1995 from Mucci 1983 
     344      !! -------------------------------------------------------------- 
     345      akcc1 = -171.9065 
     346      akcc2 = -0.077993 
     347      akcc3 = 2839.319 
     348      akcc4 = 71.595 
     349      akcc5 = -0.77712 
     350      akcc6 = 0.0028426 
     351      akcc7 = 178.34 
     352      akcc8 = -0.07711 
     353      akcc9 = 0.0041249 
     354 
    256355 
    257356 
    258357      !! Set coefficients for seawater pressure correction 
    259358      !! ------------------------------------------------- 
    260  
    261359      devk1(1) = -25.5 
    262360      devk2(1) = 0.1271 
     
    264362      devk4(1) = -3.08E-3 
    265363      devk5(1) = 0.0877E-3 
    266  
     364      !! 
    267365      devk1(2) = -15.82 
    268366      devk2(2) = -0.0219 
     
    270368      devk4(2) = 1.13E-3 
    271369      devk5(2) = -0.1475E-3 
    272  
     370      !! 
    273371      devk1(3) = -29.48 
    274372      devk2(3) = 0.1622 
     
    276374      devk4(3) = -2.84E-3 
    277375      devk5(3) = 0. 
    278  
    279       devk1(4) = -25.60 
    280       devk2(4) = 0.2324 
    281       devk3(4) = -3.6246E-3 
    282       devk4(4) = -5.13E-3 
    283       devk5(4) = 0.0794E-3 
    284  
    285       devkst = 0.23 
    286       devks  = 35.4 
     376      !! 
     377      devk1(4) = -14.51 
     378      devk2(4) = 0.1211 
     379      devk3(4) = -0.321E-3 
     380      devk4(4) = -2.67E-3 
     381      devk5(4) = 0.0427E-3 
     382      !! 
     383      devk1(5) = -23.12 
     384      devk2(5) = 0.1758 
     385      devk3(5) = -2.647E-3 
     386      devk4(5) = -5.15E-3 
     387      devk5(5) = 0.09E-3 
     388      !! 
     389      devk1(6) = -26.57 
     390      devk2(6) = 0.2020 
     391      devk3(6) = -3.042E-3 
     392      devk4(6) = -4.08E-3 
     393      devk5(6) = 0.0714E-3 
     394      !! 
     395      devk1(7) = -25.60 
     396      devk2(7) = 0.2324 
     397      devk3(7) = -3.6246E-3 
     398      devk4(7) = -5.13E-3 
     399      devk5(7) = 0.0794E-3 
     400      !! 
     401      !! For calcite with Edmond and Gieske 1970 
     402      !!     devkst = 0.23 
     403      !!     devks  = 35.4 
     404      !! Millero 95 takes this depth dependance for calcite 
     405      devk1(8) = -48.76 
     406      devk2(8) = 0.5304 
     407      devk3(8) = 0. 
     408      devk4(8) = -11.76E-3 
     409      devk5(8) = 0.3692E-3 
     410      !! 
     411      !! Coefficients for sulfate and fluoride 
     412      devk1(9) = -18.03 
     413      devk2(9) = 0.0466 
     414      devk3(9) = 0.316E-3 
     415      devk4(9) = -4.53E-3 
     416      devk5(9) = 0.09E-3 
     417 
     418      devk1(10) = -9.78 
     419      devk2(10) = -0.0090 
     420      devk3(10) = -0.942E-3 
     421      devk4(10) = -3.91E-3 
     422      devk5(10) = 0.054E-3 
     423 
    287424 
    288425      !! Set universal gas constants 
     
    333470      c23 = -0.000118 
    334471 
     472      !! Set constants for calculate concentrations for sulfate and fluoride 
     473      !! sulfates (Morris & Riley 1966) 
     474      !!---------------------------------------------------------------------- 
     475 
     476      st1 = 0.14 
     477      st2 = 1./96.062 
     478 
     479      !! fluoride 
     480      !!------------ 
     481 
     482      ft1 = 0.000067 
     483      ft2 = 1./18.9984 
     484 
     485      !! sulfates (Dickson 1990 change to mol:kg soln, idem OCMIP) 
     486      !!---------------------------------------------------------- 
     487 
     488      ks0  = 141.328 
     489      ks1  = -4276.1 
     490      ks2  = -23.093 
     491      ks3  = -13856 
     492      ks4  = 324.57 
     493      ks5  = -47.986 
     494      ks6  = 35474 
     495      ks7  = -771.54 
     496      ks8  = 114.723 
     497      ks9  = -2698 
     498      ks10 = 1776 
     499      ks11 = 1. 
     500      ks12 = -0.001005 
     501 
     502      !! fluorides (Dickson & Riley 1979 change to mol/kg soln) 
     503      !!------------------------------------------------------- 
     504      kf0 = -12.641 
     505      kf1 = 1590.2 
     506      kf2 = 1.525 
     507      kf3 = 1.0 
     508      kf4 = -0.001005 
     509 
     510      !! 
    335511      !! Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970) 
    336512      !! ------------------------------------------------------------------ 
     
    349525      cb11 = 0.053105 
    350526 
     527 
    351528      !! Set coeff. for dissoc. of water (Dickson and Riley, 1979,  
    352529      !!   eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415  
     
    362539      cw6 = -0.01615 
    363540 
    364       ! 
    365       ! Set coeff. for dissoc. of phosphate (Millero (1974) 
    366       ! --------------------------------------------------- 
    367       ! 
    368       cp10 = 115.525 
     541 
     542      !! Set coeff. for dissoc. of phosphate (Millero (1974) 
     543      !! --------------------------------------------------- 
     544       
     545      cp10 = 115.54 
    369546      cp11 = -4576.752 
    370547      cp12 = -18.453 
     
    374551      cp16 = -0.01844 
    375552 
    376       cp20 = 172.0883 
     553      cp20 = 172.1033 
    377554      cp21 = -8814.715 
    378555      cp22 = -27.927 
     
    383560 
    384561 
    385       cp30 = -18.141 
     562      cp30 = -18.126 
    386563      cp31 = -3070.75 
    387564      cp32 = 17.27039 
     
    389566      cp34 = -44.99486 
    390567      cp35 = -0.09984 
    391       ! 
    392       ! Set coeff. for dissoc. of phosphate (Millero (1974) 
    393       ! --------------------------------------------------- 
    394       ! 
     568 
     569 
     570      !! Set coeff. for dissoc. of phosphate (Millero (1974) 
     571      !! --------------------------------------------------- 
     572       
    395573      cs10 = 117.385 
    396574      cs11 = -8904.2 
     
    402580      cs17 = -12.1652 
    403581      cs18 = 0.07871 
    404       cs19 = -0.001005 
     582      cs19 = 0. 
     583      cs20 = 1. 
     584      cs21 = -0.001005 
     585 
    405586 
    406587      !! Set volumetric solubility constants for o2 in ml/l (Weiss, 1970) 
  • trunk/NEMO/TOP_SRC/SMS/trclsm.pisces.h90

    r341 r617  
    3434      ! ------------------ 
    3535      ! 
    36       NAMELIST/natgas/ gasfac, igaswind, icice 
    3736      NAMELIST/natext/ atcco2 
    38       NAMELIST/natbio/caco3r,                                          & 
     37      NAMELIST/natbio/caco3r, kdca, nca, part,                       & 
    3938         &          dispo0,conc0,oxymin,grosip, sedlam,              & 
    4039         &          sedlostpoc,sedlostcal,sedlostsil,nrdttrc,        & 
     
    4948         &          chlcnm,chlcdm, sedfeinput 
    5049      NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput 
     50#if defined key_trc_kriest 
     51      NAMELIST/natkriest/xkr_eta,xkr_zeta,xkr_sfact,xkr_mass_min,xkr_mass_max,& 
     52         &               xkr_dnano,xkr_ddiat,xkr_dmeso,xkr_daggr,xkr_stick 
     53#endif 
    5154 
    5255      ! initialize the number of LOGICAL UNIT used 
     
    6871 
    6972 
    70       ! 1 Namelist natgas : 
    71       ! ------------------- 
    72  
    73       READ(numnat,natgas) 
    74  
    75       IF(lwp) THEN 
    76          WRITE(numout,*) ' ' 
    77          WRITE(numout,*) 'natgas' 
    78          write(numout,*) 'gasfac = ',gasfac 
    79          WRITE(numout,*) ' ' 
    80          write(numout,*) 'igaswind = ',igaswind 
    81          WRITE(numout,*) ' ' 
    82          write(numout,*) 'icice = ',icice 
    83          WRITE(numout,*) ' ' 
    84       ENDIF 
    85  
    86       ! 2 Namelist natext : 
     73      ! 1 Namelist natext : 
    8774      ! ------------------- 
    8875      READ(numnat,natext) 
     
    10491            &   ' mean rainratio                             =', caco3r 
    10592         WRITE(numout,*)      & 
     93            &   ' diss. rate constant calcite (per month)    =', kdca 
     94         WRITE(numout,*)      & 
     95            &   ' order of reaction for calcite dissolution  =', nca 
     96         WRITE(numout,*)      & 
     97            &   ' part of calcite not dissolved in guts      =', part 
     98         WRITE(numout,*)      & 
    10699            &   ' mean Si/C ratio                            =', grosip 
    107100         WRITE(numout,*)      & 
     
    112105            &   ' Sediment bioturbation factor               =', sedlam 
    113106         WRITE(numout,*)      & 
    114             &   ' Sediment burying ratio for POC         =', sedlostpoc 
    115          WRITE(numout,*)      & 
    116             &   ' Sediment burying ratio for CACO3       =', sedlostcal 
    117          WRITE(numout,*)      & 
    118             &   ' Sediment burying ratio for SI          =', sedlostsil 
     107            &   ' Sediment burying ratio for POC             =', sedlostpoc 
     108         WRITE(numout,*)      & 
     109            &   ' Sediment burying ratio for CACO3           =', sedlostcal 
     110         WRITE(numout,*)      & 
     111            &   ' Sediment burying ratio for SI              =', sedlostsil 
    119112         WRITE(numout,*)      & 
    120113            &   ' frequence pour la biologie                 =', nrdttrc 
     
    125118         WRITE(numout,*)      & 
    126119            &   ' POC sinking speed                          =', wsbio 
     120         WRITE(numout,*)      & 
     121            &   ' quadratic mortality of phytoplankton       =', wchl 
     122         WRITE(numout,*)      & 
     123            &   ' maximum quadratic mortality of diatoms     =', wchld 
    127124         WRITE(numout,*)      & 
    128125            &   ' exsudation rate of zooplankton             =', resrat 
     
    240237      ENDIF 
    241238 
     239#if defined key_trc_kriest 
     240 
     241      READ(numnat,natkriest) 
     242      IF(lwp) THEN 
     243         WRITE(numout,*) ' ' 
     244         WRITE(numout,*) 'natkriest' 
     245         WRITE(numout,*) ' ' 
     246         WRITE(numout,*) 'Sinking  exponent                    xkr_eta       = ', xkr_eta  
     247         WRITE(numout,*) 'N content exponent                   xkr_zeta      = ', xkr_zeta 
     248         WRITE(numout,*) 'Sinking factor                       xkr_sfact     = ', xkr_sfact 
     249         WRITE(numout,*) 'Stickiness                           xkr_stick     = ', xkr_stick 
     250         WRITE(numout,*) 'Minimum mass for Aggregates          xkr_mass_min  = ', xkr_mass_min 
     251         WRITE(numout,*) 'Maximum mass for Aggregates          xkr_mass_max  = ', xkr_mass_max 
     252         WRITE(numout,*) 'Size of particles in nano pool       xkr_dnano     = ', xkr_dnano 
     253         WRITE(numout,*) 'Size of particles in diatoms pool    xkr_ddiat     = ', xkr_ddiat 
     254         WRITE(numout,*) 'Size of particles in mesozoo pool    xkr_dmeso     = ', xkr_dmeso 
     255         WRITE(numout,*) 'Size of particles in aggregates pool xkr_daggr     = ', xkr_daggr 
     256     ENDIF 
     257 
     258 
     259     ! Computation of some variables 
     260     xkr_massp     = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta 
     261     ! max and min vertical particle speed 
     262     xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta 
     263     xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta 
     264     WRITE(numout,*) ' max and min vertical particle speed ',xkr_wsbio_min,xkr_wsbio_max 
     265     ! 
     266     !    effect of the sizes of the different living pools on particle numbers 
     267     !    nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337 
     268     !    diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718 
     269     !    mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147 
     270     !    aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877 
     271     !    doc aggregates = 1um 
     272     ! ---------------------------------------------------------- 
     273 
     274     xkr_nnano = 1. / ( xkr_massp * xkr_dnano ) 
     275     xkr_ndiat = 1. / ( xkr_massp * xkr_ddiat ) 
     276     xkr_nmeso = 1. / ( xkr_massp * xkr_dmeso ) 
     277     xkr_naggr = 1. / ( xkr_massp * xkr_daggr ) 
     278     
     279 
     280#endif 
     281 
    242282   END SUBROUTINE trc_lsm 
  • trunk/NEMO/TOP_SRC/initrc.F90

    r345 r617  
    3232   !! * Accessibility 
    3333   PUBLIC ini_trc 
    34     
     34 
     35    !! * Substitutions 
     36#  include "domzgr_substitute.h90" 
     37   
    3538CONTAINS 
    3639    
     
    6063      !!  OPA.9, 03-2005 
    6164      !!--------------------------------------------------------------------- 
     65      INTEGER :: ji, jj, jk, jn    !: dummy loop indices 
    6266 
    6367      !! 0.b PRINT the number of tracer 
     
    8387      CALL trc_ini 
    8488 
    85       ! 4. restart from a FILE (nutrst) 
    86       ! ---------------------- 
     89  
     90      ! 4. total volume of the ocean 
     91      !----------------------------- 
     92 
     93      areatot = 0. 
     94      DO jk = 1, jpk 
     95         DO jj = 1, jpj 
     96            DO ji = 1, jpi 
     97               areatot = areatot + tmask(ji,jj,jk) * tmask_i(ji,jj)  & 
     98#if defined key_off_degrad 
     99                  &                * facvol(ji,jj,jk)    & 
     100#endif 
     101                  &                * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)  
     102            END DO 
     103         END DO 
     104      END DO 
     105      IF( lk_mpp ) THEN  
     106         CALL mpp_sum(areatot)     ! sum over the global domain   
     107      END IF 
     108 
     109      IF(lwp) WRITE(numout,*) ' ' 
     110      IF (lwp) WRITE(numout,*) 'Total volume of ocean =',areatot 
     111      IF(lwp) WRITE(numout,*) ' ' 
     112 
     113      ! 5. Initialization of tracers 
     114      ! ----------------------------- 
    87115 
    88116      IF( lrsttr ) THEN 
    89117 
    90  
    91          CALL trc_rst 
     118         ! 5.1 restart from a file 
     119         !------------------------ 
     120         CALL trc_rst_read 
    92121 
    93122      ELSE 
    94123 
    95          ! start from anything ELSE 
    96  
     124         !  5.2 analytical formulation or global data 
     125         !------------------------------------- 
    97126         CALL trc_dtr 
    98127 
    99128      ENDIF 
    100129 
    101       ! 5. Print control 
     130 
     131      ! 6. Computation integral of all tracers 
     132      !------------------ 
     133 
     134      trai = 0. 
     135      DO jn = 1, jptra 
     136         DO jk = 1, jpk 
     137            DO jj = 1, jpj 
     138               DO ji = 1, jpi 
     139                  trai = trai + trn(ji,jj,jk,jn) * tmask(ji,jj,jk) * tmask_i(ji,jj)    & 
     140#if defined key_off_degrad 
     141                     &              * facvol(ji,jj,jk)   & 
     142#endif 
     143 
     144                     &              * e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
     145               END DO 
     146            END DO 
     147         END DO 
     148      ENDDO 
     149       
     150      IF( lk_mpp ) THEN  
     151         CALL mpp_sum(trai)         ! sum over the global domain   
     152      END IF 
     153 
     154      IF(lwp) WRITE(numout,*) ' '      
     155      IF(lwp) WRITE(numout,*) 'Integral of all tracers over the full domain at initial time =',trai 
     156      IF(lwp) WRITE(numout,*) ' ' 
     157 
     158      ! 6. Print control 
    102159      !------------------ 
    103160 
     
    106163   END SUBROUTINE ini_trc 
    107164 
     165 
    108166#else 
    109167   !!====================================================================== 
     
    111169   !!====================================================================== 
    112170CONTAINS 
    113    SUBROUTINE ini_trc 
    114        
     171   SUBROUTINE ini_trc       
    115172   END SUBROUTINE ini_trc 
    116173#endif 
  • trunk/NEMO/TOP_SRC/par_trc_trp.F90

    r433 r617  
    4545   !!   'key_trc_pisces'   :                  PISCES Source Minus Sink model 
    4646   !!--------------------------------------------------------------------- 
     47#if ! defined key_trc_kriest 
    4748   INTEGER, PUBLIC, PARAMETER :: jptra   = 24 
    4849#if defined key_trc_diaadd 
    4950   INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 
    5051   INTEGER, PUBLIC, PARAMETER :: jpdia3d = 11 
     52#  endif 
     53#else 
     54   INTEGER, PUBLIC, PARAMETER :: jptra   = 23 
     55#if defined key_trc_diaadd 
     56   INTEGER, PUBLIC, PARAMETER :: jpdia2d = 13 
     57   INTEGER, PUBLIC, PARAMETER :: jpdia3d = 18 
     58#  endif 
    5159#endif 
    5260#else 
  • trunk/NEMO/TOP_SRC/trcdtr.F90

    r493 r617  
    6363#if defined key_trc_pisces 
    6464      REAL(wp) :: alka0,oxyg0,calc0,bioma0,    & 
    65                   silic1,po4,no3,caralk,bicarb 
     65                  silic1,po4,no3,caralk,bicarb,co3 
    6666#endif 
    6767!!--------------------------------------------------------------------- 
     
    9191 
    9292      trn(:,:,:,jpdic) = sco2 
     93      trn(:,:,:,jpdoc) = bioma0 
    9394      trn(:,:,:,jptal) = alka0 
    9495      trn(:,:,:,jpoxy) = oxyg0 
     96      trn(:,:,:,jpcal) = calc0 
    9597      trn(:,:,:,jppo4) = po4 
    9698      trn(:,:,:,jppoc) = bioma0 
     99#if ! defined key_trc_kriest 
     100      trn(:,:,:,jpgoc) = bioma0 
     101      trn(:,:,:,jpbfe) = bioma0*5E-6 
     102#else 
     103      trn(:,:,:,jpnum) = bioma0/(6.*xkr_massp) 
     104#endif 
    97105      trn(:,:,:,jpsil) = silic1 
    98       trn(:,:,:,jpcal) = calc0 
     106      trn(:,:,:,jpbsi) = bioma0*0.15 
     107      trn(:,:,:,jpdsi) = bioma0*5.E-6 
    99108      trn(:,:,:,jpphy) = bioma0 
     109      trn(:,:,:,jpdia) = bioma0 
    100110      trn(:,:,:,jpzoo) = bioma0 
    101       trn(:,:,:,jpdoc) = bioma0 
    102       trn(:,:,:,jpdia) = bioma0 
    103111      trn(:,:,:,jpmes) = bioma0 
    104       trn(:,:,:,jpbsi) = bioma0*0.15 
    105112      trn(:,:,:,jpfer) = 0.6E-9 
    106       trn(:,:,:,jpbfe) = bioma0*5E-6 
    107       trn(:,:,:,jpgoc) = bioma0 
    108113      trn(:,:,:,jpsfe) = bioma0*5.E-6 
    109114      trn(:,:,:,jpdfe) = bioma0*5.E-6 
    110115      trn(:,:,:,jpnfe) = bioma0*5.E-6 
    111       trn(:,:,:,jpdsi) = bioma0*5.E-6 
    112116      trn(:,:,:,jpnch) = bioma0*12./55. 
    113117      trn(:,:,:,jpdch) = bioma0*12./55. 
    114       trn(:,:,:,jpno3) = no3  
     118      trn(:,:,:,jpno3) = no3 
    115119      trn(:,:,:,jpnh4) = bioma0 
     120 
    116121 
    117122!!  Initialization of chemical variables of the carbon cycle 
     
    123128              caralk = trn(ji,jj,jk,jptal)-         &  
    124129                      borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) 
    125               co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)       &  
    126                      +(1.-tmask(ji,jj,jk))*.5e-3 
     130               co3 = (caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)   & 
     131                  &        +(1.-tmask(ji,jj,jk))*.5e-3 
    127132              bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) 
    128               hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))             &   
     133              hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3)             &   
    129134                *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 
    130135          ENDDO 
     
    132137      ENDDO 
    133138 
    134       h2co3(:,:) = 1.e-5 
    135139 
    136140!!  initialize the half saturation constant for silicate 
Note: See TracChangeset for help on using the changeset viewer.