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/orografi_strato.F90

    r2897 r3605  
    18191819  USE mod_phys_lmdz_para
    18201820  USE mod_grid_phy_lmdz
     1821  USE geometry_mod
    18211822  IMPLICIT NONE
    18221823
     
    18321833  INTEGER jk
    18331834  REAL zpr, ztop, zsigt, zpm1r
    1834   REAL :: pplay_glo(klon_glo, nlev)
    1835   REAL :: paprs_glo(klon_glo, nlev+1)
     1835  INTEGER :: cell,ij,nstra_tmp,nktopg_tmp
     1836  REAL :: current_dist, dist_min,dist_min_glo
    18361837
    18371838  ! *       1.    SET THE VALUES OF THE PARAMETERS
     
    18481849  ! old  ZSIGT=0.85
    18491850
    1850   CALL gather(pplay, pplay_glo)
    1851   CALL bcast(pplay_glo)
    1852   CALL gather(paprs, paprs_glo)
    1853   CALL bcast(paprs_glo)
    1854 
    1855   DO jk = 1, nlev
    1856     zpm1r = pplay_glo(klon_glo/2+1, jk)/paprs_glo(klon_glo/2+1, 1)
    1857     IF (zpm1r>=zsigt) THEN
    1858       nktopg = jk
    1859     END IF
    1860     zpm1r = pplay_glo(klon_glo/2+1, jk)/paprs_glo(klon_glo/2+1, 1)
    1861     IF (zpm1r>=ztop) THEN
    1862       nstra = jk
    1863     END IF
    1864   END DO
    1865 
     1851
     1852!ym Take the point at equator close to (0,0) coordinates.
     1853  dist_min=360
     1854  dist_min_glo=360.
     1855  cell=-1
     1856  DO ij=1,klon
     1857    current_dist=sqrt(longitude_deg(ij)**2+latitude_deg(ij)**2)
     1858    current_dist=current_dist*(1+(1e-10*ind_cell_glo(ij))/klon_glo) ! For point unicity
     1859    IF (dist_min>current_dist) THEN
     1860      dist_min=current_dist
     1861      cell=ij   
     1862    ENDIF 
     1863  ENDDO
     1864 
     1865  !PRINT *, 'SUGWD distmin cell=', dist_min,cell
     1866  CALL reduce_min(dist_min,dist_min_glo)
     1867  CALL bcast(dist_min_glo)
     1868  IF (dist_min/=dist_min_glo) cell=-1
     1869!ym in future find the point at equator close to (0,0) coordinates.
     1870  PRINT *, 'SUGWD distmin dist_min_glo cell=', dist_min,dist_min_glo,cell
     1871
     1872  nktopg_tmp=nktopg
     1873  nstra_tmp=nstra
     1874 
     1875  IF (cell/=-1) THEN
     1876
     1877    !print*,'SUGWD shape ',shape(pplay),cell+1
     1878
     1879    DO jk = 1, nlev
     1880      !zpm1r = pplay(cell+1, jk)/paprs(cell+1, 1)
     1881      zpm1r = pplay(cell, jk)/paprs(cell, 1)
     1882      IF (zpm1r>=zsigt) THEN
     1883        nktopg_tmp = jk
     1884      END IF
     1885      IF (zpm1r>=ztop) THEN
     1886        nstra_tmp = jk
     1887      END IF
     1888    END DO
     1889  ELSE
     1890    nktopg_tmp=0
     1891    nstra_tmp=0
     1892  ENDIF
     1893 
     1894  CALL reduce_sum(nktopg_tmp,nktopg)
     1895  CALL bcast(nktopg)
     1896  CALL reduce_sum(nstra_tmp,nstra)
     1897  CALL bcast(nstra)
     1898 
    18661899  ! inversion car dans orodrag on compte les niveaux a l'envers
    18671900  nktopg = nlev - nktopg + 1
Note: See TracChangeset for help on using the changeset viewer.