Changeset 6715 for branches/NERC
- Timestamp:
- 2016-06-16T18:58:14+02:00 (8 years ago)
- Location:
- branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 6 added
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
r5735 r6715 49 49 TYPE(DIAG), DIMENSION(jp_cfc_2d) :: cfcdia2d 50 50 !! 51 NAMELIST/namcfcdate/ ndate_beg, nyear_res 51 NAMELIST/namcfcdate/ ndate_beg, nyear_res, simu_type 52 52 NAMELIST/namcfcdia/ cfcdia2d ! additional diagnostics 53 53 !!---------------------------------------------------------------------- … … 72 72 WRITE(numout,*) ' initial calendar date (aammjj) for CFC ndate_beg = ', ndate_beg 73 73 WRITE(numout,*) ' restoring time constant (year) nyear_res = ', nyear_res 74 IF (simu_type==1) THEN 75 WRITE(numout,*) ' CFC running on SPIN-UP mode simu_type = ', simu_type 76 ELSEIF (simu_type==2) THEN 77 WRITE(numout,*) ' CFC running on HINDCAST/PROJECTION mode simu_type = ', simu_type 78 ENDIF 74 79 ENDIF 75 80 nyear_beg = ndate_beg / 10000 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r6216 r6715 32 32 INTEGER , PUBLIC :: jpyear ! Number of years read in CFC1112 file 33 33 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC 34 INTEGER , PUBLIC :: simu_type ! Kind of simulation: 1- Spin-up 35 ! 2- Hindcast/projection 34 36 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year) 35 37 INTEGER , PUBLIC :: nyear_beg ! initial year (aa) … … 80 82 ! 81 83 INTEGER :: ji, jj, jn, jl, jm, js 82 INTEGER :: iyear_beg, iyear_end 84 INTEGER :: iyear_beg, iyear_end,iyear_tmp 83 85 INTEGER :: im1, im2, ierr 84 86 REAL(wp) :: ztap, zdtap … … 104 106 ! Temporal interpolation 105 107 ! ---------------------- 106 iyear_beg = nyear - 1900 108 !! JPALM -- 15-06-2016 -- define 2 kind of CFC run. 109 !! we want to make cycle experiments, 110 !! to periodically compare the ocean dynamic within 111 !! 1- the SPIN-UP and 2- Hincast/Projections 112 !! -- main difference is the way to define the year of 113 !! simulation, that determine the atm pCFC. 114 !! 1-- Spin-up: our atm forcing is of 30y we cycle on. 115 !! So we do 90y CFC cycles to be in good 116 !! correspondance with the atmosphere 117 !! 2-- Hindcast/proj, instead of nyear-1900 we keep 118 !! the 2 last digit, and enable 3 cycle from 1800 to 2100. 119 !!---------------------------------------------------------------------- 120 !! 1 -- SPIN-UP 121 IF (simu_type==1) THEN 122 iyear_tmp = nyear - nyear_res !! JPALM -- in our spin-up, nyear_res is 1000 123 iyear_beg = MOD( iyear_tmp , 90 ) 124 !! JPALM -- the pCFC file only got 78 years. 125 !! So if iyear_beg > 78 then we set pCFC to 0 126 !! iyear_beg = 0 as well -- must try to avoid obvious problems 127 !! as Pcfc is set to 0.00 up to year 32, let set iyear_beg to year 10 128 !! else, must add 30 to iyear_beg to match with P_cfc indices 129 !!--------------------------------------- 130 IF ((iyear_beg > 77) .OR. (iyear_beg==0)) THEN 131 iyear_beg = 10 132 ELSE 133 iyear_beg = iyear_beg + 30 134 ENDIF 135 !! 136 !! 2 -- Hindcast/proj 137 ELSEIF (simu_type==2) THEN 138 iyear_beg = MOD(nyear, 100) 139 IF (iyear_beg < 9) iyear_beg = iyear_beg + 100 140 !! JPALM -- Same than previously, if iyear_beg is out of P_cfc range, 141 !! we want to set p_CFC to 0.00 --> set iyear_beg = 10 142 IF ((iyear_beg < 30) .OR. (iyear_beg > 107)) iyear_beg = 10 143 ENDIF 144 !! 107 145 IF ( nmonth <= 6 ) THEN 108 146 iyear_beg = iyear_beg - 1 … … 246 284 !! ** Purpose : sets constants for CFC model 247 285 !!--------------------------------------------------------------------- 248 INTEGER :: j n286 INTEGER :: jl, jn 249 287 250 288 ! coefficient for CFC11 … … 286 324 sca(4,2) = -0.067430 287 325 288 !IF( ln_rsttr ) THEN 289 ! IF(lwp) WRITE(numout,*) 290 ! IF(lwp) WRITE(numout,*) ' Read specific variables from CFC model ' 291 ! IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 292 ! ! 293 ! DO jn = jp_cfc0, jp_cfc1 294 ! CALL iom_get( numrtr, jpdom_autoglo, 'qint_'//ctrcnm(jn), qint_cfc(:,:,jn) ) 295 ! END DO 296 !ENDIF 326 !!--------------------------------------------- 327 !! JPALM -- re-initialize CFC fields and diags if restart a CFC cycle, 328 !! Or if out of P_cfc range 329 IF (simu_type==1) THEN 330 iyear_tmp = nyear - nyear_res !! JPALM -- in our spin-up, nyear_res is 1000 331 iyear_beg = MOD( iyear_tmp , 90 ) 332 !!--------------------------------------- 333 IF ((iyear_beg > 77) .OR. (iyear_beg==0)) THEN 334 qtr_cfc(:,:,:) = 0._wp 335 IF(lwp) THEN 336 WRITE(numout,*) 337 WRITE(numout,*) 'restart a CFC cycle or out of P_cfc year bounds zero --' 338 WRITE(numout,*) ' -- set qtr_CFC = 0.00 --' 339 WRITE(numout,*) ' -- set qint_CFC = 0.00 --' 340 WRITE(numout,*) ' -- set trn(CFC) = 0.00 --' 341 ENDIF 342 qtr_cfc(:,:,:) = 0._wp 343 qint_cfc(:,:,:) = 0._wp 344 DO jl = 1, jp_cfc 345 jn = jp_cfc0 + jl - 1 346 trn(:,:,:,jn) = 0._wp 347 trb(:,:,:,jn) = 0._wp 348 END DO 349 ENDIF 350 !! 351 !! 2 -- Hindcast/proj 352 ELSEIF (simu_type==2) THEN 353 iyear_beg = MOD(nyear, 100) 354 IF (iyear_beg < 9) iyear_beg = iyear_beg + 100 355 IF ((iyear_beg < 30) .OR. (iyear_beg > 107)) THEN 356 qtr_cfc(:,:,:) = 0._wp 357 IF(lwp) THEN 358 WRITE(numout,*) 359 WRITE(numout,*) 'restart a CFC cycle or out of P_cfc year bounds zero --' 360 WRITE(numout,*) ' -- set qtr_CFC = 0.00 --' 361 WRITE(numout,*) ' -- set qint_CFC = 0.00 --' 362 WRITE(numout,*) ' -- set trn(CFC) = 0.00 --' 363 ENDIF 364 qtr_cfc(:,:,:) = 0._wp 365 qint_cfc(:,:,:) = 0._wp 366 DO jl = 1, jp_cfc 367 jn = jp_cfc0 + jl - 1 368 trn(:,:,:,jn) = 0._wp 369 trb(:,:,:,jn) = 0._wp 370 END DO 371 ENDIF 372 ENDIF 373 297 374 IF(lwp) WRITE(numout,*) 298 375 ! -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/gas_transfer.F90
r5841 r6715 24 24 !!---------------------------------------------------------------------- 25 25 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 26 !! $Id : trcbio.F90 1146 2008-06-25 11:42:56Z rblod $26 !! $Id$ 27 27 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 28 28 !!---------------------------------------------------------------------- -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/mocsy_wrapper.F90
r5841 r6715 28 28 !!---------------------------------------------------------------------- 29 29 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 30 !! $Id : trcbio.F90 1146 2008-06-25 11:42:56Z rblod $30 !! $Id$ 31 31 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 32 32 !!---------------------------------------------------------------------- -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90
r6466 r6715 49 49 REAL(wp) :: xthetam !: maximum Chl to C ratio for non-diatoms 50 50 REAL(wp) :: xthetamd !: maximum Chl to C ratio for diatoms 51 REAL(wp) :: jq10 !: specific Q10 value (jphy==2) 51 52 !! 52 53 !! Diatom silicon parameters … … 237 238 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_din !: 2D avg DIN (now) 238 239 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_din !: 2D avg DIN (after) 240 !! 241 !! 2D fields needing to be knows at first tstp for coupling with atm - UKEMS(Jpalm,14-06-2016) 242 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_co2_flx !: 2D avg fx co2 (before) 243 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_co2_flx !: 2D avg fx co2 (now) 244 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_co2_flx !: 2D avg fx co2 (after) 245 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zb_dms_srf !: 2D avg fx co2 (before) 246 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: zn_dms_srf !: 2D avg fx co2 (now) 247 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: za_dms_srf !: 2D avg fx co2 (after) 248 239 249 #endif 240 250 … … 469 479 & zb_dms_din(jpi,jpj) , zn_dms_din(jpi,jpj) , & 470 480 & za_dms_din(jpi,jpj) , STAT=ierr(4) ) 481 !* 2D fields needing to be knows at first tstp for coupling with atm - 482 !UKEMSi (Jpalm,14-06-2016) 483 ALLOCATE( zb_co2_flx(jpi,jpj) , zn_co2_flx(jpi,jpj) , & 484 & za_co2_flx(jpi,jpj) , & 485 & zb_dms_srf(jpi,jpj) , zn_dms_srf(jpi,jpj) , & 486 & za_dms_srf(jpi,jpj) , STAT=ierr(5) ) 471 487 # endif 472 488 !* 2D fields of miscellaneous parameters … … 474 490 & riv_n(jpi,jpj) , & 475 491 & riv_si(jpi,jpj) , riv_c(jpi,jpj) , & 476 & riv_alk(jpi,jpj) , friver_dep(jpk,jpk) , STAT=ierr( 5) )492 & riv_alk(jpi,jpj) , friver_dep(jpk,jpk) , STAT=ierr(6) ) 477 493 !* 2D and 3D fields of light parameters 478 494 ALLOCATE( neln(jpi,jpj) , xze(jpi,jpj) , & 479 & xpar(jpi,jpj,jpk) , STAT=ierr( 6) )495 & xpar(jpi,jpj,jpk) , STAT=ierr(7) ) 480 496 !* 2D and 3D fields of sediment-associated parameters 481 497 ALLOCATE( dminl(jpi,jpj) , dmin3(jpi,jpj,jpk) , & … … 484 500 & fbodf(jpi,jpj) , fbods(jpi,jpj) , & 485 501 & ffln(jpi,jpj,jpk) , fflf(jpi,jpj,jpk) , & 486 & ffls(jpi,jpj,jpk) , cmask(jpi,jpj) , STAT=ierr( 7) )502 & ffls(jpi,jpj,jpk) , cmask(jpi,jpj) , STAT=ierr(8) ) 487 503 #endif 488 504 ! -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcavg_medusa.F90
r5841 r6715 28 28 !!---------------------------------------------------------------------- 29 29 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 30 !! $Id : trcbio.F90 1146 2008-06-25 11:42:56Z rblod $30 !! $Id$ 31 31 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 32 32 !!---------------------------------------------------------------------- -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r6509 r6715 175 175 REAL(wp) :: loc_T,fun_T,xvpnT,xvpdT 176 176 INTEGER :: ieppley 177 !! AXY (16/05/11): per Katya's prompting, add in new T-dependence 178 !! for phytoplankton growth only (i.e. no change 179 !! for remineralisation) 180 REAL(wp) :: fun_Q10 177 181 !! AXY (01/03/10): add in mixed layer PP diagnostics 178 182 REAL(wp), DIMENSION(jpi,jpj) :: fprn_ml,fprd_ml … … 316 320 !! AXY (13/03/15): add in other DMS calculations 317 321 REAL(wp) :: dms_andr, dms_simo, dms_aran, dms_hall 322 # if defined key_oasis3 323 REAL(wp), DIMENSION(jpi,jpj) :: pco2a_2d(ji,jj) !! use 2D atm pCO2 from atm coupling 324 # endif 325 318 326 # endif 319 327 !! … … 353 361 REAL(wp), POINTER, DIMENSION(:,: ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d 354 362 REAL(wp), POINTER, DIMENSION(:,: ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d 355 REAL(wp), POINTER, DIMENSION(:,: ) :: dms_ surf2d, dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d363 REAL(wp), POINTER, DIMENSION(:,: ) :: dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d, dms_surf2d 356 364 REAL(wp), POINTER, DIMENSION(:,: ) :: iben_n2d, iben_fe2d, iben_c2d, iben_si2d, iben_ca2d, oben_n2d 357 365 REAL(wp), POINTER, DIMENSION(:,: ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d 358 366 REAL(wp), POINTER, DIMENSION(:,: ) :: sfr_oarg2d, lyso_ca2d 367 359 368 # endif 360 369 !! 2D var for diagnostics. … … 814 823 ENDIF 815 824 IF( med_diag%CO2FLUX%dgsave ) THEN 816 CALL wrk_alloc( jpi, jpj, f_co2flux2d)825 CALL wrk_alloc( jpi, jpj, f_co2flux2d ) 817 826 f_co2flux2d(:,:) = 0.0 !! 818 827 ENDIF … … 897 906 IF (jdms .eq. 1) THEN 898 907 IF( med_diag%DMS_SURF%dgsave ) THEN 899 CALL wrk_alloc( jpi, jpj, dms_surf2d)900 dms_surf2d(:,:) = 0.0 !!908 CALL wrk_alloc( jpi, jpj, dms_surf2d ) 909 dms_surf2d(:,:) = 0.0 !! 901 910 ENDIF 902 911 IF( med_diag%DMS_ANDR%dgsave ) THEN 903 912 CALL wrk_alloc( jpi, jpj, dms_andr2d ) 904 dms_andr2d(:,:) = 0.0 !!913 dms_andr2d(:,:) = 0.0 !! 905 914 ENDIF 906 915 IF( med_diag%DMS_SIMO%dgsave ) THEN 907 916 CALL wrk_alloc( jpi, jpj, dms_simo2d ) 908 dms_simo2d(:,:) = 0.0 !!917 dms_simo2d(:,:) = 0.0 !! 909 918 ENDIF 910 919 IF( med_diag%DMS_ARAN%dgsave ) THEN 911 920 CALL wrk_alloc( jpi, jpj, dms_aran2d ) 912 dms_aran2d(:,:) = 0.0 !!921 dms_aran2d(:,:) = 0.0 !! 913 922 ENDIF 914 923 IF( med_diag%DMS_HALL%dgsave ) THEN 915 924 CALL wrk_alloc( jpi, jpj, dms_hall2d ) 916 dms_hall2d(:,:) = 0.0 !!925 dms_hall2d(:,:) = 0.0 !! 917 926 ENDIF 918 927 ENDIF … … 1042 1051 !! OPEN wet point IF..THEN loop 1043 1052 if (tmask(ji,jj,jk).eq.1) then 1053 # if defined key_oasis3 1054 f_pco2a = pco2a_2d(ji,jj) !! use 2D atm pCO2 from atm coupling 1055 # endif 1044 1056 !! do carbonate chemistry 1045 1057 !! … … 1371 1383 !! 1372 1384 f_wind = wndm(ji,jj) 1385 # if defined key_oasis3 1386 f_pco2a = pco2a_2d(ji,jj) !! use 2D atm pCO2 from atm coupling 1387 # endif 1388 1373 1389 !! 1374 1390 !! AXY (23/06/15): as part of an effort to update the carbonate chemistry … … 1706 1722 loc_T = tsn(ji,jj,jk,jp_tem) 1707 1723 fun_T = 1.066**(1.0 * loc_T) 1724 !! AXY (16/05/11): add in new Q10 (1.5, not 2.0) for 1725 !phytoplankton 1726 !! growth; remin. unaffected 1727 fun_Q10 = jq10**((loc_T - 0.0) / 10.0) 1708 1728 if (jphy.eq.1) then 1709 1729 xvpnT = xvpn * fun_T 1710 1730 xvpdT = xvpd * fun_T 1731 elseif (jphy.eq.2) then 1732 xvpnT = xvpn * fun_Q10 1733 xvpdT = xvpd * fun_Q10 1711 1734 else 1712 1735 xvpnT = xvpn … … 2126 2149 fddc = xmdc * fun_T * zdtc 2127 2150 # endif 2151 elseif (jmd.eq.2) then 2152 !! AXY (16/05/13): add in Q10-based parameterisation (def in nmlst) 2153 !! temperature-dependent 2154 fdd = xmd * fun_Q10 * zdet 2155 #if defined key_roam 2156 fddc = xmdc * fun_Q10 * zdtc 2157 #endif 2128 2158 else 2129 2159 !! temperature-independent … … 4327 4357 IF( med_diag%CO2FLUX%dgsave ) THEN 4328 4358 CALL iom_put( "CO2FLUX" , f_co2flux2d ) 4329 CALL wrk_dealloc( jpi, jpj, f_co2flux2d ) 4359 zb_co2_flx = zn_co2_flx 4360 zn_co2_flx = f_co2flux2d 4361 CALL wrk_dealloc( jpi, jpj, f_co2flux2d ) 4330 4362 ENDIF 4331 4363 IF( med_diag%OM_CAL%dgsave ) THEN … … 4368 4400 IF( med_diag%DMS_SURF%dgsave ) THEN 4369 4401 CALL iom_put( "DMS_SURF" , dms_surf2d ) 4370 CALL wrk_dealloc( jpi, jpj, dms_surf2d ) 4402 zb_dms_srf = zn_dms_srf 4403 zn_dms_srf = dms_surf2d 4404 CALL wrk_dealloc( jpi, jpj, dms_surf2d ) 4371 4405 ENDIF 4372 4406 IF( med_diag%DMS_ANDR%dgsave ) THEN -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90
r6173 r6715 258 258 IF(lwp) WRITE(numout,*) ' trc_ini_medusa: average fields for DMS initialised to zero' 259 259 IF(lwp) CALL flush(numout) 260 260 !! 261 !!--------------------------------------------------------------------- 262 !!JPALM (14-06-2016): init dms and co2 flux for coupling with atm (UKESM) 263 !!--------------------------------------------------------------------- 264 !! 265 zb_co2_flx(:,:) = 0.0 !! CHN 266 zn_co2_flx(:,:) = 0.0 267 za_co2_flx(:,:) = 0.0 268 zb_dms_srf(:,:) = 0.0 !! CHD 269 zn_dms_srf(:,:) = 0.0 270 za_dms_srf(:,:) = 0.0 271 !! 272 IF(lwp) WRITE(numout,*) ' trc_ini_medusa: DMS and CO2 flux (UKESM) initialised to zero' 273 IF(lwp) CALL flush(numout) 274 !! 261 275 !!---------------------------------------------------------------------- 262 276 !! AXY (04/11/13): initialise fields previously done by trc_sed_medusa -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90
r5937 r6715 65 65 ! 66 66 NAMELIST/natbio/ xxi,xaln,xald,jphy,xvpn,xvpd, & 67 & xsin0,xnsi0,xuif,jliebig, 67 & xsin0,xnsi0,xuif,jliebig, jq10, & 68 68 & xthetam,xthetamd,xnln,xnld,xsld,xfln,xfld, & 69 69 & xgmi,xgme,xkmi,xkme,xphi,xbetan,xbetac,xkc, & … … 586 586 WRITE(numout,*) & 587 587 & ' phytoplankton growth is *temperature-dependent* jphy = ', jphy 588 elseif (jphy.eq.2) then 589 WRITE(numout,*) & 590 & ' phytoplankton growth is *temperature-dependent(Q10)* jphy = ', jphy 588 591 elseif (jphy.eq.0) then 589 592 WRITE(numout,*) & … … 598 601 WRITE(numout,*) & 599 602 & ' maximum Chl to C ratio for diatoms, xthetamd = ', xthetamd 603 WRITE(numout,*) & 604 & ' specific Q10 value (jphy==2), jq10 = ', jq10 600 605 !! 601 606 !! Diatom silicon parameters … … 746 751 WRITE(numout,*) & 747 752 & ' detritus remineralisation is *temperature-dependent* jmd = ', jmd 753 elseif (jmd.eq.2) then 754 WRITE(numout,*) & 755 & ' detritus remineralisation is *temperature-dependent(Q10)* jmd = ', jmd 748 756 elseif (jmd.eq.0) then 749 757 WRITE(numout,*) & -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/par_trc.F90
r5841 r6715 18 18 USE par_medusa ! MEDUSA model 19 19 USE par_idtra ! Idealize tracer 20 USE par_age ! AGE tracer 20 21 21 22 IMPLICIT NONE … … 27 28 ! Passive tracers : Total size 28 29 ! --------------- ! total number of passive tracers, of 2d and 3d output and trend arrays 29 INTEGER, PUBLIC, PARAMETER :: jptra = jp_pisces + jp_cfc + jp_c14b + jp_my_trc + jp_medusa + jp_idtra 30 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_my_trc_2d + jp_medusa_2d + jp_idtra_2d 31 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_my_trc_3d + jp_medusa_3d + jp_idtra_3d 30 INTEGER, PUBLIC, PARAMETER :: jptra = jp_pisces + jp_cfc + jp_c14b + jp_my_trc + jp_medusa + jp_idtra + jp_age 31 INTEGER, PUBLIC, PARAMETER :: jpdia2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_my_trc_2d + jp_medusa_2d + jp_idtra_2d + jp_age_2d 32 INTEGER, PUBLIC, PARAMETER :: jpdia3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_my_trc_3d + jp_medusa_3d + jp_idtra_3d + jp_age_3d 32 33 ! ! total number of sms diagnostic arrays 33 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd + jp_medusa_trd + jp_idtra_trd 34 INTEGER, PUBLIC, PARAMETER :: jpdiabio = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_my_trc_trd + jp_medusa_trd + jp_idtra_trd + jp_age_trd 34 35 35 36 ! 1D configuration ("key_c1d") -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r6645 r6715 27 27 USE trcini_medusa ! MEDUSA initialisation 28 28 USE trcini_idtra ! idealize tracer initialisation 29 USE trcini_age ! AGE initialisation 29 30 USE trcdta ! initialisation from files 30 31 USE daymod ! calendar manager … … 107 108 IF( lk_cfc ) CALL trc_ini_cfc ! CFC tracers 108 109 IF( lk_c14b ) CALL trc_ini_c14b ! C14 bomb tracer 110 IF( lk_age ) CALL trc_ini_age ! AGE tracer 109 111 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 110 112 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r6201 r6715 28 28 USE trcnam_medusa ! MEDUSA namelist 29 29 USE trcnam_idtra ! Idealise tracer namelist 30 USE trcnam_age ! AGE SMS namelist 30 31 USE trd_oce 31 32 USE trdtrc_oce … … 57 58 !! ** Method : - read passive tracer namelist 58 59 !! - read namelist of each defined SMS model 59 !! ( (PISCES, CFC, MY_TRC, MEDUSA, IDTRA )60 !! ( (PISCES, CFC, MY_TRC, MEDUSA, IDTRA, Age ) 60 61 !!--------------------------------------------------------------------- 61 62 INTEGER :: jn, jk ! dummy loop indice … … 276 277 IF (lwp) write (numout,*) 'Jpalm - debug' 277 278 IF (lwp) write (numout,*) 'CALL trc_nam_cfc -- OK' 278 IF (lwp) write (numout,*) 'in trc_nam - CALL trc_nam OK'279 IF (lwp) write (numout,*) 'in trc_nam - just before CALL trc_nam_c14' 279 280 IF (lwp) write (numout,*) ' ' 280 281 # endif … … 283 284 ELSE ; IF(lwp) WRITE(numout,*) ' C14 not used' 284 285 ENDIF 285 286 ! 287 # if defined key_debug_medusa 288 CALL flush(numout) 289 IF (lwp) write (numout,*) '------------------------------' 290 IF (lwp) write (numout,*) 'Jpalm - debug' 291 IF (lwp) write (numout,*) 'CALL trc_nam_c14 -- OK' 292 IF (lwp) write (numout,*) 'in trc_nam - just before CALL trc_nam_age' 293 IF (lwp) write (numout,*) ' ' 294 # endif 295 ! 296 IF( lk_age ) THEN ; CALL trc_nam_age ! AGE tracer 297 ELSE ; IF(lwp) WRITE(numout,*) ' AGE not used' 298 ENDIF 299 ! 300 # if defined key_debug_medusa 301 CALL flush(numout) 302 IF (lwp) write (numout,*) '------------------------------' 303 IF (lwp) write (numout,*) 'Jpalm - debug' 304 IF (lwp) write (numout,*) 'CALL trc_nam_age -- OK' 305 IF (lwp) write (numout,*) 'in trc_nam - CALL trc_nam -- OK' 306 IF (lwp) write (numout,*) ' ' 307 # endif 308 ! 286 309 IF( lk_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers 287 310 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used' -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcrst.F90
r6268 r6715 239 239 zn_dms_din(:,:) = 0.0 240 240 ENDIF 241 !! 242 !! JPALM 14-06-2016 -- add CO2 flux and DMS surf through the restart 243 !! -- needed for the coupling with atm 244 IF( iom_varid( numrtr, 'B_DMS_srf', ldstop = .FALSE. ) > 0 ) THEN 245 IF(lwp) WRITE(numout,*) 'DMS surf concentration - reading in ...' 246 CALL iom_get( numrtr, jpdom_autoglo, 'B_DMS_srf', zb_dms_srf(:,:) ) 247 CALL iom_get( numrtr, jpdom_autoglo, 'N_DMS_srf', zn_dms_srf(:,:) ) 248 ELSE 249 IF(lwp) WRITE(numout,*) 'DMS surf concentration - setting to zero ...' 250 zb_dms_srf(:,:) = 0.0 !! DMS 251 zn_dms_srf(:,:) = 0.0 252 ENDIF 253 !! 254 IF( iom_varid( numrtr, 'B_CO2_flx', ldstop = .FALSE. ) > 0 ) THEN 255 IF(lwp) WRITE(numout,*) 'CO2 air-sea flux - reading in ...' 256 CALL iom_get( numrtr, jpdom_autoglo, 'B_CO2_flx', zb_co2_flx(:,:) ) 257 CALL iom_get( numrtr, jpdom_autoglo, 'N_CO2_flx', zn_co2_flx(:,:) ) 258 ELSE 259 IF(lwp) WRITE(numout,*) 'CO2 air-sea flux - setting to zero ...' 260 zb_co2_flx(:,:) = 0.0 !! CO2 flx 261 zn_co2_flx(:,:) = 0.0 262 ENDIF 241 263 !! 242 264 !! calculate stats on these fields … … 247 269 call trc_rst_dia_stat(zn_dms_qsr(:,:), 'DMS, QSR') 248 270 call trc_rst_dia_stat(zn_dms_din(:,:), 'DMS, DIN') 271 call trc_rst_dia_stat(zn_dms_srf(:,:), 'DMS surf') 272 call trc_rst_dia_stat(zn_co2_flx(:,:), 'CO2 flux') 249 273 #endif 250 274 ! … … 366 390 CALL iom_rstput( kt, nitrst, numrtw, 'B_DMS_DIN', zb_dms_din(:,:) ) 367 391 CALL iom_rstput( kt, nitrst, numrtw, 'N_DMS_DIN', zn_dms_din(:,:) ) 392 !! JPALM 14-06-2016 -- add CO2 flux and DMS surf through the restart 393 !! -- needed for the coupling with atm 394 CALL iom_rstput( kt, nitrst, numrtw, 'B_DMS_srf', zb_dms_srf(:,:) ) 395 CALL iom_rstput( kt, nitrst, numrtw, 'N_DMS_srf', zn_dms_srf(:,:) ) 396 CALL iom_rstput( kt, nitrst, numrtw, 'B_CO2_flx', zb_co2_flx(:,:) ) 397 CALL iom_rstput( kt, nitrst, numrtw, 'N_CO2_flx', zn_co2_flx(:,:) ) 368 398 !! 369 399 !! calculate stats on these fields … … 374 404 call trc_rst_dia_stat(zn_dms_qsr(:,:), 'DMS, QSR') 375 405 call trc_rst_dia_stat(zn_dms_din(:,:), 'DMS, DIN') 406 call trc_rst_dia_stat(zn_dms_srf(:,:), 'DMS surf') 407 call trc_rst_dia_stat(zn_co2_flx(:,:), 'CO2 flux') 376 408 !! 377 409 #endif -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
r6261 r6715 20 20 USE trcsms_cfc ! CFC 11 & 12 21 21 USE trcsms_c14b ! C14b tracer 22 USE trcsms_age ! AGE tracer 22 23 USE trcsms_my_trc ! MY_TRC tracers 23 24 USE prtctl_trc ! Print control for debbuging … … 64 65 IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC 65 66 # if defined key_debug_medusa 66 IF(lwp) WRITE(numout,*) '--trcsms : CFC OK -- continue-- '67 IF(lwp) WRITE(numout,*) '--trcsms : CFC OK -- next C14 -- ' 67 68 CALL flush(numout) 68 69 # endif 69 70 IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14 71 # if defined key_debug_medusa 72 IF(lwp) WRITE(numout,*) '--trcsms : C14 OK -- next C14 -- ' 73 CALL flush(numout) 74 # endif 75 IF( lk_age ) CALL trc_sms_age ( kt ) ! AGE tracer 76 # if defined key_debug_medusa 77 IF(lwp) WRITE(numout,*) '--trcsms : Age OK -- Continue -- ' 78 CALL flush(numout) 79 # endif 70 80 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 71 81 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r6047 r6715 24 24 USE trcwri_medusa 25 25 USE trcwri_idtra 26 USE trcwri_age 26 27 27 28 IMPLICIT NONE … … 60 61 ! --------------------------------------- 61 62 IF( lk_pisces ) CALL trc_wri_pisces ! PISCES 63 IF( lk_medusa ) CALL trc_wri_medusa ! MESDUSA 64 IF( lk_idtra ) CALL trc_wri_idtra ! Idealize tracers 62 65 IF( lk_cfc ) CALL trc_wri_cfc ! surface fluxes of CFC 63 66 IF( lk_c14b ) CALL trc_wri_c14b ! surface fluxes of C14 67 IF( lk_age ) CALL trc_wri_age ! AGE tracer 64 68 IF( lk_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers 65 !66 # if defined key_debug_medusa67 CALL flush(numout)68 IF (lwp) write (numout,*) '------------------------------'69 IF (lwp) write (numout,*) 'Jpalm - debug'70 IF (lwp) write (numout,*) 'Just before call trc_wri_medusa'71 IF (lwp) write (numout,*) ' '72 CALL flush(numout)73 # endif74 !75 IF( lk_medusa ) CALL trc_wri_medusa ! MESDUSA76 !77 # if defined key_debug_medusa78 CALL flush(numout)79 IF (lwp) write (numout,*) '------------------------------'80 IF (lwp) write (numout,*) 'Jpalm - debug'81 IF (lwp) write (numout,*) 'CALL trc_wri_medusa -- OK'82 IF (lwp) write (numout,*) ' '83 CALL flush(numout)84 # endif85 !86 IF( lk_idtra ) CALL trc_wri_idtra ! Idealize tracers87 !88 # if defined key_debug_medusa89 CALL flush(numout)90 IF (lwp) write (numout,*) '------------------------------'91 IF (lwp) write (numout,*) 'Jpalm - debug'92 IF (lwp) write (numout,*) 'CALL trc_wri_idtra -- OK'93 IF (lwp) write (numout,*) ' '94 CALL flush(numout)95 # endif96 69 ! 97 70 IF( nn_timing == 1 ) CALL timing_stop('trc_wri')
Note: See TracChangeset
for help on using the changeset viewer.