Changeset 3125


Ignore:
Timestamp:
Dec 14, 2017, 8:55:21 AM (6 years ago)
Author:
acozic
Message:

Update some routines to coupled LMDZ6 with REPROBUS

Location:
LMDZ6/trunk/libf
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r3002 r3125  
    4545  USE ioipsl_getin_p_mod, ONLY: getin_p
    4646  USE slab_heat_transp_mod, ONLY: ini_slab_transp_geom
     47#ifdef REPROBUS
     48  USE CHEM_REP, ONLY : Init_chem_rep_phys
     49#endif
    4750  IMPLICIT NONE
    4851
     
    177180          rlonudyn,rlatudyn,rlonvdyn,rlatvdyn)
    178181#endif
     182    IF (type_trac == 'repr') THEN
     183#ifdef REPROBUS
     184       CALL Init_chem_rep_phys(klon_omp,nbp_lev)
     185#endif
     186    END IF
    179187  END IF
    180188
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r3124 r3125  
    17301730  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_trac(:)
    17311731  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_trac_cum(:)
     1732#ifdef REPROBUS
     1733  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_nas(:)
     1734#endif
    17321735  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dtr_vdf(:)
    17331736  TYPE(ctrl_out), SAVE, ALLOCATABLE :: o_dtr_the(:)
  • LMDZ6/trunk/libf/phylmd/phys_output_mod.F90

    r3082 r3125  
    3535    USE iophy
    3636    USE dimphy
    37     USE infotrac_phy, ONLY: nqtot, nqo, niadv, tname, ttext
     37    USE infotrac_phy, ONLY: nqtot, nqo, niadv, tname, ttext, type_trac
    3838    USE ioipsl
    3939    USE phys_cal_mod, only : hour, calend
     
    4646    USE vertical_layers_mod, ONLY: ap,bp,preff,presnivs, aps, bps, pseudoalt
    4747    USE time_phylmdz_mod, ONLY: day_ini, itau_phy, start_time, annee_ref, day_ref
     48#ifdef REPROBUS
     49    USE chem_rep, ONLY: nbnas, tnamenas, ttextnas
     50#endif
    4851#ifdef CPP_XIOS
    4952    ! ug Pour les sorties XIOS
     
    156159    IF (.NOT. ALLOCATED(o_trac)) ALLOCATE(o_trac(nqtot))
    157160    IF (.NOT. ALLOCATED(o_trac_cum)) ALLOCATE(o_trac_cum(nqtot))
     161#ifdef REPROBUS
     162    IF (.NOT. ALLOCATED(o_nas)) ALLOCATE(o_nas(nbnas))
     163#endif
    158164    ALLOCATE(o_dtr_the(nqtot),o_dtr_con(nqtot),o_dtr_lessi_impa(nqtot))
    159165    ALLOCATE(o_dtr_lessi_nucl(nqtot),o_dtr_insc(nqtot),o_dtr_bcscav(nqtot))
     
    572578            ENDDO
    573579      ENDIF
     580      IF (type_trac=='repr') THEN
     581#ifdef REPROBUS
     582         DO iiq=1,nbnas
     583            o_nas(iiq) = ctrl_out((/ 4, 5, 5, 5, 10, 10, 11, 11, 11, 11 /), &
     584                 tnamenas(iiq),ttextnas(iiq), "-", &
     585                 (/ '', '', '', '', '', '', '', '', '', '' /))
     586         ENDDO
     587#endif
     588      ENDIF
    574589
    575590   ENDDO !  iff
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r3124 r3125  
    168168         o_uxv, o_vxq, o_vxT, o_wxq, o_vxphi, &
    169169         o_wxT, o_uxu, o_vxv, o_TxT, o_trac, &
     170#ifdef REPROBUS
     171         o_nas, &
     172#endif
    170173         o_dtr_vdf, o_dtr_the, o_dtr_con, &
    171174         o_dtr_lessi_impa, o_dtr_lessi_nucl, &
     
    316319         surf_PM25_sulf, tau_strat_550, tausum_strat, &
    317320         vsed_aer, tau_strat_1020, f_r_wet
     321#endif
     322
     323#ifdef REPROBUS
     324    USE CHEM_REP, ONLY : nas, nbnas, tnamenas, ttextnas
    318325#endif
    319326
     
    20512058                ENDDO
    20522059             ENDIF
     2060#ifndef REPROBUS
    20532061             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
     2062#endif
    20542063            ENDIF
    20552064          ENDDO
    20562065       ENDIF
     2066
     2067       IF (type_trac == 'repr') THEN
     2068#ifdef REPROBUS
     2069           DO iq=1,nbnas
     2070             CALL histwrite_phy(o_nas(iq), nas(:,:,iq))
     2071           ENDDO
     2072#endif
     2073       ENDIF
     2074
    20572075       ENDIF   !(iflag_phytrac==1)
    20582076
  • LMDZ6/trunk/libf/phylmd/phytrac_mod.F90

    r3109 r3125  
    508508                   flag_cvltr(it)=.false.
    509509                ENDIF
     510
     511             CASE('repr')
     512                 flag_cvltr(it)=.false.
    510513
    511514             CASE('inca')
  • LMDZ6/trunk/libf/phylmd/tracreprobus_mod.F90

    r2320 r3125  
    7272          WRITE(*,*)it,'nqtot',nqtot,'nbtr',nbtr
    7373          IF (it < nqtot) THEN
    74              WRITE(*,*)'ici',it,nqtot
     74             WRITE(*,*)'iciav',it,nqtot
    7575#ifdef REPROBUS
    76              CALL minmaxqfi_chimie(tr_seri(1,1,it),0.,1.e10,'avant chimie ')
     76             CALL minmaxqfi_chimie(it,tr_seri(1,1,it),0.,1.e10,'avant chimie ')
    7777#endif
    78              WRITE(*,*)'apres'
     78             WRITE(*,*)iter,'avpres'
    7979          ENDIF
    8080       ENDDO
     
    9494       ! pdel, pdt_rep, daynum : definit dans phytrac et utilise dans chemmain
    9595       !                 et transporte par CHEM_REP
     96
     97       DO it=1, nbtr
     98!     WRITE(lunout,*)it,' ',minval(tr_seri(:,:,it)),maxval(tr_seri(:,:,it))
     99! seulement pour les especes chimiques (pas l'age de l'air)
     100! verif valeurs extremes
     101! correction: a 1.e-30 quand =0 ou negatif et
     102! call abort si >ou= 1.e10
     103          WRITE(*,*)it,'nqtot',nqtot,'nbtr',nbtr
     104          IF (it < nqtot) THEN
     105             WRITE(*,*)'iciap',it,nqtot
     106             CALL minmaxqfi_chimie(it,tr_seri(1,1,it),0.,1.e10,'apres chemmain')
     107             WRITE(*,*)iter,'appres'
     108          ENDIF
     109       ENDDO
     110
    96111#endif       
    97112       
Note: See TracChangeset for help on using the changeset viewer.