Ignore:
Timestamp:
Mar 18, 2016, 12:09:23 PM (9 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2434:2457 into testing branch

Location:
LMDZ5/branches/testing
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/ce0l.F90

    r2435 r2471  
    2727  USE iniphysiq_mod,  ONLY: iniphysiq
    2828  USE mod_const_mpi,  ONLY: comm_lmdz
    29 #ifdef inca
    30   USE indice_sol_mod, ONLY: nbsrf, is_oce, is_sic, is_ter, is_lic
    31 #endif
    3229#ifdef CPP_PARA
    3330  USE mod_const_mpi,  ONLY: init_const_mpi
    34   USE parallel_lmdz,  ONLY: init_parallel, mpi_rank, omp_rank, mpi_size
     31  USE parallel_lmdz,  ONLY: init_parallel, mpi_rank, omp_rank
    3532  USE bands,          ONLY: read_distrib, distrib_phys
    3633  USE mod_hallo,      ONLY: init_mod_hallo
     
    116113
    117114!--- Tracers initializations
    118   IF (type_trac == 'inca') THEN
    119 #ifdef INCA
    120     CALL init_const_lmdz(nbtr,anneeref,dayref,iphysiq,day_step,nday,&
    121                          nbsrf,is_oce,is_sic,is_ter,is_lic,calend)
    122     CALL init_inca_para(iim,jjp1,llm,klon_glo,mpi_size,distrib_phys,&
    123                         COMM_LMDZ)
    124     WRITE(lunout,*)'nbtr =' , nbtr
    125 #endif
    126   END IF
    127115  CALL infotrac_init()
    128116
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90

    r2435 r2471  
    8686  USE conf_phys_m, ONLY: conf_phys
    8787  USE init_ssrf_m, ONLY: start_init_subsurf
     88  !use ioipsl_getincom
    8889  IMPLICIT NONE
    8990!-------------------------------------------------------------------------------
     
    9798  LOGICAL            :: read_mask
    9899  REAL               :: phystep, dummy
    99   REAL, DIMENSION(SIZE(masque,1),SIZE(masque,2)) :: masque_tmp
     100  REAL, DIMENSION(SIZE(masque,1),SIZE(masque,2)) :: masque_tmp,phiso
    100101  REAL, DIMENSION(klon)               :: sn, rugmer, run_off_lic_0, fder
    101102  REAL, DIMENSION(klon,nbsrf)         :: qsolsrf, snsrf
     
    115116  INTEGER :: read_climoz                        !--- Read ozone climatology
    116117  REAL    :: alp_offset
     118  LOGICAL :: filtre_oro=.false.
    117119
    118120  deg2rad= pi/180.0
     
    142144  read_mask=ANY(masque/=-99999.); masque_tmp=masque
    143145  CALL start_init_orog(rlonv, rlatu, phis, masque_tmp)
     146
     147  CALL getin('filtre_oro',filtre_oro)
     148  IF (filtre_oro) CALL filtreoro(size(phis,1),size(phis,2),phis,masque_tmp,rlatu)
     149
    144150  WRITE(fmt,"(i4,'i1)')")iml ; fmt='('//ADJUSTL(fmt)
    145151  IF(.NOT.read_mask) THEN                       !--- Keep mask form orography
     
    447453!
    448454!-------------------------------------------------------------------------------
     455!
     456!*******************************************************************************
     457
     458SUBROUTINE filtreoro(imp1,jmp1,phis,masque,rlatu)
     459
     460IMPLICIT NONE
     461
     462  INTEGER imp1,jmp1
     463  REAL, DIMENSION(imp1,jmp1) :: phis,masque
     464  REAL, DIMENSION(jmp1) :: rlatu
     465  REAL, DIMENSION(imp1) :: wwf
     466  REAL, DIMENSION(imp1,jmp1) :: phiso
     467  INTEGER :: ifiltre,ifi,ii,i,j
     468  REAL :: coslat0,ssz
     469
     470  coslat0=0.5
     471  phiso=phis
     472  do j=2,jmp1-1
     473     print*,'avant if ',cos(rlatu(j)),coslat0
     474     if (cos(rlatu(j))<coslat0) then
     475         ! nb de pts affectes par le filtrage de part et d'autre du pt
     476         ifiltre=(coslat0/cos(rlatu(j))-1.)/2.
     477         wwf=0.
     478         do i=1,ifiltre
     479            wwf(i)=1.
     480         enddo
     481         wwf(ifiltre+1)=(coslat0/cos(rlatu(j))-1.)/2.-ifiltre
     482         do i=1,imp1-1
     483            if (masque(i,j)>0.9) then
     484               ssz=phis(i,j)
     485               do ifi=1,ifiltre+1
     486                  ii=i+ifi
     487                  if (ii>imp1-1) ii=ii-imp1+1
     488                  ssz=ssz+wwf(ifi)*phis(ii,j)
     489                  ii=i-ifi
     490                  if (ii<1) ii=ii+imp1-1
     491                  ssz=ssz+wwf(ifi)*phis(ii,j)
     492               enddo
     493               phis(i,j)=ssz*cos(rlatu(j))/coslat0
     494            endif
     495         enddo
     496         print*,'j=',j,coslat0/cos(rlatu(j)), (1.+2.*sum(wwf))*cos(rlatu(j))/coslat0
     497     endif
     498  enddo
     499  call dump2d(imp1,jmp1,phis,'phis ')
     500  call dump2d(imp1,jmp1,masque,'masque ')
     501  call dump2d(imp1,jmp1,phis-phiso,'dphis ')
     502
     503END SUBROUTINE filtreoro
    449504
    450505
    451506END MODULE etat0phys
    452 !
    453 !*******************************************************************************
    454 
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r2435 r2471  
    4747#ifdef INCA
    4848  USE indice_sol_mod, ONLY: nbsrf, is_oce, is_sic, is_ter, is_lic
    49   USE parallel_lmdz, ONLY : mpi_size
    50   USE mod_const_mpi, ONLY : COMM_LMDZ
     49#ifdef CPP_PARA
     50  USE parallel_lmdz, ONLY : mpi_size, mpi_rank
    5151  USE bands, ONLY : distrib_phys
     52#endif
    5253  USE mod_phys_lmdz_omp_data, ONLY: klon_omp
    5354#endif
     
    115116  REAL,ALLOCATABLE,SAVE :: boundslatfi(:,:)
    116117!$OMP THREADPRIVATE (latfi,lonfi,cufi,cvfi,airefi,boundslonfi,boundslatfi)
     118
     119#ifndef CPP_PARA
     120  INTEGER,PARAMETER :: mpi_rank=0
     121  INTEGER, PARAMETER :: mpi_size = 1
     122  INTEGER :: distrib_phys(mpi_rank:mpi_rank)=(jjm-1)*iim+2
     123#endif
    117124
    118125  ! Initialize Physics distibution and parameters and interface with dynamics
     
    295302#ifdef INCA
    296303     call init_const_lmdz( &
    297           anneeref,dayref, &
    298           iphysiq,day_step,nday,  &
    299           nbsrf, is_oce,is_sic, &
    300           is_ter,is_lic, calend)
     304          anneeref,dayref, iphysiq,day_step,nday,  &
     305          nbsrf, is_oce,is_sic, is_ter,is_lic, calend)
    301306     call init_inca_para( &
    302307          nbp_lon,nbp_lat,nbp_lev,klon_glo,mpi_size, &
    303           distrib_phys,COMM_LMDZ)
     308          distrib_phys,communicator)
    304309#endif
    305310  END IF
Note: See TracChangeset for help on using the changeset viewer.