- Timestamp:
- 2011-08-09T10:29:53+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r2715 r2819 28 28 PUBLIC trc_sms_cfc_alloc ! called in trcini_cfc.F90 29 29 30 INTEGER , PUBLIC, PARAMETER :: jpyear = 150 ! temporal parameter31 30 INTEGER , PUBLIC, PARAMETER :: jphem = 2 ! parameter for the 2 hemispheres 32 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC33 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year)34 INTEGER , PUBLIC :: nyear_beg ! initial year (aa)35 INTEGER , PUBLIC :: npyear ! Number of years read in CFC1112 file31 INTEGER , PUBLIC :: jpyear ! Number of years read in CFC1112 file 32 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC 33 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year) 34 INTEGER , PUBLIC :: nyear_beg ! initial year (aa) 36 35 37 REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, 2 ):: p_cfc ! partial hemispheric pressure for CFC36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: p_cfc ! partial hemispheric pressure for CFC 38 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: xphem ! spatial interpolation factor for patm 39 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qtr_cfc ! flux at surface 40 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: qint_cfc ! cumulative flux 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: patm ! atmospheric function 41 41 42 42 REAL(wp), DIMENSION(4,2) :: soa ! coefficient for solubility of CFC [mol/l/atm] … … 75 75 !! CFC concentration in pico-mol/m3 76 76 !!---------------------------------------------------------------------- 77 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released78 USE wrk_nemo, ONLY: ztrcfc => wrk_3d_1 ! use for CFC sms trend79 77 ! 80 78 INTEGER, INTENT(in) :: kt ! ocean time-step index … … 82 80 INTEGER :: ji, jj, jn, jl, jm, js 83 81 INTEGER :: iyear_beg, iyear_end 84 INTEGER :: im1, im2 82 INTEGER :: im1, im2, ierr 85 83 REAL(wp) :: ztap, zdtap 86 84 REAL(wp) :: zt1, zt2, zt3, zv2 … … 90 88 REAL(wp) :: zca_cfc ! concentration at equilibrium 91 89 REAL(wp) :: zak_cfc ! transfert coefficients 92 REAL(wp), DIMENSION(jphem,jp_cfc) :: zpatm ! atmospheric function 93 !!---------------------------------------------------------------------- 94 ! 95 IF( wrk_in_use(3, 1) ) THEN 96 CALL ctl_stop('trc_sms_cfc: requested workspace array unavailable') ; RETURN 90 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zpatm ! atmospheric function 91 !!---------------------------------------------------------------------- 92 ! 93 ALLOCATE( zpatm(jphem,jp_cfc), STAT=ierr ) 94 IF( ierr > 0 ) THEN 95 CALL ctl_stop( 'trc_sms_cfc: unable to allocate zpatm array' ) ; RETURN 97 96 ENDIF 98 97 … … 158 157 159 158 ! Input function : speed *( conc. at equil - concen at surface ) 160 ! trn in pico-mol/l idem qtr; ak in en m/ s159 ! trn in pico-mol/l idem qtr; ak in en m/a 161 160 qtr_cfc(ji,jj,jl) = -zak_cfc * ( trb(ji,jj,1,jn) - zca_cfc ) & 162 161 #if defined key_degrad … … 164 163 #endif 165 164 & * tmask(ji,jj,1) * ( 1. - fr_i(ji,jj) ) 166 167 165 ! Add the surface flux to the trend 168 166 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + qtr_cfc(ji,jj,jl) / fse3t(ji,jj,1) … … 176 174 END DO ! end CFC loop ! 177 175 ! !----------------! 178 179 #if defined key_diatrc 180 ! Save diagnostics , just for CFC11181 # if defined key_iomput 182 CALL iom_put( "qtrCFC11" , qtr_cfc(:,:,1) )183 CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) )184 # else 185 trc2d(:,:,jp_cfc0_2d ) = qtr_cfc(:,:,1)186 trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1)187 # endif 188 #endif 189 176 IF( ln_diatrc ) THEN 177 ! 178 IF( lk_iomput ) THEN 179 CALL iom_put( "qtrCFC11" , qtr_cfc (:,:,1) ) 180 CALL iom_put( "qintCFC11" , qint_cfc(:,:,1) ) 181 ELSE 182 trc2d(:,:,jp_cfc0_2d ) = qtr_cfc (:,:,1) 183 trc2d(:,:,jp_cfc0_2d + 1) = qint_cfc(:,:,1) 184 END IF 185 ! 186 END IF 187 190 188 IF( l_trdtrc ) THEN 191 189 DO jn = jp_cfc0, jp_cfc1 192 ztrcfc(:,:,:) = tra(:,:,:,jn) 193 CALL trd_mod_trc( ztrcfc, jn, jptra_trd_sms, kt ) ! save trends 190 CALL trd_mod_trc( tra(:,:,:,jn), jn, jptra_trd_sms, kt ) ! save trends 194 191 END DO 195 192 END IF 196 !197 IF( wrk_not_released(3, 1) ) CALL ctl_stop('trc_sms_cfc: failed to release workspace array')198 193 ! 199 194 END SUBROUTINE trc_sms_cfc
Note: See TracChangeset
for help on using the changeset viewer.