14 pctsrf, evap, z0m, z0h, agesno, &
15 alb_dir, alb_dif, tsurf, ustar, u10m, v10m, pbl_tke)
46 INTEGER,
INTENT(IN) :: itime
47 INTEGER,
INTENT(IN) :: jour
48 REAL,
INTENT(IN) :: dtime
53 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: pctsrf
54 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: evap, agesno
55 REAL,
DIMENSION(klon,nbsrf+1),
INTENT(INOUT) :: z0m,z0h
57 REAL,
DIMENSION(klon,nsw,nbsrf),
INTENT(INOUT) :: alb_dir,alb_dif
60 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: tsurf
61 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: ustar
62 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: u10m
63 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: v10m
66 REAL,
DIMENSION(klon,klev+1,nbsrf+1),
INTENT(INOUT) :: pbl_tke
72 LOGICAL :: is_modified
73 LOGICAL :: test_sum=.
false.
74 LOGICAL,
DIMENSION(klon,nbsrf) :: new_surf
75 REAL,
DIMENSION(klon,nbsrf) :: pctsrf_old
78 pctsrf_old(:,:) = pctsrf(:,:)
104 IF (is_modified)
THEN
107 IF (minval(pctsrf(:,:)) < 0.)
THEN
108 WRITE(
lunout,*)
'Warning! One or several fractions are negative, itime=',itime
109 WRITE(
lunout,*)
'at point = ',minloc(pctsrf(:,:))
110 WRITE(
lunout,*)
'value = ',minval(pctsrf(:,:))
111 CALL abort_physic(
'change_srf_frac',
'Negative fraction',1)
117 tmpsum = sum(pctsrf(i,:))
118 IF (abs(1. - tmpsum) > 0.05)
CALL abort_physic(
'change_srf_frac',
'Total fraction not equal 1.',1)
135 tmpsum = sum(pctsrf(i,:))
137 pctsrf(i,nsrf) = pctsrf(i,nsrf) / tmpsum
177 evap, z0m, z0h, agesno, &
178 tsurf, alb_dir,alb_dif, ustar, u10m, v10m, pbl_tke)
183 pctsrf(:,:) = pctsrf_old(:,:)
subroutine limit_read_frac(itime, dtime, jour, pctsrf_new, is_modified)
integer, parameter is_ter
subroutine, public cpl_receive_frac(itime, dtime, pctsrf, is_modified)
character(len=6), save version_ocean
subroutine, public ocean_slab_frac(itime, dtime, jour, pctsrf_chg, is_modified)
real, dimension(:), allocatable, save, public fsic
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
real, dimension(:), allocatable, save zmasq
integer, parameter is_lic
character(len=6), save type_ocean
integer, parameter is_sic
subroutine abort_physic(modname, message, ierr)
subroutine pbl_surface_newfrac(itime, pctsrf_new, pctsrf_old, evap, z0m, z0h, agesno, tsurf, alb_dir, alb_dif, ustar, u10m, v10m, tke)
integer, parameter is_oce
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
subroutine change_srf_frac(itime, dtime, jour, pctsrf, evap, z0m, z0h, agesno, alb_dir, alb_dif, tsurf, ustar, u10m, v10m, pbl_tke)