Changeset 1718 for trunk/LMDZ.VENUS/libf


Ignore:
Timestamp:
Jul 4, 2017, 11:15:19 AM (7 years ago)
Author:
emillour
Message:

Venus GCM:
Add possibility to start without a startphy.nc file by setting option "startphy_file=.false." in run.def (default is obviously startphy_file=.true.).
Note that a restartphy.nc file is always generated at the end of the run.
EM

Location:
trunk/LMDZ.VENUS/libf/phyvenus
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/clesphys.h

    r1661 r1718  
    1313       LOGICAL callnlte,callnirco2,callthermos
    1414       LOGICAL ok_cloud, ok_chem, reinit_trac, ok_sedim
     15       LOGICAL startphy_file
    1516       INTEGER nbapp_rad, nbapp_chim, iflag_con, iflag_ajs
    1617       INTEGER lev_histins, lev_histday, lev_histmth
     
    2728     &     ok_orodr, ok_orolf, ok_gw_nonoro, ok_kzmin,                  &
    2829     &     callnlte,callnirco2,callthermos,                             &
    29      &     ok_cloud, ok_chem, reinit_trac, ok_sedim
     30     &     ok_cloud, ok_chem, reinit_trac, ok_sedim, startphy_file
    3031
    3132       COMMON/clesphys_i/ nbapp_rad, nbapp_chim,                        &
  • trunk/LMDZ.VENUS/libf/phyvenus/conf_phys.F90

    r1682 r1718  
    4242
    4343!******************* 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)
    4448
    4549!Config  Key  = cycle_diurne
  • trunk/LMDZ.VENUS/libf/phyvenus/phyetat0.F90

    r1621 r1718  
    1313      USE iostart
    1414      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
    1617
    1718implicit none
     
    2728
    2829character(len=*),intent(in) :: fichnom ! input file name
    29 REAL    :: xmin, xmax
    3030LOGICAL :: found
    3131REAL    :: tab_cntrl(length)
     
    3333CHARACTER(len=2) :: str2
    3434REAL :: lon_startphy(klon), lat_startphy(klon)
     35REAL :: surface_albedo
    3536
    3637! les variables globales lues dans le fichier restart
    3738
    3839! open physics initial state file:
    39 call open_startphy(fichnom)
     40if (startphy_file) then
     41  call open_startphy(fichnom)
     42endif
    4043
    4144!
    42 ! Lecture des parametres de controle:
     45! Load control parameters:
    4346!
    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
     47IF (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
    4953       
    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)
    5962
    6063! Attention si raz_date est active :
    6164! 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
     69ELSE
     70  tabcntr0(:)=1 ! dummy initialization
     71  ! Initialize parameter or get values from def files
     72  dtime=pdtphys
     73  radpas=1
     74  itau_phy=0
     75ENDIF ! of IF (startphy_file)
     76
     77IF (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
     107ENDIF ! of IF (startphy_file)
     108
     109! read in other variables here ...
     110
     111IF (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
     122ELSE
     123  ! Dummy initialization, but in fact this is later handled in physiq
     124  ftsol(:)=0
     125ENDIF ! of IF (startphy_file)
     126
     127IF (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
     144ELSE
     145  ! Dummy initialization, but in fact this is later handled in physiq
     146  ftsoil(:,:)=0
     147ENDIF ! of IF (startphy_file)
     148
     149IF (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
     157ELSE
     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
     162ENDIF ! of IF (startphy_file)
     163PRINT*,'Albedo du sol <ALBE>', minval(falbe), maxval(falbe)
     164
     165IF (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
     173ELSE
     174  ! Dummy initialization
     175  solsw(:)=0
     176ENDIF ! of IF (startphy_file)
     177PRINT*,'Rayonnement solaire au sol solsw:', minval(solsw), maxval(solsw)
     178
     179IF (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
     187ELSE
     188  ! Dummy initialization
     189  sollw(:)=0
     190ENDIF ! of IF (startphy_file)
     191PRINT*,'Rayonnement IR au sol sollw:', minval(sollw), maxval(solsw)
     192
     193IF (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
     201ELSE
     202  ! Dummy initialization
     203  fder(:)=0
     204ENDIF ! of IF (startphy_file)
     205PRINT*,'Derive des flux fder:', minval(fder), maxval(fder)
     206
     207IF (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
     215ELSE
     216  ! Dummy initialization
     217  dlw(:)=0
     218ENDIF ! of IF (startphy_file)
     219PRINT*,'Derive flux IR dlw:', minval(dlw), maxval(dlw)
     220
     221IF (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
     229ELSE
     230  ! Dummy initialization
     231  sollwdown(:)=0
     232ENDIF ! of IF (startphy_file)
     233PRINT*,'Flux IR vers le bas au sol sollwdown:', minval(sollwdown), maxval(sollwdown)
     234
     235IF (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
     242ELSE
     243  ! Dummy initialization
     244  radsol(:)=0
     245ENDIF ! of IF (startphy_file)
     246PRINT*,'Rayonnement net au sol radsol:', minval(radsol), maxval(radsol)
     247
     248IF (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
     256ELSE
     257  zmea(:)=0
     258ENDIF ! of IF (startphy_file)
     259PRINT*,'OROGRAPHIE SOUS-MAILLE zmea:', minval(zmea), maxval(zmea)
     260
     261IF (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
     269ELSE
     270  zstd(:)=0
     271ENDIF ! of IF (startphy_file)
     272PRINT*,'OROGRAPHIE SOUS-MAILLE zstd:', minval(zstd), maxval(zstd)
     273
     274IF (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
     282ELSE
     283  zsig(:)=0
     284ENDIF ! of IF (startphy_file)
     285PRINT*,'OROGRAPHIE SOUS-MAILLE zsig:', minval(zsig), maxval(zsig)
     286
     287IF (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
     295ELSE
     296  zgam(:)=0
     297ENDIF ! of IF (startphy_file)
     298PRINT*,'OROGRAPHIE SOUS-MAILLE zgam:', minval(zgam), maxval(zgam)
     299
     300IF (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
     308ELSE
     309  zthe(:)=0
     310ENDIF ! of IF (startphy_file)
     311PRINT*,'OROGRAPHIE SOUS-MAILLE zthe:', minval(zthe), maxval(zthe)
     312
     313IF (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
     321ELSE
     322  zpic(:)=0
     323ENDIF ! of IF (startphy_file)
     324PRINT*,'OROGRAPHIE SOUS-MAILLE zpic:', minval(zpic), maxval(zpic)
     325
     326IF (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
     334ELSE
     335  zval(:)=0
     336ENDIF ! of IF (startphy_file)
     337PRINT*,'OROGRAPHIE SOUS-MAILLE zval:', minval(zval), maxval(zval)
     338
     339IF (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
     349ELSE
     350  ancien_ok=.false.
    71351ENDIF
    72 DO i=1,klon
    73   IF (ABS(lat_startphy(i)-latitude_deg(i))>=0.01) THEN
    74     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 abort
    78   ENDIF
    79 ENDDO
    80 
    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) THEN
    84   PRINT*, 'phyetat0: Le champ <longitude> est absent'
    85   CALL abort
    86 ENDIF
    87 DO i=1,klon
    88   IF (ABS(lon_startphy(i)-longitude_deg(i))>=0.01) THEN
    89     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 abort
    93   ENDIF
    94 ENDDO
    95 
    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) THEN
    102          PRINT*, 'phyetat0: Le champ <TS> est absent'
    103          PRINT*, "phyetat0: Lecture echouee pour <TS>"
    104          CALL abort
    105       ELSE
    106          PRINT*, 'phyetat0: Le champ <TS> est present'
    107          xmin = 1.0E+20
    108          xmax = -1.0E+20
    109          DO i = 1, klon
    110             xmin = MIN(ftsol(i),xmin)
    111             xmax = MAX(ftsol(i),xmax)
    112          ENDDO
    113          PRINT*,'Temperature du sol <TS>', xmin, xmax
    114       ENDIF
    115 
    116 
    117 ! Lecture des temperatures du sol profond:
    118 
    119       DO isoil=1, nsoilmx
    120       IF (isoil.GT.99) THEN
    121          PRINT*, "Trop de couches"
    122          CALL abort
    123       ENDIF
    124       WRITE(str2,'(i2.2)') isoil
    125       CALL get_field('Tsoil'//str2,ftsoil(:,isoil),found)
    126       IF (.not.found) THEN
    127          PRINT*, "phyetat0: Le champ <Tsoil"//str2//"> est absent"
    128          PRINT*, "          Il prend donc la valeur de surface"
    129          DO i=1, klon
    130              ftsoil(i,isoil)=ftsol(i)
    131          ENDDO
    132       ENDIF
    133       ENDDO
    134 
    135 ! Lecture de albedo au sol:
    136 
    137       CALL get_field("ALBE", falbe,found)
    138       IF (.not.found) THEN
    139          PRINT*, 'phyetat0: Le champ <ALBE> est absent'
    140          PRINT*, "phyetat0: Lecture echouee pour <ALBE>"
    141          CALL abort
    142       ELSE
    143          xmin = 1.0E+20
    144          xmax = -1.0E+20
    145          DO i = 1, klon
    146             xmin = MIN(falbe(i),xmin)
    147             xmax = MAX(falbe(i),xmax)
    148          ENDDO
    149          PRINT*,'Albedo du sol <ALBE>', xmin, xmax
    150       ENDIF
    151 
    152 ! Lecture rayonnement solaire au sol:
    153 
    154       CALL get_field("solsw",solsw,found)
    155       IF (.not.found) THEN
    156          PRINT*, 'phyetat0: Le champ <solsw> est absent'
    157          PRINT*, 'mis a zero'
    158          solsw = 0.
    159       ENDIF
    160       xmin = 1.0E+20
    161       xmax = -1.0E+20
    162       DO i = 1, klon
    163          xmin = MIN(solsw(i),xmin)
    164          xmax = MAX(solsw(i),xmax)
    165       ENDDO
    166       PRINT*,'Rayonnement solaire au sol solsw:', xmin, xmax
    167 
    168 ! Lecture rayonnement IR au sol:
    169 
    170       CALL get_field("sollw",sollw,found)
    171       IF (.not.found) THEN
    172          PRINT*, 'phyetat0: Le champ <sollw> est absent'
    173          PRINT*, 'mis a zero'
    174          sollw = 0.
    175       ENDIF
    176       xmin = 1.0E+20
    177       xmax = -1.0E+20
    178       DO i = 1, klon
    179          xmin = MIN(sollw(i),xmin)
    180          xmax = MAX(sollw(i),xmax)
    181       ENDDO
    182       PRINT*,'Rayonnement IR au sol sollw:', xmin, xmax
    183 
    184 ! Lecture derive des flux:
    185 
    186       CALL get_field("fder",fder,found)
    187       IF (.not.found) THEN
    188          PRINT*, 'phyetat0: Le champ <fder> est absent'
    189          PRINT*, 'mis a zero'
    190          fder = 0.
    191       ENDIF
    192       xmin = 1.0E+20
    193       xmax = -1.0E+20
    194       DO i = 1, klon
    195          xmin = MIN(fder(i),xmin)
    196          xmax = MAX(fder(i),xmax)
    197       ENDDO
    198       PRINT*,'Derive des flux fder:', xmin, xmax
    199 
    200 ! Lecture derive flux IR:
    201 
    202       CALL get_field("dlw",dlw,found)
    203       IF (.not.found) THEN
    204          PRINT*, 'phyetat0: Le champ <dlw> est absent'
    205          PRINT*, 'mis a zero'
    206          dlw = 0.
    207       ENDIF
    208       xmin = 1.0E+20
    209       xmax = -1.0E+20
    210       DO i = 1, klon
    211          xmin = MIN(dlw(i),xmin)
    212          xmax = MAX(dlw(i),xmax)
    213       ENDDO
    214       PRINT*,'Derive flux IR dlw:', xmin, xmax
    215 
    216 ! Lecture rayonnement IR vers le bas au sol:
    217 
    218       CALL get_field("sollwdown",sollwdown,found)
    219       IF (.not.found) THEN
    220          PRINT*, 'phyetat0: Le champ <sollwdown> est absent'
    221          PRINT*, 'mis a zero'
    222          sollwdown = 0.
    223       ENDIF
    224       xmin = 1.0E+20
    225       xmax = -1.0E+20
    226       DO i = 1, klon
    227          xmin = MIN(sollwdown(i),xmin)
    228          xmax = MAX(sollwdown(i),xmax)
    229       ENDDO
    230       PRINT*,'Flux IR vers le bas au sol sollwdown:', xmin, xmax
    231 
    232 ! Lecture du rayonnement net au sol:
    233 
    234       CALL get_field("RADS",radsol,found)
    235       IF (.not.found) THEN
    236          PRINT*, 'phyetat0: Le champ <RADS> est absent'
    237          CALL abort
    238       ENDIF
    239       xmin = 1.0E+20
    240       xmax = -1.0E+20
    241       DO i = 1, klon
    242          xmin = MIN(radsol(i),xmin)
    243          xmax = MAX(radsol(i),xmax)
    244       ENDDO
    245       PRINT*,'Rayonnement net au sol radsol:', xmin, xmax
    246 
    247 ! Lecture de l'orographie sous-maille:
    248 
    249       CALL get_field("ZMEA",zmea,found)
    250       IF (.not.found) THEN
    251          PRINT*, 'phyetat0: Le champ <ZMEA> est absent'
    252          PRINT*, 'mis a zero'
    253          zmea=0.
    254       ENDIF
    255       xmin = 1.0E+20
    256       xmax = -1.0E+20
    257       DO i = 1, klon
    258          xmin = MIN(zmea(i),xmin)
    259          xmax = MAX(zmea(i),xmax)
    260       ENDDO
    261       PRINT*,'OROGRAPHIE SOUS-MAILLE zmea:', xmin, xmax
    262 
    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       xmin = 1.0E+20
    270       xmax = -1.0E+20
    271       DO i = 1, klon
    272          xmin = MIN(zstd(i),xmin)
    273          xmax = MAX(zstd(i),xmax)
    274       ENDDO
    275       PRINT*,'OROGRAPHIE SOUS-MAILLE zstd:', xmin, xmax
    276 
    277       CALL get_field("ZSIG",zsig,found)
    278       IF (.not.found) THEN
    279          PRINT*, 'phyetat0: Le champ <ZSIG> est absent'
    280          PRINT*, 'mis a zero'
    281          zsig=0.
    282       ENDIF
    283       xmin = 1.0E+20
    284       xmax = -1.0E+20
    285       DO i = 1, klon
    286          xmin = MIN(zsig(i),xmin)
    287          xmax = MAX(zsig(i),xmax)
    288       ENDDO
    289       PRINT*,'OROGRAPHIE SOUS-MAILLE zsig:', xmin, xmax
    290 
    291       CALL get_field("ZGAM",zgam,found)
    292       IF (.not.found) THEN
    293          PRINT*, 'phyetat0: Le champ <ZGAM> est absent'
    294          PRINT*, 'mis a zero'
    295          zgam=0.
    296       ENDIF
    297       xmin = 1.0E+20
    298       xmax = -1.0E+20
    299       DO i = 1, klon
    300          xmin = MIN(zgam(i),xmin)
    301          xmax = MAX(zgam(i),xmax)
    302       ENDDO
    303       PRINT*,'OROGRAPHIE SOUS-MAILLE zgam:', xmin, xmax
    304 
    305       CALL get_field("ZTHE",zthe,found)
    306       IF (.not.found) THEN
    307          PRINT*, 'phyetat0: Le champ <ZTHE> est absent'
    308          PRINT*, 'mis a zero'
    309          zthe=0.
    310       ENDIF
    311       xmin = 1.0E+20
    312       xmax = -1.0E+20
    313       DO i = 1, klon
    314          xmin = MIN(zthe(i),xmin)
    315          xmax = MAX(zthe(i),xmax)
    316       ENDDO
    317       PRINT*,'OROGRAPHIE SOUS-MAILLE zthe:', xmin, xmax
    318 
    319       CALL get_field("ZPIC",zpic,found)
    320       IF (.not.found) THEN
    321          PRINT*, 'phyetat0: Le champ <ZPIC> est absent'
    322          PRINT*, 'mis a zero'
    323          zpic=0.
    324       ENDIF
    325       xmin = 1.0E+20
    326       xmax = -1.0E+20
    327       DO i = 1, klon
    328          xmin = MIN(zpic(i),xmin)
    329          xmax = MAX(zpic(i),xmax)
    330       ENDDO
    331       PRINT*,'OROGRAPHIE SOUS-MAILLE zpic:', xmin, xmax
    332 
    333       CALL get_field("ZVAL",zval,found)
    334       IF (.not.found) THEN
    335          PRINT*, 'phyetat0: Le champ <ZVAL> est absent'
    336          PRINT*, 'mis a zero'
    337          zval=0.
    338       ENDIF
    339       xmin = 1.0E+20
    340       xmax = -1.0E+20
    341       DO i = 1, klon
    342          xmin = MIN(zval(i),xmin)
    343          xmax = MAX(zval(i),xmax)
    344       ENDDO
    345       PRINT*,'OROGRAPHIE SOUS-MAILLE zval:', xmin, xmax
    346 
    347 ! Lecture de TANCIEN:
    348 
    349       ancien_ok = .TRUE.
    350 
    351       CALL get_field("TANCIEN",t_ancien,found)
    352       IF (.not.found) THEN
    353          PRINT*, "phyetat0: Le champ <TANCIEN> est absent"
    354          PRINT*, "Depart legerement fausse. Mais je continue"
    355          ancien_ok = .FALSE.
    356       ENDIF
    357352
    358353! close file
    359 call close_startphy
     354IF (startphy_file) call close_startphy
    360355
    361356! do some more initializations
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r1691 r1718  
    275275      REAL zdtime, zlongi
    276276c
    277       INTEGER i, k, iq, ig, j, ll, ilon, ilat, ilev
     277      INTEGER i, k, iq, ig, j, ll, ilon, ilat, ilev, isoil
    278278c
    279279      REAL zphi(klon,klev)
     
    461461c
    462462         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
    463471
    464472c dtime est defini dans tabcontrol.h et lu dans startphy
Note: See TracChangeset for help on using the changeset viewer.