Changeset 8353
- Timestamp:
- 2017-07-19T16:41:00+02:00 (6 years ago)
- Location:
- branches/2015/nemo_v3_6_STABLE/NEMOGCM
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/field_def.xml
r8102 r8353 1001 1001 <field id="CFC11" long_name="CFC-11 Concentration" unit="umol/m3" /> 1002 1002 <field id="CFC11_E3T" long_name="CFC11 * E3T" unit="umol/m2" > CFC11 * e3t </field > 1003 <field id="CFC12" long_name="CFC-12 Concentration" unit="umol/m3" /> 1004 <field id="CFC12_E3T" long_name="CFC12 * E3T" unit="umol/m2" > CFC12 * e3t </field > 1005 <field id="SF6" long_name="SF6 Concentration" unit="umol/m3" /> 1006 <field id="SF6_E3T" long_name="SF6 * E3T" unit="umol/m2" > SF6 * e3t </field > 1003 1007 1004 1008 <!-- Bomb C14 : variables available with key_c14b --> … … 1125 1129 1126 1130 <!-- CFC11 : variables available with key_cfc --> 1127 <field id="qtrCFC11" long_name="Air-sea flux of CFC-11" unit="mol/m2/s" /> 1128 <field id="qintCFC11" long_name="Cumulative air-sea flux of CFC-11" unit="mol/m2" /> 1131 <field id="qtr_CFC11" long_name="Air-sea flux of CFC-11" unit="mol/m2/s" /> 1132 <field id="qint_CFC11" long_name="Cumulative air-sea flux of CFC-11" unit="mol/m2" /> 1133 <field id="qtr_CFC12" long_name="Air-sea flux of CFC-12" unit="mol/m2/s" /> 1134 <field id="qint_CFC12" long_name="Cumulative air-sea flux of CFC-12" unit="mol/m2" /> 1135 <field id="qtr_SF6" long_name="Air-sea flux of SF6" unit="mol/m2/s" /> 1136 <field id="qint_SF6" long_name="Cumulative air-sea flux of SF6" unit="mol/m2" /> 1129 1137 1130 1138 <!-- Bomb C14 : variables available with key_c14b --> 1131 <field id="qtr C14b"long_name="Air-sea flux of Bomb C14" unit="mol/m2/s" />1132 <field id="qint C14b"long_name="Cumulative air-sea flux of Bomb C14" unit="mol/m2" />1139 <field id="qtr_C14b" long_name="Air-sea flux of Bomb C14" unit="mol/m2/s" /> 1140 <field id="qint_C14b" long_name="Cumulative air-sea flux of Bomb C14" unit="mol/m2" /> 1133 1141 <field id="fdecay" long_name="Radiactive decay of Bomb C14" unit="mol/m3" grid_ref="grid_T_3D" /> 1134 1142 </field_group> -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/CONFIG/SHARED/namelist_cfc_ref
r4147 r8353 8 8 ndate_beg = 300101 ! datedeb1 9 9 nyear_res = 1932 ! iannee1 10 ! Formatted file of annual hemisperic CFCs concentration in the atmosphere (ppt) 11 clnamecfc = 'CFCs_CMIP6.dat' 10 12 / 11 13 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/par_age.F90
r7491 r8353 25 25 USE par_c14b , ONLY : jp_c14b_trd !: number of tracers in C14 26 26 27 USE par_my_trc , ONLY : jp_my_trc !: number of tracers in MY_TRC 28 USE par_my_trc , ONLY : jp_my_trc_2d !: number of 2D diag in MY_TRC 29 USE par_my_trc , ONLY : jp_my_trc_3d !: number of 3D diag in MY_TRC 30 USE par_my_trc , ONLY : jp_my_trc_trd !: number of biological diag in MY_TRC 31 27 32 IMPLICIT NONE 28 33 29 INTEGER, PARAMETER :: jp_lm = jp_pisces + jp_ cfc + jp_c14b !:30 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d + jp_ cfc_2d + jp_c14b_2d !:31 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d + jp_ cfc_3d + jp_c14b_3d !:32 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd + jp_ cfc_trd + jp_c14b_trd !:34 INTEGER, PARAMETER :: jp_lm = jp_pisces + jp_my_trc + jp_cfc + jp_c14b !: 35 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d + jp_my_trc_2d + jp_cfc_2d + jp_c14b_2d !: 36 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d + jp_my_trc_3d + jp_cfc_3d + jp_c14b_3d !: 37 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd + jp_c14b_trd !: 33 38 34 39 #if defined key_age -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/AGE/trcnam_age.F90
r7491 r8353 14 14 USE oce_trc ! Ocean variables 15 15 USE trcsms_age ! AGE specific variable 16 USE trc 16 17 17 18 IMPLICIT NONE … … 44 45 NAMELIST/namage/ rn_age_depth, rn_age_kill_rate 45 46 !!---------------------------------------------------------------------- 47 ! Variable setting 48 ctrcnm (jp_age0) = 'Age' 49 ctrcln (jp_age0) = 'Sea water age since surface contact' 50 ctrcun (jp_age0) = 'year' 51 ln_trc_ini(jp_age0) = .false. 46 52 ! ! Open namelist files 47 53 CALL ctl_opn( numnatg_ref, 'namelist_age_ref' , 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/par_c14b.F90
r3680 r8353 11 11 USE par_pisces , ONLY : jp_pisces_trd !: number of biological diag in PISCES 12 12 13 USE par_my_trc , ONLY : jp_my_trc !: number of tracers in MY_TRC 14 USE par_my_trc , ONLY : jp_my_trc_2d !: number of 2D diag in MY_TRC 15 USE par_my_trc , ONLY : jp_my_trc_3d !: number of 3D diag in MY_TRC 16 USE par_my_trc , ONLY : jp_my_trc_trd !: number of biological diag in MY_TRC 17 13 18 USE par_cfc , ONLY : jp_cfc !: number of tracers in CFC 14 19 USE par_cfc , ONLY : jp_cfc_2d !: number of 2D diag in CFC … … 19 24 IMPLICIT NONE 20 25 21 INTEGER, PARAMETER :: jp_lb = jp_pisces + jp_ cfc !: cum. number of pass. tracers22 INTEGER, PARAMETER :: jp_lb_2d = jp_pisces_2d + jp_ cfc_2d !:23 INTEGER, PARAMETER :: jp_lb_3d = jp_pisces_3d + jp_ cfc_3d !:24 INTEGER, PARAMETER :: jp_lb_trd = jp_pisces_trd + jp_ cfc_trd !:26 INTEGER, PARAMETER :: jp_lb = jp_pisces + jp_my_trc + jp_cfc !: cum. number of pass. tracers 27 INTEGER, PARAMETER :: jp_lb_2d = jp_pisces_2d + jp_my_trc_2d + jp_cfc_2d !: 28 INTEGER, PARAMETER :: jp_lb_3d = jp_pisces_3d + jp_my_trc_3d + jp_cfc_3d !: 29 INTEGER, PARAMETER :: jp_lb_trd = jp_pisces_trd + jp_my_trc_trd + jp_cfc_trd !: 25 30 26 31 #if defined key_c14b -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcnam_c14b.F90
r4624 r8353 55 55 NAMELIST/namc14dia/ c14dia2d, c14dia3d ! additional diagnostics 56 56 !!------------------------------------------------------------------- 57 ctrcnm (jp_c14b0) = 'C14B' 58 ctrcln (jp_c14b0) = 'Bomb C14 Concentration' 59 ctrcun (jp_c14b0) = 'ration' 60 ln_trc_ini(jp_c14b0) = .false. 61 ln_trc_wri(jp_c14b0) = .true. 57 62 ! ! Open namelist file 58 63 CALL ctl_opn( numnatb_ref, 'namelist_c14b_ref' , 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/C14b/trcsms_c14b.F90
r5215 r8353 291 291 ! 292 292 IF( lk_iomput ) THEN 293 CALL iom_put( "qtr C14b" , qtr_c14 )294 CALL iom_put( "qint C14b" , qint_c14 )293 CALL iom_put( "qtr_C14b" , qtr_c14 ) 294 CALL iom_put( "qint_C14b" , qint_c14 ) 295 295 CALL iom_put( "fdecay" , zdecay ) 296 296 ELSE -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/par_cfc.F90
r3680 r8353 14 14 USE par_pisces , ONLY : jp_pisces_3d !: number of 3D diag in PISCES 15 15 USE par_pisces , ONLY : jp_pisces_trd !: number of biological diag in PISCES 16 17 USE par_my_trc , ONLY : jp_my_trc !: number of tracers in MY_TRC 18 USE par_my_trc , ONLY : jp_my_trc_2d !: number of 2D diag in MY_TRC 19 USE par_my_trc , ONLY : jp_my_trc_3d !: number of 3D diag in MY_TRC 20 USE par_my_trc , ONLY : jp_my_trc_trd !: number of biological diag in MY_TRC 16 21 17 22 IMPLICIT NONE 18 23 19 INTEGER, PARAMETER :: jp_lc = jp_pisces !: cumulative number of passive tracers20 INTEGER, PARAMETER :: jp_lc_2d = jp_pisces_2d !:21 INTEGER, PARAMETER :: jp_lc_3d = jp_pisces_3d !:22 INTEGER, PARAMETER :: jp_lc_trd = jp_pisces_trd !:24 INTEGER, PARAMETER :: jp_lc = jp_pisces + jp_my_trc !: cumulative number of passive tracers 25 INTEGER, PARAMETER :: jp_lc_2d = jp_pisces_2d + jp_my_trc_2d !: 26 INTEGER, PARAMETER :: jp_lc_3d = jp_pisces_3d + jp_my_trc_3d !: 27 INTEGER, PARAMETER :: jp_lc_trd = jp_pisces_trd + jp_my_trc_trd !: 23 28 24 29 #if defined key_cfc … … 27 32 !!--------------------------------------------------------------------- 28 33 LOGICAL, PUBLIC, PARAMETER :: lk_cfc = .TRUE. !: CFC flag 29 INTEGER, PUBLIC, PARAMETER :: jp_cfc = 1!: number of passive tracers30 INTEGER, PUBLIC, PARAMETER :: jp_cfc_2d = 2 34 INTEGER, PUBLIC, PARAMETER :: jp_cfc = 2 !: number of passive tracers 35 INTEGER, PUBLIC, PARAMETER :: jp_cfc_2d = 2 * jp_cfc !: additional 2d output arrays ('key_trc_diaadd') 31 36 INTEGER, PUBLIC, PARAMETER :: jp_cfc_3d = 0 !: additional 3d output arrays ('key_trc_diaadd') 32 37 INTEGER, PUBLIC, PARAMETER :: jp_cfc_trd = 0 !: number of sms trends for CFC 33 34 ! assign an index in trc arrays for each CFC prognostic variables35 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_lc + 1 !: CFC-1136 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_lc + 2 !: CFC-1238 ! Enable trace gases according to total number jp_cfc 39 LOGICAL, PUBLIC, PARAMETER :: lp_cfc11 = .false. !: use CFC11 40 LOGICAL, PUBLIC, PARAMETER :: lp_cfc12 = .true. !: use CFC12 41 LOGICAL, PUBLIC, PARAMETER :: lp_sf6 = .true. !: use SF6 37 42 #else 38 43 !!--------------------------------------------------------------------- … … 44 49 INTEGER, PUBLIC, PARAMETER :: jp_cfc_3d = 0 !: No CFC additional 3d output arrays 45 50 INTEGER, PUBLIC, PARAMETER :: jp_cfc_trd = 0 !: number of sms trends for CFC 51 LOGICAL, PUBLIC, PARAMETER :: lp_cfc11 = .false. !: use CFC11 52 LOGICAL, PUBLIC, PARAMETER :: lp_cfc12 = .false. !: use CFC12 53 LOGICAL, PUBLIC, PARAMETER :: lp_sf6 = .false. !: use SF6 46 54 #endif 47 55 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcini_cfc.F90
r3294 r8353 22 22 PUBLIC trc_ini_cfc ! called by trcini.F90 module 23 23 24 CHARACTER (len=34) :: clname = 'cfc1112.atm' ! ???25 26 24 INTEGER :: inum ! unit number 27 25 REAL(wp) :: ylats = -10. ! 10 degrees south … … 46 44 INTEGER :: iskip = 6 ! number of 1st descriptor lines 47 45 REAL(wp) :: zyy, zyd 46 CHARACTER(len = 20) :: cltra 48 47 !!---------------------------------------------------------------------- 49 48 … … 51 50 IF(lwp) WRITE(numout,*) ' trc_ini_cfc: initialisation of CFC chemical model' 52 51 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 53 54 55 IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 52 ! 53 IF(lwp) WRITE(numout,*) 'Read annual atmospheric concentrations from formatted file : ' // TRIM(clnamecfc) 56 54 57 CALL ctl_opn( inum, clname , 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )55 CALL ctl_opn( inum, clnamecfc, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 58 56 REWIND(inum) 59 57 … … 66 64 END DO 67 65 100 jpyear = jn - 1 - iskip 68 IF ( lwp) WRITE(numout,*) ' ', jpyear ,' years read'66 IF ( lwp) WRITE(numout,*) ' ---> ', jpyear ,' years read' 69 67 ! ! Allocate CFC arrays 70 68 71 ALLOCATE( p_cfc(jpyear,jphem, 2), STAT=ierr )69 ALLOCATE( p_cfc(jpyear,jphem,3), STAT=ierr ) 72 70 IF( ierr > 0 ) THEN 73 71 CALL ctl_stop( 'trc_ini_cfc: unable to allocate p_cfc array' ) ; RETURN … … 87 85 IF(lwp) THEN 88 86 WRITE(numout,*) 89 WRITE(numout,*) 'Initiali zation deqint ; No restart : qint equal zero '87 WRITE(numout,*) 'Initialisation of qint ; No restart : qint equal zero ' 90 88 ENDIF 91 89 qint_cfc(:,:,:) = 0._wp … … 105 103 jn = 31 106 104 DO 107 READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1 ,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2)105 READ(inum,*, IOSTAT=io) zyy, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3) 108 106 IF( io < 0 ) exit 109 107 jn = jn + 1 110 108 END DO 111 109 112 p_cfc(32,1:2,1) = 5.e-4 ! modify the values of the first years113 p_cfc(33,1:2,1) = 8.e-4114 p_cfc(34,1:2,1) = 1.e-6115 p_cfc(35,1:2,1) = 2.e-3116 p_cfc(36,1:2,1) = 4.e-3117 p_cfc(37,1:2,1) = 6.e-3118 p_cfc(38,1:2,1) = 8.e-3119 p_cfc(39,1:2,1) = 1.e-2120 121 110 IF(lwp) THEN ! Control print 122 111 WRITE(numout,*) 123 WRITE(numout,*) ' Year p11HN p11HS p12HN p12HS'112 WRITE(numout,*) ' Year c11NH c11SH c12NH c12SH SF6NH SF6SH' 124 113 DO jn = 30, jpyear 125 WRITE(numout, '( 1I4, 4F9.2)') jn, p_cfc(jn,1,1), p_cfc(jn,2,1), p_cfc(jn,1,2), p_cfc(jn,2,2)114 WRITE(numout, '( 1I4, 6F10.4)') jn, p_cfc(jn,1:2,1), p_cfc(jn,1:2,2), p_cfc(jn,1:2,3) 126 115 END DO 127 116 ENDIF -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcnam_cfc.F90
r4624 r8353 46 46 INTEGER :: numonc = -1 ! Logical unit for output namelist 47 47 INTEGER :: ios ! Local integer output status for namelist read 48 INTEGER :: jl, jn 48 INTEGER :: jl, jn, cnt 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, clnamecfc 52 52 NAMELIST/namcfcdia/ cfcdia2d ! additional diagnostics 53 53 !!---------------------------------------------------------------------- … … 66 66 IF(lwm) WRITE ( numonc, namcfcdate ) 67 67 68 jn = jp_cfc0 - 1 69 ! Variables setting 70 IF( lp_cfc11 ) THEN 71 jn = jn + 1 72 ctrcnm (jn) = 'CFC11' 73 ctrcln (jn) = 'Chlorofluoro carbon 11 Concentration' 74 ctrcun (jn) = 'umolC/L' 75 ln_trc_ini(jn) = .false. 76 ln_trc_wri(jn) = .true. 77 ENDIF 78 ! 79 IF( lp_cfc12 ) THEN 80 jn = jn + 1 81 ctrcnm (jn) = 'CFC12' 82 ctrcln (jn) = 'Chlorofluoro carbon 12 Concentration' 83 ctrcun (jn) = 'umolC/L' 84 ln_trc_ini(jn) = .false. 85 ln_trc_wri(jn) = .true. 86 ENDIF 87 ! 88 IF( lp_sf6 ) THEN 89 jn = jn + 1 90 ctrcnm (jn) = 'SF6' 91 ctrcln (jn) = 'Sulfur hexafluoride Concentration' 92 ctrcun (jn) = 'umol/L' 93 ln_trc_ini(jn) = .false. 94 ln_trc_wri(jn) = .true. 95 ENDIF 96 68 97 IF(lwp) THEN ! control print 69 WRITE(numout,*) 98 WRITE(numout,*) ' ' 99 WRITE(numout,*) ' CFCs' 100 WRITE(numout,*) ' ' 70 101 WRITE(numout,*) ' trc_nam: Read namdates, namelist for CFC chemical model' 71 102 WRITE(numout,*) ' ~~~~~~~' 72 103 WRITE(numout,*) ' initial calendar date (aammjj) for CFC ndate_beg = ', ndate_beg 73 104 WRITE(numout,*) ' restoring time constant (year) nyear_res = ', nyear_res 105 WRITE(numout,*) ' Atmospheric CFC concentrations file clnamecfc = ', TRIM(clnamecfc) 106 WRITE(numout,*) ' Compute dynamics for CFC-11 lp_cfc11 = ', lp_cfc11 107 WRITE(numout,*) ' Compute dynamics for CFC-12 lp_cfc12 = ', lp_cfc12 108 WRITE(numout,*) ' Compute dynamics for SF6 lp_sf6 = ', lp_sf6 74 109 ENDIF 75 110 nyear_beg = ndate_beg / 10000 76 111 IF(lwp) WRITE(numout,*) ' initial year (aa) nyear_beg = ', nyear_beg 112 ! 113 ! check consistency between CFC namelist and par_cfc setting 114 if ( jn - jp_cfc0 + 1 .ne. jp_cfc ) & 115 CALL ctl_stop( 'trc_nam_cfc: Number of selected CFCs is different from total CFC number (jp_cfc) specified in par_cfc.F90' ) 77 116 ! 78 117 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r4996 r8353 29 29 30 30 INTEGER , PUBLIC, PARAMETER :: jphem = 2 ! parameter for the 2 hemispheres 31 INTEGER , PUBLIC :: jpyear ! Number of years read in CFC1112 file31 INTEGER , PUBLIC :: jpyear ! Number of years read in input data file (in trcini_cfc) 32 32 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC 33 33 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year) 34 34 INTEGER , PUBLIC :: nyear_beg ! initial year (aa) 35 CHARACTER(len=200), PUBLIC :: clnamecfc ! Input filename of CFCs atm. concentrations 35 36 36 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: p_cfc ! partial hemispheric pressure for CFC … … 38 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qtr_cfc ! flux at surface 39 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qint_cfc ! cumulative flux 41 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: atm_cfc ! partial hemispheric pressure for used CFC 40 42 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: patm ! atmospheric function 41 43 42 REAL(wp), DIMENSION(4,2) :: soa ! coefficient for solubility of CFC [mol/l/atm] 43 REAL(wp), DIMENSION(3,2) :: sob ! " " 44 REAL(wp), DIMENSION(4,2) :: sca ! coefficients for schmidt number in degre Celcius 45 44 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: soa ! coefficient for solubility of CFC [mol/l/atm] 45 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sob ! " " 46 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: sca ! coefficients for schmidt number in degrees Celsius 46 47 ! ! coefficients for conversion 47 48 REAL(wp) :: xconv1 = 1.0 ! conversion from to … … 82 83 INTEGER :: im1, im2, ierr 83 84 REAL(wp) :: ztap, zdtap 84 REAL(wp) :: zt1, zt2, zt3, z v285 REAL(wp) :: zt1, zt2, zt3, zt4, zv2 85 86 REAL(wp) :: zsol ! solubility 86 87 REAL(wp) :: zsch ! schmidt number … … 120 121 ! time interpolation at time kt 121 122 DO jm = 1, jphem 122 zpatm(jm,jl) = ( p_cfc(iyear_beg, jm, jl) * FLOAT (im1) &123 & + p_cfc(iyear_end, jm, jl) * FLOAT (im2) ) / 12.123 zpatm(jm,jl) = ( atm_cfc(iyear_beg, jm, jl) * REAL(im1, wp) & 124 & + atm_cfc(iyear_end, jm, jl) * REAL(im2, wp) ) / 12. 124 125 END DO 125 126 … … 148 149 149 150 ! Computation of speed transfert 150 ! Schmidt number 151 ! Schmidt number revised in Wanninkhof (2014) 151 152 zt1 = tsn(ji,jj,1,jp_tem) 152 153 zt2 = zt1 * zt1 153 154 zt3 = zt1 * zt2 154 zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 155 156 ! speed transfert : formulae of wanninkhof 1992 155 zt4 = zt2 * zt2 156 zsch = sca(1,jl) + sca(2,jl) * zt1 + sca(3,jl) * zt2 + sca(4,jl) * zt3 + sca(5,jl) * zt4 157 158 ! speed transfert : formulae revised in Wanninkhof (2014) 157 159 zv2 = wndm(ji,jj) * wndm(ji,jj) 158 160 zsch = zsch / 660. 159 zak_cfc = ( 0.3 9* xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1)161 zak_cfc = ( 0.31 * xconv2 * zv2 / SQRT(zsch) ) * tmask(ji,jj,1) 160 162 161 163 ! Input function : speed *( conc. at equil - concen at surface ) … … 188 190 ! 189 191 IF( lk_iomput ) THEN 190 CALL iom_put( "qtrCFC11" , qtr_cfc (:,:,1) ) 191 CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) ) 192 DO jn = jp_cfc0, jp_cfc1 193 CALL iom_put( 'qtr_'//TRIM(ctrcnm(jn)) , qtr_cfc (:,:,jn) ) 194 CALL iom_put( 'qint_'//TRIM(ctrcnm(jn)), qint_cfc(:,:,jn) ) 195 ENDDO 192 196 ELSE 193 197 IF( ln_diatrc ) THEN 194 trc2d(:,:,jp_cfc0_2d ) = qtr_cfc (:,:,1) 195 trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1) 198 jl = 0 199 DO jn = jp_cfc0_2d, jp_cfc1_2d, 2 200 jl = jl + 1 201 trc2d(:,:,jn ) = qtr_cfc (:,:,jl) 202 trc2d(:,:,jn + 1) = qint_cfc(:,:,jl) 203 ENDDO 196 204 END IF 197 205 END IF … … 215 223 !!--------------------------------------------------------------------- 216 224 INTEGER :: jn 217 225 !!---------------------------------------------------------------------- 226 ! 227 jn = 0 218 228 ! coefficient for CFC11 219 229 !---------------------- 220 221 ! Solubility 222 soa(1,1) = -229.9261 223 soa(2,1) = 319.6552 224 soa(3,1) = 119.4471 225 soa(4,1) = -1.39165 226 227 sob(1,1) = -0.142382 228 sob(2,1) = 0.091459 229 sob(3,1) = -0.0157274 230 231 ! Schmidt number 232 sca(1,1) = 3501.8 233 sca(2,1) = -210.31 234 sca(3,1) = 6.1851 235 sca(4,1) = -0.07513 230 if ( lp_cfc11 ) then 231 jn = jn + 1 232 ! Solubility 233 soa(1,jn) = -229.9261 234 soa(2,jn) = 319.6552 235 soa(3,jn) = 119.4471 236 soa(4,jn) = -1.39165 237 238 sob(1,jn) = -0.142382 239 sob(2,jn) = 0.091459 240 sob(3,jn) = -0.0157274 241 242 ! Schmidt number 243 sca(1,jn) = 3579.2 244 sca(2,jn) = -222.63 245 sca(3,jn) = 7.5749 246 sca(4,jn) = -0.14595 247 sca(5,jn) = 0.0011874 248 249 ! atm. concentration 250 atm_cfc(:,:,jn) = p_cfc(:,:,1) 251 endif 236 252 237 253 ! coefficient for CFC12 238 254 !---------------------- 239 240 ! Solubility 241 soa(1,2) = -218.0971 242 soa(2,2) = 298.9702 243 soa(3,2) = 113.8049 244 soa(4,2) = -1.39165 245 246 sob(1,2) = -0.143566 247 sob(2,2) = 0.091015 248 sob(3,2) = -0.0153924 249 250 ! schmidt number 251 sca(1,2) = 3845.4 252 sca(2,2) = -228.95 253 sca(3,2) = 6.1908 254 sca(4,2) = -0.067430 255 if ( lp_cfc12 ) then 256 jn = jn + 1 257 ! Solubility 258 soa(1,jn) = -218.0971 259 soa(2,jn) = 298.9702 260 soa(3,jn) = 113.8049 261 soa(4,jn) = -1.39165 262 263 sob(1,jn) = -0.143566 264 sob(2,jn) = 0.091015 265 sob(3,jn) = -0.0153924 266 267 ! schmidt number 268 sca(1,jn) = 3828.1 269 sca(2,jn) = -249.86 270 sca(3,jn) = 8.7603 271 sca(4,jn) = -0.1716 272 sca(5,jn) = 0.001408 273 274 ! atm. concentration 275 atm_cfc(:,:,jn) = p_cfc(:,:,2) 276 endif 277 278 ! coefficient for SF6 279 !---------------------- 280 if ( lp_sf6 ) then 281 jn = jn + 1 282 ! Solubility 283 soa(1,jn) = -80.0343 284 soa(2,jn) = 117.232 285 soa(3,jn) = 29.5817 286 soa(4,jn) = 0.0 287 288 sob(1,jn) = 0.0335183 289 sob(2,jn) = -0.0373942 290 sob(3,jn) = 0.00774862 291 292 ! schmidt number 293 sca(1,jn) = 3177.5 294 sca(2,jn) = -200.57 295 sca(3,jn) = 6.8865 296 sca(4,jn) = -0.13335 297 sca(5,jn) = 0.0010877 298 299 ! atm. concentration 300 atm_cfc(:,:,jn) = p_cfc(:,:,3) 301 endif 255 302 256 303 IF( ln_rsttr ) THEN … … 272 319 !! *** ROUTINE trc_sms_cfc_alloc *** 273 320 !!---------------------------------------------------------------------- 274 ALLOCATE( xphem (jpi,jpj) , & 275 & qtr_cfc (jpi,jpj,jp_cfc) , & 276 & qint_cfc(jpi,jpj,jp_cfc) , STAT=trc_sms_cfc_alloc ) 321 ALLOCATE( xphem (jpi,jpj) , atm_cfc(jpyear,jphem,jp_cfc) , & 322 & qtr_cfc (jpi,jpj,jp_cfc) , qint_cfc(jpi,jpj,jp_cfc) , & 323 & soa(4,jp_cfc) , sob(3,jp_cfc) , sca(5,jp_cfc) , & 324 & STAT=trc_sms_cfc_alloc ) 277 325 ! 278 326 IF( trc_sms_cfc_alloc /= 0 ) CALL ctl_warn('trc_sms_cfc_alloc : failed to allocate arrays.') -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/par_my_trc.F90
r7494 r8353 15 15 USE par_pisces , ONLY : jp_pisces_trd !: number of biological diag in PISCES 16 16 17 USE par_cfc , ONLY : jp_cfc !: number of tracers in CFC18 USE par_cfc , ONLY : jp_cfc_2d !: number of tracers in CFC19 USE par_cfc , ONLY : jp_cfc_3d !: number of tracers in CFC20 USE par_cfc , ONLY : jp_cfc_trd !: number of tracers in CFC21 22 USE par_c14b , ONLY : jp_c14b !: number of tracers in C1423 USE par_c14b , ONLY : jp_c14b_2d !: number of tracers in C1424 USE par_c14b , ONLY : jp_c14b_3d !: number of tracers in C1425 USE par_c14b , ONLY : jp_c14b_trd !: number of tracers in C1426 27 USE par_age , ONLY : jp_age !: number of tracers in AGE28 USE par_age , ONLY : jp_age_2d !: number of tracers in AGE29 USE par_age , ONLY : jp_age_3d !: number of tracers in AGE30 USE par_age , ONLY : jp_age_trd !: number of tracers in AGE31 32 17 IMPLICIT NONE 33 18 34 INTEGER, PARAMETER :: jp_lm = jp_pisces + jp_cfc + jp_c14b + jp_age!:35 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d + jp_cfc_2d + jp_c14b_2d + jp_age_2d!:36 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d + jp_cfc_3d + jp_c14b_3d + jp_age_3d!:37 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd + jp_cfc_trd + jp_c14b_trd + jp_age_trd!:19 INTEGER, PARAMETER :: jp_lm = jp_pisces !: 20 INTEGER, PARAMETER :: jp_lm_2d = jp_pisces_2d !: 21 INTEGER, PARAMETER :: jp_lm_3d = jp_pisces_3d !: 22 INTEGER, PARAMETER :: jp_lm_trd = jp_pisces_trd !: 38 23 39 24 #if defined key_my_trc -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/MY_TRC/trcnam_my_trc.F90
r3680 r8353 36 36 !! 37 37 !!---------------------------------------------------------------------- 38 INTEGER :: jn 38 39 ! 39 40 IF(lwp) WRITE(numout,*) 40 41 IF(lwp) WRITE(numout,*) ' trc_nam_my_trc : read MY_TRC namelists' 41 42 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~' 43 ! 44 do jn = jp_myt0 , jp_myt1 45 ctrcnm (jn) = 'NONAME' 46 ctrcln (jn) = 'NO Long Name' 47 ctrcun (jn) = 'NOUNIT' 48 ln_trc_ini(jn) = .false. 49 ln_trc_wri(jn) = .true. 50 enddo 42 51 ! 43 END SUBROUTINE trc_nam_my_trc52 END SUBROUTINE trc_nam_my_trc 44 53 45 54 #else -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcice.F90
r5385 r8353 52 52 IF ( nn_ice_tr == 1 ) THEN 53 53 IF( lk_pisces ) CALL trc_ice_ini_pisces ! PISCES bio-model 54 IF( lk_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers 54 55 IF( lk_cfc ) CALL trc_ice_ini_cfc ! CFC tracers 55 56 IF( lk_c14b ) CALL trc_ice_ini_c14b ! C14 bomb tracer 56 IF( lk_my_trc ) CALL trc_ice_ini_my_trc ! MY_TRC tracers57 57 ENDIF 58 58 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r7494 r8353 97 97 98 98 IF( lk_pisces ) CALL trc_ini_pisces ! PISCES bio-model 99 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 99 100 IF( lk_cfc ) CALL trc_ini_cfc ! CFC tracers 100 101 IF( lk_c14b ) CALL trc_ini_c14b ! C14 bomb tracer 101 102 IF( lk_age ) CALL trc_ini_age ! AGE tracer 102 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers103 103 104 104 CALL trc_ice_ini ! Tracers in sea ice -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r7873 r8353 79 79 ENDIF 80 80 81 ! Call the ice module for tracers 82 ! ------------------------------- 83 CALL trc_nam_ice 84 85 ! namelist of SMS 86 ! --------------- 87 IF( lk_pisces ) THEN ; CALL trc_nam_pisces ! PISCES bio-model 88 ELSE ; IF(lwp) WRITE(numout,*) ' PISCES not used' 89 ENDIF 90 91 IF( lk_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers 92 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used' 93 ENDIF 94 95 IF( lk_cfc ) THEN ; CALL trc_nam_cfc ! CFC tracers 96 ELSE ; IF(lwp) WRITE(numout,*) ' CFC not used' 97 ENDIF 98 99 IF( lk_c14b ) THEN ; CALL trc_nam_c14b ! C14 bomb tracers 100 ELSE ; IF(lwp) WRITE(numout,*) ' C14 not used' 101 ENDIF 102 103 IF( lk_age ) THEN ; CALL trc_nam_age ! AGE tracer 104 ELSE ; IF(lwp) WRITE(numout,*) ' AGE not used' 105 ENDIF 106 81 107 IF(lwp) THEN ! control print 82 108 WRITE(numout,*) … … 119 145 ENDIF 120 146 121 122 ! Call the ice module for tracers123 ! -------------------------------124 CALL trc_nam_ice125 126 ! namelist of SMS127 ! ---------------128 IF( lk_pisces ) THEN ; CALL trc_nam_pisces ! PISCES bio-model129 ELSE ; IF(lwp) WRITE(numout,*) ' PISCES not used'130 ENDIF131 132 IF( lk_cfc ) THEN ; CALL trc_nam_cfc ! CFC tracers133 ELSE ; IF(lwp) WRITE(numout,*) ' CFC not used'134 ENDIF135 136 IF( lk_c14b ) THEN ; CALL trc_nam_c14b ! C14 bomb tracers137 ELSE ; IF(lwp) WRITE(numout,*) ' C14 not used'138 ENDIF139 140 IF( lk_age ) THEN ; CALL trc_nam_age ! AGE tracer141 ELSE ; IF(lwp) WRITE(numout,*) ' AGE not used'142 ENDIF143 144 IF( lk_my_trc ) THEN ; CALL trc_nam_my_trc ! MY_TRC tracers145 ELSE ; IF(lwp) WRITE(numout,*) ' MY_TRC not used'146 ENDIF147 147 ! 148 148 END SUBROUTINE trc_nam -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcsms.F90
r7494 r8353 50 50 ! 51 51 IF( lk_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES 52 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 52 53 IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC 53 54 IF( lk_c14b ) CALL trc_sms_c14b ( kt ) ! surface fluxes of C14 54 55 IF( lk_age ) CALL trc_sms_age ( kt ) ! AGE tracer 55 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers56 56 57 57 IF(ln_ctl) THEN ! print mean trends (used for debugging) -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcwri.F90
r7494 r8353 58 58 ! --------------------------------------- 59 59 IF( lk_pisces ) CALL trc_wri_pisces ! PISCES 60 IF( lk_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers 60 61 IF( lk_cfc ) CALL trc_wri_cfc ! surface fluxes of CFC 61 62 IF( lk_c14b ) CALL trc_wri_c14b ! surface fluxes of C14 62 63 IF( lk_age ) CALL trc_wri_age ! AGE tracer 63 IF( lk_my_trc ) CALL trc_wri_my_trc ! MY_TRC tracers64 64 ! 65 65 IF( nn_timing == 1 ) CALL timing_stop('trc_wri')
Note: See TracChangeset
for help on using the changeset viewer.