!!----------------------------------------------------------------- !! TOP 1.0, LOCEAN-IPSL (2005) !! $Header$ !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt !!----------------------------------------------------------------- !! !! ROUTINE trcini.hamocc3.h !! ------------------------ !! !! PURPOSE : !! --------- !! Initialisation of HAMO!!3 biological and chemical variables !! !! METHOD : !! ------- !! 1) SET CONSTANTS FOR CARBONATE CHEMISTRY AS DESCRIBED IN !! IN BROECKER ET AL. (1982, GEOSECS) AND EDMOND A. GIESKES !! (1970) !! 2) INITIATE [CO3--] AND PH-VALUE BY ITERATION !! (NEWTON-RAPHSON METHOD FOR SOLVING NONLINEAR SIMULTANEOUS !! EQUATIONS, SEE E.G. SCARBOROUGH, J. (1958)) !! !! This sub-routine merges previous initia2.F bioini.F bioini2.F !! !! INPUT : !! ----- !! common !! all the common defined in opa !! !! !! OUTPUT : : no !! ------ !! !! WORKSPACE : !! --------- !! !! EXTERNAL : !! -------- !! SEAICE !! WSJCD !! WSEK !! RHO !! !! History: !! -------- !! original : 1988-07 E. MAIER-REIMER MPI HAMBURG !! additions : 1999-10 O. Aumont and C. Le Quere !! additions : 2001-03 0. Aumont and E. Kastenare : Changes in computation !! of the export profiles for silicate and calcite !! 03-2005 O. Aumont and A. EL Moussaoui F90 !! !! REFERENCE for biology: !! ---------------------- !! !! DEGENS, E.T, S. KEMPE, AND A. SPITZY (1984) !! CARBON DIOXIDE: A BIOGEOCHEMICAL PORTRAIT. !! IN: THE HANDBOOK OF ENVIRONMENTAL CHEMISTRY, VOLUME 1/ !! PART C, O. HUTZINGER, ED., SPRINGER-VERLAG, BERLIN, !! HEIDELBERG, PP. 127-215. !! !! DUGDALE. R.C. (1967) !! NUTRIENT LIMITATION IN THE SEA: DYNAMICS, IDENTIFICATION !! AND SIGNIFICANCE. !! LIMNOLOGY AND OCEANOGRAPHY, VOL.12, 685-695. !! !! PARSONS, T.R., AND M. TAKAHASHI (1973) !! BIOLOGICAL OCEANOGRAPHIC PROCESSES. !! PERGAMON PRESS, 186 PP. !! !! TAKAHASHI, T., W.S. BROECKER, AND S. LANGER (1985) !! REDFIELD RATIO BASED ON CHEMICAL DATA FROM ISOPYCNAL !! SURFACES. !! JOURNAL OF GEOPHYSICAL RESEARCH, 90(C4), 6907-6924. !! !! REFERENCE for chemistry: !! ----------------------- !! !! BERNER, R. A. (1976) !! THE SOLUBILITY OF CALCITE AND ARAGONITE IN SEA WATER !! AT ATMOSPHERIC PRESSURE AND 34.5 O/OO SALINITY. !! AMERICAN JOURNAL OF SCIENCE, VOL. 276, 713-730. !! (K'SP(ARAGONITE)=1.45 K'SP(CALCITE)) !! !! BROECKER, W.S., D.W. SPENCER, AND H. CRAIG (1982) !! GEOSECS PACIFIC EXPEDITION. VOL. 3.. HYDROGRAPHIC DATA !! 1973-1974, SUPERINTENDANT OF DOCUMENTS, U.S. GOVERNMENT !! PRINTING OFFICE, WASHINGTON, D.C., 137 PP.. !! !! CULBERSON, C.H., AND R.M. PYTKOWICZ (1968) !! EFFECT ON PRESSURE ON CARBONIC ACID, BORIC ACID AND THE PH !! IN SEA WATER. !! LIMNOLOGY AND OCEANOGRAPHY, VOL. 13, 403-417. !! !! DICKSON, A.G., AND J.P. RILEY (1979) !! THE ESTIMATION OF ACID DISSOCIATION CONSTANTS IN SEAWATER !! MEDIA FROM POTENTIOMETRIC TITRATIONS WITH STRONG BASE. !! I. THE IONIC PRODUCT OF WATER - KW. !! MARINE CHEMISTRY, VOL. 7, 89-99. !! !! EDMOND, J.M., AND J.M.T.M. GIESKES (1970) !! ON THE CALCULATION OF THE DEGREE OF SATURATION OF SEA WATER !! WITH RESPECT TO CALCIUM CARBONATE UNDER IN SITU CONDITIONS. !! GEOCHIM. ET COSMOCHIM. ACTA, 34, 1261-1291. !! !! INGLE, S.E. (1800) !! SOLUBILITY OF CALCITE IN THE OCEAN. !! MARINE CHEMISTRY, VOL. 3, 301-319. !! !! INGLE, S.E., C.H. CULBERSON, J.E. HAWLEY, AND R.M. PYTKOWICZ !! (1973) THE SOLUBILITY OF CALCITE IN SEAWATER AT ATMOSPHERIC !! PRESSURE AND 35 O/OO SALINITY. !! MARINE CHEMISTRY, VOL. 1, 295-307. !! !! RILEY, J. P., AND G. SKIRROW, EDS. (1965) !! CHEMICAL OCEANOGRAPHY. VOL. 1, 712 PP., ACADEMIC PRESS, !! LONDON A. NEW YORK. !! !! SCARBOROUGH, J. (1958) NUMERICAL MATHEMATICAL ANALYSIS. !! OXFORD UNIVERSITY PRESS, LONDON, 4TH ED., 576 PP.. !! !! WEISS, R. F. (1970) THE SOLUBILITY OF NITROGEN !! OXYGEN AND ARGON IN WATER AND SEAWATER. !! DEEP-SEA RESEARCH, VOL. 17, 721-735. !! !! WEISS, R. F. (1974) !! CARBON DIOXIDE IN WATER AND SEAWATER: THE SOLUBILITY OF A !! NON IDEAL GAS. MARINE CHEMISTRY, VOL. 2, 203-215. !! !! WOOSTER, W.S., A.J. LEE, AND G. DIETRICH (1969) !! REDEFINITION OF SALINITY. Z. GEOPHYS., VOL.35, 611-613. !! !! BROECKER, W.S., D.W. SPENCER, AND H. CRAIG (1982) !! GEOSECS PACIFIC EXPEDITION. VOL. 3.. HYDROGRAPHIC DATA !! 1973-1974, SUPERINTENDANT OF DOCUMENTS, U.S. GOVERNMENT !! PRINTING OFFICE, WASHINGTON, D.C., 137 PP.. !! !!--------------------------------------------------------------------- !! local declarations !! ================== INTEGER mo,ke1 REAL zdm0(jpi,jpj,jpk),zds0(jpi,jpj,jpk) REAL zdc0(jpi,jpj,jpk),zrrc(jpi,jpj) REAL zrro(jpi,jpj), zrrs(jpi,jpj), tobbb, tob, tun REAL zfluo, zfluu REAL ztest !! 1. initialization !! ----------------- !! initialisation of local variables !! --------------------------------- rfact = rdttra(1) * float(ndttrc) rfactr = 1./rfact WRITE(numout,*) ' Tracer time step=',rfact,' rdt=',rdt !! !! Initialize ice cover !!---------------------------------------------------------------------- IF (icice == 0) THEN WRITE (numout,*) ' No Sea Ice (default value) ' cicemo = 0.0 ELSEIF (icice == 1) THEN WRITE (numout,*) ' Sea Ice from Reynolds surface data' ELSEIF (icice == 2) THEN WRITE (numout,*) ' Sea Ice coverage from Walsh and Zwally' CALL h3cice ELSEIF (icice == 3) THEN WRITE (numout,*) ' Sea Ice Coverage from coupled run' ENDIF !!---------------------------------------------------------------------- !! !! Initialize gas exchange !! !!---------------------------------------------------------------------- IF (igaswind == 0) THEN WRITE (numout,*) ' No winds read' ELSEIF (igaswind == 1) THEN !! Hellerman and Rosenstein according to Jean-Claude Dutay !! ------------------------------------------------------- WRITE (numout,*)' Interannual wind speed' ELSEIF (igaswind == 2) THEN !! Esbensen and Kushnir according to Bonnie Samuels !! ------------------------------------------------ WRITE (numout,*)' Wind speed from Esbensen & Kushnir: ' CALL h3cwin DO mo=1,12 #if defined key_vpp CALL READ2S(900,kgwanmo(1,1,mo),jpi,jpj) #else READ (900) kgwanmo(:,:,mo) #endif ENDDO ELSEIF (igaswind == 3) THEN WRITE (numout,*) 'Wind speed from coupled run' !! In case of offline simulations forced by coupled run output !! ----------------------------------------------------------- ELSE WRITE (numout,*) ' Variable igaswind invalid!' WRITE (numout,*) ' Rerun model with igaswind = 0, 1, 2, 3' STOP ENDIF !!---------------------------------------------------------------------- !! !! Initialize biological variables !! !!---------------------------------------------------------------------- spocri = 0.003 cristl = 0. tobox = 50. prorca = 0. prcaca = 0. silpro = 0. #if defined key_trc_p3zd sinking = 0. nu = 0. tortz = 0. grazp = 0. grazpoc = 0. tortp = 0. respp = 0. respz = 0. dipn = 55. #endif !! Set biological ratios !! --------------------- rno3 = (16.+2.)/122. po4r = 1./122. o2ut = 172./122. sio2r = 0.75 !! Set fractionation factors of 13C, 14C !! ------------------------------------- pdb = 0.011112 plafr13 = 0.980 !! Set e-folding depth for penetration of newly formed biogenic poc and !! caco3 [cm] !! ---------------------------------------------------------------------- #if defined key_off_degrad # if defined key_vpp CALL READ3S(903,dmin3,jpi,jpj,jpk) CALL READ3S(903,diss3,jpi,jpj,jpk) CALL READ3S(903,disc3,jpi,jpj,jpk) # else READ(903) dmin3 READ(903) diss3 READ(903) disc3 # endif WRITE (numout,*) 'OK for read of deg.min' #else !! Calculate vertical distribution of newly formed biogenic poc !! and caco3 particles in the water column in the case of !! max. possible bottom depth !! ------------------------------------------------------------ zrro = 1. zrrs = 1. zrrc = 1. zdm0=0. zdc0=0. zds0=0. DO jk = jpkb+1,jpkm1 DO jj = 1,jpj DO ji = 1,jpi tun = fsdepw(ji,jj,jk+1) tob = fsdepw(ji,jj,jk) tobbb=fsdepw(ji,jj,jpkb+1) zfluo = (1.E2/tob)**fluexp zfluu = (1.E2/tun)**fluexp IF (zfluo.gt.1.) zfluo = 1. zdm0(ji,jj,jk) = zfluo-zfluu zdc0(ji,jj,jk) = exp(-(tob-tobbb)/pendec)- & exp(-(tun-tobbb)/pendec) zds0(ji,jj,jk) = exp(-(tob-tobbb)/pendes)- & exp(-(tun-tobbb)/pendes) zrrs(ji,jj) = zrrs(ji,jj)-zds0(ji,jj,jk) zrro(ji,jj) = zrro(ji,jj)-zdm0(ji,jj,jk) zrrc(ji,jj) = zrrc(ji,jj)-zdc0(ji,jj,jk) END DO END DO END DO DO jj = 1,jpj DO ji = 1,jpi zdc0(ji,jj,jpk) = zrrc(ji,jj) zdm0(ji,jj,jpk) = zrro(ji,jj) zds0(ji,jj,jpk) = zrrs(ji,jj) END DO END DO !! Calculate vertical distribution of newly formed biogenic poc and !! caco3 particles in the water column with realistic topography (lowest !! wet layer contains total fraction, which has passed the upper layers) !! ---------------------------------------------------------------------- dminl = 0. dissl = 0. discl = 0. dmin3 = zdm0 diss3 = zds0 disc3 = zdc0 DO jk = 1,jpk DO jj = 1,jpj DO ji = 1,jpi IF(tmask(ji,jj,jk) == 0) THEN dminl(ji,jj) = dminl(ji,jj)+dmin3(ji,jj,jk) dissl(ji,jj) = dissl(ji,jj)+diss3(ji,jj,jk) discl(ji,jj) = discl(ji,jj)+disc3(ji,jj,jk) dmin3(ji,jj,jk) = 0.0 diss3(ji,jj,jk) = 0.0 disc3(ji,jj,jk) = 0.0 ENDIF ENDDO ENDDO ENDDO DO jj = 1,jpj DO ji = 1,jpi IF (tmask(ji,jj,1) == 0) THEN dmin3(ji,jj,1) = 0. diss3(ji,jj,1) = 0. disc3(ji,jj,1) = 0. ENDIF ENDDO ENDDO #endif !!---------------------------------------------------------------------- !! !! Initialize chemical variables !! !!---------------------------------------------------------------------- !! set pre-industrial atmospheric [co2] (ppm) and o2/n2 ratio !! ---------------------------------------------------------- atcco20 = 278. atcox = 0.20946 !! Set half precision constants !! ---------------------------- tenm7 = 10.**(-7.0) smicr = 1.E-6 thousi = 1./1000. perc = 0.01 fourth = 0.25 third = 1./3. half = 0.5 one = 1. two = 2. ten = 10. !! Set lower/upper limits for temperature and salinity !! --------------------------------------------------- tfree = -1.9 tboil = 30. sweet = 20. brine = 40. salchl = 1./1.80655 temzer = 273.16 calcon = 1.03E-2 !! Set coefficients for apparent solubility equilibrium !! of calcite (Ingle, 1800, eq. 6) !! ---------------------------------------------------- akcc1 = -34.452 akcc2 = -39.866 akcc3 = 110.21 akcc4 = -7.5752E-6 arafra = 0. calfra = 1.-arafra sucall = arafra+calfra aracal = arafra*1.45+calfra !! Set coefficients for seawater pressure correction !! ------------------------------------------------- devk1 = 24.2 devk2 = 16.4 devkb = 27.5 devk1t = 0.085 devk2t = 0.04 devkbt = 0.095 devkst = 0.23 devks = 32.8*arafra+35.4*calfra !! Set universal gas constants !! --------------------------- rgas = 83.143 oxyco = 1./22.4144 !! Set boron constants !! ------------------- bor1 = 0.00023 bor2 = 1./10.82 !! Set volumetric solubility constants for co2 in ml/l (Weiss, 1974) !! ----------------------------------------------------------------- c00 = -58.0931 c01 = 90.5069 c02 = 22.2940 c03 = 0.027766 c04 = -0.025888 c05 = 0.0050578 !! Set coeff. for 1. dissoc. of carbonic acid (Edmond and Gieskes, 1970) !! --------------------------------------------------------------------- c10 = -2307.1266 c11 = 2.83655 c12 = -1.5529413 c13 = -4.0484 c14 = -0.20760841 c15 = 0.08468345 c16 = -0.00654208 c17 = -0.001005 !! Set coeff. for 2. dissoc. of carbonic acid (Edmond and Gieskes, 1970) !! --------------------------------------------------------------------- c20 = -3351.6106 c21 = -9.226508 c22 = -0.2005743 c23 = -23.9722 c24 = -0.106901773 c25 = 0.1130822 c26 = -0.00846934 c27 = -0.001005 !! Set coeff. for 1. dissoc. of boric acid (Edmond and Gieskes, 1970) !! ------------------------------------------------------------------ cb0 = -8966.90 cb1 = -2890.53 cb2 = -77.942 cb3 = 1.728 cb4 = -0.0996 cb5 = 148.0248 cb6 = 137.1942 cb7 = 1.62142 cb8 = -24.4344 cb9 = -25.085 cb10 = -0.2474 cb11 = 0.053105 !! Set coeff. for dissoc. of water (Dickson and Riley, 1979, !! eq. 7, coefficient cw2 corrected from 0.9415 to 0.09415 !! after pers. commun. to B. Bacastow, 1988) !! --------------------------------------------------------- cw0 = -13847.26 cw1 = 148.9652 cw2 = -23.6521 cw3 = 118.67 cw4 = -5.977 cw5 = 1.0495 cw6 = -0.01615 !! Set volumetric solubility constants for o2 in ml/l (Weiss, 1970) !! ---------------------------------------------------------------- ox0 = -58.3877 ox1 = 85.8079 ox2 = 23.8439 ox3 = -0.034892 ox4 = 0.015568 ox5 = -0.0019387 #if defined key_off_degrad !! Read volume for degraded regions (DEGINIT) !! ------------------------------------------ # if defined key_vpp CALL READ3S(902,facvol,jpi,jpj,jpk) # else READ (902) facvol # endif #endif !! CALCUL DU MASK DE COTE !! ---------------------- cmask=0. do ji=2,jpi-1 do jj=2,jpj-1 if (tmask(ji,jj,1) < 1) then ztest=tmask(ji+1,jj,1)*tmask(ji-1,jj,1)*tmask(ji,jj+1,1) & *tmask(ji,jj-1,1) if (ztest < 0) cmask(ji,jj)=1. endif end do end do cmask(1,:)=cmask(jpi-1,:) cmask(jpi,:)=cmask(2,:) !! CALCUL DE LA SURFACE COTIERE !! ---------------------------- do ji=2,jpi-1 do jj=2,jpj-1 areacot=areacot+e1t(ji,jj)*e2t(ji,jj)*cmask(ji,jj) end do end do CALL h3cche WRITE(numout,*) ' Initialisation of HAMO!!3 done'