[341] | 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 --------------------------------------------------------------------------- |
---|
[186] | 6 | CDIR$ LIST |
---|
| 7 | SUBROUTINE p4zflx |
---|
| 8 | #if defined key_passivetrc && defined key_trc_pisces |
---|
| 9 | CCC--------------------------------------------------------------------- |
---|
| 10 | CCC |
---|
| 11 | CCC ROUTINE p4zflx : PISCES MODEL |
---|
| 12 | CCC ***************************** |
---|
| 13 | CCC |
---|
| 14 | CCC |
---|
| 15 | CC PURPOSE. |
---|
| 16 | CC -------- |
---|
| 17 | CC *P4ZFLX* CALCULATES GAS EXCHANGE AND CHEMISTRY AT SEA SURFACE |
---|
| 18 | CC |
---|
| 19 | CC EXTERNALS. |
---|
| 20 | CC ---------- |
---|
| 21 | CC NONE. |
---|
| 22 | CC |
---|
| 23 | CC MODIFICATIONS: |
---|
| 24 | CC -------------- |
---|
| 25 | CC original : 1988-07 E. MAIER-REIMER MPI HAMBURG |
---|
| 26 | CC additions : 1998 O. Aumont |
---|
| 27 | CC modifications : 1999 C. Le Quere |
---|
| 28 | CC modifications : 2004 O. Aumont |
---|
| 29 | CC ----------------------------------------------------------------- |
---|
| 30 | CC parameters and commons |
---|
| 31 | CC ====================== |
---|
| 32 | CDIR$ NOLIST |
---|
| 33 | USE oce_trc |
---|
| 34 | USE trp_trc |
---|
| 35 | USE sms |
---|
| 36 | IMPLICIT NONE |
---|
[339] | 37 | #include "domzgr_substitute.h90" |
---|
[186] | 38 | CDIR$ LIST |
---|
| 39 | CC---------------------------------------------------------------------- |
---|
| 40 | CC local declarations |
---|
| 41 | CC ================== |
---|
| 42 | C |
---|
[339] | 43 | INTEGER nspyr, ji, jj, krorr |
---|
| 44 | REAL zpdtan |
---|
| 45 | REAL kgco2(jpi,jpj),kgo2(jpi,jpj) |
---|
| 46 | REAL ttc, ws |
---|
| 47 | REAL fld, flu, oxy16, flu16, zfact |
---|
| 48 | REAL zph,ah2,zbot,zdic,zalk,schmitto2, zalka |
---|
| 49 | REAL schmittco2 |
---|
[186] | 50 | C |
---|
| 51 | C |
---|
| 52 | C 1. ASSIGNATION TO EXPONENTS IN THE LISS AND MERLIVAT |
---|
| 53 | C FORMULATION OF THE GAS EXCHANGE RATE |
---|
| 54 | c ----------------------------------------------------- |
---|
| 55 | C |
---|
[339] | 56 | zpdtan = raass / rdt |
---|
| 57 | nspyr = nint(zpdtan) |
---|
[186] | 58 | C |
---|
| 59 | C* 1.1 SURFACE CHEMISTRY (PCO2 AND [H+] IN |
---|
| 60 | C SURFACE LAYER); THE RESULT OF THIS CALCULATION |
---|
| 61 | C IS USED TO COMPUTE AIR-SEA FLUX OF CO2 |
---|
| 62 | C --------------------------------------------------- |
---|
| 63 | C |
---|
| 64 | DO krorr = 1,10 |
---|
| 65 | C |
---|
| 66 | DO jj = 1,jpj |
---|
| 67 | DO ji = 1,jpi |
---|
| 68 | C |
---|
| 69 | C* 1.2 DUMMY VARIABLES FOR DIC, H+, AND BORATE |
---|
| 70 | C -------------------------------------------- |
---|
| 71 | C |
---|
[339] | 72 | zbot = borat(ji,jj,1) |
---|
| 73 | zfact = rhop(ji,jj,1)/1000.+rtrn |
---|
| 74 | zdic = trn(ji,jj,1,jpdic)/zfact |
---|
| 75 | zph = max(hi(ji,jj,1),1.E-10)/zfact |
---|
| 76 | zalka = trn(ji,jj,1,jptal)/zfact |
---|
[186] | 77 | C |
---|
| 78 | C* 1.3 CALCULATE [ALK]([CO3--], [HCO3-]) |
---|
| 79 | C ------------------------------------ |
---|
| 80 | C |
---|
[339] | 81 | zalk=zalka- |
---|
| 82 | & (akw3(ji,jj,1)/zph-zph+zbot/(1.+zph/akb3(ji,jj,1))) |
---|
[186] | 83 | C |
---|
| 84 | C* 1.4 CALCULATE [H+] AND [H2CO3] |
---|
| 85 | C ----------------------------------------- |
---|
| 86 | C |
---|
[339] | 87 | ah2=sqrt((zdic-zalk)**2+4*(zalk*ak23(ji,jj,1) |
---|
| 88 | & /ak13(ji,jj,1))*(2*zdic-zalk)) |
---|
| 89 | ah2=0.5*ak13(ji,jj,1)/zalk*((zdic-zalk)+ah2) |
---|
| 90 | h2co3(ji,jj) = (2*zdic-zalk)/(2.+ak13(ji,jj,1)/ah2)*zfact |
---|
| 91 | hi(ji,jj,1) = ah2*zfact |
---|
[186] | 92 | END DO |
---|
| 93 | END DO |
---|
| 94 | END DO |
---|
| 95 | C |
---|
| 96 | C |
---|
| 97 | C 2. COMPUTE FLUXES |
---|
| 98 | C -------------- |
---|
| 99 | C |
---|
| 100 | C 2.1 FIRST COMPUTE GAS EXCHANGE COEFFICIENTS |
---|
| 101 | C ------------------------------------------- |
---|
| 102 | C |
---|
| 103 | DO jj = 1,jpj |
---|
| 104 | DO ji = 1,jpi |
---|
[339] | 105 | C |
---|
[186] | 106 | ttc = min(35.,tn(ji,jj,1)) |
---|
[339] | 107 | schmittco2=2073.1-125.62*ttc+3.6276*ttc**2 |
---|
| 108 | & -0.043126*ttc**3 |
---|
| 109 | ws=vatm(ji,jj) |
---|
[186] | 110 | C |
---|
| 111 | C 2.2 COMPUTE GAS EXCHANGE FOR CO2 |
---|
| 112 | C -------------------------------- |
---|
| 113 | C |
---|
[339] | 114 | kgco2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+ |
---|
| 115 | & ttc*0.00049946)))*sqrt(660./schmittco2) |
---|
[186] | 116 | C |
---|
[339] | 117 | C 2.3 CONVERT TO m/s, and apply sea-ice cover |
---|
| 118 | C ----------------------------------------------------- |
---|
[186] | 119 | C |
---|
[339] | 120 | kgco2(ji,jj) = kgco2(ji,jj)/(100.*3600.) |
---|
| 121 | & *(1-freeze(ji,jj))*tmask(ji,jj,1) |
---|
[186] | 122 | C |
---|
| 123 | END DO |
---|
| 124 | END DO |
---|
| 125 | C |
---|
[339] | 126 | C 2.5 COMPUTE GAS EXCHANGE COEFFICIENT FO O2 FROM |
---|
| 127 | C Waninkhof EQUATIONS |
---|
| 128 | C ----------------------------------------------- |
---|
[186] | 129 | C |
---|
| 130 | DO jj = 1,jpj |
---|
| 131 | DO ji = 1,jpi |
---|
| 132 | C |
---|
[339] | 133 | ws = vatm(ji,jj) |
---|
| 134 | schmitto2 = 1953.4-128.0*ttc+3.9918*ttc**2 |
---|
| 135 | & -0.050091*ttc**3 |
---|
[186] | 136 | |
---|
[339] | 137 | kgo2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+ |
---|
| 138 | & ttc*0.00049946)))*sqrt(660./schmitto2) |
---|
[186] | 139 | C |
---|
[339] | 140 | C CONVERT TO m/s AND APPLY SEA ICE COVER |
---|
[186] | 141 | C ------------------------------------- |
---|
| 142 | C |
---|
[339] | 143 | kgo2(ji,jj) = kgo2(ji,jj)/(100.*3600.) |
---|
| 144 | $ *(1-freeze(ji,jj))*tmask(ji,jj,1) |
---|
[186] | 145 | C |
---|
| 146 | ENDDO |
---|
| 147 | ENDDO |
---|
| 148 | C |
---|
| 149 | DO jj = 1,jpj |
---|
| 150 | DO ji = 1,jpi |
---|
| 151 | C |
---|
| 152 | C Compute CO2 flux for the sea and air |
---|
| 153 | C ------------------------------------ |
---|
| 154 | C |
---|
[339] | 155 | fld = atcco2*tmask(ji,jj,1)*chemc(ji,jj,3)*kgco2(ji,jj) |
---|
| 156 | flu = h2co3(ji,jj)*tmask(ji,jj,1)*kgco2(ji,jj) |
---|
| 157 | tra(ji,jj,1,jpdic)= tra(ji,jj,1,jpdic)+(fld-flu) |
---|
| 158 | & /fse3t(ji,jj,1) |
---|
[186] | 159 | C |
---|
| 160 | C Compute O2 flux |
---|
| 161 | C --------------- |
---|
| 162 | C |
---|
| 163 | oxy16 = trn(ji,jj,1,jpoxy) |
---|
[339] | 164 | flu16 = (atcox*chemc(ji,jj,2)-oxy16)*kgo2(ji,jj) |
---|
[186] | 165 | tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy)+flu16 |
---|
[339] | 166 | & /fse3t(ji,jj,1) |
---|
[186] | 167 | C |
---|
| 168 | C Save diagnostics |
---|
| 169 | C ---------------- |
---|
| 170 | C |
---|
| 171 | # if defined key_trc_diaadd |
---|
[339] | 172 | trc2d(ji,jj,1) = (fld-flu)*1000. |
---|
[186] | 173 | trc2d(ji,jj,2) = flu16*1000. |
---|
[339] | 174 | trc2d(ji,jj,3) = kgco2(ji,jj) |
---|
| 175 | trc2d(ji,jj,4) = atcco2-h2co3(ji,jj)/(chemc(ji,jj,1)+rtrn) |
---|
[186] | 176 | # endif |
---|
| 177 | C |
---|
| 178 | END DO |
---|
| 179 | END DO |
---|
| 180 | C |
---|
| 181 | #endif |
---|
| 182 | RETURN |
---|
| 183 | END |
---|