[7041] | 1 | MODULE trcnam_c14 |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE trcnam_c14 *** |
---|
| 4 | !! TOP : initialisation of some run parameters for C14 chemical model |
---|
| 5 | !!====================================================================== |
---|
| 6 | !! History : 2.0 ! 2007-12 (C. Ethe, G. Madec) from trcnam.cfc.h90 |
---|
| 7 | !! History : ! 2015 (A.Mouchet) equilibrium + transient C14 |
---|
| 8 | !!---------------------------------------------------------------------- |
---|
| 9 | !! trc_nam_c14 : C14 model initialisation |
---|
| 10 | !!---------------------------------------------------------------------- |
---|
| 11 | USE oce_trc ! Ocean variables |
---|
| 12 | USE trc ! TOP variables |
---|
| 13 | USE sms_c14 |
---|
| 14 | |
---|
| 15 | IMPLICIT NONE |
---|
| 16 | PRIVATE |
---|
| 17 | !! |
---|
| 18 | PUBLIC trc_nam_c14 ! called by trcnam.F90 module |
---|
| 19 | !! |
---|
| 20 | !!---------------------------------------------------------------------- |
---|
| 21 | !! NEMO/TOP 3.3 , NEMO Consortium (2010) |
---|
| 22 | !! $Id: trcnam_c14.F90 $ |
---|
| 23 | !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) |
---|
| 24 | !!---------------------------------------------------------------------- |
---|
| 25 | |
---|
| 26 | CONTAINS |
---|
| 27 | |
---|
| 28 | SUBROUTINE trc_nam_c14 |
---|
| 29 | !!------------------------------------------------------------------- |
---|
| 30 | !! *** ROUTINE trc_nam_c14 *** |
---|
| 31 | !! |
---|
| 32 | !! ** Purpose : Definition some run parameter for C14 model |
---|
| 33 | !! |
---|
| 34 | !! ** Method : Read the namc14 namelist and check the parameter |
---|
| 35 | !! values called at the first timestep (nittrc000) |
---|
| 36 | !! |
---|
| 37 | !! ** input : Namelist namelist_c14 |
---|
| 38 | !!---------------------------------------------------------------------- |
---|
| 39 | INTEGER :: ios ! Local integer output status for namelist read |
---|
| 40 | !! |
---|
| 41 | NAMELIST/namc14_typ/ kc14typ,rc14at, pco2at, rc14init ! type of C14 tracer, default values of C14/C, pco2, & ocean r14 |
---|
| 42 | NAMELIST/namc14_sbc/ ln_chemh, xkwind, xdicsur ! chem enh, wind coeff, ref DIC |
---|
| 43 | NAMELIST/namc14_fcg/ cfileco2, cfilec14, tyrc14_beg ! for transient exps; atm forcing |
---|
| 44 | !!------------------------------------------------------------------- |
---|
[7124] | 45 | ! Variable setting |
---|
[7068] | 46 | ctrcnm (jp_c14) = 'RC14' |
---|
| 47 | ctrcln (jp_c14) = 'Radiocarbon ratio' |
---|
| 48 | ctrcun (jp_c14) = '-' |
---|
| 49 | ln_trc_ini(jp_c14) = .false. |
---|
[7124] | 50 | ln_trc_sbc(jp_c14) = .false. |
---|
| 51 | ln_trc_cbc(jp_c14) = .false. |
---|
| 52 | ln_trc_obc(jp_c14) = .false. |
---|
[7068] | 53 | ! |
---|
[7041] | 54 | REWIND( numtrc_ref ) ! Namelist namc14_typ in reference namelist : |
---|
| 55 | READ ( numtrc_ref, namc14_typ, IOSTAT = ios, ERR = 901) |
---|
| 56 | 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_typ in reference namelist', lwp ) |
---|
| 57 | |
---|
| 58 | REWIND( numtrc_cfg ) ! Namelist namcfcdate in configuration namelist |
---|
| 59 | READ ( numtrc_cfg, namc14_typ, IOSTAT = ios, ERR = 902) |
---|
| 60 | 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_typ in configuration namelist', lwp ) |
---|
| 61 | IF(lwm) WRITE ( numonr, namc14_typ ) |
---|
| 62 | |
---|
| 63 | IF(lwp) THEN ! control print |
---|
[7068] | 64 | WRITE(numout,*) ' ' |
---|
| 65 | WRITE(numout,*) ' Radiocarbon C14' |
---|
| 66 | WRITE(numout,*) ' ' |
---|
[7041] | 67 | WRITE(numout,*) ' Namelist namc14_typ' |
---|
| 68 | WRITE(numout,*) |
---|
| 69 | WRITE(numout,*) ' Type of C14 tracer (0=equilibrium; 1=bomb transient; 2=past transient) kc14typ = ', kc14typ |
---|
| 70 | WRITE(numout,*) ' Default value for atmospheric C14/C (used for equil run) rc14at = ', rc14at |
---|
| 71 | WRITE(numout,*) ' Default value for atmospheric pcO2 [atm] (used for equil run) pco2at = ', pco2at |
---|
| 72 | WRITE(numout,*) ' Default value for initial C14/C in the ocean (used for equil run) rc14init= ', rc14init |
---|
| 73 | WRITE(numout,*) ' ' |
---|
| 74 | ENDIF |
---|
| 75 | |
---|
| 76 | REWIND( numtrc_ref ) ! Namelist namc14_typ in reference namelist : |
---|
| 77 | READ ( numtrc_ref, namc14_sbc, IOSTAT = ios, ERR = 903) |
---|
| 78 | 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_sbc in reference namelist', lwp ) |
---|
| 79 | |
---|
| 80 | REWIND( numtrc_cfg ) ! Namelist namcfcdate in configuration namelist |
---|
| 81 | READ ( numtrc_cfg, namc14_sbc, IOSTAT = ios, ERR = 904) |
---|
| 82 | 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_sbc in configuration namelist', lwp ) |
---|
| 83 | IF(lwm) WRITE ( numonr, namc14_sbc ) |
---|
| 84 | |
---|
| 85 | IF(lwp) THEN ! control print |
---|
| 86 | WRITE(numout,*) ' Namelist namc14_sbc' |
---|
| 87 | WRITE(numout,*) |
---|
| 88 | WRITE(numout,*) ' Chemical enhancement in piston velocity ln_chemh = ', ln_chemh |
---|
| 89 | WRITE(numout,*) ' Coefficient for gas exchange velocity xkwind = ', xkwind |
---|
| 90 | WRITE(numout,*) ' Reference DIC concentration (mol/m3) xdicsur = ', xdicsur |
---|
| 91 | WRITE(numout,*) ' ' |
---|
| 92 | ENDIF |
---|
| 93 | |
---|
| 94 | REWIND( numtrc_ref ) ! Namelist namc14_typ in reference namelist : |
---|
| 95 | READ ( numtrc_ref, namc14_fcg, IOSTAT = ios, ERR = 905) |
---|
| 96 | 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_fcg in reference namelist', lwp ) |
---|
| 97 | |
---|
| 98 | REWIND( numtrc_cfg ) ! Namelist namcfcdate in configuration namelist |
---|
| 99 | READ ( numtrc_cfg, namc14_fcg, IOSTAT = ios, ERR = 906) |
---|
| 100 | 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namc14_fcg in configuration namelist', lwp ) |
---|
| 101 | IF(lwm) WRITE ( numonr, namc14_fcg ) |
---|
| 102 | |
---|
| 103 | IF(lwp) THEN ! control print |
---|
| 104 | WRITE(numout,*) ' Namelist namc14_fcg' |
---|
| 105 | WRITE(numout,*) |
---|
| 106 | WRITE(numout,*) ' Atmospheric co2 file ( bomb ) cfileco2 = ', TRIM( cfileco2 ) |
---|
| 107 | WRITE(numout,*) ' Atmospheric c14 file ( bomb ) cfilec14 = ', TRIM( cfilec14 ) |
---|
| 108 | WRITE(numout,*) ' Starting year of experiment tyrc14_beg = ', tyrc14_beg |
---|
| 109 | WRITE(numout,*) ' ' |
---|
| 110 | ENDIF |
---|
| 111 | |
---|
| 112 | ! |
---|
| 113 | IF( kc14typ == 2) tyrc14_beg = 1950._wp - tyrc14_beg ! BP to AD dates |
---|
| 114 | ! set units |
---|
| 115 | rlam14 = LOG(2._wp) / 5730._wp / rsiyea ! C14 decay rate: yr^-1 --> s^-1 |
---|
| 116 | ! ! radiocarbon half-life is 5730 yr |
---|
| 117 | END SUBROUTINE trc_nam_c14 |
---|
| 118 | |
---|
| 119 | !!====================================================================== |
---|
| 120 | END MODULE trcnam_c14 |
---|