Changeset 5791 for LMDZ6/branches/contrails/libf/phylmd/limit_read_mod.f90
- Timestamp:
- Jul 28, 2025, 7:23:15 PM (9 days ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5654-5683,5685-5690,5692-5715,5718-5721,5726-5727,5729,5744-5761,5763-5778,5780,5785-5789
- Property svn:mergeinfo changed
-
LMDZ6/branches/contrails/libf/phylmd/limit_read_mod.f90
r5549 r5791 21 21 !$OMP THREADPRIVATE(albedo) 22 22 REAL, ALLOCATABLE, DIMENSION(:), SAVE, PRIVATE :: sst 23 !$OMP THREADPRIVATE(sst) 23 !$OMP THREADPRIVATE(sst) 24 !GG 25 REAL, ALLOCATABLE, DIMENSION(:), SAVE, PRIVATE :: sih 26 !$OMP THREADPRIVATE(sih) 27 !GG 24 28 LOGICAL,SAVE :: read_continents=.FALSE. 25 29 !$OMP THREADPRIVATE(read_continents) … … 144 148 END SUBROUTINE limit_read_sst 145 149 150 !GG 151 SUBROUTINE limit_read_hice(knon, knindex, hice_out) 152 ! 153 ! This subroutine returns the sea surface temperature already read from limit.nc. 154 ! 155 USE dimphy, ONLY : klon 156 157 INTEGER, INTENT(IN) :: knon ! nomber of points on compressed grid 158 INTEGER, DIMENSION(klon), INTENT(IN) :: knindex ! grid point number for compressed grid 159 REAL, DIMENSION(klon), INTENT(OUT) :: hice_out 160 161 INTEGER :: i 162 163 DO i = 1, knon 164 hice_out(i) = sih(knindex(i)) 165 END DO 166 167 END SUBROUTINE limit_read_hice 168 !GG 146 169 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 147 170 !! … … 163 186 USE mod_grid_phy_lmdz 164 187 USE mod_phys_lmdz_para 165 USE surface_data, ONLY : type_ocean, ok_veget 188 !GG USE surface_data, ONLY : type_ocean, ok_veget 189 USE surface_data, ONLY : type_ocean, ok_veget, iflag_seaice, amax_n, amax_s 190 !GG 166 191 USE netcdf 167 192 USE indice_sol_mod … … 203 228 REAL, DIMENSION(klon_mpi) :: rug_mpi ! rugosity at global grid 204 229 REAL, DIMENSION(klon_mpi) :: alb_mpi ! albedo at global grid 230 !GG 231 REAL, DIMENSION(klon_glo) :: sih_glo ! albedo at global grid 232 REAL, DIMENSION(klon_mpi) :: sih_mpi ! albedo at global grid 233 !GG 205 234 206 235 CHARACTER(len=20) :: modname='limit_read_mod' … … 225 254 END IF 226 255 256 !GG 257 IF (iflag_seaice==1) THEN 258 ALLOCATE(sih(klon), stat=ierr) 259 IF (ierr /= 0) CALL abort_physic(modname, 'PB in allocating sih',1) 260 ENDIF 261 !GG 262 227 263 IF ( .NOT. ok_veget ) THEN 228 264 ALLOCATE(rugos(klon), albedo(klon), stat=ierr) … … 303 339 IF ( type_ocean /= 'couple') THEN 304 340 IF (is_omp_master) CALL xios_recv_field("sst_limin",sst_mpi) 341 !GG 342 IF (iflag_seaice == 1) THEN 343 IF (is_omp_master) CALL xios_recv_field("sih_limin",sih_mpi) 344 ENDIF 345 !GG 305 346 ENDIF 306 347 … … 312 353 IF ( type_ocean /= 'couple') THEN 313 354 CALL Scatter_omp(sst_mpi,sst) 355 !GG 356 IF (iflag_seaice==1) THEN 357 CALL Scatter_omp(sih_mpi,sih) 358 ENDIF 359 !GG 314 360 CALL Scatter_omp(pct_mpi(:,is_oce),pctsrf(:,is_oce)) 315 361 CALL Scatter_omp(pct_mpi(:,is_sic),pctsrf(:,is_sic)) … … 362 408 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <FSIC>' ,1) 363 409 410 ! GG 411 ! Account for leads 412 IF (iflag_seaice>0) THEN 413 DO ii=1,klon_glo/2 414 if (pct_glo(ii,is_sic)>amax_n) THEN 415 pct_glo(ii,is_oce)=pct_glo(ii,is_oce)+(pct_glo(ii,is_sic)-amax_n) 416 pct_glo(ii,is_sic)=amax_n 417 end if 418 ENDDO 419 DO ii=klon_glo/2,klon_glo 420 if (pct_glo(ii,is_sic)>amax_s) THEN 421 pct_glo(ii,is_oce)=pct_glo(ii,is_oce)+(pct_glo(ii,is_sic)-amax_s) 422 pct_glo(ii,is_sic)=amax_s 423 end if 424 ENDDO 425 ENDIF 426 !GG 364 427 365 428 ! Read land and continentals fraction only if asked for … … 394 457 ierr = NF90_GET_VAR(nid,nvarid,sst_glo,start,epais) 395 458 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <SST>',1) 396 459 !GG 460 IF (iflag_seaice == 1) THEN 461 ierr = NF90_INQ_VARID(nid, 'HICE', nvarid) 462 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Le champ <HICE> est absent',1) 463 464 ierr = NF90_GET_VAR(nid,nvarid,sih_glo(:),start,epais) 465 IF (ierr /= NF90_NOERR) CALL abort_physic(modname,'Lecture echouee pour <HICE>' ,1) 466 ENDIF 467 !GG 397 468 END IF 398 469 … … 433 504 IF ( type_ocean /= 'couple') THEN 434 505 CALL Scatter(sst_glo,sst) 506 !GG 507 IF (iflag_seaice==1) THEN 508 CALL Scatter(sih_glo,sih) 509 END IF 510 !GG 435 511 CALL Scatter(pct_glo(:,is_oce),pctsrf(:,is_oce)) 436 512 CALL Scatter(pct_glo(:,is_sic),pctsrf(:,is_sic))
Note: See TracChangeset
for help on using the changeset viewer.