Ignore:
Timestamp:
May 27, 2013, 9:47:37 AM (12 years ago)
Author:
slebonnois
Message:

EM+SL: bug corrections in Venus physics

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

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/interface_surf.F90

    r892 r973  
    4545      & tsol_rad, tsurf_new, alb_new)
    4646
     47      use write_field_phy
     48
     49      IMPLICIT none
    4750
    4851! Cette routine sert d'aiguillage entre l'atmosphere et la surface en general
     
    141144
    142145  if (check) write(*,*) 'Entree ', modname
    143  
     146
    144147! Initialisations diverses
    145148!
     
    149152
    150153! ADAPTATION GCM POUR CP(T)
    151        zcp(1:klon) = cpdet(tsurf(1:klon))
     154       do ii=1,klon
     155         zcp(ii)=cpdet(tsurf(ii))
     156       enddo
    152157
    153158       IF (soil_model) THEN
    154159           CALL soil(dtime, knon, tsurf, tsoil,soilcap, soilflux)
    155160           cal(1:knon) = zcp(1:knon) / soilcap(1:knon)
     161! for tests:
     162!  call writefield_phy('interfsurf_hq_zcp',zcp,1)
     163!  call writefield_phy('interfsurf_hq_cal',cal,1)
     164!  call writefield_phy('interfsurf_hq_soilcap',soilcap,1)
    156165!       print*,"DIAGNOSTIC SOIL"
    157166!       print*,"soilcap=",soilcap
     
    186195     & tsurf_new, fluxsens, dflux_s)
    187196
     197  use write_field_phy
     198
     199  IMPLICIT none
     200
    188201! Cette routine calcule les fluxs en h a l'interface et eventuellement
    189202! une temperature de surface (au cas ou ok_veget = false)
     
    317330  ENDDO
    318331
     332! for tests: write output fields...
     333!  call writefield_phy('calcul_fluxs_d_ts',d_ts,1)
     334!  call writefield_phy('calcul_fluxs_fluxsens',fluxsens,1)
     335!  call writefield_phy('calcul_fluxs_dflux_s',dflux_s,1)
     336
    319337  END SUBROUTINE calcul_fluxs
    320338!
  • trunk/LMDZ.VENUS/libf/phyvenus/phyetat0.F90

    r892 r973  
    152152      PRINT*,'Rayonnement solaire au sol solsw:', xmin, xmax
    153153
    154 ! Lecture rayonnement IF au sol:
     154! Lecture rayonnement IR au sol:
    155155
    156156      CALL get_field("sollw",sollw,found)
     
    166166         xmax = MAX(sollw(i),xmax)
    167167      ENDDO
    168       PRINT*,'Rayonnement IF au sol sollw:', xmin, xmax
     168      PRINT*,'Rayonnement IR au sol sollw:', xmin, xmax
    169169
    170170! Lecture derive des flux:
     
    183183      ENDDO
    184184      PRINT*,'Derive des flux fder:', xmin, xmax
     185
     186! Lecture derive flux IR:
     187
     188      CALL get_field("dlw",dlw,found)
     189      IF (.not.found) THEN
     190         PRINT*, 'phyetat0: Le champ <dlw> est absent'
     191         PRINT*, 'mis a zero'
     192         dlw = 0.
     193      ENDIF
     194      xmin = 1.0E+20
     195      xmax = -1.0E+20
     196      DO i = 1, klon
     197         xmin = MIN(dlw(i),xmin)
     198         xmax = MAX(dlw(i),xmax)
     199      ENDDO
     200      PRINT*,'Derive flux IR dlw:', xmin, xmax
     201
     202! Lecture rayonnement IR vers le bas au sol:
     203
     204      CALL get_field("sollwdown",sollwdown,found)
     205      IF (.not.found) THEN
     206         PRINT*, 'phyetat0: Le champ <sollwdown> est absent'
     207         PRINT*, 'mis a zero'
     208         sollwdown = 0.
     209      ENDIF
     210      xmin = 1.0E+20
     211      xmax = -1.0E+20
     212      DO i = 1, klon
     213         xmin = MIN(sollwdown(i),xmin)
     214         xmax = MAX(sollwdown(i),xmax)
     215      ENDDO
     216      PRINT*,'Flux IR vers le bas au sol sollwdown:', xmin, xmax
    185217
    186218! Lecture du rayonnement net au sol:
  • trunk/LMDZ.VENUS/libf/phyvenus/phyredem.F90

    r892 r973  
    8787      CALL put_field("sollw","Rayonnement IR a la surface",sollw)
    8888      CALL put_field("fder","Derive de flux",fder)
     89      CALL put_field("dlw","Derivee flux IR",dlw)
     90      CALL put_field("sollwdown","Flux IR vers le bas a la surface",sollwdown)
    8991      CALL put_field("RADS","Rayonnement net a la surface",radsol)
    9092      CALL put_field("ZMEA","zmea Orographie sous-maille",zmea)
  • trunk/LMDZ.VENUS/libf/phyvenus/phys_state_var_mod.F90

    r901 r973  
    117117      ALLOCATE(zuthe(klon),zvthe(klon))
    118118!
    119       ALLOCATE(swnet(klon,klev), lwnet(klon,klev))
     119      ALLOCATE(swnet(klon,klev+1), lwnet(klon,klev+1))
    120120      ALLOCATE(heat(klon,klev), heat0(klon,klev))
    121121      ALLOCATE(cool(klon,klev), cool0(klon,klev))
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq.F

    r953 r973  
    6262      USE mod_phys_lmdz_para, only : is_parallel,jj_nb
    6363      USE phys_state_var_mod ! Variables sauvegardees de la physique
     64      USE write_field_phy
    6465      USE iophy
    6566      IMPLICIT none
     
    810811      endif  ! fin du VENUS TEST
    811812
     813      ! tests: output tendencies
     814!      call writefield_phy('physiq_d_t_vdf',d_t_vdf,klev)
     815!      call writefield_phy('physiq_d_u_vdf',d_u_vdf,klev)
     816!      call writefield_phy('physiq_d_v_vdf',d_v_vdf,klev)
     817!      call writefield_phy('physiq_d_ts',d_ts,1)
     818
    812819c
    813820c Appeler l'ajustement sec
     
    869876
    870877      endif
     878
     879      ! tests: output tendencies
     880!      call writefield_phy('physiq_d_t_ajs',d_t_ajs,klev)
     881!      call writefield_phy('physiq_d_u_ajs',d_u_ajs,klev)
     882!      call writefield_phy('physiq_d_v_ajs',d_v_ajs,klev)
    871883c
    872884      IF (if_ebil.ge.2) THEN
     
    932944      ENDDO
    933945      ENDDO
     946
     947      ! tests: output tendencies
     948!      call writefield_phy('physiq_dtrad',dtrad,klev)
    934949 
    935950      IF (if_ebil.ge.2) THEN
     
    10141029      ENDIF ! fin de test sur ok_orodr
    10151030c
     1031      ! tests: output tendencies
     1032!      call writefield_phy('physiq_d_t_oro',d_t_oro,klev)
     1033!      call writefield_phy('physiq_d_u_oro',d_u_oro,klev)
     1034!      call writefield_phy('physiq_d_v_oro',d_v_oro,klev)
     1035
    10161036c ----------------------------OROLIFT
    10171037      IF (ok_orolf) THEN
     
    10821102
    10831103      ENDIF ! fin de test sur ok_gw_nonoro
     1104
     1105      ! tests: output tendencies
     1106!      call writefield_phy('physiq_d_t_hin',d_t_hin,klev)
     1107!      call writefield_phy('physiq_d_u_hin',d_u_hin,klev)
     1108!      call writefield_phy('physiq_d_v_hin',d_v_hin,klev)
    10841109
    10851110c====================================================================
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F

    r953 r973  
    4040      use dimphy
    4141      USE comgeomphy
     42      use write_field_phy
    4243      IMPLICIT none
    4344#include "dimensions.h"
     
    6465c
    6566      REAL   zheat(klev), zcool(klev)
     67      real  temp(klev)
    6668      REAL   ZFSNET(klev+1),ZFLNET(klev+1)
    6769      REAL   ztopsw, ztoplw
     
    128130
    129131c+++++++ BOUCLE SUR LA GRILLE +++++++++++++++++++++++++
    130       DO 99999 j = 1, klon
     132      DO j = 1, klon
    131133
    132134c======================================================================
     
    229231c LW call
    230232c---------
     233      temp(1:klev)=t(j,1:klev)
    231234      CALL LW_venus_ve(
    232      .        PPB,t(j,:),psi,deltapsi,
     235     .        PPB,temp,psi,deltapsi,
    233236     .        zcool,
    234237     .        ztoplw,zsollw,
     
    239242c---------
    240243      CALL SW_venus_dc(zrmu0, zfract,
    241      S        PPB,t(j,:),
     244     S        PPB,temp,
    242245     S        zheat,
    243246     S        ztopsw,zsolsw,ZFSNET)
     
    261264      ENDDO
    262265c
    263 99999 CONTINUE
     266      ENDDO ! of DO j = 1, klon
    264267c+++++++ FIN BOUCLE SUR LA GRILLE +++++++++++++++++++++++++
     268! for tests: write output fields...
     269!      call writefield_phy('radlwsw_heat',heat,klev)
     270!      call writefield_phy('radlwsw_cool',cool,klev)
     271!      call writefield_phy('radlwsw_radsol',radsol,1)
     272!      call writefield_phy('radlwsw_topsw',topsw,1)
     273!      call writefield_phy('radlwsw_toplw',toplw,1)
     274!      call writefield_phy('radlwsw_solsw',solsw,1)
     275!      call writefield_phy('radlwsw_sollw',sollw,1)
     276!      call writefield_phy('radlwsw_sollwdown',sollwdown,1)
     277!      call writefield_phy('radlwsw_swnet',swnet,klev+1)
     278!      call writefield_phy('radlwsw_lwnet',lwnet,klev+1)
    265279
    266280c tests
Note: See TracChangeset for help on using the changeset viewer.