Changeset 4216 for dynamico_lmdz/simple_physics
- Timestamp:
- Jan 7, 2020, 6:27:58 PM (5 years ago)
- Location:
- dynamico_lmdz/simple_physics/phyparam/param
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
dynamico_lmdz/simple_physics/phyparam/param/comgeomfi.F90
r4212 r4216 3 3 SAVE 4 4 5 REAL, allocatable :: long(:), lati(:), area(:), & 6 sinlon(:), coslon(:), sinlat(:), coslat(:) 7 REAL :: totarea 8 INTEGER :: ngridmax,nlayermx,nsoilmx 9 !$OMP THREADPRIVATE(long,lati,area,sinlon,coslon,sinlat,coslat,totarea) 5 REAL, ALLOCATABLE :: long(:), lati(:), sinlon(:), coslon(:), sinlat(:), coslat(:) 6 INTEGER :: ngridmax, nlayermx, nsoilmx 7 !$OMP THREADPRIVATE(long,lati,sinlon,coslon,sinlat,coslat,totarea) 10 8 !$OMP THREADPRIVATE(ngridmax,nlayermx,nsoilmx) 11 9 12 10 CONTAINS 13 11 14 SUBROUTINE InitComgeomfi 15 USE mod_phys_lmdz_para 16 USE dimphy, ONLY : klon,klev 17 USE geometry_mod, ONLY : latitude_deg,longitude_deg 18 19 print*,'Dans initcomgeomfi ' 20 ngridmax=klon_omp 12 SUBROUTINE init_comgeomfi(klon, klev, longitude, latitude) 13 INTEGER, INTENT(IN) :: klon, klev 14 REAL, INTENT(IN) :: longitude(klon), latitude(klon) ! in radians 15 ngridmax=klon 21 16 nlayermx=klev 22 17 nsoilmx=10 23 print*,'ngridmax,nlayermx',ngridmax,nlayermx24 25 allocate( long(klon_omp))26 allocate( lati(klon_omp))27 long=longitude_deg28 lati=latitude_deg29 allocate(area(klon_omp))30 allocate(sinlon(klon_omp))31 allocate(coslon(klon_omp))32 allocate(sinlat(klon_omp))33 allocate(coslat(klon_omp))34 35 END SUBROUTINE InitComgeomfi18 allocate(long(klon)) 19 allocate(lati(klon)) 20 allocate(sinlon(klon)) 21 allocate(coslon(klon)) 22 allocate(sinlat(klon)) 23 allocate(coslat(klon)) 24 long(:) = longitude(:) 25 lati(:) = latitude(:) 26 sinlat(:)=sin(lati(:)) 27 coslat(:)=cos(lati(:)) 28 sinlon(:)=sin(long(:)) 29 coslon(:)=cos(long(:)) 30 END SUBROUTINE init_comgeomfi 36 31 37 32 END MODULE comgeomfi -
dynamico_lmdz/simple_physics/phyparam/param/iniphyparam.F
r4215 r4216 62 62 63 63 REAL ptimestep 64 INTEGER ig,ierr,offset65 64 66 65 EXTERNAL inifrict 67 66 68 67 print*,'INIPHYPARAM' 69 CALL InitComgeomfi 68 69 CALL init_comgeomfi(klon_omp, klev, longitude, latitude) 70 70 71 71 IF (klon.NE.klon_omp) THEN 72 72 PRINT*,'STOP in iniphyparam' 73 PRINT*,'Probleme de dimen esions :'73 PRINT*,'Probleme de dimensions :' 74 74 PRINT*,'klon = ',klon 75 75 PRINT*,'klon_omp = ',klon_omp … … 79 79 IF (nlayer.NE.nlayermx) THEN 80 80 PRINT*,'STOP in iniphyparam' 81 PRINT*,'Probleme de dimen esions :'81 PRINT*,'Probleme de dimensions :' 82 82 PRINT*,'nlayer = ',nlayer 83 83 PRINT*,'nlayermx = ',nlayermx … … 87 87 IF (ngrid.NE.klon_glo) THEN 88 88 PRINT*,'STOP in iniphyparam' 89 PRINT*,'Probleme de dimen esions :'89 PRINT*,'Probleme de dimensions :' 90 90 PRINT*,'ngrid = ',ngrid 91 91 PRINT*,'ngridmax = ',klon_glo 92 !STOP92 STOP 93 93 ENDIF 94 94 … … 180 180 c----------------------------------------------------------------------- 181 181 182 offset=klon_mpi_begin-1183 184 182 print*,'latitude0 ohe',latitude(1:3),latitude(klon_omp) 185 ! long(1:klon_omp)=plon(offset+klon_omp_begin:offset+klon_omp_end)186 ! lati(1:klon_omp)=plat(offset+klon_omp_begin:offset+klon_omp_end)187 ! area(1:klon_omp)=parea(offset+klon_omp_begin:offset+klon_omp_end)188 long(1:klon_omp)=longitude(1:klon_omp)189 lati(1:klon_omp)=latitude(1:klon_omp)190 area(1:klon_omp)=cell_area(1:klon_omp)191 totarea=sum(cell_area,ngrid)192 183 print*,'OK17 AAA' 193 194 sinlat(:)=sin(lati(:))195 coslat(:)=cos(lati(:))196 sinlon(:)=sin(long(:))197 coslon(:)=cos(long(:))198 184 199 185 prad=planet_rad
Note: See TracChangeset
for help on using the changeset viewer.