- Timestamp:
- 2017-03-07T19:30:03+01:00 (7 years ago)
- Location:
- branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 2 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90
r6810 r7766 445 445 !!---------------------------------------------------------------------- 446 446 USE lib_mpp , ONLY: ctl_warn 447 INTEGER :: ierr( 7) ! Local variables447 INTEGER :: ierr(8) ! Local variables 448 448 !!---------------------------------------------------------------------- 449 449 ierr(:) = 0 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r7703 r7766 533 533 foxy_cons(:,:) = 0.0 !! oxygen consumption 534 534 foxy_anox(:,:) = 0.0 !! unrealised oxygen consumption 535 !! 535 536 # endif 536 537 ftot_n(:,:) = 0.0 !! N inventory … … 571 572 f_riv_c(:,:) = 0.0 !! riverine C input 572 573 f_riv_alk(:,:) = 0.0 !! riverine alk input 574 !! 575 !! Jpalm -- 06-03-2017 -- Forgotten var to init 576 f_omarg(:,:) = 0.0 !! 577 f_omcal(:,:) = 0.0 578 xFree(:,:) = 0.0 !! state variables for iron-ligand system 579 fcomm_resp(:,:) = 0.0 580 fprn_ml(:,:) = 0.0 !! mixed layer PP diagnostics 581 fprd_ml(:,:) = 0.0 !! mixed layer PP diagnostics 582 573 583 !! 574 584 !! allocate and initiate 2D diag … … 724 734 ENDIF 725 735 !! 726 !! skip FDT_XXXX, RG_XXXXF, FDS_XXXX, RGS XXXXF diagnostics here736 !! skip FDT_XXXX, RG_XXXXF, FDS_XXXX, RGS_XXXXF diagnostics here 727 737 !! 728 738 IF( med_diag%REMINN%dgsave ) THEN -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcdms_medusa.F90
r6719 r7766 5 5 !!====================================================================== 6 6 !! History : 7 !! - ! 2014-08 (J. Palmi éri - A. Yool) added for UKESM1 project7 !! - ! 2014-08 (J. Palmieri - A. Yool) added for UKESM1 project 8 8 !!---------------------------------------------------------------------- 9 9 #if defined key_medusa && defined key_roam … … 44 44 !! 45 45 !! Title : Calculates DMS ocean surface concentration 46 !! Author : Julien Palmi éri and Andrew Yool46 !! Author : Julien Palmieri and Andrew Yool 47 47 !! Date : 08/08/14 48 48 !! … … 118 118 ! 119 119 ! AXY (13/03/15): Simo & Dachs (2002) 120 fq1 = (-1 * log(mld)) + 5.7120 fq1 = (-1.0 * log(mld)) + 5.7 121 121 fq2 = (55.8 * cmr) + 0.6 122 122 if (cmr < 0.02) then … … 136 136 ! 137 137 ! AXY (13/03/15): Halloran et al. (2010) 138 fq1 = (-1 * log(mld)) + 5.7138 fq1 = (-1.0 * log(mld)) + 5.7 139 139 fq2 = (55.8 * cmr) + 0.6 140 140 fq3 = (90.0 / mld) … … 179 179 180 180 181 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90
r7709 r7766 84 84 & xburial, & 85 85 & jriver_n,jriver_si,jriver_c,jriver_alk,jriver_dep, & 86 & friver_dep, &87 86 & xsdiss, & 88 & vsed,xhr, &89 87 & sedlam,sedlostpoc,jpkb,jdms,jdms_input,jdms_model 90 88 #if defined key_roam 91 89 NAMELIST/natroam/ xthetaphy,xthetazoo,xthetanit, & 92 & xthetarem,xo2min, & 93 & f3_pH,f3_h2co3,f3_hco3,f3_co3,f3_omcal,f3_omarg, & 94 & f2_ccd_cal,f2_ccd_arg 90 & xthetarem,xo2min 95 91 #endif 96 92 NAMELIST/natopt/xkg0,xkr0,xkgp,xkrp,xlg,xlr,rpig -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcopt_medusa.F90
r5841 r7766 156 156 157 157 ! Euphotic layer depth 158 !! Jpalm -- 06-03-2017 -- add init xze, to avoid halo problems within the 159 !! writing process 160 xze(:,:) = 0.0 158 161 DO jj = 1, jpj 159 162 DO ji = 1, jpi -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90
r6844 r7766 41 41 42 42 PUBLIC trc_sed_medusa ! called in ??? 43 PUBLIC trc_sed_medusa_sbc 43 PUBLIC trc_sed_medusa_sbc 44 PUBLIC trc_sed_medusa_dust 44 45 45 46 !! * Module variables … … 126 127 127 128 !! AXY (20/11/14): alter this to report on first MEDUSA call 128 !! IF( kt == nit000 ) THEN129 129 IF( kt == nittrc000 ) THEN 130 130 IF(lwp) WRITE(numout,*) … … 133 133 IF(lwp) WRITE(numout,*) ' kt =',kt 134 134 ENDIF 135 136 !! AXY (04/11/13): replace this with a call in trc_ini_medusa137 !! AXY (25/02/10)138 !! call routine for populating CCD array if this is the first time-step139 !! IF( kt == nittrc000 ) CALL medusa_ccd( kt )140 141 !! AXY (04/11/13): replace this with a call in trc_ini_medusa142 !! AXY (26/01/12)143 !! call routine for populating river arrays if this is the first time-step144 !! IF( kt == nittrc000 ) CALL medusa_river( kt )145 146 !! AXY (10/02/09)147 !!IF( (jnt == 1) .and. (bdustfer) ) CALL trc_sed_medusa_sbc( kt )148 149 !! JPALM -- 31-03-2016 -- rewrite trc_sed_medusa_sbc.150 !! IF (kt == nittrc000 ) CALL trc_sed_medusa_sbc151 152 !! JPALM -- 20-07-2016 -- adapt dust forcing fields reading and conversion153 !! To read dust dep in kg-dust/m2/s instead of g-Fe/m2/month154 !! So all forcings and coupling dust dep are in the same SI units155 !! and then convert in mmol-Fe/m2/day156 157 IF( bdustfer ) THEN158 !! IF( kt == nittrc000 .OR. ( kt /= nittrc000 .AND. ntimes_dust > 1 ) ) THEN159 CALL fld_read( kt, 1, sf_dust )160 dust(:,:) = sf_dust(1)%fnow(:,:,1)161 !! ENDIF162 ELSEIF (lk_oasis) THEN163 dust = Dust_in_cpl164 ELSE165 dust(:,:) = 0.0166 ENDIF167 !!168 zirondep(:,:) = 0.e0 !! Initialisation of deposition variables169 zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400. !! mmol-Fe/m2/d170 171 !! JPALM -- 20-07-2016 -- Zirondep and zsidep are not used.172 !! So comment out the following lines. but keep them173 !! as we may want to used them later on174 !!================================================175 !!176 !! zirondep(:,:,:) = 0.e0 !! Initialisation of deposition variables177 !! zsidep (:,:) = 0.e0178 !!179 !! Iron and Si deposition at the surface180 !! -------------------------------------181 !!182 !! DO jj = 1, jpj183 !! DO ji = 1, jpi184 !! zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) &185 !! & * rfact2 / fse3t(ji,jj,1)186 !! zsidep (ji,jj) = 8.8 * 0.075 * dust(ji,jj) * rfact2 / &187 !! & (fse3t(ji,jj,1) * 28.1 * rmtss)188 !! END DO189 !! END DO190 135 191 136 ! sedimentation of detrital nitrogen : upstream scheme … … 412 357 END SUBROUTINE trc_sed_medusa_sbc 413 358 359 !! ====================================================================== 360 !! ====================================================================== 361 !! ====================================================================== 362 363 !! AXY & JPALM (28/02/17) 364 365 SUBROUTINE trc_sed_medusa_dust( kt ) 366 !!--------------------------------------------------------------------- 367 !! *** ROUTINE trc_sed_medusa_dust *** 368 !! 369 !! ** Purpose : compute current dust *before* trc_bio_medusa call 370 !! 371 !! ** Method : does what it says on the tin 372 !!--------------------------------------------------------------------- 373 INTEGER, INTENT( in ) :: kt ! ocean time-step index 374 375 !! AXY (20/11/14): alter this to report on first MEDUSA call 376 IF( kt == nittrc000 ) THEN 377 IF(lwp) WRITE(numout,*) 378 IF(lwp) WRITE(numout,*) ' trc_sed_medusa_dust: MEDUSA dust timestep' 379 IF(lwp) WRITE(numout,*) ' ~~~~~~~' 380 IF(lwp) WRITE(numout,*) ' kt =',kt 381 ENDIF 382 383 !! AXY (04/11/13): replace this with a call in trc_ini_medusa 384 !! AXY (25/02/10) 385 !! call routine for populating CCD array if this is the first time-step 386 !! IF( kt == nittrc000 ) CALL medusa_ccd( kt ) 387 388 !! AXY (04/11/13): replace this with a call in trc_ini_medusa 389 !! AXY (26/01/12) 390 !! call routine for populating river arrays if this is the first time-step 391 !! IF( kt == nittrc000 ) CALL medusa_river( kt ) 392 393 !! AXY (10/02/09) 394 !! IF( (jnt == 1) .and. (bdustfer) ) CALL trc_sed_medusa_sbc( kt ) 395 396 !! JPALM -- 31-03-2016 -- rewrite trc_sed_medusa_sbc. 397 !! IF (kt == nittrc000 ) CALL trc_sed_medusa_sbc 398 399 !! JPALM -- 20-07-2016 -- adapt dust forcing fields reading and conversion 400 !! To read dust dep in kg-dust/m2/s instead of g-Fe/m2/month 401 !! So all forcings and coupling dust dep are in the same SI units 402 !! and then convert in mmol-Fe/m2/day 403 404 IF( bdustfer ) THEN 405 CALL fld_read( kt, 1, sf_dust ) 406 dust(:,:) = sf_dust(1)%fnow(:,:,1) 407 ELSEIF (lk_oasis) THEN 408 dust = Dust_in_cpl 409 ELSE 410 dust(:,:) = 0.0 411 ENDIF 412 !! 413 zirondep(:,:) = 0.e0 !! Initialisation of deposition variables 414 zirondep(:,:) = dust(:,:) * Fe_dust_mratio / xfe_mass * 1.e6 * 86400. !! mmol-Fe/m2/d 415 416 !! JPALM -- 20-07-2016 -- Zirondep and zsidep are not used. 417 !! So comment out the following lines. but keep them 418 !! as we may want to used them later on 419 !!================================================ 420 !! 421 !! zirondep(:,:,:) = 0.e0 !! Initialisation of deposition variables 422 !! zsidep (:,:) = 0.e0 423 !! 424 !! Iron and Si deposition at the surface 425 !! ------------------------------------- 426 !! 427 !! DO jj = 1, jpj 428 !! DO ji = 1, jpi 429 !! zirondep(ji,jj,1) = (dustsolub * dust(ji,jj) / (55.85 * rmtss) + 3.e-10 / ryyss) & 430 !! & * rfact2 / fse3t(ji,jj,1) 431 !! zsidep (ji,jj) = 8.8 * 0.075 * dust(ji,jj) * rfact2 / & 432 !! & (fse3t(ji,jj,1) * 28.1 * rmtss) 433 !! END DO 434 !! END DO 435 436 END SUBROUTINE trc_sed_medusa_dust 437 414 438 #else 415 439 !!====================================================================== … … 425 449 !!====================================================================== 426 450 END MODULE trcsed_medusa 451 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsms_medusa.F90
r5841 r7766 58 58 ENDIF 59 59 60 CALL trc_avg_medusa( kt ) 60 CALL trc_avg_medusa( kt ) ! rolling average module 61 61 # if defined key_debug_medusa 62 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_avg_medusa' 63 CALL flush(numout) 62 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_avg_medusa' 63 CALL flush(numout) 64 # endif 65 66 CALL trc_opt_medusa( kt ) ! optical model 67 # if defined key_debug_medusa 68 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_opt_medusa' 69 CALL flush(numout) 64 70 # endif 65 71 66 CALL trc_opt_medusa( kt ) ! optical model 72 !! AXY & JPALM (28/02/17): call dust before trc_bio_medusa (because of coupling) 73 CALL trc_sed_medusa_dust( kt ) ! dust submodel 67 74 # if defined key_debug_medusa 68 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_opt_medusa'69 75 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa_dust' 76 CALL flush(numout) 70 77 # endif 71 78 … … 75 82 CALL flush(numout) 76 83 # else 77 CALL trc_bio_medusa( kt ) 78 # if defined key_debug_medusa79 80 81 # endif82 83 CALL trc_sed_medusa( kt ) 84 # if defined key_debug_medusa85 86 87 # endif84 CALL trc_bio_medusa( kt ) ! biological model 85 # if defined key_debug_medusa 86 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_bio_medusa' 87 CALL flush(numout) 88 # endif 89 90 CALL trc_sed_medusa( kt ) ! sedimentation model 91 # if defined key_debug_medusa 92 IF(lwp) WRITE(numout,*) ' MEDUSA done trc_sed_medusa' 93 CALL flush(numout) 94 # endif 88 95 # endif 89 96 … … 103 110 !!====================================================================== 104 111 END MODULE trcsms_medusa 112 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r7498 r7766 686 686 !!---------------------------------------------------------------------- 687 687 INTEGER :: jk, jn 688 REAL(wp) :: ztraf, zmin, zmax, zmean, zdrift 688 REAL(wp) :: ztraf, zmin, zmax, zmean, zdrift, areasf 689 689 REAL(wp), DIMENSION(jpi,jpj) :: zvol 690 690 !!---------------------------------------------------------------------- … … 696 696 ENDIF 697 697 ! 698 zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1) 698 zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1) 699 areasf = glob_sum(zvol(:,:)) 699 700 DO jn = 1, jptra 700 701 ztraf = glob_sum( tra(:,:,1,jn) * zvol(:,:) ) … … 705 706 CALL mpp_max( zmax ) ! max over the global domain 706 707 END IF 707 zmean = ztraf / area tot708 zmean = ztraf / areasf 708 709 IF(lwp) WRITE(numout,9001) jn, TRIM( ctrcnm(jn) ), zmean, zmin, zmax 709 710 END DO … … 734 735 zvol(:,:) = e1e2t(:,:) * fse3t_a(:,:,1) * tmask(:,:,1) 735 736 ztraf = glob_sum( dgtr(:,:) * zvol(:,:) ) 736 areasf = glob_sum(e1e2t(:,:) * tmask(:,:,1) ) 737 !! areasf = glob_sum(e1e2t(:,:) * tmask(:,:,1) ) 738 areasf = glob_sum(zvol(:,:)) 737 739 zmin = MINVAL( dgtr(:,:), mask= ((tmask(:,:,1).NE.0.)) ) 738 740 zmax = MAXVAL( dgtr(:,:), mask= ((tmask(:,:,1).NE.0.)) ) … … 741 743 CALL mpp_max( zmax ) ! max over the global domain 742 744 END IF 743 zmean = ztraf / area tot745 zmean = ztraf / areasf 744 746 IF(lwp) WRITE(numout,9002) TRIM( names ), zmean, zmin, zmax 745 747 ! -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r7709 r7766 146 146 ztrai = ztrai + glob_sum( trn(:,:,:,jn) * cvol(:,:,:) ) 147 147 END DO 148 IF( lwp) WRITE(numstr,9300) kt, ztrai / areatot148 IF( numstr /= -1 ) WRITE(numstr,9300) kt, ztrai / areatot 149 149 9300 FORMAT(i10,e18.10) 150 150 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.