Ignore:
Timestamp:
Dec 18, 2015, 8:27:39 PM (8 years ago)
Author:
oboucher
Message:

limiting iflag_rrtm=0 to NSW=2 case (NSW=4 and 6 were possible with slightly different averaging procedures)
limiting iflag_rrtm choices to 0 and 1
limiting iflag_albedo choices to 0 and 1
cleaning up surface ocean albedo parametrisations
fmagic and pmagic corrections are now done in surf_ocean_albedo.F90
fmagic and pmagic corrections also possible for iflag_rrtm=1 now

File:
1 edited

Legend:

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

    r2394 r2413  
    426426
    427427!albedo SB >>>
    428 !      PALBD(i,1) = alb1(iof+i)
    429 !      PALBD(i,2) = alb2(iof+i)
    430 !         PALBD_NEW(i,1) = alb1(iof+i)   !!!!! A REVOIR (MPL) PALBD_NEW en
    431 !         fonction bdes SW
    432 !         do kk=2,NSW
    433 !           PALBD_NEW(i,kk) = alb2(iof+i)
    434 !         enddo
    435 !      PALBP(i,1) = alb1(iof+i)
    436 !      PALBP(i,2) = alb2(iof+i)
    437 !
    438 !         PALBP_NEW(i,1) = alb1(iof+i)     !!!!! A REVOIR (MPL) PALBP_NEW en
    439 !         fonction bdes SW
    440 !         do kk=2,NSW
    441 !           PALBP_NEW(i,kk) = alb2(iof+i)
    442 !         enddo
    443 
    444       if(iflag_rrtm==0)then
    445         select case(nsw)
    446         case(2)
    447           PALBD(i,1)=alb_dif(iof+i,1)
    448           PALBD(i,2)=alb_dif(iof+i,2)
    449           PALBP(i,1)=alb_dir(iof+i,1)
    450           PALBP(i,2)=alb_dir(iof+i,2)
    451         case(4)
    452           PALBD(i,1)=alb_dif(iof+i,1)
    453           PALBD(i,2)=(alb_dif(iof+i,2)*SFRWL(2)+alb_dif(iof+i,3)*SFRWL(3) &
    454                  +alb_dif(iof+i,4)*SFRWL(4))/(SFRWL(2)+SFRWL(3)+SFRWL(4))
    455           PALBP(i,1)=alb_dir(iof+i,1)
    456           PALBP(i,2)=(alb_dir(iof+i,2)*SFRWL(2)+alb_dir(iof+i,3)*SFRWL(3) &
    457                  +alb_dir(iof+i,4)*SFRWL(4))/(SFRWL(2)+SFRWL(3)+SFRWL(4))
    458         case(6)
    459           PALBD(i,1)=(alb_dif(iof+i,1)*SFRWL(1)+alb_dif(iof+i,2)*SFRWL(2) &
    460                  +alb_dif(iof+i,3)*SFRWL(3))/(SFRWL(1)+SFRWL(2)+SFRWL(3))
    461           PALBD(i,2)=(alb_dif(iof+i,4)*SFRWL(4)+alb_dif(iof+i,5)*SFRWL(5) &
    462                  +alb_dif(iof+i,6)*SFRWL(6))/(SFRWL(4)+SFRWL(5)+SFRWL(6))
    463           PALBP(i,1)=(alb_dir(iof+i,1)*SFRWL(1)+alb_dir(iof+i,2)*SFRWL(2)  &
    464                  +alb_dir(iof+i,3)*SFRWL(3))/(SFRWL(1)+SFRWL(2)+SFRWL(3))
    465           PALBP(i,2)=(alb_dir(iof+i,4)*SFRWL(4)+alb_dir(iof+i,5)*SFRWL(5)  &
    466                  +alb_dir(iof+i,6)*SFRWL(6))/(SFRWL(4)+SFRWL(5)+SFRWL(6))
    467         end select
    468       elseif(iflag_rrtm==1)then
     428!
     429      IF (iflag_rrtm==0) THEN
     430!
     431        PALBD(i,1)=alb_dif(iof+i,1)
     432        PALBD(i,2)=alb_dif(iof+i,2)
     433        PALBP(i,1)=alb_dir(iof+i,1)
     434        PALBP(i,2)=alb_dir(iof+i,2)
     435!
     436      ELSEIF (iflag_rrtm==1) THEn
     437!
    469438        DO kk=1,NSW
    470          PALBD_NEW(i,kk)=alb_dif(iof+i,kk)
    471          PALBP_NEW(i,kk)=alb_dir(iof+i,kk)
     439          PALBD_NEW(i,kk)=alb_dif(iof+i,kk)
     440          PALBP_NEW(i,kk)=alb_dir(iof+i,kk)
    472441        ENDDO
    473       endif
     442!
     443      ENDIF
    474444!albedo SB <<<
    475 
    476 
    477445
    478446
     
    666634       ENDIF
    667635
    668              
    669           DO i=1,kdlon
    670           DO k=1,kflev+1
    671          ZSWFT0_i(1:klon,k) = ZFSDN0(1:klon,k)-ZFSUP0(1:klon,k)
    672          ZLWFT0_i(1:klon,k)=-ZFLDN0(1:klon,k)-ZFLUP0(1:klon,k)
     636       ZSWFT0_i(:,:) = ZFSDN0(:,:)-ZFSUP0(:,:)
     637       ZLWFT0_i(:,:) =-ZFLDN0(:,:)-ZFLUP0(:,:)
     638
     639       DO i=1,kdlon
     640       DO k=1,kflev+1
    673641!        print *,'iof i k klon klev=',iof,i,k,klon,klev
    674642         lwdn0 ( iof+i,k)   = ZFLDN0 ( i,k)
     
    680648         swup0 ( iof+i,k)   = ZFSUP0 ( i,k)
    681649         swup  ( iof+i,k)   = ZFSUP  ( i,k)
    682           ENDDO 
    683           ENDDO 
     650       ENDDO 
     651       ENDDO 
    684652!          print*,'SW_AR4 ZFSDN0 1 , klev:',ZFSDN0(1:klon,1),ZFSDN0(1:klon,klev)
    685653!          print*,'SW_AR4 swdn0  1 , klev:',swdn0(1:klon,1),swdn0(1:klon,klev)
Note: See TracChangeset for help on using the changeset viewer.