[341] | 1 | |
---|
[719] | 2 | CCC $Header$ |
---|
[341] | 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 |
---|
[772] | 8 | #if defined key_top && defined key_pisces |
---|
[186] | 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 |
---|
[617] | 45 | REAL kgco2(jpi,jpj),kgo2(jpi,jpj),h2co3(jpi,jpj) |
---|
[339] | 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) |
---|
[617] | 58 | |
---|
[186] | 59 | C |
---|
| 60 | C* 1.1 SURFACE CHEMISTRY (PCO2 AND [H+] IN |
---|
| 61 | C SURFACE LAYER); THE RESULT OF THIS CALCULATION |
---|
| 62 | C IS USED TO COMPUTE AIR-SEA FLUX OF CO2 |
---|
| 63 | C --------------------------------------------------- |
---|
| 64 | C |
---|
| 65 | DO krorr = 1,10 |
---|
| 66 | C |
---|
| 67 | DO jj = 1,jpj |
---|
| 68 | DO ji = 1,jpi |
---|
| 69 | C |
---|
| 70 | C* 1.2 DUMMY VARIABLES FOR DIC, H+, AND BORATE |
---|
| 71 | C -------------------------------------------- |
---|
| 72 | C |
---|
[339] | 73 | zbot = borat(ji,jj,1) |
---|
| 74 | zfact = rhop(ji,jj,1)/1000.+rtrn |
---|
| 75 | zdic = trn(ji,jj,1,jpdic)/zfact |
---|
| 76 | zph = max(hi(ji,jj,1),1.E-10)/zfact |
---|
| 77 | zalka = trn(ji,jj,1,jptal)/zfact |
---|
[186] | 78 | C |
---|
| 79 | C* 1.3 CALCULATE [ALK]([CO3--], [HCO3-]) |
---|
| 80 | C ------------------------------------ |
---|
| 81 | C |
---|
[339] | 82 | zalk=zalka- |
---|
| 83 | & (akw3(ji,jj,1)/zph-zph+zbot/(1.+zph/akb3(ji,jj,1))) |
---|
[186] | 84 | C |
---|
| 85 | C* 1.4 CALCULATE [H+] AND [H2CO3] |
---|
| 86 | C ----------------------------------------- |
---|
| 87 | C |
---|
[339] | 88 | ah2=sqrt((zdic-zalk)**2+4*(zalk*ak23(ji,jj,1) |
---|
| 89 | & /ak13(ji,jj,1))*(2*zdic-zalk)) |
---|
| 90 | ah2=0.5*ak13(ji,jj,1)/zalk*((zdic-zalk)+ah2) |
---|
| 91 | h2co3(ji,jj) = (2*zdic-zalk)/(2.+ak13(ji,jj,1)/ah2)*zfact |
---|
| 92 | hi(ji,jj,1) = ah2*zfact |
---|
[186] | 93 | END DO |
---|
| 94 | END DO |
---|
| 95 | END DO |
---|
| 96 | C |
---|
| 97 | C |
---|
| 98 | C 2. COMPUTE FLUXES |
---|
| 99 | C -------------- |
---|
| 100 | C |
---|
| 101 | C 2.1 FIRST COMPUTE GAS EXCHANGE COEFFICIENTS |
---|
| 102 | C ------------------------------------------- |
---|
| 103 | C |
---|
| 104 | DO jj = 1,jpj |
---|
| 105 | DO ji = 1,jpi |
---|
[339] | 106 | C |
---|
[186] | 107 | ttc = min(35.,tn(ji,jj,1)) |
---|
[339] | 108 | schmittco2=2073.1-125.62*ttc+3.6276*ttc**2 |
---|
| 109 | & -0.043126*ttc**3 |
---|
| 110 | ws=vatm(ji,jj) |
---|
[186] | 111 | C |
---|
| 112 | C 2.2 COMPUTE GAS EXCHANGE FOR CO2 |
---|
| 113 | C -------------------------------- |
---|
| 114 | C |
---|
[339] | 115 | kgco2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+ |
---|
| 116 | & ttc*0.00049946)))*sqrt(660./schmittco2) |
---|
[186] | 117 | C |
---|
[339] | 118 | C 2.3 CONVERT TO m/s, and apply sea-ice cover |
---|
| 119 | C ----------------------------------------------------- |
---|
[186] | 120 | C |
---|
[339] | 121 | kgco2(ji,jj) = kgco2(ji,jj)/(100.*3600.) |
---|
| 122 | & *(1-freeze(ji,jj))*tmask(ji,jj,1) |
---|
[502] | 123 | # if defined key_off_degrad |
---|
| 124 | & *facvol(ji,jj,1) |
---|
| 125 | # endif |
---|
[186] | 126 | C |
---|
| 127 | END DO |
---|
| 128 | END DO |
---|
| 129 | C |
---|
[339] | 130 | C 2.5 COMPUTE GAS EXCHANGE COEFFICIENT FO O2 FROM |
---|
| 131 | C Waninkhof EQUATIONS |
---|
| 132 | C ----------------------------------------------- |
---|
[186] | 133 | C |
---|
| 134 | DO jj = 1,jpj |
---|
| 135 | DO ji = 1,jpi |
---|
| 136 | C |
---|
[339] | 137 | ws = vatm(ji,jj) |
---|
[650] | 138 | ttc = min(35.,tn(ji,jj,1)) |
---|
[339] | 139 | schmitto2 = 1953.4-128.0*ttc+3.9918*ttc**2 |
---|
| 140 | & -0.050091*ttc**3 |
---|
[186] | 141 | |
---|
[339] | 142 | kgo2(ji,jj) = (0.3*ws*ws + 2.5*(0.5246+ttc*(0.016256+ |
---|
| 143 | & ttc*0.00049946)))*sqrt(660./schmitto2) |
---|
[502] | 144 | |
---|
[186] | 145 | C |
---|
[339] | 146 | C CONVERT TO m/s AND APPLY SEA ICE COVER |
---|
[186] | 147 | C ------------------------------------- |
---|
| 148 | C |
---|
[339] | 149 | kgo2(ji,jj) = kgo2(ji,jj)/(100.*3600.) |
---|
[502] | 150 | & *(1-freeze(ji,jj))*tmask(ji,jj,1) |
---|
| 151 | # if defined key_off_degrad |
---|
| 152 | & *facvol(ji,jj,1) |
---|
| 153 | # endif |
---|
[186] | 154 | C |
---|
| 155 | ENDDO |
---|
| 156 | ENDDO |
---|
| 157 | C |
---|
| 158 | DO jj = 1,jpj |
---|
| 159 | DO ji = 1,jpi |
---|
| 160 | C |
---|
| 161 | C Compute CO2 flux for the sea and air |
---|
| 162 | C ------------------------------------ |
---|
| 163 | C |
---|
[339] | 164 | fld = atcco2*tmask(ji,jj,1)*chemc(ji,jj,3)*kgco2(ji,jj) |
---|
| 165 | flu = h2co3(ji,jj)*tmask(ji,jj,1)*kgco2(ji,jj) |
---|
| 166 | tra(ji,jj,1,jpdic)= tra(ji,jj,1,jpdic)+(fld-flu) |
---|
| 167 | & /fse3t(ji,jj,1) |
---|
[186] | 168 | C |
---|
| 169 | C Compute O2 flux |
---|
| 170 | C --------------- |
---|
| 171 | C |
---|
| 172 | oxy16 = trn(ji,jj,1,jpoxy) |
---|
[339] | 173 | flu16 = (atcox*chemc(ji,jj,2)-oxy16)*kgo2(ji,jj) |
---|
[186] | 174 | tra(ji,jj,1,jpoxy) = tra(ji,jj,1,jpoxy)+flu16 |
---|
[339] | 175 | & /fse3t(ji,jj,1) |
---|
[186] | 176 | C |
---|
| 177 | C Save diagnostics |
---|
| 178 | C ---------------- |
---|
| 179 | C |
---|
| 180 | # if defined key_trc_diaadd |
---|
[339] | 181 | trc2d(ji,jj,1) = (fld-flu)*1000. |
---|
[186] | 182 | trc2d(ji,jj,2) = flu16*1000. |
---|
[339] | 183 | trc2d(ji,jj,3) = kgco2(ji,jj) |
---|
[650] | 184 | trc2d(ji,jj,4) = atcco2-h2co3(ji,jj)/(chemc(ji,jj,3)+rtrn) |
---|
[186] | 185 | # endif |
---|
| 186 | C |
---|
| 187 | END DO |
---|
| 188 | END DO |
---|
| 189 | C |
---|
| 190 | #endif |
---|
| 191 | RETURN |
---|
| 192 | END |
---|