Changeset 2640


Ignore:
Timestamp:
Sep 29, 2016, 6:42:07 PM (8 years ago)
Author:
oboucher
Message:

Removing the repetition of 113 lines on aerosol and cloud properties copied by error
during svn 2618. The two lines of initialisation for mass_solu have been moved.
The 4xCO2 call to radiation is now done with cldfrarad, cldtaurad and cldemirad
as this was not intended.

File:
1 edited

Legend:

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

    r2639 r2640  
    34323432       ELSE
    34333433          tausum_aero(:,:,:) = 0.
     3434          mass_solu_aero(:,:) = 0.
     3435          mass_solu_aero_pi(:,:) = 0.
    34343436          IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    34353437             tau_aero(:,:,:,:) = 1.e-15
     
    35823584          CALL readchlorophyll(debut)
    35833585       ENDIF
    3584 
    3585        !
    3586        !jq - introduce the aerosol direct and first indirect radiative forcings
    3587        !jq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    3588        IF (flag_aerosol .gt. 0) THEN
    3589           IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    3590              IF (.NOT. aerosol_couple) THEN
    3591                 !
    3592                 CALL readaerosol_optic( &
    3593                      debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3594                      pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3595                      mass_solu_aero, mass_solu_aero_pi,  &
    3596                      tau_aero, piz_aero, cg_aero,  &
    3597                      tausum_aero, tau3d_aero)
    3598              ENDIF
    3599           ELSE                       ! RRTM radiation
    3600              IF (aerosol_couple .AND. config_inca == 'aero' ) THEN
    3601                 abort_message='config_inca=aero et rrtm=1 impossible'
    3602                 call abort_physic(modname,abort_message,1)
    3603              ELSE
    3604                 !
    3605 #ifdef CPP_RRTM
    3606                 IF (NSW.EQ.6) THEN
    3607                    !--new aerosol properties
    3608                    !
    3609                    CALL readaerosol_optic_rrtm( debut, aerosol_couple, &
    3610                         new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3611                         pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3612                         tr_seri, mass_solu_aero, mass_solu_aero_pi,  &
    3613                         tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm,  &
    3614                         tausum_aero, tau3d_aero)
    3615 
    3616                 ELSE IF (NSW.EQ.2) THEN
    3617                    !--for now we use the old aerosol properties
    3618                    !
    3619                    CALL readaerosol_optic( &
    3620                         debut, new_aod, flag_aerosol, itap, jD_cur-jD_ref, &
    3621                         pdtphys, pplay, paprs, t_seri, rhcl, presnivs,  &
    3622                         mass_solu_aero, mass_solu_aero_pi,  &
    3623                         tau_aero, piz_aero, cg_aero,  &
    3624                         tausum_aero, tau3d_aero)
    3625                    !
    3626                    !--natural aerosols
    3627                    tau_aero_sw_rrtm(:,:,1,:)=tau_aero(:,:,3,:)
    3628                    piz_aero_sw_rrtm(:,:,1,:)=piz_aero(:,:,3,:)
    3629                    cg_aero_sw_rrtm (:,:,1,:)=cg_aero (:,:,3,:)
    3630                    !--all aerosols
    3631                    tau_aero_sw_rrtm(:,:,2,:)=tau_aero(:,:,2,:)
    3632                    piz_aero_sw_rrtm(:,:,2,:)=piz_aero(:,:,2,:)
    3633                    cg_aero_sw_rrtm (:,:,2,:)=cg_aero (:,:,2,:)
    3634                 ELSE
    3635                    abort_message='Only NSW=2 or 6 are possible with ' &
    3636                         // 'aerosols and iflag_rrtm=1'
    3637                    call abort_physic(modname,abort_message,1)
    3638                 ENDIF
    3639 
    3640                 !--call LW optical properties for tropospheric aerosols
    3641                 !--only works for INCA aerosol (aerosol_couple = TRUE)
    3642                 CALL aeropt_lw_rrtm(aerosol_couple,paprs,tr_seri)
    3643                 !
    3644 #else
    3645                 abort_message='You should compile with -rrtm if running ' &
    3646                      // 'with iflag_rrtm=1'
    3647                 call abort_physic(modname,abort_message,1)
    3648 #endif
    3649                 !
    3650              ENDIF
    3651           ENDIF
    3652        ELSE
    3653           tausum_aero(:,:,:) = 0.
    3654           mass_solu_aero(:,:) = 0.
    3655           mass_solu_aero_pi(:,:) = 0.
    3656           IF (iflag_rrtm .EQ. 0) THEN !--old radiation
    3657              tau_aero(:,:,:,:) = 1.e-15
    3658              piz_aero(:,:,:,:) = 1.
    3659              cg_aero(:,:,:,:)  = 0.
    3660           ELSE
    3661              tau_aero_sw_rrtm(:,:,:,:) = 1.e-15
    3662              tau_aero_lw_rrtm(:,:,:,:) = 1.e-15
    3663              piz_aero_sw_rrtm(:,:,:,:) = 1.0
    3664              cg_aero_sw_rrtm(:,:,:,:)  = 0.0
    3665           ENDIF
    3666        ENDIF
    3667        !
    3668        !--STRAT AEROSOL
    3669        !--updates tausum_aero,tau_aero,piz_aero,cg_aero
    3670        IF (flag_aerosol_strat.GT.0) THEN
    3671           IF (prt_level .GE.10) THEN
    3672              PRINT *,'appel a readaerosolstrat', mth_cur
    3673           ENDIF
    3674           IF (iflag_rrtm.EQ.0) THEN
    3675            IF (flag_aerosol_strat.EQ.1) THEN
    3676              CALL readaerosolstrato(debut)
    3677            ELSE
    3678              abort_message='flag_aerosol_strat must equal 1 for rrtm=0'
    3679              call abort_physic(modname,abort_message,1)
    3680            ENDIF
    3681           ELSE
    3682 #ifdef CPP_RRTM
    3683             IF (flag_aerosol_strat.EQ.1) THEN
    3684              CALL readaerosolstrato1_rrtm(debut)
    3685             ELSEIF (flag_aerosol_strat.EQ.2) THEN
    3686              CALL stratosphere_mask(t_seri, pplay, latitude_deg)
    3687              CALL readaerosolstrato2_rrtm(debut)
    3688             ELSE
    3689              abort_message='flag_aerosol_strat must equal 1 or 2 for rrtm=1'
    3690              call abort_physic(modname,abort_message,1)
    3691             ENDIF
    3692 #else
    3693              abort_message='You should compile with -rrtm if running ' &
    3694                   // 'with iflag_rrtm=1'
    3695              call abort_physic(modname,abort_message,1)
    3696 #endif
    3697           ENDIF
    3698        ENDIF
    3699        !--fin STRAT AEROSOL
    37003586
    37013587!--if ok_suntime_rrtm we use ancillay data for RSUN
     
    38303716                                !albedo SB <<<
    38313717                     t_seri,q_seri,wo, &
    3832                      cldfra, cldemi, cldtau, &
     3718                     cldfrarad, cldemirad, cldtaurad, &
    38333719                     ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, &
    38343720                     flag_aerosol_strat, &
Note: See TracChangeset for help on using the changeset viewer.