Changeset 1456


Ignore:
Timestamp:
Nov 22, 2010, 2:16:44 PM (14 years ago)
Author:
musat
Message:

phyetat0, phyredem: correction dimension verticale pbl_tke: pbl_tke(:,1:klev+1,:)
physiq: pour pouvoir fixer la longitude solaire avec la nouvelle orbite
JYG/IM

Location:
LMDZ5/branches/LMDZ5V2.0-dev/libf/phylmd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/LMDZ5V2.0-dev/libf/phylmd/phyetat0.F

    r1454 r1456  
    2121      USE infotrac
    2222      USE traclmdz_mod,    ONLY : traclmdz_from_restart
    23       USE carbon_cycle_mod,ONLY :
    24      &     carbon_cycle_tr, carbon_cycle_cpl, co2_send
     23      USE carbon_cycle_mod,ONLY : carbon_cycle_tr, carbon_cycle_cpl
    2524
    2625      IMPLICIT none
     
    134133
    135134       
    136       clesphy0(1)=tab_cntrl( 5 )
    137       clesphy0(2)=tab_cntrl( 6 )
    138       clesphy0(3)=tab_cntrl( 7 )
    139       clesphy0(4)=tab_cntrl( 8 )
    140       clesphy0(5)=tab_cntrl( 9 )
    141       clesphy0(6)=tab_cntrl( 10 )
    142       clesphy0(7)=tab_cntrl( 11 )
    143       clesphy0(8)=tab_cntrl( 12 )
     135
     136         IF( clesphy0(1).NE.tab_cntrl( 5 ) )  THEN
     137             clesphy0(1)=tab_cntrl( 5 )
     138         ENDIF
     139
     140         IF( clesphy0(2).NE.tab_cntrl( 6 ) )  THEN
     141             clesphy0(2)=tab_cntrl( 6 )
     142         ENDIF
     143
     144         IF( clesphy0(3).NE.tab_cntrl( 7 ) )  THEN
     145             clesphy0(3)=tab_cntrl( 7 )
     146         ENDIF
     147
     148         IF( clesphy0(4).NE.tab_cntrl( 8 ) )  THEN
     149             clesphy0(4)=tab_cntrl( 8 )
     150         ENDIF
     151
     152         IF( clesphy0(5).NE.tab_cntrl( 9 ) )  THEN
     153             clesphy0(5)=tab_cntrl( 9 )
     154         ENDIF
     155
     156         IF( clesphy0(6).NE.tab_cntrl( 10 ) )  THEN
     157             clesphy0(6)=tab_cntrl( 10 )
     158         ENDIF
     159
     160         IF( clesphy0(7).NE.tab_cntrl( 11 ) )  THEN
     161             clesphy0(7)=tab_cntrl( 11 )
     162         ENDIF
     163
     164         IF( clesphy0(8).NE.tab_cntrl( 12 ) )  THEN
     165             clesphy0(8)=tab_cntrl( 12 )
     166         ENDIF
     167
    144168
    145169c
     
    817841          ENDIF
    818842          WRITE(str2,'(i2.2)') nsrf
    819           CALL get_field("TKE"//str2,pbl_tke(:,1:klev,nsrf),found)
     843          CALL get_field("TKE"//str2,pbl_tke(:,1:klev+1,nsrf),found)
    820844          IF (.NOT. found) THEN
    821845            PRINT*, "phyetat0: <TKE"//str2//"> est absent"
     
    824848          xmin = 1.0E+20
    825849          xmax = -1.0E+20
    826           DO k = 1, klev
     850          DO k = 1, klev+1
    827851            DO i = 1, klon
    828852              xmin = MIN(pbl_tke(i,k,nsrf),xmin)
     
    10541078
    10551079         END DO
     1080         
    10561081         CALL traclmdz_from_restart(trs)
    1057 
    1058          IF (carbon_cycle_cpl) THEN
    1059             ALLOCATE(co2_send(klon), stat=ierr)
    1060             IF (ierr /= 0) CALL abort_gcm
    1061      &           ('phyetat0','pb allocation co2_send',1)
    1062             CALL get_field("co2_send",co2_send,found)
    1063             IF (.NOT. found) THEN
    1064                PRINT*,"phyetat0: Le champ <co2_send> est absent"
    1065                PRINT*,"Initialisation uniforme a co2_ppm=",co2_ppm
    1066                co2_send(:) = co2_ppm
    1067             END IF
    1068          END IF
    10691082      END IF
    10701083
  • LMDZ5/branches/LMDZ5V2.0-dev/libf/phylmd/phyredem.F

    r1454 r1456  
    1111      USE pbl_surface_mod,  ONLY : pbl_surface_final
    1212      USE phys_state_var_mod
    13       USE iostart
     13      USE iostart 
    1414      USE traclmdz_mod, ONLY : traclmdz_to_restart
    1515      USE infotrac
    1616      USE control_mod
    17       USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send
    1817
    1918      IMPLICIT none
     
    9897      CALL put_var("controle","Parametres de controle",tab_cntrl)
    9998c
    100 
    10199      CALL put_field("longitude",
    102100     .               "Longitudes de la grille physique",rlon)
     
    289287            WRITE(str2,'(i2.2)') nsrf
    290288            CALL put_field("TKE"//str2,"Energ. Cineti. Turb."//str2,
    291      .                     pbl_tke(:,1:klev,nsrf))
     289     .                     pbl_tke(:,1:klev+1,nsrf))
    292290          ELSE
    293291            PRINT*, "Trop de sous-mailles"
     
    337335            CALL put_field("trs_"//tname(iiq),"",trs(:,it))
    338336         END DO
    339          IF (carbon_cycle_cpl) THEN
    340             IF (.NOT. ALLOCATED(co2_send)) THEN
    341                ! This is the case of create_etat0_limit, ce0l
    342                ALLOCATE(co2_send(klon))
    343                co2_send(:) = co2_ppm0
    344             END IF
    345             CALL put_field("co2_send","co2_ppm for coupling",co2_send)
    346          END IF
    347337      END IF
    348338
  • LMDZ5/branches/LMDZ5V2.0-dev/libf/phylmd/physiq.F

    r1454 r1456  
    12501250cym Attention pbase pas initialise dans concvl !!!!
    12511251          pbase=0
     1252          paire_ter(:)=0.   
    12521253cIM 180608
    12531254c         pmflxr=0.
     
    18461847! doit donc etre placé avant radlwsw et pbl_surface
    18471848
    1848 ! calcul selon la routine utilisee pour les planetes
    1849       if (new_orbit) then
    1850         call ymds2ju(year_cur, mth_eq, day_eq,0., jD_eq)
    1851         day_since_equinox = (jD_cur + jH_cur) - jD_eq
    1852 !        day_since_equinox = (jD_cur) - jD_eq
    1853         call solarlong(day_since_equinox, zlongi, dist)
    1854       else     
    1855 ! calcul selon la routine utilisee pour l'AR4
     1849!!!   jyg 17 Sep 2010 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     1850      call ymds2ju(year_cur, mth_eq, day_eq,0., jD_eq)
     1851      day_since_equinox = (jD_cur + jH_cur) - jD_eq
     1852!
    18561853!   choix entre calcul de la longitude solaire vraie ou valeur fixee a
    18571854!   solarlong0
    1858         if (solarlong0<-999.) then
    1859            CALL orbite(REAL(days_elapsed+1),zlongi,dist)
    1860         else
     1855      if (solarlong0<-999.) then
     1856       if (new_orbit) then
     1857! calcul selon la routine utilisee pour les planetes
     1858        call solarlong(day_since_equinox, zlongi, dist)
     1859       else
     1860! calcul selon la routine utilisee pour l'AR4
     1861        CALL orbite(REAL(days_elapsed+1),zlongi,dist)
     1862       endif
     1863      else
    18611864           zlongi=solarlong0  ! longitude solaire vraie
    18621865           dist=1.            ! distance au soleil / moyenne
    1863         endif
    18641866      endif
     1867!!!
     1868
    18651869      if(prt_level.ge.1)                                                &
    18661870     &    write(lunout,*)'Longitude solaire ',zlongi,solarlong0,dist
     
    33753379     I                   cdragh,coefh,u1,v1,ftsol,pctsrf,
    33763380     I                   frac_impa, frac_nucl,
    3377      I                   pphis,airephy,dtime,itap,
    3378      I                   rlon,rlat,qx(:,:,ivap),da,phi,mp,upwd,dnwd)
     3381     I                   pphis,airephy,dtime,itap)
    33793382
    33803383
Note: See TracChangeset for help on using the changeset viewer.