Changeset 1718 for trunk/LMDZ.VENUS/libf
- Timestamp:
- Jul 4, 2017, 11:15:19 AM (7 years ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/clesphys.h
r1661 r1718 13 13 LOGICAL callnlte,callnirco2,callthermos 14 14 LOGICAL ok_cloud, ok_chem, reinit_trac, ok_sedim 15 LOGICAL startphy_file 15 16 INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs 16 17 INTEGER lev_histins, lev_histday, lev_histmth … … 27 28 & ok_orodr, ok_orolf, ok_gw_nonoro, ok_kzmin, & 28 29 & callnlte,callnirco2,callthermos, & 29 & ok_cloud, ok_chem, reinit_trac, ok_sedim 30 & ok_cloud, ok_chem, reinit_trac, ok_sedim, startphy_file 30 31 31 32 COMMON/clesphys_i/ nbapp_rad, nbapp_chim, & -
trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90
r1682 r1718 42 42 43 43 !******************* parametres anciennement lus dans gcm.def 44 45 ! do we read a startphy.nc file? (default: .true.) 46 startphy_file=.true. 47 CALL getin("startphy_file",startphy_file) 44 48 45 49 !Config Key = cycle_diurne -
trunk/LMDZ.VENUS/libf/phyvenus/phyetat0.F90
r1621 r1718 13 13 USE iostart 14 14 use geometry_mod, only: longitude_deg, latitude_deg 15 USE time_phylmdz_mod, only: itau_phy, raz_date 15 USE time_phylmdz_mod, only: itau_phy, raz_date, pdtphys 16 USE ioipsl_getin_p_mod, only: getin_p 16 17 17 18 implicit none … … 27 28 28 29 character(len=*),intent(in) :: fichnom ! input file name 29 REAL :: xmin, xmax30 30 LOGICAL :: found 31 31 REAL :: tab_cntrl(length) … … 33 33 CHARACTER(len=2) :: str2 34 34 REAL :: lon_startphy(klon), lat_startphy(klon) 35 REAL :: surface_albedo 35 36 36 37 ! les variables globales lues dans le fichier restart 37 38 38 39 ! open physics initial state file: 39 call open_startphy(fichnom) 40 if (startphy_file) then 41 call open_startphy(fichnom) 42 endif 40 43 41 44 ! 42 ! L ecture des parametres de controle:45 ! Load control parameters: 43 46 ! 44 CALL get_var("controle",tab_cntrl,found) 45 IF (.not.found) THEN 46 PRINT*, 'phyetat0: Le champ <controle> est absent' 47 CALL abort 48 ENDIF 47 IF (startphy_file) THEN 48 CALL get_var("controle",tab_cntrl,found) 49 IF (.not.found) THEN 50 PRINT*, 'phyetat0: Le champ <controle> est absent' 51 CALL abort 52 ENDIF 49 53 50 DO i = 1, length 51 tabcntr0( i ) = tab_cntrl( i ) 52 ENDDO 53 54 55 dtime = tab_cntrl(1) 56 radpas = tab_cntrl(2) 57 58 itau_phy = tab_cntrl(15) 54 DO i = 1, length 55 tabcntr0( i ) = tab_cntrl( i ) 56 ENDDO 57 58 dtime = tab_cntrl(1) 59 radpas = tab_cntrl(2) 60 61 itau_phy = tab_cntrl(15) 59 62 60 63 ! Attention si raz_date est active : 61 64 ! il faut remettre a zero itau_phy apres phyetat0 ! 62 IF (raz_date.eq.1) THEN 63 itau_phy=0 64 ENDIF 65 66 ! read latitudes and make a sanity check (because already known from dyn) 67 call get_field("latitude",lat_startphy,found) 68 IF (.not.found) THEN 69 PRINT*, 'phyetat0: Le champ <latitude> est absent' 70 CALL abort 65 IF (raz_date.eq.1) THEN 66 itau_phy=0 67 ENDIF 68 69 ELSE 70 tabcntr0(:)=1 ! dummy initialization 71 ! Initialize parameter or get values from def files 72 dtime=pdtphys 73 radpas=1 74 itau_phy=0 75 ENDIF ! of IF (startphy_file) 76 77 IF (startphy_file) THEN 78 ! read latitudes and make a sanity check (because already known from dyn) 79 call get_field("latitude",lat_startphy,found) 80 IF (.not.found) THEN 81 PRINT*, 'phyetat0: Le champ <latitude> est absent' 82 CALL abort 83 ENDIF 84 DO i=1,klon 85 IF (ABS(lat_startphy(i)-latitude_deg(i))>=0.01) THEN 86 WRITE(*,*) "phyetat0: Warning! Latitude discrepancy wrt startphy file:",& 87 " i=",i," lat_startphy(i)=",lat_startphy(i),& 88 " latitude_deg(i)=",latitude_deg(i) 89 CALL abort 90 ENDIF 91 ENDDO 92 93 ! read longitudes and make a sanity check (because already known from dyn) 94 call get_field("longitude",lon_startphy,found) 95 IF (.not.found) THEN 96 PRINT*, 'phyetat0: Le champ <longitude> est absent' 97 CALL abort 98 ENDIF 99 DO i=1,klon 100 IF (ABS(lon_startphy(i)-longitude_deg(i))>=0.01) THEN 101 WRITE(*,*) "phyetat0: Warning! Longitude discrepancy wrt startphy file:",& 102 " i=",i," lon_startphy(i)=",lon_startphy(i),& 103 " longitude_deg(i)=",longitude_deg(i) 104 CALL abort 105 ENDIF 106 ENDDO 107 ENDIF ! of IF (startphy_file) 108 109 ! read in other variables here ... 110 111 IF (startphy_file) THEN 112 ! Load surface temperature: 113 CALL get_field("TS",ftsol(:),found) 114 IF (.not.found) THEN 115 PRINT*, 'phyetat0: Le champ <TS> est absent' 116 PRINT*, "phyetat0: Lecture echouee pour <TS>" 117 CALL abort 118 ELSE 119 PRINT*, 'phyetat0: Le champ <TS> est present' 120 PRINT*,'Temperature du sol <TS>', minval(ftsol), maxval(ftsol) 121 ENDIF 122 ELSE 123 ! Dummy initialization, but in fact this is later handled in physiq 124 ftsol(:)=0 125 ENDIF ! of IF (startphy_file) 126 127 IF (startphy_file) THEN 128 ! Load sub-surface temperatures: 129 DO isoil=1, nsoilmx 130 IF (isoil.GT.99) THEN 131 PRINT*, "Trop de couches" 132 CALL abort 133 ENDIF 134 WRITE(str2,'(i2.2)') isoil 135 CALL get_field('Tsoil'//str2,ftsoil(:,isoil),found) 136 IF (.not.found) THEN 137 PRINT*, "phyetat0: Le champ <Tsoil"//str2//"> est absent" 138 PRINT*, " Il prend donc la valeur de surface" 139 DO i=1, klon 140 ftsoil(i,isoil)=ftsol(i) 141 ENDDO 142 ENDIF 143 ENDDO 144 ELSE 145 ! Dummy initialization, but in fact this is later handled in physiq 146 ftsoil(:,:)=0 147 ENDIF ! of IF (startphy_file) 148 149 IF (startphy_file) THEN 150 ! Load surface albedo: 151 CALL get_field("ALBE", falbe,found) 152 IF (.not.found) THEN 153 PRINT*, 'phyetat0: Le champ <ALBE> est absent' 154 PRINT*, "phyetat0: Lecture echouee pour <ALBE>" 155 CALL abort 156 ENDIF 157 ELSE 158 ! Dummy initialization: read value from def file 159 surface_albedo=0.5 ! default 160 CALL getin_p("surface_albedo",surface_albedo) 161 falbe(:)=surface_albedo 162 ENDIF ! of IF (startphy_file) 163 PRINT*,'Albedo du sol <ALBE>', minval(falbe), maxval(falbe) 164 165 IF (startphy_file) THEN 166 ! Lecture rayonnement solaire au sol: 167 CALL get_field("solsw",solsw,found) 168 IF (.not.found) THEN 169 PRINT*, 'phyetat0: Le champ <solsw> est absent' 170 PRINT*, 'mis a zero' 171 solsw = 0. 172 ENDIF 173 ELSE 174 ! Dummy initialization 175 solsw(:)=0 176 ENDIF ! of IF (startphy_file) 177 PRINT*,'Rayonnement solaire au sol solsw:', minval(solsw), maxval(solsw) 178 179 IF (startphy_file) THEN 180 ! Lecture rayonnement IR au sol: 181 CALL get_field("sollw",sollw,found) 182 IF (.not.found) THEN 183 PRINT*, 'phyetat0: Le champ <sollw> est absent' 184 PRINT*, 'mis a zero' 185 sollw = 0. 186 ENDIF 187 ELSE 188 ! Dummy initialization 189 sollw(:)=0 190 ENDIF ! of IF (startphy_file) 191 PRINT*,'Rayonnement IR au sol sollw:', minval(sollw), maxval(solsw) 192 193 IF (startphy_file) THEN 194 ! Lecture derive des flux: 195 CALL get_field("fder",fder,found) 196 IF (.not.found) THEN 197 PRINT*, 'phyetat0: Le champ <fder> est absent' 198 PRINT*, 'mis a zero' 199 fder = 0. 200 ENDIF 201 ELSE 202 ! Dummy initialization 203 fder(:)=0 204 ENDIF ! of IF (startphy_file) 205 PRINT*,'Derive des flux fder:', minval(fder), maxval(fder) 206 207 IF (startphy_file) THEN 208 ! Lecture derive flux IR: 209 CALL get_field("dlw",dlw,found) 210 IF (.not.found) THEN 211 PRINT*, 'phyetat0: Le champ <dlw> est absent' 212 PRINT*, 'mis a zero' 213 dlw = 0. 214 ENDIF 215 ELSE 216 ! Dummy initialization 217 dlw(:)=0 218 ENDIF ! of IF (startphy_file) 219 PRINT*,'Derive flux IR dlw:', minval(dlw), maxval(dlw) 220 221 IF (startphy_file) THEN 222 ! Lecture rayonnement IR vers le bas au sol: 223 CALL get_field("sollwdown",sollwdown,found) 224 IF (.not.found) THEN 225 PRINT*, 'phyetat0: Le champ <sollwdown> est absent' 226 PRINT*, 'mis a zero' 227 sollwdown = 0. 228 ENDIF 229 ELSE 230 ! Dummy initialization 231 sollwdown(:)=0 232 ENDIF ! of IF (startphy_file) 233 PRINT*,'Flux IR vers le bas au sol sollwdown:', minval(sollwdown), maxval(sollwdown) 234 235 IF (startphy_file) THEN 236 ! Lecture du rayonnement net au sol: 237 CALL get_field("RADS",radsol,found) 238 IF (.not.found) THEN 239 PRINT*, 'phyetat0: Le champ <RADS> est absent' 240 CALL abort 241 ENDIF 242 ELSE 243 ! Dummy initialization 244 radsol(:)=0 245 ENDIF ! of IF (startphy_file) 246 PRINT*,'Rayonnement net au sol radsol:', minval(radsol), maxval(radsol) 247 248 IF (startphy_file) THEN 249 ! Load sub-grid scale orography parameters: 250 CALL get_field("ZMEA",zmea,found) 251 IF (.not.found) THEN 252 PRINT*, 'phyetat0: Le champ <ZMEA> est absent' 253 PRINT*, 'mis a zero' 254 zmea=0. 255 ENDIF 256 ELSE 257 zmea(:)=0 258 ENDIF ! of IF (startphy_file) 259 PRINT*,'OROGRAPHIE SOUS-MAILLE zmea:', minval(zmea), maxval(zmea) 260 261 IF (startphy_file) THEN 262 ! Load sub-grid scale orography parameters: 263 CALL get_field("ZSTD",zstd,found) 264 IF (.not.found) THEN 265 PRINT*, 'phyetat0: Le champ <ZSTD> est absent' 266 PRINT*, 'mis a zero' 267 zstd=0. 268 ENDIF 269 ELSE 270 zstd(:)=0 271 ENDIF ! of IF (startphy_file) 272 PRINT*,'OROGRAPHIE SOUS-MAILLE zstd:', minval(zstd), maxval(zstd) 273 274 IF (startphy_file) THEN 275 ! Load sub-grid scale orography parameters: 276 CALL get_field("ZSIG",zsig,found) 277 IF (.not.found) THEN 278 PRINT*, 'phyetat0: Le champ <ZSIG> est absent' 279 PRINT*, 'mis a zero' 280 zsig=0. 281 ENDIF 282 ELSE 283 zsig(:)=0 284 ENDIF ! of IF (startphy_file) 285 PRINT*,'OROGRAPHIE SOUS-MAILLE zsig:', minval(zsig), maxval(zsig) 286 287 IF (startphy_file) THEN 288 ! Load sub-grid scale orography parameters: 289 CALL get_field("ZGAM",zgam,found) 290 IF (.not.found) THEN 291 PRINT*, 'phyetat0: Le champ <ZGAM> est absent' 292 PRINT*, 'mis a zero' 293 zgam=0. 294 ENDIF 295 ELSE 296 zgam(:)=0 297 ENDIF ! of IF (startphy_file) 298 PRINT*,'OROGRAPHIE SOUS-MAILLE zgam:', minval(zgam), maxval(zgam) 299 300 IF (startphy_file) THEN 301 ! Load sub-grid scale orography parameters: 302 CALL get_field("ZTHE",zthe,found) 303 IF (.not.found) THEN 304 PRINT*, 'phyetat0: Le champ <ZTHE> est absent' 305 PRINT*, 'mis a zero' 306 zthe=0. 307 ENDIF 308 ELSE 309 zthe(:)=0 310 ENDIF ! of IF (startphy_file) 311 PRINT*,'OROGRAPHIE SOUS-MAILLE zthe:', minval(zthe), maxval(zthe) 312 313 IF (startphy_file) THEN 314 ! Load sub-grid scale orography parameters: 315 CALL get_field("ZPIC",zpic,found) 316 IF (.not.found) THEN 317 PRINT*, 'phyetat0: Le champ <ZPIC> est absent' 318 PRINT*, 'mis a zero' 319 zpic=0. 320 ENDIF 321 ELSE 322 zpic(:)=0 323 ENDIF ! of IF (startphy_file) 324 PRINT*,'OROGRAPHIE SOUS-MAILLE zpic:', minval(zpic), maxval(zpic) 325 326 IF (startphy_file) THEN 327 ! Load sub-grid scale orography parameters: 328 CALL get_field("ZVAL",zval,found) 329 IF (.not.found) THEN 330 PRINT*, 'phyetat0: Le champ <ZVAL> est absent' 331 PRINT*, 'mis a zero' 332 zval=0. 333 ENDIF 334 ELSE 335 zval(:)=0 336 ENDIF ! of IF (startphy_file) 337 PRINT*,'OROGRAPHIE SOUS-MAILLE zval:', minval(zval), maxval(zval) 338 339 IF (startphy_file) THEN 340 ! Lecture de TANCIEN: 341 ancien_ok = .TRUE. 342 343 CALL get_field("TANCIEN",t_ancien,found) 344 IF (.not.found) THEN 345 PRINT*, "phyetat0: Le champ <TANCIEN> est absent" 346 PRINT*, "Depart legerement fausse. Mais je continue" 347 ancien_ok = .FALSE. 348 ENDIF 349 ELSE 350 ancien_ok=.false. 71 351 ENDIF 72 DO i=1,klon73 IF (ABS(lat_startphy(i)-latitude_deg(i))>=0.01) THEN74 WRITE(*,*) "phyetat0: Warning! Latitude discrepancy wrt startphy file:",&75 " i=",i," lat_startphy(i)=",lat_startphy(i),&76 " latitude_deg(i)=",latitude_deg(i)77 CALL abort78 ENDIF79 ENDDO80 81 ! read longitudes and make a sanity check (because already known from dyn)82 call get_field("longitude",lon_startphy,found)83 IF (.not.found) THEN84 PRINT*, 'phyetat0: Le champ <longitude> est absent'85 CALL abort86 ENDIF87 DO i=1,klon88 IF (ABS(lon_startphy(i)-longitude_deg(i))>=0.01) THEN89 WRITE(*,*) "phyetat0: Warning! Longitude discrepancy wrt startphy file:",&90 " i=",i," lon_startphy(i)=",lon_startphy(i),&91 " longitude_deg(i)=",longitude_deg(i)92 CALL abort93 ENDIF94 ENDDO95 96 ! read in other variables here ...97 98 ! Lecture des temperatures du sol:99 100 CALL get_field("TS",ftsol(:),found)101 IF (.not.found) THEN102 PRINT*, 'phyetat0: Le champ <TS> est absent'103 PRINT*, "phyetat0: Lecture echouee pour <TS>"104 CALL abort105 ELSE106 PRINT*, 'phyetat0: Le champ <TS> est present'107 xmin = 1.0E+20108 xmax = -1.0E+20109 DO i = 1, klon110 xmin = MIN(ftsol(i),xmin)111 xmax = MAX(ftsol(i),xmax)112 ENDDO113 PRINT*,'Temperature du sol <TS>', xmin, xmax114 ENDIF115 116 117 ! Lecture des temperatures du sol profond:118 119 DO isoil=1, nsoilmx120 IF (isoil.GT.99) THEN121 PRINT*, "Trop de couches"122 CALL abort123 ENDIF124 WRITE(str2,'(i2.2)') isoil125 CALL get_field('Tsoil'//str2,ftsoil(:,isoil),found)126 IF (.not.found) THEN127 PRINT*, "phyetat0: Le champ <Tsoil"//str2//"> est absent"128 PRINT*, " Il prend donc la valeur de surface"129 DO i=1, klon130 ftsoil(i,isoil)=ftsol(i)131 ENDDO132 ENDIF133 ENDDO134 135 ! Lecture de albedo au sol:136 137 CALL get_field("ALBE", falbe,found)138 IF (.not.found) THEN139 PRINT*, 'phyetat0: Le champ <ALBE> est absent'140 PRINT*, "phyetat0: Lecture echouee pour <ALBE>"141 CALL abort142 ELSE143 xmin = 1.0E+20144 xmax = -1.0E+20145 DO i = 1, klon146 xmin = MIN(falbe(i),xmin)147 xmax = MAX(falbe(i),xmax)148 ENDDO149 PRINT*,'Albedo du sol <ALBE>', xmin, xmax150 ENDIF151 152 ! Lecture rayonnement solaire au sol:153 154 CALL get_field("solsw",solsw,found)155 IF (.not.found) THEN156 PRINT*, 'phyetat0: Le champ <solsw> est absent'157 PRINT*, 'mis a zero'158 solsw = 0.159 ENDIF160 xmin = 1.0E+20161 xmax = -1.0E+20162 DO i = 1, klon163 xmin = MIN(solsw(i),xmin)164 xmax = MAX(solsw(i),xmax)165 ENDDO166 PRINT*,'Rayonnement solaire au sol solsw:', xmin, xmax167 168 ! Lecture rayonnement IR au sol:169 170 CALL get_field("sollw",sollw,found)171 IF (.not.found) THEN172 PRINT*, 'phyetat0: Le champ <sollw> est absent'173 PRINT*, 'mis a zero'174 sollw = 0.175 ENDIF176 xmin = 1.0E+20177 xmax = -1.0E+20178 DO i = 1, klon179 xmin = MIN(sollw(i),xmin)180 xmax = MAX(sollw(i),xmax)181 ENDDO182 PRINT*,'Rayonnement IR au sol sollw:', xmin, xmax183 184 ! Lecture derive des flux:185 186 CALL get_field("fder",fder,found)187 IF (.not.found) THEN188 PRINT*, 'phyetat0: Le champ <fder> est absent'189 PRINT*, 'mis a zero'190 fder = 0.191 ENDIF192 xmin = 1.0E+20193 xmax = -1.0E+20194 DO i = 1, klon195 xmin = MIN(fder(i),xmin)196 xmax = MAX(fder(i),xmax)197 ENDDO198 PRINT*,'Derive des flux fder:', xmin, xmax199 200 ! Lecture derive flux IR:201 202 CALL get_field("dlw",dlw,found)203 IF (.not.found) THEN204 PRINT*, 'phyetat0: Le champ <dlw> est absent'205 PRINT*, 'mis a zero'206 dlw = 0.207 ENDIF208 xmin = 1.0E+20209 xmax = -1.0E+20210 DO i = 1, klon211 xmin = MIN(dlw(i),xmin)212 xmax = MAX(dlw(i),xmax)213 ENDDO214 PRINT*,'Derive flux IR dlw:', xmin, xmax215 216 ! Lecture rayonnement IR vers le bas au sol:217 218 CALL get_field("sollwdown",sollwdown,found)219 IF (.not.found) THEN220 PRINT*, 'phyetat0: Le champ <sollwdown> est absent'221 PRINT*, 'mis a zero'222 sollwdown = 0.223 ENDIF224 xmin = 1.0E+20225 xmax = -1.0E+20226 DO i = 1, klon227 xmin = MIN(sollwdown(i),xmin)228 xmax = MAX(sollwdown(i),xmax)229 ENDDO230 PRINT*,'Flux IR vers le bas au sol sollwdown:', xmin, xmax231 232 ! Lecture du rayonnement net au sol:233 234 CALL get_field("RADS",radsol,found)235 IF (.not.found) THEN236 PRINT*, 'phyetat0: Le champ <RADS> est absent'237 CALL abort238 ENDIF239 xmin = 1.0E+20240 xmax = -1.0E+20241 DO i = 1, klon242 xmin = MIN(radsol(i),xmin)243 xmax = MAX(radsol(i),xmax)244 ENDDO245 PRINT*,'Rayonnement net au sol radsol:', xmin, xmax246 247 ! Lecture de l'orographie sous-maille:248 249 CALL get_field("ZMEA",zmea,found)250 IF (.not.found) THEN251 PRINT*, 'phyetat0: Le champ <ZMEA> est absent'252 PRINT*, 'mis a zero'253 zmea=0.254 ENDIF255 xmin = 1.0E+20256 xmax = -1.0E+20257 DO i = 1, klon258 xmin = MIN(zmea(i),xmin)259 xmax = MAX(zmea(i),xmax)260 ENDDO261 PRINT*,'OROGRAPHIE SOUS-MAILLE zmea:', xmin, xmax262 263 CALL get_field("ZSTD",zstd,found)264 IF (.not.found) THEN265 PRINT*, 'phyetat0: Le champ <ZSTD> est absent'266 PRINT*, 'mis a zero'267 zstd=0.268 ENDIF269 xmin = 1.0E+20270 xmax = -1.0E+20271 DO i = 1, klon272 xmin = MIN(zstd(i),xmin)273 xmax = MAX(zstd(i),xmax)274 ENDDO275 PRINT*,'OROGRAPHIE SOUS-MAILLE zstd:', xmin, xmax276 277 CALL get_field("ZSIG",zsig,found)278 IF (.not.found) THEN279 PRINT*, 'phyetat0: Le champ <ZSIG> est absent'280 PRINT*, 'mis a zero'281 zsig=0.282 ENDIF283 xmin = 1.0E+20284 xmax = -1.0E+20285 DO i = 1, klon286 xmin = MIN(zsig(i),xmin)287 xmax = MAX(zsig(i),xmax)288 ENDDO289 PRINT*,'OROGRAPHIE SOUS-MAILLE zsig:', xmin, xmax290 291 CALL get_field("ZGAM",zgam,found)292 IF (.not.found) THEN293 PRINT*, 'phyetat0: Le champ <ZGAM> est absent'294 PRINT*, 'mis a zero'295 zgam=0.296 ENDIF297 xmin = 1.0E+20298 xmax = -1.0E+20299 DO i = 1, klon300 xmin = MIN(zgam(i),xmin)301 xmax = MAX(zgam(i),xmax)302 ENDDO303 PRINT*,'OROGRAPHIE SOUS-MAILLE zgam:', xmin, xmax304 305 CALL get_field("ZTHE",zthe,found)306 IF (.not.found) THEN307 PRINT*, 'phyetat0: Le champ <ZTHE> est absent'308 PRINT*, 'mis a zero'309 zthe=0.310 ENDIF311 xmin = 1.0E+20312 xmax = -1.0E+20313 DO i = 1, klon314 xmin = MIN(zthe(i),xmin)315 xmax = MAX(zthe(i),xmax)316 ENDDO317 PRINT*,'OROGRAPHIE SOUS-MAILLE zthe:', xmin, xmax318 319 CALL get_field("ZPIC",zpic,found)320 IF (.not.found) THEN321 PRINT*, 'phyetat0: Le champ <ZPIC> est absent'322 PRINT*, 'mis a zero'323 zpic=0.324 ENDIF325 xmin = 1.0E+20326 xmax = -1.0E+20327 DO i = 1, klon328 xmin = MIN(zpic(i),xmin)329 xmax = MAX(zpic(i),xmax)330 ENDDO331 PRINT*,'OROGRAPHIE SOUS-MAILLE zpic:', xmin, xmax332 333 CALL get_field("ZVAL",zval,found)334 IF (.not.found) THEN335 PRINT*, 'phyetat0: Le champ <ZVAL> est absent'336 PRINT*, 'mis a zero'337 zval=0.338 ENDIF339 xmin = 1.0E+20340 xmax = -1.0E+20341 DO i = 1, klon342 xmin = MIN(zval(i),xmin)343 xmax = MAX(zval(i),xmax)344 ENDDO345 PRINT*,'OROGRAPHIE SOUS-MAILLE zval:', xmin, xmax346 347 ! Lecture de TANCIEN:348 349 ancien_ok = .TRUE.350 351 CALL get_field("TANCIEN",t_ancien,found)352 IF (.not.found) THEN353 PRINT*, "phyetat0: Le champ <TANCIEN> est absent"354 PRINT*, "Depart legerement fausse. Mais je continue"355 ancien_ok = .FALSE.356 ENDIF357 352 358 353 ! close file 359 call close_startphy354 IF (startphy_file) call close_startphy 360 355 361 356 ! do some more initializations -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r1691 r1718 275 275 REAL zdtime, zlongi 276 276 c 277 INTEGER i, k, iq, ig, j, ll, ilon, ilat, ilev 277 INTEGER i, k, iq, ig, j, ll, ilon, ilat, ilev, isoil 278 278 c 279 279 REAL zphi(klon,klev) … … 461 461 c 462 462 CALL phyetat0 ("startphy.nc") 463 IF (.not.startphy_file) THEN 464 ! Additionnal academic initializations 465 ftsol(:)=t(:,1) ! surface temperature as in first atm. layer 466 DO isoil=1, nsoilmx 467 ! subsurface temperatures equal to surface temperature 468 ftsoil(:,isoil)=ftsol(:) 469 ENDDO 470 ENDIF 463 471 464 472 c dtime est defini dans tabcontrol.h et lu dans startphy
Note: See TracChangeset
for help on using the changeset viewer.