CCC $Header$ CCC TOP 1.0 , LOCEAN-IPSL (2005) C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt C --------------------------------------------------------------------------- SUBROUTINE trcdtr CCC--------------------------------------------------------------------- CCC CCC ROUTINE trcdtr CCC ****************** CCC CCC PURPOSE : CCC --------- CCC computes or READ initial DATA for passive tracer CCC CC METHOD : CC ------- CC CC INPUT : no CC ----- CC COMMON CC /comdom/ : domain PARAMETER CC /comcoo/ : orthogonal curvilinear coordinates CC and scale factors CC /comask/ : masks, bathymetry CC CC OUTPUT : CC ------ CC argument : no CC COMMON CC /cottrc/ : passive tracer field now and before CC CC WORKSPACE : no CC --------- CC CC MODIFICATIONS: CC -------------- CC original : 96-11 CC additions : 99-9 CC : 00-12 (O. Aumont, E. Kestenare) CC add for POC in sediments CC---------------------------------------------------------------------- CC parameters and commons CC ====================== USE oce_trc USE trc USE sms IMPLICIT NONE #if defined key_passivetrc CC---------------------------------------------------------------------- CC local declarations CC ================== INTEGER ji,jj,jk,jn REAL alka0, oxyg0, calc0, bioma0 REAL silic1,po4,no3 REAL caralk,bicarb REAL ztraa, ztrab, ztran C C C 0. initialisations C ------------------ C IF(lwp) THEN WRITE(numout,*) ' ' WRITE(numout,*) ' *** trcdtr initialisation for ' WRITE(numout,*) ' passive tracers' WRITE(numout,*) ' ' ENDIF #if defined key_trc_hamocc3 sco2 = 2.15e-3 alka0 = 2.45e-3 oxyg0 = 2.e-4 po4 = 2.1e-6/po4r bioma0 = 1.e-8 silic1 = 85.e-6 calc0 = 1.e-5 DO jk = 1,jpk DO jj = 1,jpj DO ji = 1,jpi C trn(ji,jj,jk,jpdic) = sco2 trn(ji,jj,jk,jptal) = alka0 trn(ji,jj,jk,jpoxy) = oxyg0 trn(ji,jj,jk,jppo4) = po4 trn(ji,jj,jk,jppoc) = bioma0 trn(ji,jj,jk,jpsil) = silic1 trn(ji,jj,jk,jpcal) = calc0 #if defined key_trc_p3zd trn(ji,jj,jk,jpphy) = bioma0 trn(ji,jj,jk,jpzoo) = bioma0 trn(ji,jj,jk,jpdoc) = bioma0 #endif caralk = trn(ji,jj,jk,jptal)- & bor/(1.+1.E-7/akb3(ji,jj,jk)) co3(ji,jj,jk) = caralk-trn(ji,jj,jk,jpdic) bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) hi(ji,jj,jk) = ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk) h2co3(ji,jj) = 1.e-5 ENDDO ENDDO ENDDO C C initialize Silicate and Calcite in sediments C -------------------------------------------- C sedcal = 0. sedsil = 0. WRITE(numout,*) 'Initialization of P3ZD tracers done' WRITE(numout,*) '-----------------------------------' #elif defined key_cfc DO jn=1,jptra DO jj=1,jpj DO ji=1,jpi DO jk=1,jpk trn(ji,jj,jk,jn)=0.0 END DO END DO END DO END DO DO jn=1,jptra DO jk=1,jpk DO jj=1,jpj DO ji=1,jpi trb(ji,jj,jk,jn)=trn(ji,jj,jk,jn) END DO END DO END DO END DO #elif defined key_gosac c DO jn=1,jptra DO jj=1,jpj DO ji=1,jpi DO jk=1,jpk trn(ji,jj,jk,1)=1895.*1.e-6*1028.*tmask(ji,jj,jk) trn(ji,jj,jk,2)=0.9*1895.*1.e-6*1028.*tmask(ji,jj,jk) END DO END DO END DO c END DO DO jn=1,jptra DO jk=1,jpk DO jj=1,jpj DO ji=1,jpi trb(ji,jj,jk,jn)=trn(ji,jj,jk,jn) END DO END DO END DO END DO #elif defined key_trc_age DO jn=1,jptra DO jj=1,jpj DO ji=1,jpi DO jk=1,jpk trn(ji,jj,jk,1)=1. trn(ji,jj,jk,2)=0. END DO END DO END DO END DO C #elif defined key_trc_lobster1 && (defined key_eel_r6 || defined key_eel_r2) c analytical initialisation used in Levy et al. (2001) DO jk=1,7 DO jj=1,jpj DO ji=1,jpi trn(ji,jj,jk,jpdet)=0.016*tmask(ji,jj,jk) trn(ji,jj,jk,jpzoo)=0.018*tmask(ji,jj,jk) trn(ji,jj,jk,jpphy)=0.036*tmask(ji,jj,jk) trn(ji,jj,jk,jpno3)=1.e-5*tmask(ji,jj,jk) trn(ji,jj,jk,jpnh4)=0.0005*tmask(ji,jj,jk) trn(ji,jj,jk,jpdom)=0.017*tmask(ji,jj,jk) END DO END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,8,jpdet)=0.020*tmask(ji,jj,1) trn(ji,jj,8,jpzoo)=0.027*tmask(ji,jj,1) trn(ji,jj,8,jpphy)=0.041*tmask(ji,jj,1) trn(ji,jj,8,jpno3)=0.00022*tmask(ji,jj,1) trn(ji,jj,8,jpnh4)=0.0033*tmask(ji,jj,1) trn(ji,jj,8,jpdom)=0.021*tmask(ji,jj,1) END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,9,jpdet)=0.0556*tmask(ji,jj,1) trn(ji,jj,9,jpzoo)=0.123*tmask(ji,jj,1) trn(ji,jj,9,jpphy)=0.122*tmask(ji,jj,1) trn(ji,jj,9,jpno3)=0.028*tmask(ji,jj,1) trn(ji,jj,9,jpnh4)=0.024*tmask(ji,jj,1) trn(ji,jj,9,jpdom)=0.06*tmask(ji,jj,1) END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,10,jpdet)=0.025*tmask(ji,jj,1) trn(ji,jj,10,jpzoo)=0.016*tmask(ji,jj,1) trn(ji,jj,10,jpphy)=0.029*tmask(ji,jj,1) trn(ji,jj,10,jpno3)=2.462*tmask(ji,jj,1) trn(ji,jj,10,jpnh4)=0.04*tmask(ji,jj,1) trn(ji,jj,10,jpdom)=0.022*tmask(ji,jj,1) END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,11,jpdet)=0.0057*tmask(ji,jj,1) trn(ji,jj,11,jpzoo)=0.0005*tmask(ji,jj,1) trn(ji,jj,11,jpphy)=0.0006*tmask(ji,jj,1) trn(ji,jj,11,jpno3)=3.336*tmask(ji,jj,1) trn(ji,jj,11,jpnh4)=0.005*tmask(ji,jj,1) trn(ji,jj,11,jpdom)=0.004*tmask(ji,jj,1) END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,12,jpdet)=0.002*tmask(ji,jj,1) trn(ji,jj,12,jpzoo)=1.e-6*tmask(ji,jj,1) trn(ji,jj,12,jpphy)=5.e-6*tmask(ji,jj,1) trn(ji,jj,12,jpno3)=4.24*tmask(ji,jj,1) trn(ji,jj,12,jpnh4)=0.001*tmask(ji,jj,1) trn(ji,jj,12,jpdom)=3.e-5*tmask(ji,jj,1) END DO END DO DO jk=13,jpk DO jj=1,jpj DO ji=1,jpi trn(ji,jj,jk,jpdet)=0.0 trn(ji,jj,jk,jpzoo)=0.0 trn(ji,jj,jk,jpphy)=0.0 trn(ji,jj,jk,jpnh4)=0.0 trn(ji,jj,jk,jpdom)=0.0 END DO END DO END DO DO jj=1,jpj DO ji=1,jpi trn(ji,jj,13,jpno3)=5.31*tmask(ji,jj,13) trn(ji,jj,14,jpno3)=6.73*tmask(ji,jj,14) trn(ji,jj,15,jpno3)=8.32*tmask(ji,jj,15) trn(ji,jj,16,jpno3)=10.13*tmask(ji,jj,16) trn(ji,jj,17,jpno3)=11.95*tmask(ji,jj,17) trn(ji,jj,18,jpno3)=13.57*tmask(ji,jj,18) trn(ji,jj,19,jpno3)=15.08*tmask(ji,jj,19) trn(ji,jj,20,jpno3)=16.41*tmask(ji,jj,20) trn(ji,jj,21,jpno3)=17.47*tmask(ji,jj,21) trn(ji,jj,22,jpno3)=18.29*tmask(ji,jj,22) trn(ji,jj,23,jpno3)=18.88*tmask(ji,jj,23) trn(ji,jj,24,jpno3)=19.30*tmask(ji,jj,24) trn(ji,jj,25,jpno3)=19.68*tmask(ji,jj,25) trn(ji,jj,26,jpno3)=19.91*tmask(ji,jj,26) trn(ji,jj,27,jpno3)=19.99*tmask(ji,jj,27) trn(ji,jj,28,jpno3)=20.01*tmask(ji,jj,28) trn(ji,jj,29,jpno3)=20.01*tmask(ji,jj,29) trn(ji,jj,30,jpno3)=20.01*tmask(ji,jj,30) END DO END DO #elif defined key_trc_pisces sco2 = 2.3e-3 alka0 = 2.39e-3 oxyg0 = 1.8e-4 po4 = 2.165e-6/po4r bioma0 = 1.e-8 silic1 = 91.51e-6 calc0 = 1.e-6 no3 = 30.88E-6*7.6 DO jk = 1,jpk DO jj = 1,jpj DO ji = 1,jpi trn(ji,jj,jk,jpdic) = sco2 trn(ji,jj,jk,jptal) = alka0 trn(ji,jj,jk,jpoxy) = oxyg0 trn(ji,jj,jk,jppo4) = po4 trn(ji,jj,jk,jppoc) = bioma0 trn(ji,jj,jk,jpsil) = silic1 trn(ji,jj,jk,jpcal) = calc0 trn(ji,jj,jk,jpphy) = bioma0 trn(ji,jj,jk,jpzoo) = bioma0 trn(ji,jj,jk,jpdoc) = bioma0 trn(ji,jj,jk,jpdia) = bioma0 trn(ji,jj,jk,jpmes) = bioma0 trn(ji,jj,jk,jpbsi) = bioma0*0.15 trn(ji,jj,jk,jpfer) = 0.6E-9 trn(ji,jj,jk,jpbfe) = bioma0*5E-6 trn(ji,jj,jk,jpgoc) = bioma0 trn(ji,jj,jk,jpsfe) = bioma0*5.E-6 trn(ji,jj,jk,jpdfe) = bioma0*5.E-6 trn(ji,jj,jk,jpnfe) = bioma0*5.E-6 trn(ji,jj,jk,jpdsi) = bioma0*5.E-6 trn(ji,jj,jk,jpnch) = bioma0*12./55. trn(ji,jj,jk,jpdch) = bioma0*12./55. trn(ji,jj,jk,jpno3) = no3 trn(ji,jj,jk,jpnh4) = bioma0 ENDDO ENDDO ENDDO C C Initialization of chemical variables of the carbon cycle C -------------------------------------------------------- C DO jk = 1,jpk DO jj = 1,jpj DO ji = 1,jpi caralk = trn(ji,jj,jk,jptal)- & borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk) & +(1.-tmask(ji,jj,jk))*.5e-3 bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk)) & *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 ENDDO ENDDO ENDDO h2co3(:,:) = 1.e-5 C C initialize the half saturation constant for silicate C ---------------------------------------------------- C xksi(:,:)=2.E-6 C C initialize Silicate and Calcite in sediments C sedcal(:,:) = 0. sedsil(:,:) = 0. WRITE(numout,*) 'Initialization of PISCES tracers done' WRITE(numout,*) ' ' #else C C general case C DO jn=1,jptra DO jk=1,jpk DO jj=1,jpj DO ji=1,jpi trn(ji,jj,jk,jn)=0.1 END DO END DO END DO ENDDO #endif #if defined key_trc_dta C Initialization of tracer from a file C that may also be used for damping C CALL trcdta( nit000 ) DO jn = 1, jptra IF( lutini(jn) ) THEN C initialisation from file trn(:,:,:,jn) = trdta(:,:,:,jn) ENDIF END DO #endif C C before field : C trb(:,:,:,:) = trn(:,:,:,:) WRITE(numout,*) DO jn = 1, jptra IF( l_ctl .AND. lwp ) THEN ! print mean trends (used for debugging) ztraa = SUM( tra(1:jpi,1:jpj,1:jpk,jn) * $ tmask(1:jpi,1:jpj,1:jpk) ) ztrab = SUM( trb(1:jpi,1:jpj,1:jpk,jn) * $ tmask(1:jpi,1:jpj,1:jpk) ) ztran = SUM( trn(1:jpi,1:jpj,1:jpk,jn) * $ tmask(1:jpi,1:jpj,1:jpk) ) WRITE(numout,*) ' trcdtr - ',ctrcnm(jn), $ ' : ', ztraa, ' ', ztrab, ' ', ztran ENDIF END DO C C initialize the POC in sediments # if defined key_trc_npzd || defined key_trc_lobster1 || defined key_trc_hamocc3 || defined key_trc_pisces C sedpoc(:,:) = 0. C # endif #else C C no passive tracers C #endif C RETURN END