Ignore:
Timestamp:
Mar 12, 2015, 12:07:43 PM (9 years ago)
Author:
Laurent Fairhead
Message:

New ocean albedo.

To activate the new scheme, put iflag_albedo=1 in physiq.def

To activate chlorophyll concentration effect on albedo,
put ok_chlorophyll=y in def file

and download file named chlorophyll.nc
chlorophyll.nc has the same dimension as the model grid with 12 months data,
(i=lon, j=lat, L=1:12) and can be degraded from the original file of dimension
i=1:4320 , j=1:2160 , L=1:12
ada:/workgpfs/rech/psl/rpsl949/clima/chlor_seasonal_clim_seawifs.nc

For 96X96 resolution, chlorophyll.nc file is in
ada:/workgpfs/rech/psl/rpsl949/clima/chlorophyll.nc

  1. Baek
File:
1 edited

Legend:

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

    r2224 r2227  
    865865
    866866  REAL zzz
     867!albedo SB >>>
     868  real,dimension(6),save :: SFRWL
     869!albedo SB <<<
    867870
    868871  !======================================================================
     
    13491352     mskocean_beta=.FALSE.
    13501353
     1354!albedo SB >>>
     1355     select case(nsw)
     1356     case(2)
     1357     SFRWL(1)=0.45538747
     1358     SFRWL(2)=0.54461211
     1359     case(4)
     1360     SFRWL(1)=0.45538747
     1361     SFRWL(2)=0.32870591
     1362     SFRWL(3)=0.18568763
     1363     SFRWL(4)=3.02191470E-02
     1364     case(6)
     1365     SFRWL(1)=1.28432794E-03
     1366     SFRWL(2)=0.12304168
     1367     SFRWL(3)=0.33106142
     1368     SFRWL(4)=0.32870591
     1369     SFRWL(5)=0.18568763
     1370     SFRWL(6)=3.02191470E-02
     1371     end select
     1372
     1373
     1374!albedo SB <<<
     1375
    13511376     OPEN(99,file='beta_crf.data',status='old', &
    13521377          form='formatted',err=9999)
     
    13851410  !
    13861411  CALL change_srf_frac(itap, dtime, days_elapsed+1,  &
    1387        pctsrf, falb1, falb2, ftsol, ustar, u10m, v10m, pbl_tke)
    1388 
     1412!albedo SB >>>
     1413!       pctsrf, falb1, falb2, ftsol, ustar, u10m, v10m, pbl_tke)
     1414       pctsrf, falb_dir, falb_dif, ftsol, ustar, u10m, v10m, pbl_tke)
     1415!albedo SB <<<
    13891416
    13901417  ! Update time and other variables in Reprobus
     
    18201847!>nrlmd+jyg
    18211848          pplay,     paprs,     pctsrf,             &
    1822           ftsol,falb1,falb2,ustar,u10m,v10m,wstar,  &
     1849!albedo SB >>>
     1850!          ftsol,falb1,falb2,ustar,u10m,v10m,wstar,  &
     1851          ftsol,SFRWL,falb_dir,falb_dif,ustar,u10m,v10m,wstar, &
     1852!albedo SB <<<
    18231853          cdragh,    cdragm,  u1,    v1,            &
    1824           albsol1,   albsol2,   sens,    evap,      &
     1854!albedo SB >>>
     1855!          albsol1,   albsol2,   sens,    evap,      &
     1856          albsol_dir,   albsol_dif,   sens,    evap,   & 
     1857!albedo SB <<<
    18251858          albsol3_lic,runoff,   snowhgt,   qsnow, to_ice, sissnow, &
    18261859          zxtsol,    zxfluxlat, zt2m,    qsat2m,  &
     
    18881921        call writefield_phy('q_seri',q_seri,llm)
    18891922     endif
     1923
     1924
     1925!albedo SB >>>
     1926 albsol1=0.
     1927 albsol2=0.
     1928 falb1=0.
     1929 falb2=0.
     1930select case(nsw)
     1931case(2)
     1932 albsol1=albsol_dir(:,1)
     1933 albsol2=albsol_dir(:,2)
     1934 falb1=falb_dir(:,1,:)
     1935 falb2=falb_dir(:,2,:)
     1936case(4)
     1937 albsol1=albsol_dir(:,1)
     1938 albsol2=albsol_dir(:,2)*SFRWL(2)+albsol_dir(:,3)*SFRWL(3)+albsol_dir(:,4)*SFRWL(4)
     1939 albsol2=albsol2/(SFRWL(2)+SFRWL(3)+SFRWL(4))
     1940 falb1=falb_dir(:,1,:)
     1941 falb2=falb_dir(:,2,:)*SFRWL(2)+falb_dir(:,3,:)*SFRWL(3)+falb_dir(:,4,:)*SFRWL(4)
     1942 falb2=falb2/(SFRWL(2)+SFRWL(3)+SFRWL(4))
     1943case(6)
     1944 albsol1=albsol_dir(:,1)*SFRWL(1)+albsol_dir(:,2)*SFRWL(2)+albsol_dir(:,3)*SFRWL(3)
     1945 albsol1=albsol1/(SFRWL(1)+SFRWL(2)+SFRWL(3))
     1946 albsol2=albsol_dir(:,4)*SFRWL(4)+albsol_dir(:,5)*SFRWL(5)+albsol_dir(:,6)*SFRWL(6)
     1947 albsol2=albsol2/(SFRWL(4)+SFRWL(5)+SFRWL(6))
     1948 falb1=falb_dir(:,1,:)*SFRWL(1)+falb_dir(:,2,:)*SFRWL(2)+falb_dir(:,3,:)*SFRWL(3)
     1949 falb1=falb1/(SFRWL(1)+SFRWL(2)+SFRWL(3))
     1950 falb2=falb_dir(:,4,:)*SFRWL(4)+falb_dir(:,5,:)*SFRWL(5)+falb_dir(:,6,:)*SFRWL(6)
     1951 falb2=falb2/(SFRWL(4)+SFRWL(5)+SFRWL(6))
     1952end select
     1953!albedo SB <<<
     1954
    18901955
    18911956     CALL evappot(klon,nbsrf,ftsol,pplay(:,1),cdragh, &
     
    33003365  IF (MOD(itaprad,radpas).EQ.0) THEN
    33013366
    3302      DO i = 1, klon
    3303         albsol1(i) = falb1(i,is_oce) * pctsrf(i,is_oce) &
    3304              + falb1(i,is_lic) * pctsrf(i,is_lic) &
    3305              + falb1(i,is_ter) * pctsrf(i,is_ter) &
    3306              + falb1(i,is_sic) * pctsrf(i,is_sic)
    3307         albsol2(i) = falb2(i,is_oce) * pctsrf(i,is_oce) &
    3308              + falb2(i,is_lic) * pctsrf(i,is_lic) &
    3309              + falb2(i,is_ter) * pctsrf(i,is_ter) &
    3310              + falb2(i,is_sic) * pctsrf(i,is_sic)
    3311      ENDDO
     3367!albedo SB >>> 
     3368  if(ok_chlorophyll)then
     3369  print*,"-- reading chlorophyll"
     3370  call readchlorophyll(debut)
     3371  endif
     3372  !do i=1,klon
     3373  !if(chl_con(i)>1.) print*,i,chl_con(i),pctsrf(i,is_ter)
     3374  !enddo
     3375!albedo SB <<<
     3376
     3377!albedo SB >>>
     3378!     DO i = 1, klon
     3379!        albsol1(i) = falb1(i,is_oce) * pctsrf(i,is_oce) &
     3380!             + falb1(i,is_lic) * pctsrf(i,is_lic) &
     3381!             + falb1(i,is_ter) * pctsrf(i,is_ter) &
     3382!             + falb1(i,is_sic) * pctsrf(i,is_sic)
     3383!        albsol2(i) = falb2(i,is_oce) * pctsrf(i,is_oce) &
     3384!             + falb2(i,is_lic) * pctsrf(i,is_lic) &
     3385!             + falb2(i,is_ter) * pctsrf(i,is_ter) &
     3386!             + falb2(i,is_sic) * pctsrf(i,is_sic)
     3387!     ENDDO
     3388!albedo SB <<<
    33123389
    33133390     if (mydebug) then
     
    33573434        CALL radlwsw &
    33583435             (dist, rmu0, fract,  &
    3359              paprs, pplay,zxtsol,albsol1, albsol2,  &
     3436!albedo SB >>>
     3437!             paprs, pplay,zxtsol,albsol1, albsol2,  &
     3438             paprs, pplay,zxtsol,SFRWL,albsol_dir, albsol_dif,  &
     3439!albedo SB <<<
    33603440             t_seri,q_seri,wo, &
    33613441             cldfrarad, cldemirad, cldtaurad, &
     
    34103490              CALL radlwsw &
    34113491                   (dist, rmu0, fract,  &
    3412                    paprs, pplay,zxtsol,albsol1, albsol2,  &
     3492!albedo SB >>>
     3493!                   paprs, pplay,zxtsol,albsol1, albsol2,  &
     3494                   paprs, pplay,zxtsol,SFRWL,albsol_dir, albsol_dif, &
     3495!albedo SB <<<
    34133496                   t_seri,q_seri,wo, &
    34143497                   cldfra, cldemi, cldtau, &
Note: See TracChangeset for help on using the changeset viewer.