Changeset 8642 for branches/NERC
- Timestamp:
- 2017-10-19T18:10:44+02:00 (7 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
r8521 r8642 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) > 1000 ).OR.(f_xco2a(ji,jj) < 100 ) ) THEN 160 IF(lwp) WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj), & 161 ' -- ji =', mig(ji),' jj = ', mjg(jj) 162 CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic atm xCO2 ' ) 163 ENDIF 140 164 ENDIF 141 165 !! … … 162 186 'air-sea: carb-chem kt = ', kt 163 187 CALL flush(numout) 188 !! JPALM add carb print: 189 call trc_rst_dia_stat(f_xco2a(:,:), 'f_xco2a') 190 call trc_rst_dia_stat(wndm(:,:), 'wndm') 191 call trc_rst_dia_stat(f_kw660(:,:), 'f_kw660') 192 call trc_rst_dia_stat(ztmp(:,:), 'ztmp') 193 call trc_rst_dia_stat(zsal(:,:), 'zsal') 194 call trc_rst_dia_stat(zalk(:,:), 'zalk') 195 call trc_rst_dia_stat(zdic(:,:), 'zdic') 196 call trc_rst_dia_stat(zsil(:,:), 'zsil') 197 call trc_rst_dia_stat(zpho(:,:), 'zpho') 164 198 # endif 165 199 DO jj = 2,jpjm1 166 200 DO ji = 2,jpim1 167 201 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 202 !! 177 203 # if defined key_axy_carbchem 178 204 # if defined key_mocsy 205 !! Jpalm -- 12-09-2017 -- add extra check after reccurent 206 !! carbonate failure in the coupled run. 207 !! must be associated to air-sea flux or air xCO2...i 208 !! Check MOCSY inputs 209 IF ( (zsal(ji,jj) > 75.0 ).OR.(zsal(ji,jj) < 0.0 ) .OR. & 210 (ztmp(ji,jj) > 50.0 ).OR.(ztmp(ji,jj) < -20.0 ) .OR. & 211 (zalk(ji,jj) > 35.0E2 ).OR.(zalk(ji,jj) <= 0.0 ) .OR. & 212 (zdic(ji,jj) > 35.0E2 ).OR.(zdic(ji,jj) <= 0.0 ) .OR. & 213 (f_kw660(ji,jj) > 1.0E-2 ).OR.(f_kw660(ji,jj) < 0.0 ) ) THEN 214 IF(lwp) THEN 215 WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 216 WRITE(numout,*) ' surface S = ',zsal(ji,jj) 217 WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 218 WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 219 WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 220 WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj) 221 WRITE(numout,*) ' surface pco2w = ',f_pco2w(ji,jj) 222 WRITE(numout,*) ' surface fco2w = ',f_fco2w(ji,jj) 223 WRITE(numout,*) ' surface fco2a = ',f_fco2atm(ji,jj) 224 WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 225 WRITE(numout,*) ' surface dpco2 = ',f_dpco2(ji,jj) 226 WRITE(numout,*) ' MOCSY input: ji =', mig(ji),' jj = ', mjg(jj), & 227 ' kt = ', kt 228 WRITE(numout,*) 'MEDUSA - Air-Sea : unrealistic surface Carb. Chemistry' 229 CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic surface Carb. Chemistry -- INPUTS' ) 230 ENDIF 231 ENDIF 179 232 !! 180 233 !! AXY (22/06/15): use Orr & Epitalon (2015) MOCSY-2 carbonate … … 201 254 f_TALK(ji,jj) = (zalk(ji,jj) / f_rhosw(ji,jj)) * 1000. 202 255 f_dcf(ji,jj) = f_rhosw(ji,jj) 256 !! Jpalm -- 12-09-2017 -- add extra check after reccurent 257 !! carbonate failure in the coupled run. 258 !! must be associated to air-sea flux or air xCO2...i 259 !! Check MOCSY inputs 260 IF ( (f_pco2w(ji,jj) > 1.E4 ).OR.(f_pco2w(ji,jj) < 0.0 ) .OR. & 261 (f_fco2w(ji,jj) > 1.E4 ).OR.(f_fco2w(ji,jj) < 0.0 ) .OR. & 262 (f_fco2atm(ji,jj) > 1.E4 ).OR.(f_fco2atm(ji,jj) < 0.0 ) .OR. & 263 (f_co2flux(ji,jj) > 1.E-2 ).OR.(f_co2flux(ji,jj) < -1.E-2 ) .OR. & 264 (f_dpco2(ji,jj) > 1.E4 ).OR.(f_dpco2(ji,jj) < -1.E4 ) ) THEN 265 IF(lwp) THEN 266 WRITE(numout,*) ' surface T = ',ztmp(ji,jj) 267 WRITE(numout,*) ' surface S = ',zsal(ji,jj) 268 WRITE(numout,*) ' surface ALK = ',zalk(ji,jj) 269 WRITE(numout,*) ' surface DIC = ',zdic(ji,jj) 270 WRITE(numout,*) ' KW660 = ',f_kw660(ji,jj) 271 WRITE(numout,*) ' atm xCO2 = ',f_xco2a(ji,jj) 272 WRITE(numout,*) ' surface pco2w = ',f_pco2w(ji,jj) 273 WRITE(numout,*) ' surface fco2w = ',f_fco2w(ji,jj) 274 WRITE(numout,*) ' surface fco2a = ',f_fco2atm(ji,jj) 275 WRITE(numout,*) ' surface co2flx = ',f_co2flux(ji,jj) 276 WRITE(numout,*) ' surface dpco2 = ',f_dpco2(ji,jj) 277 WRITE(numout,*) ' MOCSY output: ji =', mig(ji),' jj = ', mjg(jj), & 278 ' kt = ', kt 279 WRITE(numout,*) 'MEDUSA - Air-Sea : unrealistic surface Carb. Chemistry' 280 CALL ctl_stop( 'MEDUSA - Air-Sea :', 'unrealistic surface Carb. Chemistry -- OUTPUTS' ) 281 ENDIF 282 ENDIF 203 283 ENDIF 204 284 ENDDO 205 285 ENDDO 206 286 287 # if defined key_debug_medusa 288 !! JPALM add carb print: 289 call trc_rst_dia_stat(f_pco2w(:,:), 'f_pco2w') 290 call trc_rst_dia_stat(f_fco2w(:,:), 'f_fco2w') 291 call trc_rst_dia_stat(f_fco2atm(:,:), 'f_fco2atm') 292 call trc_rst_dia_stat(f_schmidtco2(:,:), 'f_schmidtco2') 293 call trc_rst_dia_stat(f_kwco2(:,:), 'f_kwco2') 294 call trc_rst_dia_stat(f_co2starair(:,:), 'f_co2starair') 295 call trc_rst_dia_stat(f_co2flux(:,:), 'f_co2flux') 296 call trc_rst_dia_stat(f_dpco2(:,:), 'f_dpco2') 297 # endif 207 298 # else 208 299 -
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/MEDUSA/bio_medusa_init.F90
r8521 r8642 173 173 fslowsinkc(:,:) = 0.0 174 174 # endif 175 !! 176 !! JPALM -- 21-09-2017 -- needed to debug air-sea carb 177 f_xco2a(:,:) = 0.0 178 f_pco2w(:,:) = 0.0 179 f_ph(:,:) = 0.0 180 f_kw660(:,:) = 0.0 181 ztmp(:,:) = 0.0 182 zsal(:,:) = 0.0 183 zalk(:,:) = 0.0 184 zdic(:,:) = 0.0 185 zsil(:,:) = 0.0 186 zpho(:,:) = 0.0 187 f_co2flux(:,:) = 0.0 188 f_pco2atm(:,:) = 0.0 189 f_h2co3(:,:) = 0.0 190 f_hco3(:,:) = 0.0 191 f_co3(:,:) = 0.0 192 f_omarg(:,:) = 0.0 193 f_omcal(:,:) = 0.0 175 194 !! 176 195 !! allocate and initiate 2D diag -
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r8442 r8642 177 177 !! temporary variables 178 178 REAL(wp) :: fq0,fq1,fq2,fq3,fq4 179 !! 180 !! T and S check temporary variable 181 REAL(wp) :: sumtsn, tsnavg 182 INTEGER :: summask 179 183 !! 180 184 !!------------------------------------------------------------------ … … 474 478 if (ztmp(ji,jj) .lt. -3.0 .or. ztmp(ji,jj) .gt. 40.0 ) then 475 479 IF(lwp) WRITE(numout,*) & 476 ' trc_bio_medusa: T WARNING 2D, ', &480 ' trc_bio_medusa: T WARNING 3D, ', & 477 481 tsb(ji,jj,jk,jp_tem), tsn(ji,jj,jk,jp_tem), & 478 482 ' at (', ji, ',', jj, ',', jk, ') at time', kt 479 IF(lwp) WRITE(numout,*) & 480 ' trc_bio_medusa: T SWITCHING 2D, ', & 481 tsn(ji,jj,jk,jp_tem), ' -> ', tsb(ji,jj,jk,jp_tem) 482 !! temperatur 483 !! temperature 483 484 ztmp(ji,jj) = tsb(ji,jj,jk,jp_tem) 485 IF(lwp) WRITE(numout,*) & 486 ' trc_bio_medusa: Abnormal T suroundings Temp' 487 IF(lwp) WRITE(numout,*) & 488 tsn(ji-1,jj+1,jk,jp_tem), tsn(ji,jj+1,jk,jp_tem), tsn(ji+1,jj+1,jk,jp_tem) 489 IF(lwp) WRITE(numout,*) & 490 tsn(ji-1,jj,jk,jp_tem), tsn(ji,jj,jk,jp_tem), tsn(ji+1,jj,jk,jp_tem) 491 IF(lwp) WRITE(numout,*) & 492 tsn(ji-1,jj-1,jk,jp_tem), tsn(ji,jj-1,jk,jp_tem), tsn(ji+1,jj-1,jk,jp_tem) 493 sumtsn = ( tmask(ji-1,jj+1,jk) * tsn(ji-1,jj+1,jk,jp_tem) ) + & 494 ( tmask(ji ,jj+1,jk) * tsn(ji ,jj+1,jk,jp_tem) ) + & 495 ( tmask(ji+1,jj+1,jk) * tsn(ji+1,jj+1,jk,jp_tem) ) + & 496 ( tmask(ji-1,jj ,jk) * tsn(ji-1,jj ,jk,jp_tem) ) + & 497 ( tmask(ji+1,jj ,jk) * tsn(ji+1,jj ,jk,jp_tem) ) + & 498 ( tmask(ji-1,jj-1,jk) * tsn(ji-1,jj-1,jk,jp_tem) ) + & 499 ( tmask(ji ,jj-1,jk) * tsn(ji ,jj-1,jk,jp_tem) ) + & 500 ( tmask(ji+1,jj-1,jk) * tsn(ji+1,jj-1,jk,jp_tem) ) 501 IF(lwp) WRITE(numout,*) & 502 ' trc_bio_medusa: Abnormal T suroundings Sal' 503 IF(lwp) WRITE(numout,*) & 504 tsn(ji-1,jj+1,jk,jp_sal), tsn(ji,jj+1,jk,jp_sal), tsn(ji+1,jj+1,jk,jp_sal) 505 IF(lwp) WRITE(numout,*) & 506 tsn(ji-1,jj,jk,jp_sal), tsn(ji,jj,jk,jp_sal), tsn(ji+1,jj,jk,jp_sal) 507 IF(lwp) WRITE(numout,*) & 508 tsn(ji-1,jj-1,jk,jp_sal), tsn(ji,jj-1,jk,jp_sal), tsn(ji+1,jj-1,jk,jp_sal) 509 !! 510 IF(lwp) WRITE(numout,*) & 511 ' trc_bio_medusa: Abnormal T suroundings DIC' 512 IF(lwp) WRITE(numout,*) & 513 trn(ji-1,jj+1,jk,jpdic), trn(ji,jj+1,jk,jpdic), trn(ji+1,jj+1,jk,jpdic) 514 IF(lwp) WRITE(numout,*) & 515 trn(ji-1,jj,jk,jpdic), trn(ji,jj,jk,jpdic), trn(ji+1,jj,jk,jpdic) 516 IF(lwp) WRITE(numout,*) & 517 trn(ji-1,jj-1,jk,jpdic), trn(ji,jj-1,jk,jpdic), trn(ji+1,jj-1,jk,jpdic) 518 IF(lwp) WRITE(numout,*) & 519 ' trc_bio_medusa: Abnormal T suroundings Alk' 520 IF(lwp) WRITE(numout,*) & 521 trn(ji-1,jj+1,jk,jpalk), trn(ji,jj+1,jk,jpalk), trn(ji+1,jj+1,jk,jpalk) 522 IF(lwp) WRITE(numout,*) & 523 trn(ji-1,jj,jk,jpalk), trn(ji,jj,jk,jpalk), trn(ji+1,jj,jk,jpalk) 524 IF(lwp) WRITE(numout,*) & 525 trn(ji-1,jj-1,jk,jpalk), trn(ji,jj-1,jk,jpalk), trn(ji+1,jj-1,jk,jpalk) 526 IF(lwp) WRITE(numout,*) & 527 ' trc_bio_medusa: Abnormal T suroundings tmask' 528 IF(lwp) WRITE(numout,*) & 529 tmask(ji-1,jj+1,jk), tmask(ji,jj+1,jk), tmask(ji+1,jj+1,jk) 530 IF(lwp) WRITE(numout,*) & 531 tmask(ji-1,jj,jk), tmask(ji,jj,jk), tmask(ji+1,jj,jk) 532 IF(lwp) WRITE(numout,*) & 533 tmask(ji-1,jj-1,jk), tmask(ji,jj-1,jk), tmask(ji+1,jj-1,jk) 534 summask = tmask(ji-1,jj+1,jk) + tmask(ji ,jj+1,jk) + & 535 tmask(ji+1,jj+1,jk) + tmask(ji-1,jj ,jk) + & 536 tmask(ji+1,jj ,jk) + tmask(ji-1,jj-1,jk) + & 537 tmask(ji ,jj-1,jk) + tmask(ji+1,jj-1,jk) 538 tsnavg = ( sumtsn / summask ) 539 !! Correct out of range values 540 IF ( ( summask .EQ. 0.0 ) .OR. (tsnavg .LT. -3.0 ) .OR. & 541 ( tsnavg .GT. 40.0 ) ) THEN 542 IF (ztmp(ji,jj) .LT. -3.0 ) THEN 543 IF(lwp) WRITE(numout,*) & 544 ' trc_bio_medusa: T SWITCHING 3D, ', & 545 tsn(ji,jj,jk,jp_tem), ' -> -3.0 ' 546 ztmp(ji,jj) = -3.0 547 ENDIF 548 IF (ztmp(ji,jj) .GT. 40.0 ) THEN 549 IF(lwp) WRITE(numout,*) & 550 ' trc_bio_medusa: T SWITCHING 3D, ', & 551 tsn(ji,jj,jk,jp_tem), ' -> 40.0 ' 552 ztmp(ji,jj) = 40.0 553 ENDIF 554 ELSE 555 IF(lwp) WRITE(numout,*) & 556 ' trc_bio_medusa: T SWITCHING 3D, ', & 557 tsn(ji,jj,jk,jp_tem), ' -> surounding avg : ', tsnavg 558 ztmp(ji,jj) = tsnavg 559 ENDIF 484 560 endif 485 if (zsal(ji,jj) .lt. 0.0 .or. zsal(ji,jj) .gt. 45.0 ) then 561 !! end T chack 562 if (zsal(ji,jj) .lt. 1.0 .or. zsal(ji,jj) .gt. 47.0 ) then 486 563 IF(lwp) WRITE(numout,*) & 487 564 ' trc_bio_medusa: S WARNING 2D, ', & 488 565 tsb(ji,jj,jk,jp_sal), tsn(ji,jj,jk,jp_sal), & 489 566 ' at (', ji, ',', jj, ',', jk, ') at time', kt 567 !! Correct out of range values 568 IF (zsal(ji,jj) .LT. 1.0 ) THEN 569 IF(lwp) WRITE(numout,*) & 570 ' trc_bio_medusa: S SWITCHING 3D, ', & 571 tsn(ji,jj,jk,jp_sal), ' -> 1.0 ' 572 zsal(ji,jj) = 1.0 573 ENDIF 574 IF (zsal(ji,jj) .GT. 47.0 ) THEN 575 IF(lwp) WRITE(numout,*) & 576 ' trc_bio_medusa: T SWITCHING 3D, ', & 577 tsn(ji,jj,jk,jp_sal), ' -> 47.0 ' 578 zsal(ji,jj) = 47.0 579 ENDIF 490 580 endif 581 !! end S check 491 582 ENDIF 492 583 ENDDO -
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r8442 r8642 28 28 USE zpshde ! partial step: hor. derivative (zps_hde routine) 29 29 # if defined key_debug_medusa 30 USE trc rst30 USE trcstat 31 31 # endif 32 32 -
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r8427 r8642 43 43 USE sbc_oce, ONLY: lk_oasis 44 44 USE oce, ONLY: CO2Flux_out_cpl, DMS_out_cpl, chloro_out_cpl !! Coupling variable 45 USE trcstat 45 46 46 47 IMPLICIT NONE … … 52 53 PUBLIC trc_rst_cal 53 54 PUBLIC trc_rst_stat 54 PUBLIC trc_rst_dia_stat55 PUBLIC trc_rst_tra_stat56 55 57 56 !! * Substitutions … … 697 696 698 697 699 SUBROUTINE trc_rst_tra_stat700 !!----------------------------------------------------------------------701 !! *** trc_rst_tra_stat ***702 !!703 !! ** purpose : Compute tracers statistics - check where crazy values appears704 !!----------------------------------------------------------------------705 INTEGER :: jk, jn706 REAL(wp) :: ztraf, zmin, zmax, zmean, zdrift, areasf707 REAL(wp), DIMENSION(jpi,jpj) :: zvol708 !!----------------------------------------------------------------------709 710 IF( lwp ) THEN711 WRITE(numout,*)712 WRITE(numout,*) ' ----SURFACE TRA STAT---- '713 WRITE(numout,*)714 ENDIF715 !716 zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1)717 areasf = glob_sum(zvol(:,:))718 DO jn = 1, jptra719 ztraf = glob_sum( tra(:,:,1,jn) * zvol(:,:) )720 zmin = MINVAL( tra(:,:,1,jn), mask= ((tmask(:,:,1).NE.0.)) )721 zmax = MAXVAL( tra(:,:,1,jn), mask= ((tmask(:,:,1).NE.0.)) )722 IF( lk_mpp ) THEN723 CALL mpp_min( zmin ) ! min over the global domain724 CALL mpp_max( zmax ) ! max over the global domain725 END IF726 zmean = ztraf / areasf727 IF(lwp) WRITE(numout,9001) jn, TRIM( ctrcnm(jn) ), zmean, zmin, zmax728 END DO729 IF(lwp) WRITE(numout,*)730 9001 FORMAT(' tracer nb :',i2,' name :',a10,' mean :',e18.10,' min :',e18.10, &731 & ' max :',e18.10)732 !733 END SUBROUTINE trc_rst_tra_stat734 735 736 737 SUBROUTINE trc_rst_dia_stat( dgtr, names)738 !!----------------------------------------------------------------------739 !! *** trc_rst_dia_stat ***740 !!741 !! ** purpose : Compute tracers statistics742 !!----------------------------------------------------------------------743 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in) :: dgtr ! 2D diag var744 CHARACTER(len=*) , INTENT(in) :: names ! 2D diag name745 !!---------------------------------------------------------------------746 INTEGER :: jk, jn747 CHARACTER (LEN=18) :: text_zmean748 REAL(wp) :: ztraf, zmin, zmax, zmean, areasf749 REAL(wp), DIMENSION(jpi,jpj) :: zvol750 !!----------------------------------------------------------------------751 752 IF( lwp ) WRITE(numout,*) 'STAT- ', names753 754 ! fse3t_a will be undefined at the start of a run, but this routine755 ! may be called at any stage! Hence we MUST make sure it is756 ! initialised to zero when allocated to enable us to test for757 ! zero content here and avoid potentially dangerous and non-portable758 ! operations (e.g. divide by zero, global sums of junk values etc.)759 zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1)760 ztraf = glob_sum( dgtr(:,:) * zvol(:,:) )761 !! areasf = glob_sum(e1e2t(:,:) * tmask(:,:,1) )762 areasf = glob_sum(zvol(:,:))763 zmin = MINVAL( dgtr(:,:), mask= ((tmask(:,:,1).NE.0.)) )764 zmax = MAXVAL( dgtr(:,:), mask= ((tmask(:,:,1).NE.0.)) )765 IF( lk_mpp ) THEN766 CALL mpp_min( zmin ) ! min over the global domain767 CALL mpp_max( zmax ) ! max over the global domain768 END IF769 770 text_zmean = "N/A"771 ! Avoid divide by zero. areasf must be positive.772 IF (areasf > 0.0) THEN773 zmean = ztraf / areasf774 WRITE(text_zmean,'(e18.10)') zmean775 ENDIF776 777 IF(lwp) WRITE(numout,9002) TRIM( names ), text_zmean, zmin, zmax778 779 9002 FORMAT(' tracer name :',A,' mean :',A,' min :',e18.10, &780 & ' max :',e18.10 )781 !782 END SUBROUTINE trc_rst_dia_stat783 784 785 698 #else 786 699 !!---------------------------------------------------------------------- -
branches/NERC/dev_r5518_GO6_Carb_Debug/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r8442 r8642 19 19 USE trcwri 20 20 USE trcrst 21 USE trcstat 21 22 USE trdtrc_oce 22 23 USE trdmxl_trc
Note: See TracChangeset
for help on using the changeset viewer.