Changeset 9285 for branches/NERC/dev_r5518_GO6_CO2_cmip
- Timestamp:
- 2018-01-26T13:27:36+01:00 (6 years ago)
- Location:
- branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90
r9258 r9285 283 283 #if defined key_roam 284 284 !!---------------------------------------------------------------------- 285 !! Atmospheric pCO2 data (1859 to 2100 inclusive) 286 !!---------------------------------------------------------------------- 287 !! 288 REAL(wp), DIMENSION(242) :: hist_pco2 !: pCO2 289 290 # if defined key_rcp26 291 !! UKMO, run AJKKH + KAAEC, RCP 2.6, pCO2 time evolution 292 DATA hist_pco2 / 286.0230, 286.1730, 286.3230, 286.4480, 286.5730, & 293 & 286.7230, 286.8480, 286.9480, 287.0480, 287.1730, & 294 & 287.3230, 287.4730, 287.6480, 287.8480, 288.0730, & 295 & 288.3480, 288.6480, 288.9730, 289.3470, 289.7470, & 296 & 290.1730, 290.6470, 291.1470, 291.6220, 292.0720, & 297 & 292.5220, 292.9220, 293.2470, 293.5220, 293.7470, & 298 & 293.9470, 294.1220, 294.2720, 294.4220, 294.5470, & 299 & 294.6470, 294.7470, 294.8470, 294.9710, 295.1710, & 300 & 295.4460, 295.7470, 296.0720, 296.4210, 296.7710, & 301 & 297.1460, 297.5710, 298.0210, 298.4460, 298.8460, & 302 & 299.2460, 299.6450, 300.0210, 300.3710, 300.7200, & 303 & 301.0450, 301.3460, 301.6710, 302.0200, 302.3450, & 304 & 302.6450, 302.9700, 303.3450, 303.7200, 304.0700, & 305 & 304.4700, 304.9200, 305.3440, 305.7700, 306.2450, & 306 & 306.7190, 307.1700, 307.6440, 308.1190, 308.5440, & 307 & 308.9440, 309.3440, 309.6940, 309.9440, 310.1190, & 308 & 310.2440, 310.3190, 310.3190, 310.2440, 310.1440, & 309 & 310.0690, 310.0440, 310.0690, 310.1440, 310.2690, & 310 & 310.4440, 310.6940, 311.0430, 311.4440, 311.8690, & 311 & 312.3680, 312.9430, 313.5430, 314.1680, 314.7900, & 312 & 315.4430, 316.2150, 317.0170, 317.7370, 318.3400, & 313 & 318.8680, 319.5900, 320.5890, 321.5470, 322.5770, & 314 & 323.8440, 324.9260, 325.7960, 327.0810, 328.6180, & 315 & 329.6830, 330.5250, 331.6880, 333.2120, 334.7870, & 316 & 336.4640, 338.2990, 339.6660, 340.7310, 342.1360, & 317 & 343.7200, 345.2200, 346.7350, 348.5820, 350.6740, & 318 & 352.4230, 353.7910, 354.9530, 355.8210, 356.7130, & 319 & 358.0630, 359.7720, 361.3970, 363.0900, 365.2560, & 320 & 367.2810, 368.7980, 370.4000, 372.4550, 374.6920, & 321 & 376.7440, 378.7440, 380.7580, 382.7080, 384.7300, & 322 & 386.9310, 389.2150, 391.4910, 393.7710, 396.0460, & 323 & 398.3240, 400.6080, 402.8950, 405.1780, 407.4550, & 324 & 409.7260, 411.9930, 414.2500, 416.4410, 418.5280, & 325 & 420.5250, 422.4390, 424.2720, 426.0200, 427.6750, & 326 & 429.2360, 430.7050, 432.0850, 433.3580, 434.5140, & 327 & 435.5740, 436.5490, 437.4420, 438.2550, 438.9810, & 328 & 439.6110, 440.1430, 440.5770, 440.9450, 441.2660, & 329 & 441.5410, 441.7840, 442.0050, 442.2040, 442.3780, & 330 & 442.5210, 442.6200, 442.6720, 442.6810, 442.6540, & 331 & 442.5830, 442.4670, 442.3270, 442.1680, 441.9960, & 332 & 441.8060, 441.5930, 441.3440, 441.0540, 440.7230, & 333 & 440.3510, 439.9300, 439.4650, 438.9730, 438.4630, & 334 & 437.9400, 437.4020, 436.8400, 436.2640, 435.6850, & 335 & 435.1030, 434.5160, 433.9170, 433.3060, 432.7010, & 336 & 432.1110, 431.5380, 430.9810, 430.4320, 429.8860, & 337 & 429.3370, 428.7810, 428.2220, 427.6490, 427.0660, & 338 & 426.4890, 425.9270, 425.3840, 424.8610, 424.3540, & 339 & 423.8540, 423.3540, 422.8530, 422.3510, 421.8410, & 340 & 421.3250, 420.8190 / 341 # else 342 !! UKMO, run AJKKH + KAAEF, RCP 8.5, pCO2 time evolution 343 DATA hist_pco2 / 286.0230, 286.1730, 286.3230, 286.4480, 286.5730, & 344 & 286.7230, 286.8480, 286.9480, 287.0480, 287.1730, & 345 & 287.3230, 287.4730, 287.6480, 287.8480, 288.0730, & 346 & 288.3480, 288.6480, 288.9730, 289.3470, 289.7470, & 347 & 290.1730, 290.6470, 291.1470, 291.6220, 292.0720, & 348 & 292.5220, 292.9220, 293.2470, 293.5220, 293.7470, & 349 & 293.9470, 294.1220, 294.2720, 294.4220, 294.5470, & 350 & 294.6470, 294.7470, 294.8470, 294.9710, 295.1710, & 351 & 295.4460, 295.7470, 296.0720, 296.4210, 296.7710, & 352 & 297.1460, 297.5710, 298.0210, 298.4460, 298.8460, & 353 & 299.2460, 299.6450, 300.0210, 300.3710, 300.7200, & 354 & 301.0450, 301.3460, 301.6710, 302.0200, 302.3450, & 355 & 302.6450, 302.9700, 303.3450, 303.7200, 304.0700, & 356 & 304.4700, 304.9200, 305.3440, 305.7700, 306.2450, & 357 & 306.7190, 307.1700, 307.6440, 308.1190, 308.5440, & 358 & 308.9440, 309.3440, 309.6940, 309.9440, 310.1190, & 359 & 310.2440, 310.3190, 310.3190, 310.2440, 310.1440, & 360 & 310.0690, 310.0440, 310.0690, 310.1440, 310.2690, & 361 & 310.4440, 310.6940, 311.0430, 311.4440, 311.8690, & 362 & 312.3680, 312.9430, 313.5430, 314.1680, 314.7900, & 363 & 315.4430, 316.2150, 317.0170, 317.7370, 318.3400, & 364 & 318.8680, 319.5900, 320.5890, 321.5470, 322.5770, & 365 & 323.8440, 324.9260, 325.7960, 327.0810, 328.6180, & 366 & 329.6830, 330.5250, 331.6880, 333.2120, 334.7870, & 367 & 336.4640, 338.2990, 339.6660, 340.7310, 342.1360, & 368 & 343.7200, 345.2200, 346.7350, 348.5820, 350.6740, & 369 & 352.4230, 353.7910, 354.9530, 355.8210, 356.7130, & 370 & 358.0630, 359.7720, 361.3970, 363.0900, 365.2560, & 371 & 367.2810, 368.7980, 370.4000, 372.4550, 374.6920, & 372 & 376.7440, 378.7440, 380.7580, 382.7080, 384.7300, & 373 & 386.9420, 389.2540, 391.5670, 393.9370, 396.3920, & 374 & 398.9320, 401.5550, 404.2550, 407.0220, 409.8530, & 375 & 412.7470, 415.7050, 418.7210, 421.7880, 424.9180, & 376 & 428.1200, 431.3970, 434.7470, 438.1650, 441.6410, & 377 & 445.1700, 448.7530, 452.3920, 456.0950, 459.8810, & 378 & 463.7680, 467.7660, 471.8750, 476.0960, 480.4210, & 379 & 484.8390, 489.3470, 493.9430, 498.6400, 503.4380, & 380 & 508.3410, 513.3630, 518.5160, 523.8050, 529.2290, & 381 & 534.7780, 540.4450, 546.2230, 552.1120, 558.1110, & 382 & 564.2110, 570.4130, 576.7390, 583.1990, 589.7980, & 383 & 596.5390, 603.4110, 610.4060, 617.4940, 624.6500, & 384 & 631.8800, 639.1750, 646.5360, 653.9800, 661.5230, & 385 & 669.1840, 676.9570, 684.8290, 692.7790, 700.7690, & 386 & 708.8050, 716.8870, 725.0020, 733.1770, 741.3900, & 387 & 749.6700, 758.0480, 766.5050, 775.0350, 783.6110, & 388 & 792.2200, 800.8740, 809.5680, 818.2760, 827.0090, & 389 & 835.8020, 844.6550, 853.5730, 862.5690, 871.6190, & 390 & 880.7020, 889.8240, 898.9590, 908.1270, 917.3080, & 391 & 926.4960, 935.7040 / 392 # endif 285 !! JPALM -- change hist_pco2 init 286 !!---------------------------------------------------------------------- 287 !! 288 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: hist_pco2 !: pCO2 289 INTEGER :: co2_yinit, co2_yend, co2_rec 393 290 #endif 394 291 -
branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r9257 r9285 81 81 gdept_0, gdept_n, & 82 82 gdepw_0, gdepw_n, & 83 nday_year, nsec_day, nyear, & 83 nday_year, nsec_day, & 84 nyear, nyear_len, & 84 85 rdt, tmask, mig, mjg, nimpp, & 85 86 njmpp … … 102 103 !! JPALM (27-06-2016): add lk_oasis for CO2 and DMS coupling with atm 103 104 USE sbc_oce, ONLY: lk_oasis 104 USE sms_medusa, ONLY: hist_pco2 105 USE sms_medusa, ONLY: hist_pco2, co2_yinit, co2_yend 105 106 USE trc, ONLY: ln_rsttr, nittrc000, trn 106 107 USE bio_medusa_init_mod, ONLY: bio_medusa_init … … 294 295 !! 295 296 !! what's atmospheric pCO2 doing? (data start in 1859) 296 iyr1 = nyear - 1859 + 1297 iyr1 = nyear 297 298 iyr2 = iyr1 + 1 298 if (iyr1 .le. 1) then299 !! before 18 60300 f_xco2a(:,:) = hist_pco2(1)301 elseif (iyr2 .ge. 242) then302 !! after 20 99303 f_xco2a(:,:) = hist_pco2( 242)299 if (iyr1 .le. co2_yinit) then 300 !! before 1850 301 f_xco2a(:,:) = 284.317 302 elseif (iyr2 .ge. co2_yend) then 303 !! after 2010 304 f_xco2a(:,:) = hist_pco2(co2_yend - co2_yinit +1) 304 305 else 305 306 !! just right … … 307 308 fq1 = hist_pco2(iyr2) 308 309 fq2 = real(nsec_day) / (60.0 * 60.0 * 24.0) 310 fq3 = (real(nday_year) - 1.0 + fq2) / real(nyear_len(1)) 309 311 !! AXY (14/06/12): tweaked to make more sense (and be correct) 310 # if defined key_bs_axy_yrlen311 !! bugfix: for 360d year with HadGEM2-ES forcing312 fq3 = (real(nday_year) - 1.0 + fq2) / 360.0313 # else314 !! original use of 365 days (not accounting for leap year or315 !! 360d year)316 fq3 = (real(nday_year) - 1.0 + fq2) / 365.0317 # endif312 !!# if defined key_bs_axy_yrlen 313 !! !! bugfix: for 360d year with HadGEM2-ES forcing 314 !! fq3 = (real(nday_year) - 1.0 + fq2) / 360.0 315 !!# else 316 !! !! original use of 365 days (not accounting for leap year or 317 !! !! 360d year) 318 !! fq3 = (real(nday_year) - 1.0 + fq2) / 365.0 319 !!# endif 318 320 fq4 = (fq0 * (1.0 - fq3)) + (fq1 * fq3) 319 321 f_xco2a(:,:) = fq4 … … 322 324 !! OCMIP pre-industrial pCO2 323 325 !! f_xco2a(:,:) = 284.725 !! CMIP5 pre-industrial pCO2 324 f_xco2a = 284.317 !! CMIP6 pre-industrial pCO2326 f_xco2a(:,:) = 284.317 !! CMIP6 pre-industrial pCO2 325 327 # endif 326 !! IF(lwp) WRITE(numout,*) ' MEDUSA nyear =', nyear 327 !! IF(lwp) WRITE(numout,*) ' MEDUSA nsec_day =', real(nsec_day) 328 !! IF(lwp) WRITE(numout,*) ' MEDUSA nday_year =', real(nday_year) 328 IF(lwp) WRITE(numout,*) ' MEDUSA nyear =', nyear 329 IF(lwp) WRITE(numout,*) ' MEDUSA nyear =', real(nyear_len(1)) 330 IF(lwp) WRITE(numout,*) ' MEDUSA nsec_day =', real(nsec_day) 331 IF(lwp) WRITE(numout,*) ' MEDUSA nday_year =', real(nday_year) 329 332 !! AXY (29/01/14): remove surplus diagnostics 330 !!IF(lwp) WRITE(numout,*) ' MEDUSA fq0 =', fq0331 !!IF(lwp) WRITE(numout,*) ' MEDUSA fq1 =', fq1332 !!IF(lwp) WRITE(numout,*) ' MEDUSA fq2 =', fq2333 !!IF(lwp) WRITE(numout,*) ' MEDUSA fq3 =', fq3334 IF(lwp) WRITE(numout,*) ' MEDUSA atm pCO2 =', f_xco2a(1,1)333 IF(lwp) WRITE(numout,*) ' MEDUSA fq0 =', fq0 334 IF(lwp) WRITE(numout,*) ' MEDUSA fq1 =', fq1 335 IF(lwp) WRITE(numout,*) ' MEDUSA fq2 =', fq2 336 IF(lwp) WRITE(numout,*) ' MEDUSA fq3 =', fq3 337 IF(lwp) WRITE(numout,*) ' MEDUSA atm pCO2 =', f_xco2a(1,1) 335 338 # endif 336 339 -
branches/NERC/dev_r5518_GO6_CO2_cmip/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90
r9114 r9285 324 324 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 325 325 IF(lwp) CALL flush(numout) 326 !! 327 !!---------------------------------------------------------------------- 328 !! JPALM (23-01-2017): new way to initialize CO2-atm for cmip6 329 !! initially done in trcsms_medusa 330 !!---------------------------------------------------------------------- 331 !! 332 IF(lwp) WRITE(numout,*) ' trc_ini_medusa: initialisating atm CO2 record' 333 CALL trc_ini_medusa_co2atm 334 326 335 327 336 END SUBROUTINE trc_ini_medusa … … 480 489 END SUBROUTINE trc_ini_medusa_river 481 490 491 SUBROUTINE trc_ini_medusa_co2atm 492 !!---------------------------------------------------------------------- 493 !! *** trc_ini_medusa_co2atm *** 494 !! 495 !! ** Purpose : initialization atmospheric co2 record 496 !! 497 !! ** Method : - Read the xco2 file 498 !!---------------------------------------------------------------------- 499 INTEGER :: jn, jl, jm, io, ierr, inum 500 INTEGER :: iskip = 4 ! number of 1st descriptor lines 501 REAL(wp) :: zyy 502 CHARACTER (len=10) :: clname = 'xco2.atm' !! atm CO2 record file 503 !!---------------------------------------------------------------------- 504 505 IF(lwp) WRITE(numout,*) 506 IF(lwp) WRITE(numout,*) ' trc_ini_medusa_co2atm: initialisation of atm CO2 historical record' 507 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 508 509 510 IF(lwp) WRITE(numout,*) 'read of formatted file xco2.atm' 511 512 CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 513 REWIND(inum) 514 515 ! compute the number of year in the file 516 ! file starts in 1849 do jn represent the record number in the file. 517 ! the year is jn + yinit - 1 518 jn = 1 519 DO 520 READ(inum,'(1x)',END=100) 521 jn = jn + 1 522 END DO 523 100 co2_rec = jn - 1 - iskip 524 IF ( lwp) WRITE(numout,*) ' ', co2_rec ,' years read in the file' 525 ! ! Allocate CO2 hist arrays 526 ierr = 0 527 ALLOCATE( hist_pco2(co2_rec), STAT=ierr ) 528 IF( ierr > 0 ) THEN 529 CALL ctl_stop( 'trc_ini_medusa_co2atm: unable to allocate array' ) ; RETURN 530 ENDIF 531 532 REWIND(inum) 533 534 DO jm = 1, iskip ! Skip over 1st six descriptor lines 535 READ(inum,'(1x)') 536 END DO 537 ! file starts in 1931 do jn represent the year in the century.jhh 538 ! Read file till the end 539 ! allocate start and end year of the file 540 jn = 1 541 DO 542 READ(inum,*, IOSTAT=io) zyy, hist_pco2(jn) 543 IF( io < 0 ) exit 544 IF(jn==1) co2_yinit = int(zyy) 545 jn = jn + 1 546 END DO 547 co2_yend = co2_yinit + co2_rec - 1 548 549 IF(lwp) THEN ! Control print 550 WRITE(numout,*) 551 WRITE(numout,*) 'CO2 hist start year: ', co2_yinit 552 WRITE(numout,*) 'CO2 hist end year: ', co2_yend 553 WRITE(numout,*) ' Year xCO2 atm ' 554 DO jn = 1, co2_rec 555 jl = jn + co2_yinit - 1 556 WRITE(numout, '( 1I4, 6F9.2)') jl, hist_pco2(jn) 557 END DO 558 ENDIF 559 560 END SUBROUTINE trc_ini_medusa_co2atm 561 562 482 563 #else 483 564 !!----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.