Changeset 9182 for branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_9163/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
- Timestamp:
- 2018-01-04T17:24:35+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_Carb_Fail_from_GO6_9163/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
r8521 r9182 62 62 # endif 63 63 zchd, zchn, zdin, zsil 64 USE dom_oce, ONLY: e3t_0, e3t_n, gphit, tmask 64 USE dom_oce, ONLY: e3t_0, e3t_n, gphit, tmask, mig, mjg 65 65 # if defined key_iomput 66 66 USE iom, ONLY: lk_iomput … … 91 91 USE trcoxy_medusa, ONLY: trc_oxy_medusa 92 92 # endif 93 USE lib_mpp, ONLY: ctl_stop 94 USE trcstat 93 95 94 96 !!* Substitution … … 122 124 123 125 # if defined key_roam 126 !! init 127 f_fco2w(:,:) = 0.0 128 f_fco2atm(:,:) = 0.0 129 f_schmidtco2(:,:) = 0.0 130 f_kwco2(:,:) = 0.0 131 f_co2starair(:,:) = 0.0 132 f_dpco2(:,:) = 0.0 133 f_rhosw(:,:) = 0.0 134 f_K0(:,:) = 0.0 135 !! air pressure (atm); ultimately this will use air 136 !! pressure at the base of the UKESM1 atmosphere 137 !! 138 f_pp0(:,:) = 1.0 139 140 124 141 !!----------------------------------------------------------- 125 142 !! Air-sea gas exchange … … 134 151 DO ji = 2,jpim1 135 152 !! OPEN wet point IF..THEN loop 136 if(tmask(ji,jj,1) == 1) then153 IF (tmask(ji,jj,1) == 1) then 137 154 IF (lk_oasis) THEN 138 155 !! use 2D atm xCO2 from atm coupling 139 156 f_xco2a(ji,jj) = PCO2a_in_cpl(ji,jj) 157 !!! 158 !!! Jpalm test on atm xCO2 159 IF ( (f_xco2a(ji,jj) > 1500 ).OR.(f_xco2a(ji,jj) < 100 ) ) THEN 160 IF(lwp) THEN 161 WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj), & 162 ' -- ji =', mig(ji),' jj = ', mjg(jj) 163 CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic atm xCO2 ' ) 164 ENDIF 165 ENDIF 140 166 ENDIF 141 167 !! … … 162 188 'air-sea: carb-chem kt = ', kt 163 189 CALL flush(numout) 190 !! JPALM add carb print: 191 call trc_rst_dia_stat(f_xco2a(:,:), 'f_xco2a') 192 call trc_rst_dia_stat(wndm(:,:), 'wndm') 193 call trc_rst_dia_stat(f_kw660(:,:), 'f_kw660') 194 call trc_rst_dia_stat(ztmp(:,:), 'ztmp') 195 call trc_rst_dia_stat(zsal(:,:), 'zsal') 196 call trc_rst_dia_stat(zalk(:,:), 'zalk') 197 call trc_rst_dia_stat(zdic(:,:), 'zdic') 198 call trc_rst_dia_stat(zsil(:,:), 'zsil') 199 call trc_rst_dia_stat(zpho(:,:), 'zpho') 164 200 # endif 165 201 DO jj = 2,jpjm1 166 202 DO ji = 2,jpim1 167 203 if (tmask(ji,jj,1) == 1) then 168 !! air pressure (atm); ultimately this will use air169 !! pressure at the base of the UKESM1 atmosphere170 !!171 f_pp0(ji,jj) = 1.0172 !!173 !! IF(lwp) WRITE(numout,*) ' MEDUSA ztmp =', ztmp(ji,jj)174 !! IF(lwp) WRITE(numout,*) ' MEDUSA wndm =', wndm(ji,jj)175 !! IF(lwp) WRITE(numout,*) ' MEDUSA fr_i =', fr_i(ji,jj)176 204 !! 177 205 # if defined key_axy_carbchem 178 206 # if defined key_mocsy 207 !! Jpalm -- 12-09-2017 -- add extra check after reccurent 208 !! carbonate failure in the coupled run. 209 !! must be associated to air-sea flux or air xCO2...i 210 !! Check MOCSY inputs 211 IF ( (zsal(ji,jj) > 75.0 ).OR.(zsal(ji,jj) < 0.0 ) .OR. & 212 (ztmp(ji,jj) > 50.0 ).OR.(ztmp(ji,jj) < -20.0 ) .OR. & 213 (zalk(ji,jj) > 35.0E2 ).OR.(zalk(ji,jj) <= 0.0 ) .OR. & 214 (zdic(ji,jj) > 35.0E2 ).OR.(zdic(ji,jj) <= 0.0 ) .OR. & 215 (f_kw660(ji,jj) > 1.0E-2 ).OR.(f_kw660(ji,jj) < 0.0 ) ) THEN 216 IF(lwp) THEN 217 WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 218 WRITE(numout,*) ' surface S = ',zsal(ji,jj) 219 WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 220 WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 221 WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 222 WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj) 223 WRITE(numout,*) ' surface pco2w = ',f_pco2w(ji,jj) 224 WRITE(numout,*) ' surface fco2w = ',f_fco2w(ji,jj) 225 WRITE(numout,*) ' surface fco2a = ',f_fco2atm(ji,jj) 226 WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 227 WRITE(numout,*) ' surface dpco2 = ',f_dpco2(ji,jj) 228 WRITE(numout,*) ' MOCSY input: ji =', mig(ji),' jj = ', mjg(jj), & 229 ' kt = ', kt 230 WRITE(numout,*) 'MEDUSA - Air-Sea INPUT: unrealistic surface Carb. Chemistry' 231 CALL ctl_stop( 'MEDUSA - Air-Sea INPUT: ', & 232 'unrealistic surface Carb. Chemistry -- INPUTS' ) 233 ENDIF 234 ENDIF 179 235 !! 180 236 !! AXY (22/06/15): use Orr & Epitalon (2015) MOCSY-2 carbonate … … 201 257 f_TALK(ji,jj) = (zalk(ji,jj) / f_rhosw(ji,jj)) * 1000. 202 258 f_dcf(ji,jj) = f_rhosw(ji,jj) 259 !! Jpalm -- 12-09-2017 -- add extra check after reccurent 260 !! carbonate failure in the coupled run. 261 !! must be associated to air-sea flux or air xCO2...i 262 !! Check MOCSY inputs 263 IF ( (f_pco2w(ji,jj) > 1.E4 ).OR.(f_pco2w(ji,jj) < 0.0 ) .OR. & 264 (f_fco2w(ji,jj) > 1.E4 ).OR.(f_fco2w(ji,jj) < 0.0 ) .OR. & 265 (f_fco2atm(ji,jj) > 1.E4 ).OR.(f_fco2atm(ji,jj) < 0.0 ) .OR. & 266 (f_co2flux(ji,jj) > 1.E-2 ).OR.(f_co2flux(ji,jj) < -1.E-2 ) .OR. & 267 (f_dpco2(ji,jj) > 1.E4 ).OR.(f_dpco2(ji,jj) < -1.E4 ) ) THEN 268 IF(lwp) THEN 269 WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 270 WRITE(numout,*) ' surface S = ',zsal(ji,jj) 271 WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 272 WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 273 WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 274 WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj) 275 WRITE(numout,*) ' surface pco2w = ',f_pco2w(ji,jj) 276 WRITE(numout,*) ' surface fco2w = ',f_fco2w(ji,jj) 277 WRITE(numout,*) ' surface fco2a = ',f_fco2atm(ji,jj) 278 WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 279 WRITE(numout,*) ' surface dpco2 = ',f_dpco2(ji,jj) 280 WRITE(numout,*) ' MOCSY output: ji =', mig(ji),' jj = ', mjg(jj), & 281 ' kt = ', kt 282 WRITE(numout,*) 'MEDUSA - Air-Sea OUTPUT: unrealistic surface Carb. Chemistry' 283 CALL ctl_stop( 'MEDUSA - Air-Sea OUTPUT: ', & 284 'unrealistic surface Carb. Chemistry -- OUTPUTS' ) 285 ENDIF 286 ENDIF 203 287 ENDIF 204 288 ENDDO 205 289 ENDDO 206 290 291 # if defined key_debug_medusa 292 !! JPALM add carb print: 293 call trc_rst_dia_stat(f_pco2w(:,:), 'f_pco2w') 294 call trc_rst_dia_stat(f_fco2w(:,:), 'f_fco2w') 295 call trc_rst_dia_stat(f_fco2atm(:,:), 'f_fco2atm') 296 call trc_rst_dia_stat(f_schmidtco2(:,:), 'f_schmidtco2') 297 call trc_rst_dia_stat(f_kwco2(:,:), 'f_kwco2') 298 call trc_rst_dia_stat(f_co2starair(:,:), 'f_co2starair') 299 call trc_rst_dia_stat(f_co2flux(:,:), 'f_co2flux') 300 call trc_rst_dia_stat(f_dpco2(:,:), 'f_dpco2') 301 # endif 207 302 # else 208 303
Note: See TracChangeset
for help on using the changeset viewer.