Changeset 12340 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/C14
- Timestamp:
- 2020-01-27T15:31:53+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/C14
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/C14/trcatm_c14.F90
r10069 r12340 21 21 PUBLIC trc_atm_c14_ini ! called in trcini_c14.F90 22 22 ! 23 !! * Substitutions 24 # include "do_loop_substitute.h90" 23 25 !!---------------------------------------------------------------------- 24 26 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 118 120 IF( ierr3 /= 0 ) CALL ctl_stop( 'STOP', 'trc_atm_c14_ini: unable to allocate fareaz' ) 119 121 ! 120 DO jj = 1 , jpj ! from C14b package 121 DO ji = 1 , jpi 122 IF( gphit(ji,jj) >= yn40 ) THEN 123 fareaz(ji,jj,1) = 0. 124 fareaz(ji,jj,2) = 0. 125 fareaz(ji,jj,3) = 1. 126 ELSE IF( gphit(ji,jj ) <= ys40) THEN 127 fareaz(ji,jj,1) = 1. 128 fareaz(ji,jj,2) = 0. 129 fareaz(ji,jj,3) = 0. 130 ELSE IF( gphit(ji,jj) >= yn20 ) THEN 131 fareaz(ji,jj,1) = 0. 132 fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / yn40 ) 133 fareaz(ji,jj,3) = 2. * gphit(ji,jj) / yn40 - 1. 134 ELSE IF( gphit(ji,jj) <= ys20 ) THEN 135 fareaz(ji,jj,1) = 2. * gphit(ji,jj) / ys40 - 1. 136 fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / ys40 ) 137 fareaz(ji,jj,3) = 0. 138 ELSE 139 fareaz(ji,jj,1) = 0. 140 fareaz(ji,jj,2) = 1. 141 fareaz(ji,jj,3) = 0. 142 ENDIF 143 END DO 144 END DO 122 DO_2D_11_11 123 IF( gphit(ji,jj) >= yn40 ) THEN 124 fareaz(ji,jj,1) = 0. 125 fareaz(ji,jj,2) = 0. 126 fareaz(ji,jj,3) = 1. 127 ELSE IF( gphit(ji,jj ) <= ys40) THEN 128 fareaz(ji,jj,1) = 1. 129 fareaz(ji,jj,2) = 0. 130 fareaz(ji,jj,3) = 0. 131 ELSE IF( gphit(ji,jj) >= yn20 ) THEN 132 fareaz(ji,jj,1) = 0. 133 fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / yn40 ) 134 fareaz(ji,jj,3) = 2. * gphit(ji,jj) / yn40 - 1. 135 ELSE IF( gphit(ji,jj) <= ys20 ) THEN 136 fareaz(ji,jj,1) = 2. * gphit(ji,jj) / ys40 - 1. 137 fareaz(ji,jj,2) = 2. * ( 1. - gphit(ji,jj) / ys40 ) 138 fareaz(ji,jj,3) = 0. 139 ELSE 140 fareaz(ji,jj,1) = 0. 141 fareaz(ji,jj,2) = 1. 142 fareaz(ji,jj,3) = 0. 143 ENDIF 144 END_2D 145 145 ! 146 146 ENDIF -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/C14/trcsms_c14.F90
r11949 r12340 26 26 PUBLIC trc_sms_c14 ! called in trcsms.F90 27 27 28 !! * Substitutions 29 # include "do_loop_substitute.h90" 28 30 !!---------------------------------------------------------------------- 29 31 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 78 80 ! ------------------------------------------------------------------- 79 81 80 DO jj = 1, jpj 81 DO ji = 1, jpi 82 IF( tmask(ji,jj,1) > 0. ) THEN 83 ! 84 zt = MIN( 40. , ts(ji,jj,1,jp_tem,Kmm) ) 85 ! 86 ! Computation of solubility zsol in [mol/(L * atm)] 87 ! after Wanninkhof (2014) referencing Weiss (1974) 88 ztp = ( zt + 273.16 ) * 0.01 89 zsk = 0.027766 + ztp * ( -0.025888 + 0.0050578 * ztp ) ! [mol/(L * atm)] 90 zsol = EXP( -58.0931 + 90.5069 / ztp + 22.2940 * LOG( ztp ) + zsk * ts(ji,jj,1,jp_sal,Kmm) ) 91 ! convert solubilities [mol/(L * atm)] -> [mol/(m^3 * ppm)] 92 zsol = zsol * 1.e-03 82 DO_2D_11_11 83 IF( tmask(ji,jj,1) > 0. ) THEN 84 ! 85 zt = MIN( 40. , ts(ji,jj,1,jp_tem,Kmm) ) 86 ! 87 ! Computation of solubility zsol in [mol/(L * atm)] 88 ! after Wanninkhof (2014) referencing Weiss (1974) 89 ztp = ( zt + 273.16 ) * 0.01 90 zsk = 0.027766 + ztp * ( -0.025888 + 0.0050578 * ztp ) ! [mol/(L * atm)] 91 zsol = EXP( -58.0931 + 90.5069 / ztp + 22.2940 * LOG( ztp ) + zsk * ts(ji,jj,1,jp_sal,Kmm) ) 92 ! convert solubilities [mol/(L * atm)] -> [mol/(m^3 * ppm)] 93 zsol = zsol * 1.e-03 93 94 94 95 96 95 ! Computes the Schmidt number of CO2 in seawater 96 ! Wanninkhof-2014 97 zsch = 2116.8 + zt * ( -136.25 + zt * (4.7353 + zt * (-0.092307 + 0.0007555 * zt ) ) ) 97 98 98 99 100 101 102 103 104 99 ! Wanninkhof Piston velocity: zpv in units [m/s] 100 zv2 = xkwind * (wndm(ji,jj) * wndm(ji,jj)) ! wind speed module at T points 101 ! chemical enhancement (Wanninkhof & Knox, 1996) 102 IF( ln_chemh ) zv2 = zv2 + 2.5 * ( 0.5246 + zt * (0.016256 + 0.00049946 * zt ) ) 103 zv2 = zv2/360000._wp ! conversion cm/h -> m/s 104 ! 105 zpv = ( zv2 * SQRT( 660./ zsch ) ) * ( 1. - fr_i(ji,jj) ) * tmask(ji,jj,1) 105 106 106 ! CO2 piston velocity (m/s) 107 exch_co2(ji,jj)= zpv 108 ! CO2 invasion rate (mol/ppm/m2/s) = 1st part of 14C/C exchange velocity 109 exch_c14(ji,jj)= zpv * zsol 110 ELSE 111 exch_co2(ji,jj) = 0._wp 112 exch_c14(ji,jj) = 0._wp 113 ENDIF 114 END DO 115 END DO 107 ! CO2 piston velocity (m/s) 108 exch_co2(ji,jj)= zpv 109 ! CO2 invasion rate (mol/ppm/m2/s) = 1st part of 14C/C exchange velocity 110 exch_c14(ji,jj)= zpv * zsol 111 ELSE 112 exch_co2(ji,jj) = 0._wp 113 exch_c14(ji,jj) = 0._wp 114 ENDIF 115 END_2D 116 116 117 117 ! Exchange velocity for 14C/C ratio (m/s) … … 127 127 ! 128 128 ! Add the surface flux to the trend of jp_c14 129 DO jj = 1, jpj 130 DO ji = 1, jpi 131 tr(ji,jj,1,jp_c14,Krhs) = tr(ji,jj,1,jp_c14,Krhs) + qtr_c14(ji,jj) / e3t(ji,jj,1,Kmm) 132 END DO 133 END DO 129 DO_2D_11_11 130 tr(ji,jj,1,jp_c14,Krhs) = tr(ji,jj,1,jp_c14,Krhs) + qtr_c14(ji,jj) / e3t(ji,jj,1,Kmm) 131 END_2D 134 132 ! 135 133 ! Computation of decay effects on jp_c14 136 DO jk = 1, jpk 137 DO jj = 1, jpj 138 DO ji = 1, jpi 139 ! 140 tr(ji,jj,jk,jp_c14,Krhs) = tr(ji,jj,jk,jp_c14,Krhs) - rlam14 * tr(ji,jj,jk,jp_c14,Kbb) * tmask(ji,jj,jk) 141 ! 142 END DO 143 END DO 144 END DO 134 DO_3D_11_11( 1, jpk ) 135 ! 136 tr(ji,jj,jk,jp_c14,Krhs) = tr(ji,jj,jk,jp_c14,Krhs) - rlam14 * tr(ji,jj,jk,jp_c14,Kbb) * tmask(ji,jj,jk) 137 ! 138 END_3D 145 139 ! 146 140 IF( lrst_trc ) THEN -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/C14/trcwri_c14.F90
r11949 r12340 23 23 ! Standard ratio: 1.176E-12 ; Avogadro's nbr = 6.022E+23 at/mol ; bomb C14 traditionally reported as 1.E+26 atoms 24 24 REAL(wp), PARAMETER :: atomc14 = 1.176 * 6.022E-15 ! conversion factor 25 !! * Substitutions 26 # include "do_loop_substitute.h90" 25 27 26 28 … … 58 60 zz3d(:,:,:) = 0._wp 59 61 ! 60 DO jk = 1, jpkm1 61 DO jj = 1, jpj 62 DO ji = 1, jpi 63 IF( tmask(ji,jj,jk) > 0._wp) THEN 64 z3d (ji,jj,jk) = tr(ji,jj,jk,jp_c14,Kmm) 65 zz3d(ji,jj,jk) = LOG( z3d(ji,jj,jk) ) 66 ENDIF 67 ENDDO 68 ENDDO 69 ENDDO 62 DO_3D_11_11( 1, jpkm1 ) 63 IF( tmask(ji,jj,jk) > 0._wp) THEN 64 z3d (ji,jj,jk) = tr(ji,jj,jk,jp_c14,Kmm) 65 zz3d(ji,jj,jk) = LOG( z3d(ji,jj,jk) ) 66 ENDIF 67 END_3D 70 68 zres(:,:) = z3d(:,:,1) 71 69 … … 73 71 z2d(:,:) =0._wp 74 72 jk = 1 75 DO jj = 1, jpj 76 DO ji = 1, jpi 77 ztemp = zres(ji,jj) / c14sbc(ji,jj) 78 IF( ztemp > 0._wp .AND. tmask(ji,jj,jk) > 0._wp ) z2d(ji,jj) = LOG( ztemp ) 79 ENDDO 80 ENDDO 73 DO_2D_11_11 74 ztemp = zres(ji,jj) / c14sbc(ji,jj) 75 IF( ztemp > 0._wp .AND. tmask(ji,jj,jk) > 0._wp ) z2d(ji,jj) = LOG( ztemp ) 76 END_2D 81 77 ! 82 78 z3d(:,:,:) = 1.d03 * ( z3d(:,:,:) - 1._wp ) … … 131 127 #endif 132 128 129 !! * Substitutions 130 # include "do_loop_substitute.h90" 133 131 !!---------------------------------------------------------------------- 134 132 !! NEMO/TOP 4.0 , NEMO Consortium (2018)
Note: See TracChangeset
for help on using the changeset viewer.