Ignore:
Timestamp:
Nov 21, 2019, 4:43:45 PM (4 years ago)
Author:
lguez
Message:

Merge revisions 3427:3600 of trunk into branch Ocean_skin

Location:
LMDZ6/branches/Ocean_skin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Ocean_skin

  • LMDZ6/branches/Ocean_skin/libf/phylmd/phytrac_mod.F90

    • Property svn:keywords set to Id
    r3418 r3605  
    5454CONTAINS
    5555
     56  SUBROUTINE phytrac_init()
     57    USE dimphy
     58    USE infotrac_phy, ONLY: nbtr
     59    IMPLICIT NONE
     60
     61       ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
     62       ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr),d_tr_cv(klon,klev,nbtr))
     63       ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
     64       ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
     65       ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
     66       ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
     67       ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr),qDi(klon,klev,nbtr))
     68       ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
     69       ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
     70       ALLOCATE(d_tr_th(klon,klev,nbtr))
     71       ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr),d_tr_lessi_nucl(klon,klev,nbtr))
     72
     73  END SUBROUTINE phytrac_init
     74
    5675  SUBROUTINE phytrac(                                 &
    5776       nstep,     julien,   gmtime,   debutphy,       &
     
    332351    !                    -- INITIALIZATION --
    333352    !######################################################################
    334     IF (debutphy) THEN
    335        ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
    336        ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr),d_tr_cv(klon,klev,nbtr))
    337        ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
    338        ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
    339        ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
    340        ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
    341        ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr),qDi(klon,klev,nbtr))
    342        ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
    343        ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
    344        ALLOCATE(d_tr_th(klon,klev,nbtr))
    345        ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr),d_tr_lessi_nucl(klon,klev,nbtr))
    346     ENDIF
    347353
    348354    DO k=1,klev
     
    405411       !Config Key  = convscav
    406412       !Config Desc = Convective scavenging switch: 0=off, 1=on.
    407        !Config Def  = .false.
     413       !Config Def  = .FALSE.
    408414       !Config Help =
    409415       !
    410416!$OMP MASTER
    411        convscav_omp=.false.
     417       convscav_omp=.FALSE.
    412418       call getin('convscav', convscav_omp)
    413419       iflag_vdf_trac_omp=1
     
    479485       CASE('co2i')
    480486          source(:,:)=0.
     487          lessivage  = .FALSE.
     488          aerosol(:) = .FALSE.
     489          pbl_flg(:) = 1
     490          iflag_the_trac= 1
     491          iflag_vdf_trac= 1
     492          iflag_con_trac= 1
    481493#ifdef CPP_StratAer
    482494       CASE('coag')
     
    506518             CASE('lmdz')
    507519                IF (convscav.and.aerosol(it)) THEN
    508                    flag_cvltr(it)=.true.
     520                   flag_cvltr(it)=.TRUE.
    509521                   ccntrAA(it) =ccntrAA_in    !--a modifier par JYG a lire depuis fichier
    510522                   ccntrENV(it)=ccntrENV_in
    511523                   coefcoli(it)=coefcoli_in
    512524                ELSE
    513                    flag_cvltr(it)=.false.
     525                   flag_cvltr(it)=.FALSE.
    514526                ENDIF
    515527
    516528             CASE('repr')
    517                  flag_cvltr(it)=.false.
     529                 flag_cvltr(it)=.FALSE.
    518530
    519531             CASE('inca')
    520532!                IF ((it.EQ.id_Rn222) .OR. ((it.GE.id_SO2) .AND. (it.LE.id_NH3)) ) THEN
    521533!                   !--gas-phase species
    522 !                   flag_cvltr(it)=.false.
     534!                   flag_cvltr(it)=.FALSE.
    523535!
    524536!                ELSEIF ( (it.GE.id_CIDUSTM) .AND. (it.LE.id_AIN) ) THEN
    525537!                   !--insoluble aerosol species
    526 !                   flag_cvltr(it)=.true.
     538!                   flag_cvltr(it)=.TRUE.
    527539!                   ccntrAA(it)=0.7
    528540!                   ccntrENV(it)=0.7
     
    530542!                ELSEIF ( (it.EQ.id_Pb210) .OR. ((it.GE.id_CSSSM) .AND. (it.LE.id_SSN))) THEN
    531543!                   !--soluble aerosol species
    532 !                   flag_cvltr(it)=.true.
     544!                   flag_cvltr(it)=.TRUE.
    533545!                   ccntrAA(it)=0.9
    534546!                   ccntrENV(it)=0.9
     
    540552                !--test OB
    541553                !--for now we do not scavenge in cvltr
    542                 flag_cvltr(it)=.false.
     554                flag_cvltr(it)=.FALSE.
    543555
    544556             CASE('co2i')
    545557                !--co2 tracers are not scavenged
    546                 flag_cvltr(it)=.false.
     558                flag_cvltr(it)=.FALSE.
    547559
    548560#ifdef CPP_StratAer
    549561             CASE('coag')
    550562                IF (convscav.and.aerosol(it)) THEN
    551                    flag_cvltr(it)=.true.
     563                   flag_cvltr(it)=.TRUE.
    552564                   ccntrAA(it) =ccntrAA_in   
    553565                   ccntrENV(it)=ccntrENV_in
    554566                   coefcoli(it)=coefcoli_in
    555567                ELSE
    556                    flag_cvltr(it)=.false.
     568                   flag_cvltr(it)=.FALSE.
    557569                ENDIF
    558570#endif
     
    562574          !
    563575       ELSE ! iflag_con .ne. 3
    564           flag_cvltr(:) = .false.
     576          flag_cvltr(:) = .FALSE.
    565577       ENDIF
    566578       !
     
    590602       IF (lessivage .AND. type_trac .EQ. 'inca') THEN
    591603          CALL abort_physic('phytrac', 'lessivage=T config_inca=inca impossible',1)
    592           STOP
     604!          STOP
    593605       ENDIF
    594606       !
    595     END IF ! of IF (debutphy)
     607    ENDIF ! of IF (debutphy)
    596608    !############################################ END INITIALIZATION #######
    597609
     
    637649       !   -- CO2 interactif --
    638650       !   -- source is updated with FF and BB emissions
    639        !   -- OB => PC need to add net flux from ocean and orchidee
     651       !   -- and net fluxes from ocean and orchidee
    640652       !   -- sign convention : positive into the atmosphere
     653
    641654       CALL tracco2i(pdtphys, debutphy, &
    642655            xlat, xlon, pphis, pphi, &
     
    754767#endif
    755768
    756     END IF ! convection
     769    ENDIF ! convection
    757770
    758771    !======================================================================
     
    792805       END DO ! it
    793806
    794     END IF ! Thermiques
     807    ENDIF ! Thermiques
    795808
    796809    !======================================================================
     
    878891       CALL abort_physic('iflag_vdf_trac', 'cas non prevu',1)
    879892       !
    880     END IF ! couche limite
     893    ENDIF ! couche limite
    881894
    882895    !======================================================================
     
    968981                      zdz(i,k)=(paprs(i,k)-paprs(i,k+1))/zrho(i,k)/RG
    969982                      !
    970                    END DO
    971                 END DO
     983                   ENDDO
     984                ENDDO
    972985
    973986                DO k=klev-1, 1, -1
     
    10141027                      !                                (1.-1./(frac_impa(i,k)*frac_nucl(i,k)))
    10151028                      !--------------
    1016                    END DO
    1017                 END DO
    1018              END IF
    1019           END DO
     1029                   ENDDO
     1030                ENDDO
     1031             ENDIF
     1032          ENDDO
    10201033          ! *********   end modified old version
    10211034
     
    10531066                      ! ----------------------------------------------------------------------
    10541067                      tr_seri(i,k,it)=tr_seri(i,k,it)*frac_impa(i,k)*frac_nucl(i,k)
    1055                    END DO
    1056                 END DO
    1057              END IF
    1058           END DO
     1068                   ENDDO
     1069                ENDDO
     1070             ENDIF
     1071          ENDDO
    10591072
    10601073          ! *********   end old version
    10611074       ENDIF  !  iflag_lscav . EQ. 1, 2, 3 or 4
    10621075       !
    1063     END IF !  lessivage
     1076    ENDIF !  lessivage
    10641077
    10651078
Note: See TracChangeset for help on using the changeset viewer.