Changeset 2047 for trunk/NEMO/TOP_SRC/CFC
- Timestamp:
- 2010-08-13T09:58:59+02:00 (14 years ago)
- Location:
- trunk/NEMO/TOP_SRC/CFC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/CFC/par_cfc.F90
r1253 r2047 21 21 22 22 IMPLICIT NONE 23 PUBLIC24 23 25 INTEGER, P UBLIC, PARAMETER :: jp_lp= jp_lobster + jp_pisces !: cumulative number of passive tracers26 INTEGER, P UBLIC, PARAMETER :: jp_lp_2d = jp_lobster_2d + jp_pisces_2d !:27 INTEGER, P UBLIC, PARAMETER :: jp_lp_3d = jp_lobster_3d + jp_pisces_3d !:28 INTEGER, P UBLIC, PARAMETER :: jp_lp_trd = jp_lobster_trd + jp_pisces_trd !:24 INTEGER, PARAMETER :: jp_lc = jp_lobster + jp_pisces !: cumulative number of passive tracers 25 INTEGER, PARAMETER :: jp_lc_2d = jp_lobster_2d + jp_pisces_2d !: 26 INTEGER, PARAMETER :: jp_lc_3d = jp_lobster_3d + jp_pisces_3d !: 27 INTEGER, PARAMETER :: jp_lc_trd = jp_lobster_trd + jp_pisces_trd !: 29 28 30 29 #if defined key_cfc … … 39 38 40 39 ! assign an index in trc arrays for each CFC prognostic variables 41 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_l p+ 1 !: CFC-1142 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_l p+ 2 !: CFC-1240 INTEGER, PUBLIC, PARAMETER :: jpc11 = jp_lc + 1 !: CFC-11 41 INTEGER, PUBLIC, PARAMETER :: jpc12 = jp_lc + 2 !: CFC-12 43 42 #else 44 43 !!--------------------------------------------------------------------- … … 53 52 54 53 ! Starting/ending CFC do-loop indices (N.B. no CFC : jp_cfc0 > jp_cfc1 the do-loop are never done) 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_l p+ 1 !: First index of CFC tracers56 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_l p+ jp_cfc !: Last index of CFC tracers57 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_l p_2d + 1 !: First index of CFC tracers58 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_l p_2d + jp_cfc_2d !: Last index of CFC tracers59 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_l p_3d + 1 !: First index of CFC tracers60 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_l p_3d + jp_cfc_3d !: Last index of CFC tracers61 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_l p_trd + 1 !: First index of CFC tracers62 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_l p_trd + jp_cfc_trd !: Last index of CFC tracers54 INTEGER, PUBLIC, PARAMETER :: jp_cfc0 = jp_lc + 1 !: First index of CFC tracers 55 INTEGER, PUBLIC, PARAMETER :: jp_cfc1 = jp_lc + jp_cfc !: Last index of CFC tracers 56 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_2d = jp_lc_2d + 1 !: First index of CFC tracers 57 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_2d = jp_lc_2d + jp_cfc_2d !: Last index of CFC tracers 58 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_3d = jp_lc_3d + 1 !: First index of CFC tracers 59 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_3d = jp_lc_3d + jp_cfc_3d !: Last index of CFC tracers 60 INTEGER, PUBLIC, PARAMETER :: jp_cfc0_trd = jp_lc_trd + 1 !: First index of CFC tracers 61 INTEGER, PUBLIC, PARAMETER :: jp_cfc1_trd = jp_lc_trd + jp_cfc_trd !: Last index of CFC tracers 63 62 64 63 !!====================================================================== -
trunk/NEMO/TOP_SRC/CFC/trcctl_cfc.F90
r1801 r2047 53 53 ! Check tracer names 54 54 ! ------------------ 55 IF ( ctrcnm(jpc11) /= 'CFC11' .OR. ctrcnm(jpc12) /= 'CFC12' ) THEN 56 ctrcnm(jpc11) = 'CFC11' 57 ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 58 ctrcnm(jpc12) = 'CFC12' 59 ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 55 ctrcnm(jpc11) = 'CFC11' 56 ctrcnl(jpc11) = 'Chlorofuorocarbone 11 concentration' 57 58 IF ( jp_cfc == 2 ) THEN 59 ctrcnm(jpc12) = 'CFC12' 60 ctrcnl(jpc12) = 'Chlorofuorocarbone 12 concentration' 60 61 ENDIF 61 62 62 63 IF(lwp) THEN 63 WRITE (numout,*) ' ===>>>> : w a r n i n g <<<<===' 64 WRITE (numout,*) ' ===>>>> : w a r n i n g ' 65 WRITE (numout,*) ' ======= ============= ' 64 66 WRITE (numout,*) ' we force tracer names' 65 67 DO jl = 1, jp_cfc … … 68 70 END DO 69 71 WRITE(numout,*) ' ' 70 ENDIF 72 ENDIF 71 73 72 74 -
trunk/NEMO/TOP_SRC/CFC/trcini_cfc.F90
r1581 r2047 22 22 23 23 PUBLIC trc_ini_cfc ! called by trcini.F90 module 24 25 CHARACTER (len=34) :: clname = 'cfc1112.atm' ! ??? 24 26 25 27 INTEGER :: inum ! unit number … … 55 57 ! --------------------------------------- 56 58 xphem (:,:) = 0.e0 57 DO jl = 1, jp_cfc 58 jn = jp_cfc0 + jl - 1 59 DO jm = 1, jphem 60 DO js = 1, jpyear 61 p_cfc(js,jm,jn) = 0.0 62 END DO 63 END DO 64 END DO 65 59 p_cfc(:,:,:) = 0.e0 66 60 67 61 ! Initialization of qint in case of no restart … … 73 67 WRITE(numout,*) 'Initialization de qint ; No restart : qint equal zero ' 74 68 ENDIF 69 qint_cfc(:,:,:) = 0.e0 75 70 DO jl = 1, jp_cfc 76 71 jn = jp_cfc0 + jl - 1 77 72 trn (:,:,:,jn) = 0.e0 78 qint_cfc(:,: ,jn) = 0.e079 73 END DO 80 74 ENDIF … … 88 82 IF(lwp) WRITE(numout,*) 'read of formatted file cfc1112atm' 89 83 90 CALL ctl_opn( inum, 'cfc1112.atm', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )84 CALL ctl_opn( inum, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 91 85 REWIND(inum) 92 86 … … 95 89 END DO 96 90 97 DO jn = 31, 98 ! Read file 98 READ(inum,*) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 99 WRITE(numout,'(f7.2, 4f8.2)' ) & 91 ! file starts in 1931 do jn represent the year in the century.jhh 92 ! Read file till the end 93 jn = 31 94 DO WHILE ( 1 /= 2 ) 95 READ(inum,*,END=100) zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 96 IF ( lwp) THEN 97 WRITE(numout,'(f7.2, 4f8.2)' ) & 100 98 & zyy, p_cfc(jn,1,1), p_cfc(jn,1,2), p_cfc(jn,2,1), p_cfc(jn,2,2) 99 ENDIF 100 jn = jn + 1 101 101 END DO 102 100 npyear = jn - 1 103 IF ( lwp) WRITE(numout,*) ' ', npyear ,' years read' 102 104 103 105 p_cfc(32,1:2,1) = 5.e-4 ! modify the values of the first years -
trunk/NEMO/TOP_SRC/CFC/trcsms_cfc.F90
r1459 r2047 27 27 PUBLIC trc_sms_cfc ! called in ??? 28 28 29 INTEGER , PUBLIC, PARAMETER :: jpyear = 1 00 ! temporal parameter29 INTEGER , PUBLIC, PARAMETER :: jpyear = 150 ! temporal parameter 30 30 INTEGER , PUBLIC, PARAMETER :: jphem = 2 ! parameter for the 2 hemispheres 31 31 INTEGER , PUBLIC :: ndate_beg ! initial calendar date (aammjj) for CFC 32 32 INTEGER , PUBLIC :: nyear_res ! restoring time constant (year) 33 33 INTEGER , PUBLIC :: nyear_beg ! initial year (aa) 34 INTEGER , PUBLIC :: npyear ! Number of years read in CFC1112 file 34 35 35 36 REAL(wp), PUBLIC, DIMENSION(jpyear,jphem, jp_cfc) :: p_cfc ! partial hemispheric pressure for CFC … … 96 97 ! Temporal interpolation 97 98 ! ---------------------- 98 iyear_beg = nyear + ( nyear_res - 1900 - nyear_beg )99 iyear_beg = nyear - 1900 99 100 IF ( nmonth <= 6 ) THEN 100 iyear_beg = iyear_beg - 2 + nyear_beg101 iyear_beg = iyear_beg - 1 101 102 im1 = 6 - nmonth + 1 102 103 im2 = 6 + nmonth - 1 103 104 ELSE 104 iyear_beg = iyear_beg - 1 + nyear_beg105 105 im1 = 12 - nmonth + 7 106 106 im2 = nmonth - 7
Note: See TracChangeset
for help on using the changeset viewer.