Changeset 2241


Ignore:
Timestamp:
Mar 23, 2015, 10:02:32 PM (9 years ago)
Author:
fhourdin
Message:

Nettoyage des anciens albedo. Elimination de alb1 et alb2
dans pbl_surface (il s'agissait de commentaires) et dans
le etats de démarrage.

Some cleaning of old albedo specification (alb1/alb2)

Location:
LMDZ5/trunk/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90

    r2240 r2241  
    182182!!!
    183183       pplay,     paprs,     pctsrf,                  &
    184 !albedo SB >>>
    185 !       ts,        alb1, alb2,ustar, u10m, v10m,wstar, &
    186184       ts,SFRWL,   alb_dir, alb_dif,ustar, u10m, v10m,wstar, &
    187 !albedo SB <<<
    188185       cdragh,    cdragm,   zu1,    zv1,              &
    189 !albedo SB >>>
    190 !       alb1_m,    alb2_m,    zxsens,   zxevap,        &
    191186       alb_dir_m,    alb_dif_m,  zxsens,   zxevap,    &
    192 !albedo SB <<<
    193187       alb3_lic,  runoff,    snowhgt,   qsnow,     to_ice,    sissnow,  &
    194188       zxtsol,    zxfluxlat, zt2m,     qsat2m,        &
     
    359353                                                                   !wake and off-wake regions
    360354!albedo SB >>>
    361 !    REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)     :: alb1    ! albedo in visible SW interval
    362 !    REAL, DIMENSION(klon, nbsrf), INTENT(INOUT)     :: alb2    ! albedo in near infra-red SW interval
    363355    REAL, DIMENSIOn(6),intent(in) :: SFRWL
    364356    REAL, DIMENSION(klon, nsw, nbsrf), INTENT(INOUT)     :: alb_dir,alb_dif
     
    385377    REAL, DIMENSION(klon),        INTENT(OUT)       :: zv1        ! v wind speed in first layer
    386378!albedo SB >>>
    387 !    REAL, DIMENSION(klon),        INTENT(OUT)       :: alb1_m     ! mean albedo
    388 !    in visible SW interval
    389 !    REAL, DIMENSION(klon),        INTENT(OUT)       :: alb2_m     ! mean albedo
    390 !    in near IR SW interval
    391379    REAL, DIMENSION(klon, nsw),        INTENT(OUT)       :: alb_dir_m,alb_dif_m
    392380!albedo SB <<<
     
    524512    REAL, DIMENSION(klon)              :: yts, yrugos, ypct, yz0_new
    525513!albedo SB >>>
    526 !   REAL, DIMENSION(klon)              :: yalb, yalb1, yalb2
    527514    REAL, DIMENSION(klon)              :: yalb,yalb_vis
    528515!albedo SB <<<
     
    562549    REAL, DIMENSION(klon)              :: AcoefU, AcoefV, BcoefU, BcoefV
    563550    REAL, DIMENSION(klon)              :: ypsref
    564     REAL, DIMENSION(klon)              :: yevap, ytsurf_new, yalb1_new, yalb2_new, yalb3_new
     551    REAL, DIMENSION(klon)              :: yevap, ytsurf_new, yalb3_new
    565552!albedo SB >>>
    566553    REAL, DIMENSION(klon,nsw)          :: yalb_dir_new, yalb_dif_new
     
    882869 zu1(:)=0. ; zv1(:)=0.
    883870!albedo SB >>>
    884 ! alb1_m(:)=0. ; alb2_m(:)=0. ; alb3_lic(:)=0.
    885871  alb_dir_m=0. ; alb_dif_m=0. ; alb3_lic(:)=0.
    886872!albedo SB <<<
     
    948934!!    cdragh = 0.0  ; cdragm = 0.0     ; dflux_t = 0.0   ; dflux_q = 0.0
    949935    ypct = 0.0    ; yts = 0.0        ; ysnow = 0.0
    950 !!    zv1 = 0.0     ; yqsurf = 0.0     ; yalb1 = 0.0     ; yalb2 = 0.0   
     936!!    zv1 = 0.0     ; yqsurf = 0.0
    951937!albedo SB >>>
    952 !    yqsurf = 0.0  ; yalb1 = 0.0      ; yalb2 = 0.0   
    953938    yqsurf = 0.0  ; yalb = 0.0 ; yalb_vis = 0.0
    954939!albedo SB <<<
     
    10921077! Mean calculations of albedo
    10931078!
    1094 ! Albedo at sub-surface
    1095 ! * alb1 : albedo in visible SW interval
    1096 ! * alb2 : albedo in near infrared SW interval
    10971079! * alb  : mean albedo for whole SW interval
    10981080!
    10991081! Mean albedo for grid point
    1100 ! * alb1_m : albedo in visible SW interval
    1101 ! * alb2_m : albedo in near infrared SW interval
    11021082! * alb_m  : mean albedo at whole SW interval
    1103 
    1104 !albedo SB >>>
    1105 !    alb1_m(:) = 0.0
    1106 !    alb2_m(:) = 0.0
    1107 !    DO nsrf = 1, nbsrf
    1108 !       DO i = 1, klon
    1109 !          alb1_m(i) = alb1_m(i) + alb1(i,nsrf) * pctsrf(i,nsrf)
    1110 !          alb2_m(i) = alb2_m(i) + alb2(i,nsrf) * pctsrf(i,nsrf)
    1111 !       ENDDO
    1112 !    ENDDO
    11131083
    11141084    alb_dir_m(:,:) = 0.0
     
    11271097    f1 = 0.5
    11281098!    f1 = 1    ! put f1=1 to recreate old calculations
    1129 
    1130 !    DO nsrf = 1, nbsrf
    1131 !       DO i = 1, klon
    1132 !          alb(i,nsrf) = f1*alb1(i,nsrf) + (1-f1)*alb2(i,nsrf)
    1133 !       ENDDO
    1134 !    ENDDO
    1135 !
    1136 !    DO i = 1, klon
    1137 !       alb_m(i) = f1*alb1_m(i) + (1-f1)*alb2_m(i)
    1138 !    END DO
    1139 
    11401099
    11411100!f1 is already included with SFRWL values in each surf files
     
    12351194          yalb(j)    = alb(i,nsrf)
    12361195!albedo SB >>>
    1237 !         yalb1(j)   = alb1(i,nsrf)
    1238 !         yalb2(j)   = alb2(i,nsrf)
    12391196          yalb_vis(j) = alb_dir(i,1,nsrf)
    12401197          if(nsw==6)then
     
    18091766               ylwdown, yq2m, yt2m, &
    18101767               ysnow, yqsol, yagesno, ytsoil, &
    1811 !albedo SB >>>
    1812 !              yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, &
    18131768               yz0_new, SFRWL, yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat,&
    1814 !albedo SB <<<
    18151769               yqsurf, ytsurf_new, y_dflux_t, y_dflux_q, &
    18161770               y_flux_u1, y_flux_v1 )
     
    18231777!         ytsoil(:,:)=300.
    18241778!         yz0_new(:)=0.001
    1825 !         yalb1_new(:)=0.22
    1826 !         yalb2_new(:)=0.22
    18271779!         yevap(:)=flat/RLVTT
    18281780!         yfluxlat(:)=-flat
     
    18491801               ysnow, yqsurf, yqsol, yagesno, &
    18501802!albedo SB >>>
    1851 !              ytsoil, yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, &
     1803!              ytsoil, yz0_new, yevap, yfluxsens, yfluxlat, &
    18521804               ytsoil, yz0_new, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, &
    18531805!albedo SB <<<
     
    18571809               yalb3_new, yrunoff, &
    18581810               y_flux_u1, y_flux_v1)
    1859           !CALL surf_landice(itap, dtime, knon, ni, &
    1860           !     ysolsw, ysollw, yts, ypplay(:,1), &
    1861           !     ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),&
    1862           !     AcoefH, AcoefQ, BcoefH, BcoefQ, &
    1863           !     AcoefU, AcoefV, BcoefU, BcoefV, &
    1864           !     ypsref, yu1, yv1, yrugoro, pctsrf, &
    1865           !     ysnow, yqsurf, yqsol, yagesno, &
    1866           !     ytsoil, yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, &
    1867           !     ytsurf_new, y_dflux_t, y_dflux_q, &
    1868           !     y_flux_u1, y_flux_v1)
    18691811
    18701812!jyg<
     
    18841826       CASE(is_oce)
    18851827!albedo SB >>>
    1886 !          CALL surf_ocean(rlon, rlat, ysolsw, ysollw, yalb1, &
    18871828           CALL surf_ocean(rlon, rlat, ysolsw, ysollw, yalb_vis, &
    18881829!albedo SB <<<
     
    18951836               ysnow, yqsurf, yagesno, &
    18961837!albedo SB >>>
    1897 !              yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, &
    18981838               yz0_new, SFRWL,yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat,&
    18991839!albedo SB <<<
     
    19191859          CALL surf_seaice( &
    19201860!albedo SB >>>
    1921 !               rlon, rlat, ysolsw, ysollw, yalb1, yfder, &
    19221861               rlon, rlat, ysolsw, ysollw, yalb_vis, yfder, &
    19231862!albedo SB <<<
     
    19301869               ysnow, yqsurf, yqsol, yagesno, ytsoil, &
    19311870!albedo SB >>>
    1932 !               yz0_new, yalb1_new, yalb2_new, yevap, yfluxsens, yfluxlat, &
    19331871               yz0_new, SFRWL, yalb_dir_new, yalb_dif_new, yevap, yfluxsens,yfluxlat,&
    19341872!albedo SB <<<
     
    23032241          d_ts(i,nsrf) = y_d_ts(j)
    23042242!albedo SB >>>
    2305 !          alb1(i,nsrf) = yalb1_new(j) 
    2306 !          alb2(i,nsrf) = yalb2_new(j)
    23072243          do k=1,nsw
    23082244          alb_dir(i,k,nsrf) = yalb_dir_new(j,k)
     
    30552991
    30562992!albedo SB >>>
    3057 !  SUBROUTINE pbl_surface_newfrac(itime, pctsrf_new, pctsrf_old, tsurf, alb1, alb2, ustar, u10m, v10m, tke)
    30582993SUBROUTINE pbl_surface_newfrac(itime, pctsrf_new, pctsrf_old, tsurf,alb_dir,alb_dif, ustar, u10m, v10m, tke) 
    30592994!albedo SB <<<
     
    30753010    REAL, DIMENSION(klon,nbsrf), INTENT(INOUT)        :: tsurf
    30763011!albedo SB >>>
    3077 !   REAL, DIMENSION(klon,nbsrf), INTENT(INOUT)        :: alb1, alb2
    30783012    REAL, DIMENSION(klon,nsw,nbsrf), INTENT(INOUT)       :: alb_dir, alb_dif
    30793013    INTEGER :: k
     
    31243058                tsurf(i,nsrf) = tsurf(i,nsrf_comp1)
    31253059!albedo SB >>>
    3126 !                alb1(i,nsrf)  = alb1(i,nsrf_comp1)
    3127 !                alb2(i,nsrf)  = alb2(i,nsrf_comp1)
    31283060                DO k=1,nsw
    31293061                 alb_dir(i,k,nsrf)=alb_dir(i,k,nsrf_comp1)
     
    31453077                tsurf(i,nsrf) = tsurf(i,nsrf_comp2)*pctsrf_old(i,nsrf_comp2) + tsurf(i,nsrf_comp3)*pctsrf_old(i,nsrf_comp3)
    31463078!albedo SB >>>
    3147 !                alb1(i,nsrf)  = alb1(i,nsrf_comp2) *pctsrf_old(i,nsrf_comp2) + alb1(i,nsrf_comp3) *pctsrf_old(i,nsrf_comp3)
    3148 !                alb2(i,nsrf)  = alb2(i,nsrf_comp2) *pctsrf_old(i,nsrf_comp2) + alb2(i,nsrf_comp3) *pctsrf_old(i,nsrf_comp3)
    31493079                DO k=1,nsw
    31503080                 alb_dir(i,k,nsrf)=alb_dir(i,k,nsrf_comp2)*pctsrf_old(i,nsrf_comp2)+&
  • LMDZ5/trunk/libf/phylmd/phyetat0.F90

    r2237 r2241  
    1010  USE surface_data,     ONLY : type_ocean, version_ocean
    1111  USE phys_state_var_mod, ONLY : ancien_ok, clwcon, detr_therm, dtime, &
    12        du_gwd_rando, dv_gwd_rando, entr_therm, f0, falb1, falb2, fm_therm, &
     12       du_gwd_rando, dv_gwd_rando, entr_therm, f0, fm_therm, &
    1313       falb_dir, falb_dif, &
    1414       ftsol, pbl_tke, pctsrf, q_ancien, radpas, radsol, rain_fall, ratqs, &
     
    386386        DO i = 1, klon
    387387           snow(i, nsrf) = snow(i, 1)
    388         ENDDO
    389      ENDDO
    390   ENDIF
    391 
    392   ! Lecture de albedo de l'interval visible au sol:
    393 
    394   CALL get_field("ALBE", falb1(:, 1), found)
    395   IF (.NOT. found) THEN
    396      PRINT*, 'phyetat0: Le champ <ALBE> est absent'
    397      PRINT*, '          Mais je vais essayer de lire ALBE**'
    398      DO nsrf = 1, nbsrf
    399         IF (nsrf.GT.99) THEN
    400            PRINT*, "Trop de sous-mailles"
    401            call abort_gcm("phyetat0", "", 1)
    402         ENDIF
    403         WRITE(str2, '(i2.2)') nsrf
    404         CALL get_field("ALBE"//str2, falb1(:, nsrf))
    405         xmin = 1.0E+20
    406         xmax = -1.0E+20
    407         DO i = 1, klon
    408            xmin = MIN(falb1(i, nsrf), xmin)
    409            xmax = MAX(falb1(i, nsrf), xmax)
    410         ENDDO
    411         PRINT*, 'Albedo du sol ALBE**:', nsrf, xmin, xmax
    412      ENDDO
    413   ELSE
    414      PRINT*, 'phyetat0: Le champ <ALBE> est present'
    415      PRINT*, '          J ignore donc les autres ALBE**'
    416      xmin = 1.0E+20
    417      xmax = -1.0E+20
    418      DO i = 1, klon
    419         xmin = MIN(falb1(i, 1), xmin)
    420         xmax = MAX(falb1(i, 1), xmax)
    421      ENDDO
    422      PRINT*, 'Neige du sol <ALBE>', xmin, xmax
    423      DO nsrf = 2, nbsrf
    424         DO i = 1, klon
    425            falb1(i, nsrf) = falb1(i, 1)
    426         ENDDO
    427      ENDDO
    428   ENDIF
    429 
    430   ! Lecture de albedo au sol dans l'interval proche infra-rouge:
    431 
    432   CALL get_field("ALBLW", falb2(:, 1), found)
    433   IF (.NOT. found) THEN
    434      PRINT*, 'phyetat0: Le champ <ALBLW> est absent'
    435      PRINT*, '          Mais je vais prendre ALBE**'
    436      DO nsrf = 1, nbsrf
    437         DO i = 1, klon
    438            falb2(i, nsrf) = falb1(i, nsrf)
    439         ENDDO
    440      ENDDO
    441   ELSE
    442      PRINT*, 'phyetat0: Le champ <ALBLW> est present'
    443      PRINT*, '          J ignore donc les autres ALBLW**'
    444      xmin = 1.0E+20
    445      xmax = -1.0E+20
    446      DO i = 1, klon
    447         xmin = MIN(falb2(i, 1), xmin)
    448         xmax = MAX(falb2(i, 1), xmax)
    449      ENDDO
    450      PRINT*, 'Neige du sol <ALBLW>', xmin, xmax
    451      DO nsrf = 2, nbsrf
    452         DO i = 1, klon
    453            falb2(i, nsrf) = falb2(i, 1)
    454388        ENDDO
    455389     ENDDO
  • LMDZ5/trunk/libf/phylmd/phyredem.F90

    r2237 r2241  
    186186
    187187  CALL put_field("QSOL", "Eau dans le sol (mm)", qsol)
    188 
    189   DO nsrf = 1, nbsrf
    190      IF (nsrf.LE.99) THEN
    191         WRITE(str2, '(i2.2)') nsrf
    192         CALL put_field("ALBE"//str2, "albedo de surface No."//str2, &
    193              falb1(:, nsrf))
    194      ELSE
    195         PRINT*, "Trop de sous-mailles"
    196         call abort_gcm("phyredem", "", 1)
    197      ENDIF
    198   ENDDO
    199 
    200   DO nsrf = 1, nbsrf
    201      IF (nsrf.LE.99) THEN
    202         WRITE(str2, '(i2.2)') nsrf
    203         CALL put_field("ALBLW"//str2, "albedo LW de surface No."//str2, &
    204              falb2(:, nsrf))
    205      ELSE
    206         PRINT*, "Trop de sous-mailles"
    207         call abort_gcm("phyredem", "", 1)
    208      ENDIF
    209   ENDDO
    210188
    211189  DO nsrf = 1, nbsrf
  • LMDZ5/trunk/libf/phylmd/physiq.F90

    r2240 r2241  
    14131413  !
    14141414  CALL change_srf_frac(itap, dtime, days_elapsed+1,  &
    1415 !albedo SB >>>
    1416 !       pctsrf, falb1, falb2, ftsol, ustar, u10m, v10m, pbl_tke)
    14171415       pctsrf, falb_dir, falb_dif, ftsol, ustar, u10m, v10m, pbl_tke)
    1418 !albedo SB <<<
    14191416
    14201417  ! Update time and other variables in Reprobus
     
    18581855!>nrlmd+jyg
    18591856          pplay,     paprs,     pctsrf,             &
    1860 !albedo SB >>>
    1861 !          ftsol,falb1,falb2,ustar,u10m,v10m,wstar,  &
    18621857          ftsol,SFRWL,falb_dir,falb_dif,ustar,u10m,v10m,wstar, &
    18631858!albedo SB <<<
     
    33923387!albedo SB <<<
    33933388
    3394 !albedo SB >>>
    3395 !     DO i = 1, klon
    3396 !        albsol1(i) = falb1(i,is_oce) * pctsrf(i,is_oce) &
    3397 !             + falb1(i,is_lic) * pctsrf(i,is_lic) &
    3398 !             + falb1(i,is_ter) * pctsrf(i,is_ter) &
    3399 !             + falb1(i,is_sic) * pctsrf(i,is_sic)
    3400 !        albsol2(i) = falb2(i,is_oce) * pctsrf(i,is_oce) &
    3401 !             + falb2(i,is_lic) * pctsrf(i,is_lic) &
    3402 !             + falb2(i,is_ter) * pctsrf(i,is_ter) &
    3403 !             + falb2(i,is_sic) * pctsrf(i,is_sic)
    3404 !     ENDDO
    3405 !albedo SB <<<
    34063389
    34073390     if (mydebug) then
  • LMDZ5/trunk/libf/phylmd/surf_land_mod.F90

    r2240 r2241  
    1717       lwdown_m, q2m, t2m, &
    1818       snow, qsol, agesno, tsoil, &
    19 !albedo SB >>>
    20 !      z0_new, alb1_new, alb2_new, evap, fluxsens, fluxlat, &
    2119       z0_new, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, &   
    22 !albedo SB <<<
    2320       qsurf, tsurf_new, dflux_s, dflux_l, &
    2421       flux_u1, flux_v1 )
  • LMDZ5/trunk/libf/phylmd/surf_landice_mod.F90

    r2240 r2241  
    1717       ps, u1, v1, gustiness, rugoro, pctsrf, &
    1818       snow, qsurf, qsol, agesno, &
    19 !albedo SB >>>
    20 !      tsoil, z0_new, alb1, alb2, evap, fluxsens, fluxlat, &
    2119       tsoil, z0_new, SFRWL, alb_dir, alb_dif, evap, fluxsens, fluxlat, &
    22 !albedo SB <<<
    2320       tsurf_new, dflux_s, dflux_l, &
    2421       slope, cloudf, &
Note: See TracChangeset for help on using the changeset viewer.