Changeset 2381 for LMDZ5/branches


Ignore:
Timestamp:
Oct 30, 2015, 2:50:54 PM (9 years ago)
Author:
acozic
Message:

Make some commit to fit with INCA coupling

  • merge with rev 2180 on trunk
  • merge with rev 2185 on trunk
  • merge with rev 2200 on trunk
  • change gregorian calendar in wxios
Location:
LMDZ5/branches/LMDZ6_rc0/libf
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/LMDZ6_rc0/libf

  • LMDZ5/branches/LMDZ6_rc0/libf/bibio/wxios.F90

    r2283 r2381  
    191191                CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "NoLeap")
    192192                IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 365 jours/an'
    193             CASE('earth_366d')
     193            CASE('gregorian')
    194194                CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "Gregorian")
    195195                IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier gregorien'
  • LMDZ5/branches/LMDZ6_rc0/libf/dyn3d_common/infotrac.F90

    r2160 r2381  
    2929
    3030  CHARACTER(len=4),SAVE :: type_trac
     31  CHARACTER(len=8),DIMENSION(:),ALLOCATABLE, SAVE :: solsym
    3132 
    3233CONTAINS
     
    6263
    6364    CHARACTER(len=15), ALLOCATABLE, DIMENSION(:) :: tnom_0  ! tracer short name
    64     CHARACTER(len=8), ALLOCATABLE, DIMENSION(:) :: tracnam ! name from INCA
    6565    CHARACTER(len=3), DIMENSION(30) :: descrq
    6666    CHARACTER(len=1), DIMENSION(3)  :: txts
     
    9494       WRITE(lunout,*) 'You have choosen to couple with INCA chemestry model : type_trac=', &
    9595            type_trac,' config_inca=',config_inca
    96        IF (config_inca/='aero' .AND. config_inca/='chem') THEN
     96       IF (config_inca/='aero' .AND. config_inca/='aeNP' .AND. config_inca/='chem') THEN
    9797          WRITE(lunout,*) 'Incoherence between type_trac and config_inca. Model stops. Modify run.def'
    9898          CALL abort_gcm('infotrac_init','Incoherence between type_trac and config_inca',1)
     
    172172!
    173173    ALLOCATE(tnom_0(nqtrue), hadv(nqtrue), vadv(nqtrue))
    174     ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), tracnam(nbtr))
     174    ALLOCATE(conv_flg(nbtr), pbl_flg(nbtr), solsym(nbtr))
    175175    conv_flg(:) = 1 ! convection activated for all tracers
    176176    pbl_flg(:)  = 1 ! boundary layer activated for all tracers
     
    254254            conv_flg, &
    255255            pbl_flg,  &
    256             tracnam)
     256            solsym)
    257257#endif
    258258       tnom_0(1)='H2Ov'
     
    260260
    261261       DO iq =3,nqtrue
    262           tnom_0(iq)=tracnam(iq-2)
     262          tnom_0(iq)=solsym(iq-2)
    263263       END DO
    264264       nqo = 2
     
    394394!
    395395    DEALLOCATE(tnom_0, hadv, vadv)
    396     DEALLOCATE(tracnam)
     396
    397397
    398398  END SUBROUTINE infotrac_init
  • LMDZ5/branches/LMDZ6_rc0/libf/dyn3dmem/gcm.F

    r2275 r2381  
    240240     $        iphysiq,day_step,nday,
    241241     $        nbsrf, is_oce,is_sic,
    242      $        is_ter,is_lic)
     242     $        is_ter,is_lic, calend)
    243243
    244244         call init_inca_para(
  • LMDZ5/branches/LMDZ6_rc0/libf/dyn3dmem/leapfrog_loc.F

    r2056 r2381  
    13971397      IF (itau==itaumax) then
    13981398c$OMP MASTER
    1399             call allgather_timer_average
    1400       call barrier
    1401       if (mpi_rank==0) then
    1402        
    1403         print *,'*********************************'
    1404         print *,'******    TIMER CALDYN     ******'
    1405         do i=0,mpi_size-1
    1406           print *,'proc',i,' :   Nb Bandes  :',jj_nb_caldyn(i),
    1407      &            '  : temps moyen :',
    1408      &             timer_average(jj_nb_caldyn(i),timer_caldyn,i)
    1409         enddo
    1410      
    1411         print *,'*********************************'
    1412         print *,'******    TIMER VANLEER    ******'
    1413         do i=0,mpi_size-1
    1414           print *,'proc',i,' :   Nb Bandes  :',jj_nb_vanleer(i),
    1415      &            '  : temps moyen :',
    1416      &             timer_average(jj_nb_vanleer(i),timer_vanleer,i)
    1417         enddo
    1418      
    1419         print *,'*********************************'
    1420         print *,'******    TIMER DISSIP    ******'
    1421         do i=0,mpi_size-1
    1422           print *,'proc',i,' :   Nb Bandes  :',jj_nb_dissip(i),
    1423      &            '  : temps moyen :',
    1424      &             timer_average(jj_nb_dissip(i),timer_dissip,i)
    1425         enddo
    1426        
    1427         print *,'*********************************'
    1428         print *,'******    TIMER PHYSIC    ******'
    1429         do i=0,mpi_size-1
    1430           print *,'proc',i,' :   Nb Bandes  :',jj_nb_physic(i),
    1431      &            '  : temps moyen :',
    1432      &             timer_average(jj_nb_physic(i),timer_physic,i)
    1433         enddo
    1434        
    1435       endif 
    1436       CALL barrier
    1437       print *,'Taille du Buffer MPI (REAL*8)',MaxBufferSize
     1399         call allgather_timer_average
     1400         call barrier
     1401         if (mpi_rank==0) then
     1402           
     1403            print *,'*********************************'
     1404            print *,'******    TIMER CALDYN     ******'
     1405            do i=0,mpi_size-1
     1406               print *,'proc',i,' :   Nb Bandes  :',jj_nb_caldyn(i),
     1407     &              '  : temps moyen :',
     1408     &              timer_average(jj_nb_caldyn(i),timer_caldyn,i)
     1409            enddo
     1410           
     1411            print *,'*********************************'
     1412            print *,'******    TIMER VANLEER    ******'
     1413            do i=0,mpi_size-1
     1414               print *,'proc',i,' :   Nb Bandes  :',jj_nb_vanleer(i),
     1415     &              '  : temps moyen :',
     1416     &              timer_average(jj_nb_vanleer(i),timer_vanleer,i)
     1417            enddo
     1418           
     1419            print *,'*********************************'
     1420            print *,'******    TIMER DISSIP    ******'
     1421            do i=0,mpi_size-1
     1422               print *,'proc',i,' :   Nb Bandes  :',jj_nb_dissip(i),
     1423     &              '  : temps moyen :',
     1424     &              timer_average(jj_nb_dissip(i),timer_dissip,i)
     1425            enddo
     1426           
     1427            print *,'*********************************'
     1428            print *,'******    TIMER PHYSIC    ******'
     1429            do i=0,mpi_size-1
     1430               print *,'proc',i,' :   Nb Bandes  :',jj_nb_physic(i),
     1431     &              '  : temps moyen :',
     1432     &              timer_average(jj_nb_physic(i),timer_physic,i)
     1433            enddo
     1434           
     1435         endif 
     1436         CALL barrier
     1437         print *,'Taille du Buffer MPI (REAL*8)',MaxBufferSize
    14381438      print *,'Taille du Buffer MPI utilise (REAL*8)',MaxBufferSize_Used
    1439       print *, 'Temps total ecoule sur la parallelisation :',DiffTime()
     1439       print *, 'Temps total ecoule sur la parallelisation :',DiffTime()
    14401440      print *, 'Temps CPU ecoule sur la parallelisation :',DiffCpuTime()
    1441       CALL print_filtre_timer
    1442 c$OMP END MASTER
    1443       CALL dynredem1_loc("restart.nc",0.0,
    1444      .                               vcov,ucov,teta,q,masse,ps)
    1445 c$OMP MASTER
    1446       call fin_getparam
    1447         call finalize_parallel
    1448 c$OMP END MASTER
    1449 c$OMP BARRIER
    1450         RETURN
     1441         CALL print_filtre_timer
     1442c$OMP END MASTER
     1443         CALL dynredem1_loc("restart.nc",0.0,
     1444     .        vcov,ucov,teta,q,masse,ps)
     1445c$OMP MASTER
     1446         call fin_getparam
     1447c$OMP END MASTER
     1448
     1449#ifdef INCA
     1450         call finalize_inca
     1451#endif
     1452
     1453c$OMP MASTER
     1454         call finalize_parallel
     1455c$OMP END MASTER
     1456c$OMP BARRIER
     1457         RETURN
    14511458      ENDIF
    14521459     
     
    14821489c$OMP MASTER
    14831490              call fin_getparam
     1491c$OMP END MASTER
     1492
     1493#ifdef INCA
     1494              call finalize_inca
     1495#endif
     1496
     1497c$OMP MASTER
    14841498              call finalize_parallel
    14851499c$OMP END MASTER
     
    16041618c$OMP MASTER
    16051619                 call fin_getparam
     1620c$OMP END MASTER
     1621
     1622#ifdef INCA
     1623                 call finalize_inca
     1624#endif
     1625
     1626c$OMP MASTER
    16061627                 call finalize_parallel
    16071628c$OMP END MASTER
     
    16681689c$OMP MASTER
    16691690      call fin_getparam
     1691c$OMP END MASTER
     1692
     1693#ifdef INCA
     1694      call finalize_inca
     1695#endif
     1696
     1697c$OMP MASTER
    16701698      call finalize_parallel
    16711699c$OMP END MASTER
  • LMDZ5/branches/LMDZ6_rc0/libf/dyn3dpar/gcm.F

    r2160 r2381  
    246246     $        iphysiq,day_step,nday,
    247247     $        nbsrf, is_oce,is_sic,
    248      $        is_ter,is_lic)
     248     $        is_ter,is_lic, calend)
    249249
    250250         call init_inca_para(
  • LMDZ5/branches/LMDZ6_rc0/libf/dyn3dpar/leapfrog_p.F

    r2160 r2381  
    14101410c$OMP MASTER
    14111411              call fin_getparam
    1412               call finalize_parallel
     1412c$OMP END MASTER
     1413#ifdef INCA
     1414                 call finalize_inca
     1415#endif
     1416c$OMP MASTER
     1417               call finalize_parallel
    14131418c$OMP END MASTER
    14141419              abort_message = 'Simulation finished'
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/phys_output_write_mod.F90

    r2283 r2381  
    230230    USE ocean_slab_mod, only: tslab, slab_bils
    231231    USE indice_sol_mod, only: nbsrf
    232     USE infotrac, only: nqtot, nqo
     232    USE infotrac, only: nqtot, nqo, type_trac
    233233    USE comgeomphy, only: airephy
    234234    USE surface_data, only: type_ocean, ok_veget, ok_snow
     
    14271427        IF (nqtot.GE.nqo+1) THEN
    14281428            DO iq=nqo+1,nqtot
     1429              IF (type_trac == 'lmdz' .OR. type_trac == 'repr') THEN
    14291430
    14301431             CALL histwrite_phy(o_trac(iq-nqo), qx(:,:,iq))
     
    14491450             ENDIF
    14501451             CALL histwrite_phy(o_trac_cum(iq-nqo), zx_tmp_fi2d)
     1452             endif
    14511453          ENDDO
    14521454       ENDIF
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/physiq.F90

    r2283 r2381  
    13071307             annee_ref, &
    13081308             day_ref,  &
    1309              itau_phy)
     1309             day_ini, &
     1310             start_time, &
     1311             itau_phy, &
     1312             io_lon, &
     1313             io_lat)
    13101314
    13111315        CALL VTe(VTinca)
     
    29892993     calday = REAL(days_elapsed + 1) + jH_cur
    29902994
    2991      call chemtime(itap+itau_phy-1, date0, dtime)
     2995     call chemtime(itap+itau_phy-1, date0, dtime, itap)
    29922996     IF (config_inca == 'aero' .OR. config_inca == 'aeNP') THEN
    29932997        CALL AEROSOL_METEO_CALC( &
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/phytrac_mod.F90

    r2160 r2381  
    308308!$OMP THREADPRIVATE(lessivage)
    309309
    310     CHARACTER(len=8),DIMENSION(nbtr) :: solsym
    311310    !RomP >>>
    312311    INTEGER,SAVE  :: iflag_lscav_omp,iflag_lscav
     
    557556            cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon,iflag_vdf_trac>=0,sh, &
    558557            rh, pphi, ustar, wstar, ale_bl, ale_wake,  u10m, v10m, &
    559             tr_seri, source, solsym, d_tr_cl,d_tr_dec, zmasse)               !RomP
     558            tr_seri, source, d_tr_cl,d_tr_dec, zmasse)               !RomP
    560559
    561560    CASE('inca')
     
    572571            tau_aero, piz_aero, cg_aero,        ccm,       &
    573572            rfname,                                        &
    574             tr_seri,  source,   solsym)     
     573            tr_seri,  source)     
    575574
    576575    CASE('repr')
     
    580579            presnivs, xlat, xlon, pphis, pphi, &
    581580            t_seri, pplay, paprs, sh , &
    582             tr_seri, solsym)
     581            tr_seri)
    583582
    584583    END SELECT
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90

    r2160 r2381  
    8484  REAL, DIMENSION(klon,klev,naero_tot) :: m_allaer
    8585  REAL, DIMENSION(klon,klev,naero_tot) :: m_allaer_pi !RAF 
    86   !  REAL, DIMENSION(klon,naero_tot)      :: fractnat_allaer !RAF delete??
    87   character(len=8), dimension(nbtr) :: tracname
     86
    8887  integer :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM
    8988  integer :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M
     
    104103     !--convert to ug m-3 unit for consistency with offline fields
    105104     !
    106 #ifdef INCA
    107      call tracinca_name(tracname)
    108 #endif
    109 
    110105     do i=1,nbtr
    111         select case(trim(tracname(i)))
     106        select case(trim(solsym(i)))
    112107           case ("ASBCM")
    113108              id_ASBCM = i
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/tracinca_mod.F90

    r2160 r2381  
    3535       tau_aero, piz_aero, cg_aero,        ccm,       &
    3636       rfname,                                        &
    37        tr_seri,  source,   solsym)     
     37       tr_seri,  source)     
    3838
    3939!========================================================
     
    113113  ! Output arguments
    114114    REAL,DIMENSION(klon,nbtr), INTENT(OUT)        :: source  ! a voir lorsque le flux de surface est prescrit
    115     CHARACTER(len=8),DIMENSION(nbtr), INTENT(OUT) :: solsym
    116115
    117116!=======================================================================================
     
    134133       pdel(:,k) = paprs(:,k) - paprs (:,k+1)
    135134    END DO
    136    
    137     zpmfu(:,:)=pmfu(:,:)
     135 
     136#ifdef INCA
     137    IF (config_inca == 'aero') THEN
     138       zpmfu(:,:)=pmfu(:,:)       
     139    ELSE IF (config_inca == 'aeNP') THEN
     140       zpmfu(:,:)=upwd(:,:)
     141    ENDIF
    138142
    139     IF (config_inca == 'aero') THEN
    140 #ifdef INCA
    141        CALL aerosolmain(                    &
    142             aerosol_couple,tr_seri,pdtphys, &
    143             pplay,pdel,prfl,pmflxr,psfl,    &
    144             pmflxs,zpmfu,itop_con,ibas_con,  &
    145             pphi,airephy,nstep,rneb,t_seri, &     
    146             rh,tau_aero,piz_aero,cg_aero,   &
    147             rfname,ccm,lafin)
     143    CALL aerosolmain(                    &
     144         aerosol_couple,tr_seri,pdtphys, &
     145         pplay,pdel,prfl,pmflxr,psfl,    &
     146         pmflxs,zpmfu,itop_con,ibas_con,  &
     147         pphi,airephy,nstep,rneb,t_seri, &     
     148         rh,tau_aero,piz_aero,cg_aero,   &
     149         rfname,ccm,lafin, config_inca)
    148150#endif
    149     END IF
    150 
    151     IF (config_inca == 'aeNP') THEN
    152 #ifdef INCA
    153        zpmfu(:,:)=upwd(:,:)
    154        CALL aerosolmainNP(                  &
    155             aerosol_couple,tr_seri,pdtphys, &
    156             pplay,pdel,prfl,pmflxr,psfl,    &
    157             pmflxs,zpmfu,itop_con,ibas_con,  &
    158             pphi,airephy,nstep,rneb,t_seri, &     
    159             rh,lafin)
    160 #endif
    161     END IF
    162151
    163152
     
    196185         iip1,       & !nx
    197186         jjp1,       & !ny
    198          source,     &
    199          solsym)
     187         source )
    200188#endif
    201189   
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/traclmdz_mod.F90

    r1910 r2381  
    338338       cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon, couchelimite, sh, &
    339339       rh, pphi, ustar, wstar, ale_bl, ale_wake,  zu10m, zv10m, &
    340 !!          tr_seri, source, solsym, d_tr_cl, zmasse)                      !RomP
    341           tr_seri, source, solsym, d_tr_cl,d_tr_dec, zmasse)               !RomP
     340       tr_seri, source, d_tr_cl,d_tr_dec, zmasse)               !RomP
    342341   
    343342    USE dimphy
     
    397396
    398397! Output argument
    399     CHARACTER(len=8),DIMENSION(nbtr), INTENT(OUT) :: solsym
    400398    REAL,DIMENSION(klon,nbtr), INTENT(OUT)        :: source  ! a voir lorsque le flux de surface est prescrit
    401399    REAL,DIMENSION(klon,klev,nbtr), INTENT(OUT)   :: d_tr_cl ! Td couche limite/traceur
  • LMDZ5/branches/LMDZ6_rc0/libf/phylmd/tracreprobus_mod.F90

    r1910 r2381  
    99       presnivs, xlat, xlon, pphis, pphi, &
    1010       t_seri, pplay, paprs, sh , &
    11        tr_seri, solsym)
     11       tr_seri)
    1212
    1313    USE dimphy
     
    4242!----------------
    4343    REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT)  :: tr_seri ! Concentration Traceur [U/KgA] 
    44     CHARACTER(len=8),DIMENSION(nbtr), INTENT(OUT) :: solsym
    4544 
    4645
Note: See TracChangeset for help on using the changeset viewer.