Changeset 1889
- Timestamp:
- Jan 9, 2018, 12:26:53 PM (7 years ago)
- Location:
- trunk/LMDZ.TITAN
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/README
r1871 r1889 1343 1343 Big modifs of the tracer gestion/init in the physiq with a new query by names (see tracer_h ) 1344 1344 1345 == 20/12/2017 - ... : r1871- ... == JVO1345 == 20/12/2017 - ... : r1871-1886-1888 ... == JVO 1346 1346 Management of the chemistry within startfi. Open the way to : 1347 1347 1) run with chemistry in another resolution than 32x48 ! … … 1352 1352 rather than read in the middle of calchim as before from compo files 1353 1353 + An "upper_chemistry_layers" dimension is now handled in startfi files 1354 + This dimension is also stored in tabfi1355 1354 + Added a comchem_h.F90 module for all the stuff related to chemistry 1355 + In newstart we calculates the pressure grid above GCM top using Vervack profile 1356 1356 + ... -
trunk/LMDZ.TITAN/libf/dynphy_lonlat/phytitan/lect_start_archive.F
r1647 r1889 5 5 6 6 ! USE surfdat_h 7 USE comchem_h, ONLY: nlaykimold, preskimold 7 8 USE comsoil_h, ONLY: nsoilmx, layer, mlayer, volcapa, inertiedat 8 9 USE infotrac, ONLY: tname, nqtot … … 46 47 c------------------------------------ 47 48 INTEGER imold,jmold,lmold,nsoilold,nqold 48 49 49 50 50 c Variables pour les lectures des fichiers "ini" … … 147 147 real, dimension(:,:), allocatable :: emisold 148 148 real, dimension(:,:,:,:), allocatable :: qold 149 149 150 150 real tab_cntrl(100) 151 151 … … 158 158 logical :: therminertia_3D=.true. ! flag 159 159 ! therminertia_3D=.true. if thermal inertia is 3D and read from datafile 160 160 161 c Variable intermediaires iutilise pour l'extrapolation verticale 161 162 c---------------------------------------------------------------- … … 247 248 endif 248 249 249 250 250 if (nsoilold.ne.nsoilmx) then ! interpolation will be required 251 251 depthinterpol=.true. 252 252 endif 253 254 ! 1.2.2 find out the # of upper chemistry layers 255 256 ierr= NF_INQ_DIMID(nid,"upper_chemistry_layers",dimid) 257 ierr= NF_INQ_DIMLEN(nid,dimid,nlaykimold) 258 259 ! NB : The regriding, if needed cannot be done here since the new 260 ! pressure grid is only computed at the end of newstart 253 261 254 262 ! 1.3 Report dimensions … … 266 274 write(*,*) ' Otherwise, set nsoilmx -in dimphys.h- to: ',nsoilold 267 275 endif 276 write(*,*) "upper_chemistry_layers: ",nlaykimold 268 277 write(*,*) "time lenght: ",timelen 269 278 write(*,*) … … 295 304 allocate(mlayerold(nsoilold)) 296 305 allocate(qsurfold(imold+1,jmold+1,nqtot)) 306 307 allocate(preskimold(nlaykimold)) 297 308 298 309 allocate(var (imold+1,jmold+1,llm)) … … 512 523 endif 513 524 endif 514 515 c----------------------------------------------------------------------- 516 c 3.6 Lecture geopotentiel au sol 525 526 c----------------------------------------------------------------------- 527 c 3.6 Read upper chemistry mid-layer pressure 528 c----------------------------------------------------------------------- 529 530 ierr=NF_INQ_VARID(nid,"preskim",nvarid) 531 IF (ierr .NE. NF_NOERR) THEN 532 PRINT*, "lect_start_archive: Le champ <preskim> est absent" 533 CALL abort 534 ENDIF 535 #ifdef NC_DOUBLE 536 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, preskimold) 537 #else 538 ierr = NF_GET_VAR_REAL(nid, nvarid, preskimold) 539 #endif 540 IF (ierr .NE. NF_NOERR) THEN 541 PRINT*, "lect_start_archive: Lecture echouee pour <preskim>" 542 CALL abort 543 ENDIF 544 545 c----------------------------------------------------------------------- 546 c 3.7 Lecture geopotentiel au sol 517 547 c----------------------------------------------------------------------- 518 548 c -
trunk/LMDZ.TITAN/libf/dynphy_lonlat/phytitan/newstart.F
r1871 r1889 17 17 & is_master 18 18 use infotrac, only: infotrac_init, nqtot, tname 19 USE comchem_h, ONLY: nlaykim_up, nlaykimold 19 20 USE comsoil_h, ONLY: nsoilmx, layer, mlayer, inertiedat 20 21 USE surfdat_h, ONLY: phisfi, albedodat, … … 130 131 real tab_cntrl(100) 131 132 real tab_cntrl_bis(100) 132 133 133 134 c variables diverses 134 135 c------------------- … … 258 259 259 260 endif 260 261 261 262 262 c======================================================================= … … 536 536 CALL lect_start_archive(ngridmx,llm, 537 537 & date,tsurf,tsoil,emis,q2, 538 & t,ucov,vcov,ps,teta,phisold_newgrid, q,qsurf,539 & surfith,nid)538 & t,ucov,vcov,ps,teta,phisold_newgrid, 539 & q,qsurf,surfith,nid) 540 540 write(*,*) "OK, read start_archive file" 541 541 ! copy soil thermal inertia … … 572 572 write(*,*) 'q=x : give a specific uniform value to one tracer' 573 573 write(*,*) 'q=profile : specify a profile for a tracer' 574 ! write(*,*) 'ini_q : tracers initialisation for chemistry, water an575 ! $d ice '576 ! write(*,*) 'ini_q-H2O : tracers initialisation for chemistry and577 ! $ice '578 ! write(*,*) 'ini_q-iceH2O : tracers initialisation for chemistry on579 ! $ly '580 574 write(*,*) 'isotherm : Isothermal Temperatures, wind set to zero' 581 575 write(*,*) 'radequi : Earth-like radiative equilibrium temperature … … 1071 1065 CALL inifilr 1072 1066 CALL pression(ip1jmp1, ap, bp, ps, p3d) 1067 1068 1069 c========================================================================= 1070 c Calcul de la dimension verticale pour la chimie - JVO 2017 1071 c start_archive seulement, la grille verticale pouvant avoir ete modifiee 1072 c========================================================================== 1073 1074 IF (choix_1.eq.0) THEN 1075 1076 ! Calculate the # of upper chemistry layers with the "new" pressure grid 1077 ! For this we use Vervack profile for upper atmosphere with dz=10km 1078 1079 CALL gr_kim_vervack 1080 1081 WRITE(*,*) 1082 WRITE(*,*) " With the compiled vertical grid we found :" 1083 WRITE(*,*) " Number of upper chemistry layers =", nlaykim_up 1084 1085 ! Regriding is then done, if needed 1086 1087 IF (nlaykimold.ne.nlaykim_up) THEN 1088 1089 WRITE(*,*) " Warning, nlaykimold=", nlaykimold 1090 WRITE(*,*) ' which implies that a regriding on upper chemistry 1091 & will be performed.' 1092 WRITE(*,*) 1093 1094 ! CALL regrid_kim 1095 1096 ENDIF 1097 1098 endif ! of if (choix_1.eq.0) 1099 1073 1100 1074 1101 c----------------------------------------------------------------------- … … 1125 1152 day_ini=int(date) 1126 1153 endif 1154 1127 1155 c 1128 1156 CALL geopot ( ip1jmp1, teta , pk , pks, phis , phi ) -
trunk/LMDZ.TITAN/libf/phytitan/comchem_h.F90
r1887 r1889 19 19 !$OMP_THREADPRIVATE(zlay_kim) 20 20 21 22 ! Variable and allocatables for regriding chemistry newstart 23 ! ---------------------------------------------------------- 24 25 INTEGER :: nlaykimold ! Number of upper atm. layers for chemistry in the start_archive file 26 REAL, ALLOCATABLE, DIMENSION(:) :: preskimold ! Pressure grid of upper chemistry in the start_archive file 21 27 22 28 ! Allocatable arrays for start2archive -
trunk/LMDZ.TITAN/libf/phytitan/iostart.F90
r1871 r1889 944 944 NF90_PUT_ATT, NF90_NOERR, nf90_strerror, & 945 945 nf90_inq_dimid, nf90_inquire_dimension, NF90_INQ_VARID 946 USE comchem_h, only: nlaykim_up 946 947 USE comsoil_h, only: nsoilmx 947 948 USE mod_phys_lmdz_para, only: is_master … … 997 998 ! We know it is an "mlayer" kind of 1D array 998 999 idim1d=idim3 1000 ELSEIF (var_size==nlaykim_up) THEN 1001 ! We know it is an "preskim" kind of 1D array 1002 idim1d=idim8 999 1003 ELSE 1000 1004 PRINT *, "put_var_rgen error : wrong dimension" -
trunk/LMDZ.TITAN/libf/phytitan/phyredem.F90
r1789 r1889 9 9 alb,ith,pzmea,pzstd,pzsig,pzgam,pzthe) 10 10 ! create physics restart file and write time-independent variables 11 use comchem_h, only: preskim 11 12 use comsoil_h, only: volcapa, mlayer 12 13 use geometry_mod, only: cell_area … … 104 105 call put_var("soildepth","Soil mid-layer depth",mlayer) 105 106 107 ! Write the mid-layer upper chemistry pressure 108 call put_var("preskim","Upper chemistry mid-layer pressure",preskim) 109 106 110 ! Write longitudes 107 111 call put_field("longitude","Longitudes of physics grid",lonfi) -
trunk/LMDZ.TITAN/libf/phytitan/tabfi_mod.F90
r1871 r1889 55 55 emissiv 56 56 use comsoil_h, only: volcapa 57 use comchem_h, only: nlaykim_up58 57 use iostart, only: get_var 59 58 use mod_phys_lmdz_para, only: is_parallel … … 150 149 dtemisice(:)=0 !time scale for snow metamorphism 151 150 volcapa=1000000 ! volumetric heat capacity of subsurface 152 ! chemistry153 nlaykim_up=70 ! size of vertical grid for upper chemistry154 151 155 152 ELSE … … 207 204 ! soil properties 208 205 volcapa = tab_cntrl(tab0+35) ! volumetric heat capacity 209 ! chemistry210 nlaykim_up = nint(tab_cntrl(tab0+40)) ! size of vertical grid for upper chemistry211 206 !----------------------------------------------------------------------- 212 207 ! Save some constants for later use (as routine arguments) … … 261 256 262 257 write(*,5) '(35) volcapa',tab_cntrl(tab0+35),volcapa 263 264 write(*,5) '(40) nlaykim_up',tab_cntrl(tab0+40),float(nlaykim_up)265 258 266 259 write(*,*) … … 571 564 572 565 write(*,5) '(35) volcapa',tab_cntrl(tab0+35),volcapa 573 574 write(*,5) '(40) nlaykim_up',tab_cntrl(tab0+40),float(nlaykim_up)575 566 576 567 write(*,*)
Note: See TracChangeset
for help on using the changeset viewer.