Changeset 1133
- Timestamp:
- 2008-06-24T17:41:07+02:00 (16 years ago)
- Location:
- trunk/NEMO/OPA_SRC/SBC
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r1051 r1133 121 121 INTEGER, INTENT( in ) :: kt ! ocean time step 122 122 !! 123 INTEGER :: jf, ifpr, jfpr! dummy indices123 INTEGER :: ifpr, jfpr ! dummy indices 124 124 INTEGER :: ierror ! return error code 125 125 !! … … 140 140 141 141 ! (NB: frequency positive => hours, negative => months) 142 ! ! file ! frequency ! variable ! time intep ! clim ! starting!143 ! ! name ! (hours) ! name ! (T/F) ! ( 0/1) ! record!144 sn_utau = FLD_N( 'utau' , 24. , 'utau' , .true. , 0 , 0)145 sn_vtau = FLD_N( 'vtau' , 24. , 'vtau' , .true. , 0 , 0)146 sn_wndm = FLD_N( 'mwnd10m' , 24. , 'm_10' , .true. , 0 , 0)147 sn_tair = FLD_N( 'tair10m' , 24. , 't_10' , . FALSE. , 0 , 0)148 sn_humi = FLD_N( 'humi10m' , 24. , 'q_10' , . FALSE. , 0 , 0)149 sn_ccov = FLD_N( 'ccover' , -12. , 'cloud' , .TRUE. , 0 , 0)150 sn_prec = FLD_N( 'precip' , -12. , 'precip' , .TRUE. , 0 , 0)142 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 143 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 144 sn_utau = FLD_N( 'utau' , 24. , 'utau' , .true. , .false. , 'yearly' ) 145 sn_vtau = FLD_N( 'vtau' , 24. , 'vtau' , .true. , .false. , 'yearly' ) 146 sn_wndm = FLD_N( 'mwnd10m' , 24. , 'm_10' , .true. , .false. , 'yearly' ) 147 sn_tair = FLD_N( 'tair10m' , 24. , 't_10' , .false. , .false. , 'yearly' ) 148 sn_humi = FLD_N( 'humi10m' , 24. , 'q_10' , .false. , .false. , 'yearly' ) 149 sn_ccov = FLD_N( 'ccover' , -1. , 'cloud' , .true. , .false. , 'yearly' ) 150 sn_prec = FLD_N( 'precip' , -1. , 'precip' , .true. , .false. , ' yearly' ) 151 151 152 152 REWIND( numnam ) ! ... read in namlist namsbc_clio … … 163 163 CALL ctl_stop( 'sbc_blk_clio: unable to allocate sf structure' ) ; RETURN 164 164 ENDIF 165 ! 166 DO jf = 1, jpfld 167 WRITE(sf(jf)%clrootname,'(a,a)' ) TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 168 sf(jf)%freqh = slf_i(jf)%freqh 169 sf(jf)%clvar = slf_i(jf)%clvar 170 sf(jf)%ln_tint = slf_i(jf)%ln_tint 171 sf(jf)%nclim = slf_i(jf)%nclim 172 sf(jf)%nstrec = slf_i(jf)%nstrec 173 END DO 174 175 IF(lwp) THEN ! control print 176 WRITE(numout,*) 177 WRITE(numout,*) 'sbc_blk_clio : flux formulattion for ocean surface boundary condition' 178 WRITE(numout,*) '~~~~~~~~~~~~ ' 179 WRITE(numout,*) ' namsbc_clio Namelist' 180 WRITE(numout,*) ' list of files and frequency (>0: in hours ; <0 in months)' 181 DO jf = 1, jpfld 182 WRITE(numout,*) ' file root name: ' , TRIM( sf(jf)%clrootname ), & 183 & ' variable name: ' , TRIM( sf(jf)%clvar ) 184 WRITE(numout,*) ' frequency: ' , sf(jf)%freqh , & 185 & ' time interp: ' , sf(jf)%ln_tint , & 186 & ' climatology: ' , sf(jf)%nclim , & 187 & ' starting record: ', sf(jf)%nstrec 188 END DO 189 ENDIF 165 166 ! fill sf with slf_i and control print 167 CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_clio', 'flux formulation for ocean surface boundary condition', 'namsbc_clio' ) 190 168 ! 191 169 ENDIF -
trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r1037 r1133 107 107 INTEGER, INTENT( in ) :: kt ! ocean time step 108 108 !! 109 INTEGER :: jf ! dummy indices110 109 INTEGER :: ierror ! return error code 111 110 !! … … 125 124 126 125 ! (NB: frequency positive => hours, negative => months) 127 ! ! file ! frequency ! variable ! time intep ! clim ! starting!128 ! ! name ! (hours) ! name ! (T/F) ! ( 0/1) ! record!129 sn_wndi = FLD_N( 'uwnd10m' , 24. , 'u_10' , . FALSE. , 0 , 0)130 sn_wndj = FLD_N( 'vwnd10m' , 24. , 'v_10' , . FALSE. , 0 , 0)131 sn_qsr = FLD_N( 'qsw' , 24. , 'qsw' , . FALSE. , 0 , 0)132 sn_qlw = FLD_N( 'qlw' , 24. , 'qlw' , . FALSE. , 0 , 0)133 sn_tair = FLD_N( 'tair10m' , 24. , 't_10' , . FALSE. , 0 , 0)134 sn_humi = FLD_N( 'humi10m' , 24. , 'q_10' , . FALSE. , 0 , 0)135 sn_prec = FLD_N( 'precip' , -12. , 'precip' , .TRUE. , 0 , 0)136 sn_snow = FLD_N( 'snow' , -12. , 'snow' , .TRUE. , 0 , 0)126 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 127 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 128 sn_wndi = FLD_N( 'uwnd10m' , 24. , 'u_10' , .false. , .false. , 'yearly' ) 129 sn_wndj = FLD_N( 'vwnd10m' , 24. , 'v_10' , .false. , .false. , 'yearly' ) 130 sn_qsr = FLD_N( 'qsw' , 24. , 'qsw' , .false. , .false. , 'yearly' ) 131 sn_qlw = FLD_N( 'qlw' , 24. , 'qlw' , .false. , .false. , 'yearly' ) 132 sn_tair = FLD_N( 'tair10m' , 24. , 't_10' , .false. , .false. , 'yearly' ) 133 sn_humi = FLD_N( 'humi10m' , 24. , 'q_10' , .false. , .false. , 'yearly' ) 134 sn_prec = FLD_N( 'precip' , -1. , 'precip' , .true. , .false. , 'yearly' ) 135 sn_snow = FLD_N( 'snow' , -1. , 'snow' , .true. , .false. , 'yearly' ) 137 136 138 137 REWIND( numnam ) ! ... read in namlist namsbc_core … … 151 150 ENDIF 152 151 153 DO jf = 1, jpfld 154 WRITE(sf(jf)%clrootname,'(a,a)' ) TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 155 sf(jf)%freqh = slf_i(jf)%freqh 156 sf(jf)%clvar = slf_i(jf)%clvar 157 sf(jf)%ln_tint = slf_i(jf)%ln_tint 158 sf(jf)%nclim = slf_i(jf)%nclim 159 sf(jf)%nstrec = slf_i(jf)%nstrec 160 END DO 161 162 IF(lwp) THEN ! control print 163 WRITE(numout,*) 164 WRITE(numout,*) 'sbc_blk_core : flux formulattion for ocean surface boundary condition' 165 WRITE(numout,*) '~~~~~~~~~~~~ ' 166 WRITE(numout,*) ' namsbc_core Namelist' 167 WRITE(numout,*) ' ln_2m = ', ln_2m 168 WRITE(numout,*) ' alpha_precip = ', alpha_precip 169 WRITE(numout,*) ' list of files and frequency (>0: in hours ; <0 in months)' 170 DO jf = 1, jpfld 171 WRITE(numout,*) ' file root name: ' , TRIM( sf(jf)%clrootname ), & 172 & ' variable name: ' , TRIM( sf(jf)%clvar ) 173 WRITE(numout,*) ' frequency: ' , sf(jf)%freqh , & 174 & ' time interp: ' , sf(jf)%ln_tint , & 175 & ' climatology: ' , sf(jf)%nclim , & 176 & ' starting record: ', sf(jf)%nstrec 177 END DO 178 IF( ln_2m ) THEN 179 WRITE(numout,*) ' Calling TURB_CORE_2Z for bulk transfert coefficients' 180 ELSE 181 WRITE(numout,*) ' Calling TURB_CORE_1Z for bulk transfert coefficients' 182 ENDIF 183 WRITE(numout,*) 184 ! 185 ENDIF 152 ! fill sf with slf_i and control print 153 CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_core', 'flux formulattion for ocean surface boundary condition', 'namsbc_core' ) 186 154 ! 187 155 ENDIF -
trunk/NEMO/OPA_SRC/SBC/sbcflx.F90
r1037 r1133 106 106 NAMELIST/namsbc_flx/ cn_dir, sn_utau, sn_vtau, sn_qtot, sn_qsr, sn_emp 107 107 !!--------------------------------------------------------------------- 108 INTEGER , PARAMETER :: jp_utau = 1 ! index of wind stress (i-component) file109 INTEGER , PARAMETER :: jp_vtau = 2 ! index of wind stress (j-component) file110 INTEGER , PARAMETER :: jp_qtot = 3 ! index of total (non solar+solar) heat file111 INTEGER , PARAMETER :: jp_qsr = 4 ! index of solar heat file112 INTEGER , PARAMETER :: jp_emp = 5 ! index of evaporation-precipation file113 114 115 108 ! ! ====================== ! 116 109 IF( kt == nit000 ) THEN ! First call kt=nit000 ! … … 119 112 cn_dir = './' ! directory in which the model is executed 120 113 ! ... default values (NB: frequency positive => hours, negative => months) 121 ! ! file ! frequency ! variable ! time intep ! clim ! starting!122 ! ! name ! (hours) ! name ! (T/F) ! (0/1) ! record!123 sn_utau = FLD_N( 'utau.nc' , 24. , 'utau' , .FALSE. , 0 , 0)124 sn_vtau = FLD_N( 'vtau.nc' , 24. , 'vtau' , .FALSE. , 0 , 0)125 sn_qtot = FLD_N( 'qtot.nc' , 24. , 'qtot' , .FALSE. , 0 , 0)126 sn_qsr = FLD_N( 'qsr.nc' , 24. , 'qsr' , .FALSE. , 0 , 0)127 sn_emp = FLD_N( 'emp.nc' , 24. , 'emp' , .FALSE. , 0 , 0)114 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 115 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 116 sn_utau = FLD_N( 'utau' , 24. , 'utau' , .false. , .false. , 'yearly' ) 117 sn_vtau = FLD_N( 'vtau' , 24. , 'vtau' , .false. , .false. , 'yearly' ) 118 sn_qtot = FLD_N( 'qtot' , 24. , 'qtot' , .false. , .false. , 'yearly' ) 119 sn_qsr = FLD_N( 'qsr' , 24. , 'qsr' , .false. , .false. , 'yearly' ) 120 sn_emp = FLD_N( 'emp' , 24. , 'emp' , .false. , .false. , 'yearly' ) 128 121 129 122 REWIND ( numnam ) ! ... read in namlist namflx … … 137 130 ! set sf structure 138 131 ALLOCATE( sf(jpfld), STAT=ierror ) 139 IF( ierror > 0 ) THEN 140 CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' ) ; RETURN 132 IF( ierror > 0 ) THEN 133 CALL ctl_stop( 'sbc_flx: unable to allocate sf structure' ) ; RETURN 141 134 ENDIF 142 135 143 DO jf = 1, jpfld 144 WRITE(sf(jf)%clrootname,'(a,a)' ) TRIM( cn_dir ), TRIM( slf_i(jf)%clname ) 145 sf(jf)%freqh = slf_i(jf)%freqh 146 sf(jf)%clvar = slf_i(jf)%clvar 147 sf(jf)%ln_tint = slf_i(jf)%ln_tint 148 sf(jf)%nclim = slf_i(jf)%nclim 149 sf(jf)%nstrec = slf_i(jf)%nstrec 150 END DO 151 152 IF(lwp) THEN ! control print 153 WRITE(numout,*) 154 WRITE(numout,*) 'sbc_flx : flux formulation for ocean surface boundary condition' 155 WRITE(numout,*) '~~~~~~~ ' 156 WRITE(numout,*) ' namsbc_flx Namelist' 157 WRITE(numout,*) ' list of files and frequency (>0: in hours ; <0 in months)' 158 DO jf = 1, jpfld 159 WRITE(numout,*) ' root filename: ' , trim( sf(jf)%clrootname ), & 160 & ' variable name: ' , trim( sf(jf)%clvar ) 161 WRITE(numout,*) ' frequency: ' , sf(jf)%freqh , & 162 & ' time interp: ' , sf(jf)%ln_tint , & 163 & ' climatology: ' , sf(jf)%nclim , & 164 & ' starting record: ', sf(jf)%nstrec 165 END DO 166 ENDIF 136 ! fill sf with slf_i and control print 137 CALL fld_fill( sf, slf_i, cn_dir, 'sbc_flx', 'flux formulation for ocean surface boundary condition', 'namsbc_flx' ) 167 138 ! 168 139 ENDIF -
trunk/NEMO/OPA_SRC/SBC/sbcice_if.F90
r1037 r1133 69 69 cn_dir = './' ! directory in which the model is executed 70 70 ! ... default values (NB: frequency positive => hours, negative => months) 71 ! ! file ! frequency ! variable ! time intep ! clim ! starting!72 ! ! name ! (hours) ! name ! (T/F) ! (0/1) ! record !73 sn_ice = FLD_N('ice_cover', -12. , 'ice_cov' , .TRUE. , 1 , 0)71 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 72 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 73 sn_ice = FLD_N('ice_cover', -1. , 'ice_cov' , .true. , .true. , 'yearly' ) 74 74 75 75 REWIND ( numnam ) ! ... read in namlist namiif … … 81 81 ENDIF 82 82 83 ! store namelist information in sf_ice structure 84 WRITE(sf_ice(1)%clrootname,'(a,a)') TRIM( cn_dir ), TRIM( sn_ice%clname ) 85 sf_ice(1)%freqh = sn_ice%freqh 86 sf_ice(1)%clvar = sn_ice%clvar 87 sf_ice(1)%ln_tint = sn_ice%ln_tint 88 sf_ice(1)%nclim = sn_ice%nclim 89 sf_ice(1)%nstrec = sn_ice%nstrec 90 91 IF(lwp) THEN ! control print 92 WRITE(numout,*) 93 WRITE(numout,*) 'sbc_ice_if : ice-if sea-ice model' 94 WRITE(numout,*) '~~~~~~~~~~ ' 95 WRITE(numout,*) ' ice-cover data in the following file: ' 96 WRITE(numout,*) ' list of files and frequency (>0: in hours ; <0 in months)' 97 WRITE(numout,*) ' root filename: ' , trim( sf_ice(1)%clrootname ), & 98 & ' variable name: ' , trim( sf_ice(1)%clvar ) 99 WRITE(numout,*) ' frequency: ' , sf_ice(1)%freqh , & 100 & ' time interp: ' , sf_ice(1)%ln_tint , & 101 & ' climatology: ' , sf_ice(1)%nclim , & 102 & ' starting record: ', sf_ice(1)%nstrec 103 ENDIF 83 ! fill sf_ice with sn_ice and control print 84 CALL fld_fill( sf_ice, (/ sn_ice /), cn_dir, 'sbc_ice_if', 'ice-if sea-ice model', 'namsbc_iif' ) 104 85 ! 105 86 ENDIF -
trunk/NEMO/OPA_SRC/SBC/sbcrnf.F90
r1116 r1133 116 116 ! ! Namelist 117 117 ! ! ============ 118 ! ! Default values NB: frequency>0 hours, <0months)119 ! ! file ! frequency ! variable ! time intep ! clim ! starting!120 ! ! name ! (hours) ! name ! (T/F) ! ( 0/1) ! record!121 sn_rnf = FLD_N( 'runoffs', -12. , 'sorunoff' , .TRUE. , 1 , 0)122 sn_cnf = FLD_N( 'runoffs', 0. , 'sorunoff' , .FALSE. , 1 , 0)118 ! (NB: frequency positive => hours, negative => months) 119 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 120 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 121 sn_rnf = FLD_N( 'runoffs', -1. , 'sorunoff' , .TRUE. , .true. , 'yearly' ) 122 sn_cnf = FLD_N( 'runoffs', 0. , 'sorunoff' , .FALSE. , .true. , 'yearly' ) 123 123 124 124 ! … … 152 152 CALL ctl_stop( 'sbc_rnf: unable to allocate sf_rnf structure' ) ; RETURN 153 153 ENDIF 154 ! ! namelist informations stored in sf_rnf structures 155 WRITE( sf_rnf(1)%clrootname, '(a,a)' ) TRIM( cn_dir ), TRIM( sn_rnf%clname ) 156 sf_rnf(1)%freqh = sn_rnf%freqh 157 sf_rnf(1)%clvar = sn_rnf%clvar 158 sf_rnf(1)%ln_tint = sn_rnf%ln_tint 159 sf_rnf(1)%nclim = sn_rnf%nclim 160 sf_rnf(1)%nstrec = sn_rnf%nstrec 161 IF(lwp) THEN ! control print 162 WRITE(numout,*) ' Runoffs data read in the following file: ' 163 WRITE(numout,*) ' root filename: ' , trim( sf_rnf(1)%clrootname ), & 164 & ' variable name: ' , trim( sf_rnf(1)%clvar ) 165 WRITE(numout,*) ' frequency: ' , sf_rnf(1)%freqh , & 166 & ' time interp: ' , sf_rnf(1)%ln_tint , & 167 & ' climatology: ' , sf_rnf(1)%nclim , & 168 & ' starting record: ', sf_rnf(1)%nstrec 169 ENDIF 154 155 ! fill sf_rnf with sn_rnf and control print 156 CALL fld_fill( sf_rnf, (/ sn_rnf /), cn_dir, 'sbc_rnf_init', 'read runoffs data', 'namsbc_rnf' ) 170 157 ! 171 158 ENDIF … … 238 225 IF(lwp) WRITE(numout,*) '~~~~~~~~~ ' 239 226 240 WRITE(cl_rnfile, '(a,a)') TRIM( cn_dir ), TRIM( sn_cnf%clname ) 241 SELECT CASE( sn_cnf%nclim ) 242 CASE( 0 ) 243 WRITE(cl_rnfile, '(a,a,"_",i4,".nc")' ) TRIM( cn_dir ), TRIM( sn_cnf%clname ), nyear 244 CASE( 1 ) 245 WRITE(cl_rnfile, '(a,a, ".nc")' ) TRIM( cn_dir ), TRIM( sn_cnf%clname ) 246 END SELECT 247 227 cl_rnfile = TRIM( cn_dir )//TRIM( sn_cnf%clname ) 228 IF( .NOT. sn_cnf%ln_clim ) THEN ; WRITE(cl_rnfile, '(a,"_y",i4)' ) TRIM( cl_rnfile ), nyear ! add year 229 IF( sn_cnf%cltype == 'monthly' ) WRITE(cl_rnfile, '(a,"m",i2)' ) TRIM( cl_rnfile ), nmonth ! add month 230 ENDIF 231 248 232 ! horizontal mask (read in NetCDF file) 249 233 CALL iom_open ( cl_rnfile, inum ) ! open file -
trunk/NEMO/OPA_SRC/SBC/sbcssr.F90
r1106 r1133 86 86 cn_dir = './' ! directory in which the model is executed 87 87 ! ... default values (NB: frequency positive => hours, negative => months) 88 ! ! file ! frequency ! variable ! time intep ! clim ! starting!89 ! ! name ! (hours) ! name ! (T/F) ! ( 0/1) ! record!90 sn_sst = FLD_N( 'sst' , 24. , 'sst' , .FALSE. , 0 , 0)91 sn_sss = FLD_N( 'sss' , -12. , 'sss' , .TRUE. , 0 , 0)88 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! 89 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! 90 sn_sst = FLD_N( 'sst' , 24. , 'sst' , .false. , .false. , 'yearly' ) 91 sn_sss = FLD_N( 'sss' , -1. , 'sss' , .true. , .false. , 'yearly' ) 92 92 93 93 REWIND ( numnam ) ! ... read in namlist namflx … … 111 111 CALL ctl_stop( 'sbc_ssr: unable to allocate sf_sst structure' ) ; RETURN 112 112 ENDIF 113 ! namelist informations stored in sf_sst structures 114 WRITE( sf_sst(1)%clrootname, '(a,a)' ) TRIM( cn_dir ), TRIM( sn_sst%clname ) 115 sf_sst(1)%freqh = sn_sst%freqh 116 sf_sst(1)%clvar = sn_sst%clvar 117 sf_sst(1)%ln_tint = sn_sst%ln_tint 118 sf_sst(1)%nclim = sn_sst%nclim 119 sf_sst(1)%nstrec = sn_sst%nstrec 120 IF(lwp) THEN ! control print 121 WRITE(numout,*) ' SST restoring term toward SST data in the following file: ' 122 WRITE(numout,*) ' root filename: ' , trim( sf_sst(1)%clrootname ), & 123 & ' variable name: ' , trim( sf_sst(1)%clvar ) 124 WRITE(numout,*) ' frequency: ' , sf_sst(1)%freqh , & 125 & ' time interp: ' , sf_sst(1)%ln_tint , & 126 & ' climatology: ' , sf_sst(1)%nclim , & 127 & ' starting record: ', sf_sst(1)%nstrec 128 ENDIF 113 ! fill sf_sst with sn_sst and control print 114 CALL fld_fill( sf_sst, (/ sn_sst /), cn_dir, 'sbc_ssr', 'SST restoring term toward SST data', 'namsbc_ssr' ) 115 129 116 ENDIF 130 117 ! … … 135 122 CALL ctl_stop( 'sbc_ssr: unable to allocate sf_sss structure' ) ; RETURN 136 123 ENDIF 137 ! namelist informations stored in sf_sss structures 138 WRITE( sf_sss(1)%clrootname, '(a,a)' ) TRIM( cn_dir ), TRIM( sn_sss%clname ) 139 sf_sss(1)%freqh = sn_sss%freqh 140 sf_sss(1)%clvar = sn_sss%clvar 141 sf_sss(1)%ln_tint = sn_sss%ln_tint 142 sf_sss(1)%nclim = sn_sss%nclim 143 sf_sss(1)%nstrec = sn_sss%nstrec 144 IF(lwp) THEN ! control print 145 WRITE(numout,*) ' SSS dampming term toward SSS data in the following file: ' 146 WRITE(numout,*) ' root filename: ' , trim( sf_sss(1)%clrootname ), & 147 & ' variable name: ' , trim( sf_sss(1)%clvar ) 148 WRITE(numout,*) ' frequency: ' , sf_sss(1)%freqh , & 149 & ' time interp: ' , sf_sss(1)%ln_tint , & 150 & ' climatology: ' , sf_sss(1)%nclim , & 151 & ' starting record: ', sf_sss(1)%nstrec 152 ENDIF 124 ! fill sf_sss with sn_sss and control print 125 CALL fld_fill( sf_sss, (/ sn_sss /), cn_dir, 'sbc_ssr', 'SSS restoring term toward SSS data', 'namsbc_ssr' ) 126 153 127 ENDIF 154 128 !
Note: See TracChangeset
for help on using the changeset viewer.