Ignore:
Timestamp:
Jul 22, 2024, 9:29:09 PM (4 months ago)
Author:
abarral
Message:

Replace most uses of CPP_DUST by the corresponding logical defined in lmdz_cppkeys_wrapper.F90
Convert several files from .F to .f90 to allow Dust to compile w/o rrtm/ecrad
Create lmdz_yoerad.f90
(lint) Remove "!" on otherwise empty line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/radlwsw_m.F90

    r5087 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44module radlwsw_m
    55
     
    119119    !                   droplet concentration, thus larger droplets, thus generally cdltaupi cldtaupd
    120120    !                   it is needed for the diagnostics of the aerosol indirect radiative forcing     
    121     !
     121
    122122    !                  OUTPUTS
    123123    ! heat-----output-R- echauffement atmospherique (visible) (K/jour)
     
    133133    ! solswai---output-R- ray. solaire net absorbe a la surface (aerosol ind)
    134134    ! topswai---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol ind)
    135     !
     135
    136136    ! heat_volc-----output-R- echauffement atmospherique  du au forcage volcanique (visible) (K/s)
    137137    ! cool_volc-----output-R- refroidissement dans l'IR du au forcage volcanique (K/s)
    138     !
     138
    139139    ! ATTENTION: swai and swad have to be interpreted in the following manner:
    140140    ! ---------
     
    146146    ! ok_ade=T & ok_aie=T -aerosol indirect forcing is F_{AI} = topsw-topswai
    147147    !                        aerosol direct forcing is F_{AD} = topswai-topswad
    148     !
     148
    149149    ! --------- RRTM: output RECMWFL
    150150    ! ZEMTD (KPROMA,KLEV+1)         ; TOTAL DOWNWARD LONGWAVE EMISSIVITY
     
    185185    ! 8 = SS   
    186186    ! 9 = NO3   
    187     !
     187
    188188    ! ====================================================================
    189189
     
    511511    ZSOLSWCF_AERO(:,:) =0. !ym missing init 
    512512
    513     !
    514513    ! AI 02.2021
    515514#ifdef CPP_ECRAD
     
    555554       ENDDO
    556555    ENDDO
    557     !
     556
    558557    zdist = dist
    559     !
     558
    560559    PSCT = solaire/zdist/zdist
    561560
     
    592591                PALBP_NEW(i,kk)=alb_dir(iof+i,kk)
    593592             ENDDO
    594              !
     593
    595594          ENDIF
    596595          !albedo SB <<<
     
    636635             ! present-day aerosol concentrations whereas the quantities without the
    637636             ! "A" at the end are for pre-industial (natural-only) aerosol concentrations
    638              !
     637
    639638             PTAUA(i,1,k) = MAX(cldtaupd(iof+i,k), 1.0e-05)! 1e-12 serait instable
    640639             PTAUA(i,2,k) = MAX(cldtaupd(iof+i,k), 1.0e-05)! pour 32-bit machines
     
    650649#endif
    651650       ENDIF
    652        !
     651
    653652       DO k = 1, kflev+1
    654653          DO i = 1, kdlon
     
    656655          ENDDO
    657656       ENDDO
    658        !
     657
    659658!!!!! Modif MPL 6.01.09 avec RRTM, on passe de 5 a 6
    660659       DO kk = 1, 6
     
    675674          ENDDO
    676675       ENDDO
    677        !
     676
    678677       !===== iflag_rrtm ================================================
    679        !     
     678
    680679       IF (iflag_rrtm == 0) THEN       !!!! remettre 0 juste pour tester l'ancien rayt via rrtm
    681           !
     680
    682681          !--- Mise a zero des tableaux output du rayonnement LW-AR4 ----------             
    683682          DO k = 1, kflev+1
     
    800799             ENDDO
    801800          ENDDO
    802           !
     801
    803802       ELSE IF (iflag_rrtm == 1) then 
    804803#ifdef CPP_RRTM
     
    828827             ENDDO
    829828          ENDDO
    830           !
     829
    831830          !--OB
    832831          !--aerosol TOT  - anthropogenic+natural - index 2
    833832          !--aerosol NAT  - natural only          - index 1
    834           !
     833
    835834          DO i = 1, kdlon
    836835             DO k = 1, kflev
    837836                DO kk=1, NSW
    838                    !
     837
    839838                   PTAU_TOT(i,kflev+1-k,kk)=tau_aero_sw_rrtm(i,k,2,kk)
    840839                   PPIZA_TOT(i,kflev+1-k,kk)=piz_aero_sw_rrtm(i,k,2,kk)
    841840                   PCGA_TOT(i,kflev+1-k,kk)=cg_aero_sw_rrtm(i,k,2,kk)
    842                    !
     841
    843842                   PTAU_NAT(i,kflev+1-k,kk)=tau_aero_sw_rrtm(i,k,1,kk)
    844843                   PPIZA_NAT(i,kflev+1-k,kk)=piz_aero_sw_rrtm(i,k,1,kk)
    845844                   PCGA_NAT(i,kflev+1-k,kk)=cg_aero_sw_rrtm(i,k,1,kk)
    846                    !
     845
    847846                ENDDO
    848847             ENDDO
    849848          ENDDO
    850849          !-end OB
    851           !
     850
    852851          !--C. Kleinschmitt
    853852          !--aerosol TOT  - anthropogenic+natural - index 2
    854853          !--aerosol NAT  - natural only          - index 1
    855           !
     854
    856855          DO i = 1, kdlon
    857856             DO k = 1, kflev
    858857                DO kk=1, NLW
    859                    !
     858
    860859                   PTAU_LW_TOT(i,kflev+1-k,kk)=tau_aero_lw_rrtm(i,k,2,kk)
    861860                   PTAU_LW_NAT(i,kflev+1-k,kk)=tau_aero_lw_rrtm(i,k,1,kk)
    862                    !
     861
    863862                ENDDO
    864863             ENDDO
    865864          ENDDO
    866865          !-end C. Kleinschmitt
    867           !     
     866
    868867          DO i = 1, kdlon
    869868             ZCTRSO(i,1)=0.
     
    939938          !    s   ZFLUX_i  , ZFLUC_i , ZFSDWN_i, ZFSUP_i , ZFCDWN_i,ZFCUP_i)
    940939          !    s   'RECMWF ')
    941           !
     940
    942941          IF (lldebug) THEN
    943942             CALL writefield_phy('paprs_i',paprs_i,klev+1)
     
    10981097             ENDIF
    10991098          ENDDO
    1100           !
     1099
    11011100          DO i = 1, kdlon
    11021101             zsolsw(i)    = ZSWFT(i,1)
     
    11061105             ztopsw0(i)   = ZSWFT0_i(i,klev+1)
    11071106             !        ztopsw0(i)   = ZFSDN0(i,klev+1)-ZFSUP0(i,klev+1)
    1108              !         
     1107
    11091108             !        zsollw(i)    = ZFLDN(i,1)      -ZFLUP(i,1)
    11101109             !        zsollw0(i)   = ZFLDN0(i,1)     -ZFLUP0(i,1)
     
    11151114             ztoplw(i)    = ZLWFT(i,klev+1)*(-1)
    11161115             ztoplw0(i)   = ZLWFT0_i(i,klev+1)*(-1)
    1117              !         
     1116
    11181117             IF (fract(i) == 0.) THEN
    11191118!!!!! A REVOIR MPL (20090630) ca n a pas de sens quand fract=0
     
    11911190             ENDDO
    11921191          ENDDO
    1193           !
     1192
    11941193          ! AI ATTENTION Aerosols A REVOIR
    11951194          DO i = 1, kdlon
     
    11971196                DO kk= 1, naero_spc
    11981197                   !      DO kk=1, NSW
    1199                    !
     1198
    12001199                   !      PTAU_TOT(i,kflev+1-k,kk)=tau_aero_sw_rrtm(i,k,2,kk)
    12011200                   !      PPIZA_TOT(i,kflev+1-k,kk)=piz_aero_sw_rrtm(i,k,2,kk)
    12021201                   !      PCGA_TOT(i,kflev+1-k,kk)=cg_aero_sw_rrtm(i,k,2,kk)
    1203                    !
     1202
    12041203                   !      PTAU_NAT(i,kflev+1-k,kk)=tau_aero_sw_rrtm(i,k,1,kk)
    12051204                   !      PPIZA_NAT(i,kflev+1-k,kk)=piz_aero_sw_rrtm(i,k,1,kk)
     
    12071206                   !       ZAEROSOL(i,kflev+1-k,kk)=m_allaer(i,k,kk)
    12081207                   ZAEROSOL(i,kflev+1-k,kk)=m_allaer(i,k,kk)
    1209                    !
     1208
    12101209                ENDDO
    12111210             ENDDO
    12121211          ENDDO
    12131212          !-end OB
    1214           !
     1213
    12151214          !      DO i = 1, kdlon
    12161215          !      DO k = 1, kflev
    12171216          !      DO kk=1, NLW
    1218           !
     1217
    12191218          !      PTAU_LW_TOT(i,kflev+1-k,kk)=tau_aero_lw_rrtm(i,k,2,kk)
    12201219          !      PTAU_LW_NAT(i,kflev+1-k,kk)=tau_aero_lw_rrtm(i,k,1,kk)
    1221           !
     1220
    12221221          !      ENDDO
    12231222          !      ENDDO
    12241223          !      ENDDO
    12251224          !-end C. Kleinschmitt
    1226           !     
     1225
    12271226          DO i = 1, kdlon
    12281227             ZCTRSO(i,1)=0.
     
    14851484                ZSWFT0_i(i,k+1) = ZSWFT0_ii(i,klev+1-k)*fract(i)
    14861485                ZLWFT0_i(i,k+1) = ZLWFT0_ii(i,klev+1-k)
    1487                 !
     1486
    14881487                ZFLUP(i,k+1)  = ZFLUX_i(i,1,klev+1-k)
    14891488                ZFLDN(i,k+1)  = -1.*ZFLUX_i(i,2,klev+1-k)
     
    15401539             ENDIF
    15411540          ENDDO
    1542           !
     1541
    15431542          DO i = 1, kdlon
    15441543             zsolsw(i)    = ZSWFT(i,1)
     
    15501549             ztoplw(i)    = ZLWFT(i,klev+1)*(-1)
    15511550             ztoplw0(i)   = ZLWFT0_i(i,klev+1)*(-1)
    1552              !         
     1551
    15531552             zsollwdown(i)= -1.*ZFLDN(i,1)
    15541553          ENDDO
Note: See TracChangeset for help on using the changeset viewer.