Ignore:
Timestamp:
Sep 9, 2008, 3:22:23 PM (16 years ago)
Author:
lsce
Message:
  • Modifications liées au calcul des nouveau sous-fractions
  • Nettoyage de ocean slab : il reste uniquement la version avec glace de mer forcé
  • Nouveaux variables pour distiguer la version et type d'ocean : type_ocean=force/slab/couple, version_ocean=opa8/nemo pour couplé ou version_ocean=sicOBS pour slab

JG

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r987 r996  
    2424      USE vampir
    2525      USE pbl_surface_mod, ONLY : pbl_surface
    26       USE surface_data,     ONLY : ocean, ok_veget
     26      USE change_srf_frac_mod
     27      USE surface_data,     ONLY : type_ocean, ok_veget
    2728      USE phys_local_var_mod ! Variables internes non sauvegardees de la physique
    2829      USE phys_state_var_mod ! Variables sauvegardees de la physique
    29 
    30 
    31       USE ocean_slab_mod, ONLY   : ocean_slab_get_vars
    32       USE ocean_cpl_mod, ONLY    : ocean_cpl_get_vars
    33       USE ocean_forced_mod, ONLY : ocean_forced_get_vars
    3430      USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
    3531      USE phys_output_mod
     
    120116      LOGICAL, SAVE :: rnpb=.TRUE.
    121117c$OMP THREADPRIVATE(rnpb)
    122 cIM "slab" ocean
    123       REAL tslab(klon)    !Temperature du slab-ocean
    124       REAL seaice(klon)   !glace de mer (kg/m2)
    125       REAL fluxo(klon)    !flux turbulents ocean-glace de mer
    126       REAL fluxg(klon)    !flux turbulents ocean-atmosphere
    127118      REAL amn, amx
    128119      INTEGER igout
     
    699690      REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque
    700691C                             ! type de sous-surface et pondere par la fraction
     692      REAL slab_wfbils(klon)  ! bilan de chaleur au sol pour le cas de slab, sur les points d'ocean
     693
    701694      REAL fder(klon)         
    702695      REAL ve(klon) ! integr. verticale du transport meri. de l'energie
     
    715708      SAVE lmt_pas                ! frequence de mise a jour
    716709c$OMP THREADPRIVATE(lmt_pas)
    717 cIM
    718       REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE
    719 
    720 cym      SAVE pctsrf                 ! sous-fraction du sol
    721710
    722711cIM sorties
     
    12391228c appel a la lecture du run.def physique
    12401229c
    1241          call conf_phys(ocean, ok_veget, ok_journe, ok_mensuel,
     1230         call conf_phys(ok_journe, ok_mensuel,
    12421231     .                  ok_instan, ok_hf,
    12431232     .                  solarlong0,seuil_inversion,
     
    12791268!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    12801269
    1281          CALL phyetat0 ("startphy.nc",ocean, ok_veget,clesphy0,tabcntr0)
     1270         CALL phyetat0 ("startphy.nc",clesphy0,tabcntr0)
    12821271cIM begin
    12831272          print*,'physiq: clwcon rnebcon ratqs',clwcon(1,1),rnebcon(1,1)
     
    12881277
    12891278!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1290 
    1291 
    1292        DO i=1,klon
    1293          IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
    1294      $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
    1295      $       THEN
    1296             WRITE(*,*)
    1297      $   'physiq apres lecture de restart: pb sous surface au point ',
    1298      $   i, pctsrf(i, 1 : nbsrf)
    1299          ENDIF
    1300       ENDDO
    1301 
    13021279c
    13031280C on remet le calendrier a zero
     
    15181495       call phys_output_open(jjmp1,nqmax,nlevSTD,clevSTD,nbteta,
    15191496     &                        ctetaSTD,dtime,presnivs,ok_veget,
    1520      &                        ocean,iflag_pbl,ok_mensuel,ok_journe,
     1497     &                        type_ocean,iflag_pbl,ok_mensuel,ok_journe,
    15211498     &                        ok_hf,ok_instan,nid_files)
    15221499c$OMP END MASTER
     
    15811558c
    15821559      ENDIF
    1583 c
    1584 c   ****************     Fin  de   IF ( debut  )   ***************
    1585 c
     1560!
     1561!   ****************     Fin  de   IF ( debut  )   ***************
     1562!
     1563!
     1564! Incrementer le compteur de la physique
     1565!
     1566      itap   = itap + 1
     1567      julien = MOD(NINT(xjour),360)
     1568      if (julien .eq. 0) julien = 360
     1569
     1570!
     1571! Update fraction of the sub-surfaces (pctsrf) and
     1572! initialize, where a new fraction has appeared, all variables depending
     1573! on the surface fraction.
     1574!
     1575      CALL change_srf_frac(itap, dtime, julien,
     1576     *     pctsrf, falb1, falb2, ftsol, u10m, v10m, pbl_tke)
     1577
    15861578
    15871579! Tendances bidons pour les processus qui n'affectent pas certaines
     
    17251717cIM END
    17261718c
    1727 c Incrementer le compteur de la physique
    1728 c
    1729       itap   = itap + 1
    1730       julien = MOD(NINT(xjour),360)
    1731       if (julien .eq. 0) julien = 360
    1732 c
    17331719c Mettre en action les conditions aux limites (albedo, sst, etc.).
    17341720c Prescrire l'ozone et calculer l'albedo sur l'ocean.
     
    18361822     s     zxtsol,    zxfluxlat, zt2m,    qsat2m,
    18371823     s     d_t_vdf,   d_q_vdf,   d_u_vdf, d_v_vdf,
    1838      s     ycoefh,    pctsrf_new,               
     1824     s     ycoefh,    slab_wfbils,               
    18391825     d     qsol,      zq2m,      s_pblh,  s_lcl,
    18401826     d     s_capCL,   s_oliqCL,  s_cteiCL,s_pblT,
     
    18471833     -     dsens,     devap,     zxsnow,
    18481834     -     zxfluxt,   zxfluxq,   q2m,     fluxq, pbl_tke )
    1849 c
    1850 c
    1851       pctsrf(:,:) = pctsrf_new(:,:)
     1835
    18521836     
    18531837!-----------------------------------------------------------------------------------------
     
    33323316     .     zxfqcalving, zxfqfonte, zxffonte)
    33333317
    3334       IF (ocean == 'slab') THEN
    3335          ! Get some variables from module ocean_slab_mod
    3336          CALL ocean_slab_get_vars(tslab, seaice, fluxo, fluxg)
    3337       ELSEIF (ocean == 'couple') THEN
    3338          ! Get some variables from module ocean_cpl_mod
    3339          CALL ocean_cpl_get_vars(fluxo, fluxg)
    3340       ELSE
    3341          ! Get some variables from module ocean_forced_mod
    3342          CALL ocean_forced_get_vars(fluxo, fluxg)
    3343       ENDIF
    3344 
    33453318
    33463319c Commente par abderrahmane le 11 2 08
Note: See TracChangeset for help on using the changeset viewer.