Changeset 2433 for trunk/LMDZ.MARS/libf/aeronomars/photolysis_mod.F90
- Timestamp:
- Nov 14, 2020, 4:51:23 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/aeronomars/photolysis_mod.F90
r2170 r2433 6 6 7 7 integer, parameter :: nphot = 13 ! number of photolysis 8 ! integer, parameter :: nphot = 14 ! number of photolysis (with hdo) 8 9 integer, parameter :: nabs = 10 ! number of absorbing gases 9 10 … … 37 38 real, dimension(nw), save :: xsn2 ! n2 absorption cross-section (cm2) 38 39 real, dimension(nw), save :: yieldn2 ! n2 photodissociation yield 40 real, dimension(nw), save :: xshdo ! hdo absorption cross-section (cm2) 39 41 real, dimension(nw), save :: albedo ! surface albedo 40 42 … … 97 99 98 100 call rdxsn2(nw,wl,xsn2,yieldn2) 101 102 ! read and grid hdo cross-sections 103 104 call rdxshdo(nw,wl,xshdo) 99 105 100 106 ! set surface albedo … … 1247 1253 !============================================================================== 1248 1254 1255 subroutine rdxshdo(nw, wl, yg) 1256 1257 !-----------------------------------------------------------------------------* 1258 != PURPOSE: =* 1259 != Read HDO molecular absorption cross section. Re-grid data to match =* 1260 != specified wavelength working grid. =* 1261 !-----------------------------------------------------------------------------* 1262 != PARAMETERS: =* 1263 != NW - INTEGER, number of specified intervals + 1 in working (I)=* 1264 != wavelength grid =* 1265 != WL - REAL, vector of lower limits of wavelength intervals in (I)=* 1266 != working wavelength grid =* 1267 != YG - REAL, molecular absoprtion cross section (cm^2) of HDO at (O)=* 1268 != each specified wavelength =* 1269 !-----------------------------------------------------------------------------* 1270 1271 use datafile_mod, only: datadir 1272 1273 IMPLICIT NONE 1274 1275 ! input 1276 1277 integer :: nw ! number of wavelength grid points 1278 real, dimension(nw) :: wl ! lower and central wavelength for each interval 1279 1280 ! output 1281 1282 real, dimension(nw) :: yg ! hdo cross-sections (cm2) 1283 1284 ! local 1285 1286 integer, parameter :: kdata = 900 1287 real, parameter :: deltax = 1.e-4 1288 REAL x1(kdata) 1289 REAL y1(kdata) 1290 INTEGER ierr 1291 INTEGER i, n 1292 CHARACTER*100 fil 1293 integer :: kin, kout ! input/output logical units 1294 1295 kin = 10 1296 1297 fil = trim(datadir)//'/cross_sections/hdo_composite_295K.txt' 1298 print*, 'section efficace HDO: ', fil 1299 1300 OPEN(UNIT=kin,FILE=fil,STATUS='old') 1301 1302 DO i = 1,17 1303 read(kin,*) 1304 END DO 1305 1306 n = 806 1307 DO i = 1, n 1308 READ(kin,*) x1(i), y1(i) 1309 END DO 1310 CLOSE (kin) 1311 1312 CALL addpnt(x1,y1,kdata,n,x1(1)*(1.-deltax),0.) 1313 CALL addpnt(x1,y1,kdata,n, 0.,0.) 1314 CALL addpnt(x1,y1,kdata,n,x1(n)*(1.+deltax),0.) 1315 CALL addpnt(x1,y1,kdata,n, 1.e+38,0.) 1316 CALL inter2(nw,wl,yg,n,x1,y1,ierr) 1317 IF (ierr .NE. 0) THEN 1318 WRITE(*,*) ierr, fil 1319 STOP 1320 ENDIF 1321 1322 end subroutine rdxshdo 1323 1324 !============================================================================== 1325 1249 1326 subroutine rdxsh2o2(nw, wl, xsh2o2) 1250 1327
Note: See TracChangeset
for help on using the changeset viewer.