- Timestamp:
- Nov 21, 2019, 4:43:45 PM (5 years ago)
- 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 1819 1819 USE mod_phys_lmdz_para 1820 1820 USE mod_grid_phy_lmdz 1821 USE geometry_mod 1821 1822 IMPLICIT NONE 1822 1823 … … 1832 1833 INTEGER jk 1833 1834 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 1836 1837 1837 1838 ! * 1. SET THE VALUES OF THE PARAMETERS … … 1848 1849 ! old ZSIGT=0.85 1849 1850 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 1866 1899 ! inversion car dans orodrag on compte les niveaux a l'envers 1867 1900 nktopg = nlev - nktopg + 1
Note: See TracChangeset
for help on using the changeset viewer.