Ignore:
Timestamp:
Nov 28, 2025, 5:34:54 PM (2 months ago)
Author:
Sebastien Nguyen
Message:

rephase LMDZISO with 5864 version of phylmd + bug fixes in physiq_mod + other bugs in isoverif sections. Code now compiles and runs with -debug -isotopes true -isoverif. There are still isoverif error messages for Dexcess getting greater than 1000 on some points at some moments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmdiso/phyredem.F90

    r5662 r5894  
    11!
    2 ! $Id: phyredem.F90 3506 2019-05-16 14:38:11Z ymeurdesoif $
     2! $Id: phyredem.f90 5776 2025-07-15 12:13:19Z evignon $
    33!
    44SUBROUTINE phyredem (fichnom)
     
    99! Purpose: Write restart state for physics.
    1010!-------------------------------------------------------------------------------
     11  USE compbl_mod_h
     12  USE alpale_mod
     13  USE clesphys_mod_h
    1114  USE dimphy, ONLY: klon, klev
    1215  USE fonte_neige_mod,  ONLY : fonte_neige_final
     
    2023                                prw_ancien, prlw_ancien, prsw_ancien, prbsw_ancien,      &
    2124                                ql_ancien, qs_ancien, qbs_ancien, cf_ancien, &
    22                                 rvc_ancien, u_ancien, v_ancien,              &
     25                                rvc_ancien, u_ancien, v_ancien, tke_ancien,  &
    2326                                clwcon, rnebcon, ratqs, pbl_tke,             &
    2427                                wake_delta_pbl_tke, zmax0, f0, sig1, w01,    &
    25                                 wake_deltat, wake_deltaq, wake_s, wake_dens, &
    26                                 awake_dens, cv_gen,                          &
     28                                wake_deltat, wake_deltaq, wake_s, awake_s,  &
     29                                wake_dens, awake_dens, cv_gen,               &
    2730                                wake_cstar,                                  &
    2831                                wake_pe, wake_fip, fm_therm, entr_therm,     &
     
    3134                                du_gwd_rando, du_gwd_front, u10m, v10m, &
    3235                                treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, &
    33 !GG                                delta_sst, ratqs_inter_, dter, dser, dt_ds
    34                                 delta_sst, ratqs_inter_, dter, dser, dt_ds, &
    35                                 hice, tice, bilg_cumul
     36!GG                                delta_sst, ratqs_inter_, dter,
     37                                !dser, dt_ds
     38                                delta_sst, ratqs_inter_, dter, dser,&
     39                              & dt_ds, hice, tice, bilg_cumul, &
    3640!GG
     41                                frac_tersrf, z0m_tersrf,&
     42                              & ratio_z0m_z0h_tersrf,&
     43                              & albedo_tersrf, beta_tersrf,&
     44                              & inertie_tersrf, hcond_tersrf,&
     45                              & tsurfi_tersrf, tsoili_tersrf,&
     46                              & tsoil_depth, qsurf_tersrf,&
     47                              & tsurf_tersrf, tsoil_tersrf,&
     48                              & tsurf_new_tersrf,&
     49                              & cdragm_tersrf, cdragh_tersrf,&
     50                              & swnet_tersrf, lwnet_tersrf,&
     51                              & fluxsens_tersrf, fluxlat_tersrf
     52
    3753#ifdef ISO
    3854  USE phys_state_var_mod, ONLY: xtsol, fxtevap,xtrain_fall, xtsnow_fall,     &
     
    4965#endif
    5066#endif
    51 USE compbl_mod_h
    52   USE alpale_mod
    53     USE clesphys_mod_h
    5467  USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send, carbon_cycle_rad, RCO2_glo
    5568  USE indice_sol_mod, ONLY: nbsrf, is_oce, is_sic, is_ter, is_lic, epsfra
     
    6073  USE ocean_slab_mod, ONLY : nslay, tslab, seaice, tice_slab, fsic
    6174  USE time_phylmdz_mod, ONLY: annee_ref, day_end, itau_phy, pdtphys
    62   use config_ocean_skin_m, only: activate_ocean_skin
     75  USE config_ocean_skin_m, ONLY: activate_ocean_skin
    6376  USE dimsoil_mod_h, ONLY: nsoilmx
    6477
    65   IMPLICIT none
     78  IMPLICIT NONE
    6679  !======================================================================
    6780  CHARACTER*(*) fichnom
     
    7285  REAL qsurf(klon, nbsrf)
    7386  REAL snow(klon, nbsrf)
    74   real fder(klon)
     87  REAL fder(klon)
    7588  REAL run_off_lic_0(klon)
    7689  REAL trs(klon, nbtr)
     
    96109  ! Get variables which will be written to restart file from module
    97110  ! pbl_surface_mod
    98   CALL pbl_surface_final(fder, snow, qsurf,  tsoil &
     111  IF ( iflag_physiq <= 1 ) THEN
     112     CALL pbl_surface_final(fder, snow, qsurf,  tsoil &
    99113#ifdef ISO
    100114       ,xtsnow,Rland_ice &
    101115#endif       
    102116       )
     117  ENDIF
    103118
    104119  ! Get a variable calculated in module fonte_neige_mod
     
    187202    CALL put_field(pass,"FSIC", "fraction glace mer", pctsrf(:, is_sic))
    188203
    189     IF(nbsrf  >99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1)
    190     IF(nsoilmx>99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1)
    191     IF(nsw    >99) CALL abort_physic("phyredem", "Trop de bandes", 1)
     204    IF(nbsrf>99) THEN
     205      PRINT*, "Trop de sous-mailles";  CALL abort_physic("phyredem", "", 1)
     206    END IF
     207    IF(nsoilmx>99) THEN
     208      PRINT*, "Trop de sous-surfaces"; CALL abort_physic("phyredem", "", 1)
     209    END IF
     210    IF(nsw>99) THEN
     211      PRINT*, "Trop de bandes"; CALL abort_physic("phyredem", "", 1)
     212    END IF
    192213
    193214!    Surface variables
     
    196217    IF (iflag_pbl>1 .AND. iflag_wake>=1  .AND. iflag_pbl_split >=1) then
    197218       CALL put_field_srf1(pass, "DELTATS", &
    198                       "w-x surface temperature difference", delta_tsurf(:,:))
    199        CALL put_field_srf1(pass, "BETAS", "Aridity factor", beta_aridity(:,:))
    200     end IF
     219            "w-x surface temperature difference", delta_tsurf(:,:))
     220       CALL put_field_srf1(pass,"BETAS","Aridity factor", beta_aridity(:,:))
     221    END IF
    201222!    End surface variables
    202223
    203224! ================== Albedo =======================================
    204     print*,'PHYREDEM NOUVEAU'
     225    PRINT*,'PHYREDEM NOUVEAU'
    205226    CALL put_field_srf2(pass,"A_dir_SW","Albedo direct",falb_dir(:,:,:))
    206227    CALL put_field_srf2(pass,"A_dif_SW","Albedo diffus",falb_dif(:,:,:))
     
    216237!  CALL put_field_srf2("treedrg","freinage arbres",treedrg(:,:,:))
    217238    CALL put_field(pass,"treedrg_ter","freinage arbres",treedrg(:,:,is_ter))
    218 
     239!AM
     240    CALL put_field_srf1(pass,"frac_tersrf","fraction sous surface", frac_tersrf(:,:))
     241    CALL put_field_srf1(pass,"z0m_tersrf","rugosite sous surface", z0m_tersrf(:,:))
     242    CALL put_field_srf1(pass,"ratio_z0m_z0h_tersrf","ratio rugosites sous surface", ratio_z0m_z0h_tersrf(:,:))
     243    CALL put_field_srf1(pass,"albedo_tersrf","albedo sous surface", albedo_tersrf(:,:))
     244    CALL put_field_srf1(pass,"beta_tersrf","beta sous surface", beta_tersrf(:,:))
     245    CALL put_field_srf1(pass,"inertie_tersrf","inertie sous surface", inertie_tersrf(:,:))
     246    CALL put_field_srf1(pass,"hcond_tersrf","conductivité thermique sous surface", hcond_tersrf(:,:))
     247    CALL put_field_srf1(pass,"tsurfi_tersrf","temperature surface sous surface initiale", tsurfi_tersrf(:,:))
     248    CALL put_field_srf2(pass,"Tsoili","temperature sol sous surface initiale", tsoili_tersrf(:,:,:))
     249    CALL put_field_srf2(pass,"tsoil_depth","profondeur temperature sol sous surface", tsoil_depth(:,:,:))
     250    CALL put_field_srf1(pass,"qsurf_tersrf","humidite surface sous surface", qsurf_tersrf(:,:))
     251    CALL put_field_srf1(pass,"tsurf_tersrf","temperature surface sous surface", tsurf_tersrf(:,:))
     252    CALL put_field_srf1(pass,"tsurf_new_tersrf","temperature surface sous surface", tsurf_new_tersrf(:,:))
     253    CALL put_field_srf1(pass,"cdragm_tersrf","coeff trainee quantite mouvement sous surface", cdragm_tersrf(:,:))
     254    CALL put_field_srf1(pass,"cdragh_tersrf","coeff trainee chaleur sous surface", cdragh_tersrf(:,:))
     255    CALL put_field_srf1(pass,"swnet_tersrf","shortwave net sous surface", swnet_tersrf(:,:))
     256    CALL put_field_srf1(pass,"lwnet_tersrf","longwave net sous surface", lwnet_tersrf(:,:))
     257    CALL put_field_srf1(pass,"fluxsens_tersrf","flux sensible sous surface", fluxsens_tersrf(:,:))
     258    CALL put_field_srf1(pass,"fluxlat_tersrf","flux latent sous surface", fluxlat_tersrf(:,:))
     259    CALL put_field_srf2(pass,"tsoil_tersrf","temperature sol sous surface", tsoil_tersrf(:,:,:))
    219260
    220261    CALL put_field_srf1(pass,"QS"  , "Humidite",qsurf(:,:))
     
    279320
    280321    IF (ok_bs) THEN
    281        CALL put_field(pass,"bs_f", "precipitation neige soufflee", bs_fall)
    282        CALL put_field(pass,"QBSANCIEN", "QBSANCIEN", qbs_ancien)
    283        CALL put_field(pass,"PRBSWANCIEN", "PRBSWANCIEN", prbsw_ancien)
     322      CALL put_field(pass,"bs_f", "precipitation neige soufflee", bs_fall)
     323      CALL put_field(pass,"QBSANCIEN", "QBSANCIEN", qbs_ancien)
     324      CALL put_field(pass,"PRBSWANCIEN", "PRBSWANCIEN", prbsw_ancien)
    284325    ENDIF
    285326
     
    310351
    311352    ! DEB TKE PBL !
     353
     354    IF (ok_advtke) THEN
     355      CALL put_field(pass,"TKEANCIEN", "TKEANCIEN", tke_ancien)
     356    ENDIF
    312357
    313358    IF (iflag_pbl>1) then
     
    336381
    337382    CALL put_field(pass,"WAKE_S", "Wake frac. area", wake_s)
     383
     384    CALL put_field(pass,"AWAKE_S", "Active Wake frac. area", awake_s)
    338385
    339386    CALL put_field(pass,"WAKE_DENS", "Wake num. /unit area", wake_dens)
     
    409456    END IF
    410457
    411     if (ok_gwd_rando) call put_field(pass,"du_gwd_rando", &
     458    IF (ok_gwd_rando) CALL put_field(pass,"du_gwd_rando", &
    412459         "tendency on zonal wind due to flott gravity waves", du_gwd_rando)
    413460
    414     IF (.not. ok_hines .and. ok_gwd_rando) call put_field(pass,"du_gwd_front", &
     461    IF (.NOT. ok_hines .AND. ok_gwd_rando) CALL put_field(pass,"du_gwd_front", &
    415462         "tendency on zonal wind due to acama gravity waves", du_gwd_front)
    416463
    417     if (activate_ocean_skin >= 1) then
    418        if (activate_ocean_skin == 2 .and. type_ocean == 'couple') then
    419           CALL put_field(pass, "delta_sal", &
    420                "ocean-air interface salinity minus bulk salinity", delta_sal)
    421           CALL put_field(pass, "delta_SST", &
    422                "ocean-air interface temperature minus bulk SST", delta_sst)
    423           CALL put_field(pass, "dter", &
    424                "ocean-air interface temperature minus subskin temperature", &
    425                dter)
    426           CALL put_field(pass, "dser", &
    427                "ocean-air interface salinity minus subskin salinity", dser)
    428           CALL put_field(pass, "dt_ds", &
    429                "(tks / tkt) * dTer", dt_ds)
    430        end if
     464    IF (activate_ocean_skin >= 1) THEN
     465      IF (activate_ocean_skin == 2 .AND. type_ocean == 'couple') THEN
     466        CALL put_field(pass, "delta_sal", &
     467             "ocean-air interface salinity minus bulk salinity", delta_sal)
     468        CALL put_field(pass, "delta_SST", &
     469             "ocean-air interface temperature minus bulk SST", delta_sst)
     470        CALL put_field(pass, "dter", &
     471             "ocean-air interface temperature minus subskin temperature", &
     472             dter)
     473        CALL put_field(pass, "dser", &
     474             "ocean-air interface salinity minus subskin salinity", dser)
     475        CALL put_field(pass, "dt_ds", &
     476             "(tks / tkt) * dTer", dt_ds)
     477      END IF
    431478       
    432        CALL put_field(pass, "dS_ns", "delta salinity near surface", ds_ns)
    433        CALL put_field(pass, "dT_ns", "delta temperature near surface", dT_ns)
    434     end if
     479      CALL put_field(pass, "dS_ns", "delta salinity near surface", ds_ns)
     480      CALL put_field(pass, "dT_ns", "delta temperature near surface", dT_ns)
     481    END IF
    435482
    436483#ifdef ISO
    437       write(*,*) 'phyredem 342'
    438       call phyisoredem (pass, &
    439      &           xtsnow, &
    440      &           xtrun_off_lic_0,Rland_ice, &
    441      &           run_off_lic_0)
    442 #endif
    443 
     484    WRITE(*,*) 'phyredem 342'
     485    CALL phyisoredem (pass, &
     486   &           xtsnow, &
     487   &           xtrun_off_lic_0,Rland_ice, &
     488   &           run_off_lic_0)
     489#endif
    444490    IF (pass==1) CALL enddef_restartphy
    445491    IF (pass==2) CALL close_restartphy
     
    472518
    473519  IMPLICIT NONE
    474   INTEGER, INTENT(IN)            :: pass
     520  INTEGER, INTENT(IN)           :: pass
    475521  CHARACTER(LEN=*),  INTENT(IN) :: nam, lnam
    476522  REAL,              INTENT(IN) :: field(:,:,:)
     
    492538
    493539  IMPLICIT NONE
    494   INTEGER, INTENT(IN)            :: pass
     540  INTEGER, INTENT(IN)           :: pass
    495541  CHARACTER(LEN=*),  INTENT(IN) :: nam, lnam
    496542  REAL,              INTENT(IN) :: field(:,:,:)
     
    506552
    507553#ifdef ISO
    508 ! je voulais mettre cette subroutine dans isotopes_mod, mais elle a besoin de put_field_srf1 qui est contenue dans la subroutine phyredem. Si on veut mettre cette routine dans isotopes_mod, il faudrait convertir ce fichier en module pour pouvoir en appeler des routines
    509 
    510       SUBROUTINE phyisoredem (pass, &
     554! je voulais mettre cette subroutine dans isotopes_mod,
     555! mais elle a besoin de put_field_srf1 qui est contenue
     556! dans la subroutine phyredem. Si on veut mettre cette
     557! routine dans isotopes_mod, il faudrait convertir ce
     558! fichier en module pour pouvoir en appeler des routines
     559
     560SUBROUTINE phyisoredem (pass, &
    511561     &          xtsnow, &
    512562     &          xtrun_off_lic_0,Rland_ice, &
    513563     &          run_off_lic_0)
    514       USE dimphy
    515       !USE mod_grid_phy_lmdz
    516       !USE mod_phys_lmdz_para
    517       USE phys_state_var_mod, ONLY: q_ancien,xt_ancien,wake_deltaq,wake_deltaxt, &
    518         xtrain_fall,xtsnow_fall, ql_ancien,xtl_ancien,qs_ancien,xts_ancien, &
    519         xtsol,fxtevap
    520       USE infotrac_phy,ONLY: niso, ntiso
    521       !USE control_mod
    522       USE indice_sol_mod, ONLY: nbsrf
    523       USE iostart, ONLY: put_field
    524       USE isotopes_mod, ONLY: isoName,iso_eau
     564 USE dimphy
     565 !USE mod_grid_phy_lmdz
     566 !USE mod_phys_lmdz_para
     567  USE phys_state_var_mod, ONLY: q_ancien,xt_ancien,wake_deltaq,wake_deltaxt, &
     568         xtrain_fall,xtsnow_fall, ql_ancien,xtl_ancien,qs_ancien,xts_ancien, &
     569         xtsol,fxtevap
     570  USE infotrac_phy,ONLY: niso, ntiso
     571  !USE control_mod
     572  USE indice_sol_mod, ONLY: nbsrf
     573  USE iostart, ONLY: put_field
     574  USE isotopes_mod, ONLY: isoName,iso_eau
    525575#ifdef ISOVERIF
    526       USE isotopes_verif_mod
     576  USE isotopes_verif_mod
    527577#endif
    528578#ifdef ISOTRAC
    529     use isotrac_mod, only: index_zone,index_iso,strtrac
    530 #endif
    531 USE compbl_mod_h
    532 USE alpale_mod
    533       USE clesphys_mod_h
    534 USE dimsoil_mod_h, ONLY: nsoilmx
    535         implicit none
    536 
    537         ! equivalent isotopique de phyredem
    538       ! inputs
    539       !REAL xtsol(niso,klon)
    540       REAL xtsnow(niso,klon,nbsrf)
    541       !REAL xtevap(ntiso,klon,nbsrf)     
    542       REAL xtrun_off_lic_0(niso,klon)
    543       REAL Rland_ice(niso,klon)
    544       real run_off_lic_0(klon)
    545       integer, intent(in) :: pass
    546 
    547       ! locals
    548       real iso_tmp(klon)
    549       real iso_tmp_lonlev(klon,klev)
    550       real iso_tmp_lonsrf(klon,nbsrf)
    551       integer i,ixt,k,nsrf
    552       INTEGER nid, nvarid
    553       INTEGER ierr
    554       CHARACTER*7 str7
    555       CHARACTER*2 str2
    556       CHARACTER*50 outiso
    557       integer lnblnk
     579  USE isotrac_mod, ONLY: index_zone,index_iso,strtrac
     580#endif
     581  USE compbl_mod_h
     582  USE alpale_mod
     583  USE clesphys_mod_h
     584  USE dimsoil_mod_h, ONLY: nsoilmx
     585
     586  IMPLICIT NONE
     587
     588  ! equivalent isotopique de phyredem
     589  ! inputs
     590  !REAL xtsol(niso,klon)
     591  REAL, INTENT(IN)    :: xtsnow(niso,klon,nbsrf)
     592  !REAL xtevap(ntiso,klon,nbsrf)     
     593  REAL, INTENT(IN)    :: xtrun_off_lic_0(niso,klon)
     594  REAL, INTENT(IN)    :: Rland_ice(niso,klon)
     595  REAL, INTENT(IN)    :: run_off_lic_0(klon)
     596  INTEGER, INTENT(IN) :: pass
     597
     598  ! locals
     599  REAL iso_tmp(klon)
     600  REAL iso_tmp_lonlev(klon,klev)
     601  REAL iso_tmp_lonsrf(klon,nbsrf)
     602  INTEGER i,ixt,k,nsrf
     603  INTEGER nid, nvarid
     604  INTEGER ierr
     605  CHARACTER*7 str7
     606  CHARACTER*2 str2
     607  CHARACTER*50 outiso
     608  INTEGER lnblnk
    558609#ifdef ISOTRAC
    559       integer iiso,izone
     610  INTEGER iiso,izone
    560611#endif     
    561612
    562       write(*,*) 'phyisoredem 41: entrée'
     613  WRITE(*,*) 'phyisoredem 41: entrée'
    563614#ifdef ISOVERIF
    564      if (iso_eau.gt.0) then
    565       do k=1,klev
    566         do i=1,klon
    567            call iso_verif_egalite(xt_ancien(iso_eau,i,k),q_ancien(i,k), &
     615  IF (iso_eau.GT.0) THEN
     616    DO k=1,klev
     617      DO i=1,klon
     618        CALL iso_verif_egalite(xt_ancien(iso_eau,i,k),q_ancien(i,k), &
    568619     &           'phyisoredem 50a')
    569            call iso_verif_egalite(xtl_ancien(iso_eau,i,k),ql_ancien(i,k), &
     620        CALL iso_verif_egalite(xtl_ancien(iso_eau,i,k),ql_ancien(i,k), &
    570621     &           'phyisoredem 50b')
    571            call iso_verif_egalite(xts_ancien(iso_eau,i,k),qs_ancien(i,k), &
     622        CALL iso_verif_egalite(xts_ancien(iso_eau,i,k),qs_ancien(i,k), &
    572623     &           'phyisoredem 50c')
    573624         
    574         enddo !do i=1,klon
    575       enddo !do k=1,klev
    576       do i=1,klon
    577         DO nsrf = 1, nbsrf
    578            call iso_verif_egalite(fxtevap(iso_eau,i,nsrf),fevap(i,nsrf), &
     625      ENDDO !do i=1,klon
     626    ENDDO !do k=1,klev
     627    DO i=1,klon
     628      DO nsrf = 1, nbsrf
     629        CALL iso_verif_egalite(fxtevap(iso_eau,i,nsrf),fevap(i,nsrf), &
    579630     &           'phyisoredem 50d')
    580         enddo !DO nsrf = 1, nbsrf
    581        enddo
    582       endif !if (iso_eau.gt.0) then
    583       do i=1,klon
    584        do ixt=1,niso
    585         call iso_verif_noNaN(xtsol(ixt,i),'phyisoredem 72')
    586        enddo !do ixt=1,niso
    587       enddo !do i=1,klon
     631      ENDDO !DO nsrf = 1, nbsrf
     632    ENDDO
     633  ENDIF !if (iso_eau.gt.0) then
     634
     635  DO i=1,klon
     636    DO ixt=1,niso
     637      CALL iso_verif_noNaN(xtsol(ixt,i),'phyisoredem 72')
     638    ENDDO !do ixt=1,niso
     639  ENDDO !do i=1,klon
    588640#ifdef ISOTRAC       
    589       do k=1,klev
    590         do i=1,klon 
    591           call iso_verif_traceur(xt_ancien(1,i,k), &
     641  DO k=1,klev
     642    DO i=1,klon 
     643      CALL iso_verif_traceur(xt_ancien(1,i,k), &
    592644     &                   'phyisoredem 60') 
    593         enddo !do i=1,klon
    594       enddo !do k=1,kle
    595 #endif
    596 #endif
    597 
    598    do ixt=1,ntiso
    599 
    600       outiso = TRIM(isoName(ixt))
    601       i = INDEX(outiso, '_', .TRUE.)
    602       outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso))
    603       write(*,*) 'phyredem 550: ixt,outiso=',ixt,TRIM(outiso)
     645    ENDDO !do i=1,klon
     646  ENDDO !do k=1,kle
     647#endif
     648#endif
     649
     650  do ixt=1,ntiso
     651
     652    outiso = TRIM(isoName(ixt))
     653    i = INDEX(outiso, '_', .TRUE.)
     654    outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso))
     655    write(*,*) 'phyredem 550: ixt,outiso=',ixt,TRIM(outiso)
    604656     
    605       iso_tmp_lonsrf(:,:)=fxtevap(ixt,:,:)
    606       CALL put_field_srf1(pass, "XTEVAP"//TRIM(outiso), "Evaporation de surface",iso_tmp_lonsrf)
    607 
    608       iso_tmp(:)=xtrain_fall(ixt,:)
    609       CALL put_field(pass,    "xtrain_f"//TRIM(outiso), "precipitation liquide",iso_tmp)
    610 
    611       iso_tmp(:)=xtsnow_fall(ixt,:)
    612       CALL put_field(pass,    "xtsnow_f"//TRIM(outiso), "precipitation solide",iso_tmp)
    613 
    614       iso_tmp_lonlev(:,:)=xt_ancien(ixt,:,:)
    615       CALL put_field(pass,    "XTANCIEN"//TRIM(outiso), "QANCIEN",     iso_tmp_lonlev)
    616 
    617       iso_tmp_lonlev(:,:)=xtl_ancien(ixt,:,:)
    618       CALL put_field(pass,   "XTLANCIEN"//TRIM(outiso), "QLANCIEN",    iso_tmp_lonlev)
    619 
    620       iso_tmp_lonlev(:,:)=xts_ancien(ixt,:,:)
    621       CALL put_field(pass,   "XTSANCIEN"//TRIM(outiso), "QSANCIEN",    iso_tmp_lonlev)
    622 
    623       iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)
    624       CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAQ", iso_tmp_lonlev)
    625 
    626       iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)
    627       CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAXT",iso_tmp_lonlev)
    628 
    629       ! variables seulement pour niso:
    630       if (ixt.le.niso) then
     657    iso_tmp_lonsrf(:,:)=fxtevap(ixt,:,:)
     658    CALL put_field_srf1(pass, "XTEVAP"//TRIM(outiso), "Evaporation de surface",iso_tmp_lonsrf)
     659
     660    iso_tmp(:)=xtrain_fall(ixt,:)
     661    CALL put_field(pass,    "xtrain_f"//TRIM(outiso), "precipitation liquide",iso_tmp)
     662
     663    iso_tmp(:)=xtsnow_fall(ixt,:)
     664    CALL put_field(pass,    "xtsnow_f"//TRIM(outiso), "precipitation solide",iso_tmp)
     665
     666    iso_tmp_lonlev(:,:)=xt_ancien(ixt,:,:)
     667    CALL put_field(pass,    "XTANCIEN"//TRIM(outiso), "QANCIEN",     iso_tmp_lonlev)
     668
     669    iso_tmp_lonlev(:,:)=xtl_ancien(ixt,:,:)
     670    CALL put_field(pass,   "XTLANCIEN"//TRIM(outiso), "QLANCIEN",    iso_tmp_lonlev)
     671
     672    iso_tmp_lonlev(:,:)=xts_ancien(ixt,:,:)
     673    CALL put_field(pass,   "XTSANCIEN"//TRIM(outiso), "QSANCIEN",    iso_tmp_lonlev)
     674
     675    iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)
     676    CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAQ", iso_tmp_lonlev)
     677
     678    iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)
     679    CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAXT",iso_tmp_lonlev)
     680
     681    ! variables seulement pour niso:
     682    IF (ixt.LE.niso) THEN
    631683
    632684      iso_tmp_lonsrf(:,:)=xtsnow(ixt,:,:)
     
    642694      CALL put_field(pass,"XTRUNOFFLIC0"//TRIM(outiso), "Runofflic0",  iso_tmp)
    643695
    644       endif ! if (ixt.le.niso) then
    645 
    646       enddo !do ixt=1,niso
    647 
    648       write(*,*) 'phyisoredem 261: sortie'
    649       END SUBROUTINE phyisoredem
     696    ENDIF ! if (ixt.le.niso) then
     697
     698  ENDDO !do ixt=1,niso
     699
     700  WRITE(*,*) 'phyisoredem 261: sortie'
     701
     702END SUBROUTINE phyisoredem
    650703#endif
    651704
Note: See TracChangeset for help on using the changeset viewer.