62 REAL,
ALLOCATABLE,
DIMENSION(:,:),
SAVE ::
read_sst
64 REAL,
ALLOCATABLE,
DIMENSION(:,:),
SAVE ::
read_sit
66 REAL,
ALLOCATABLE,
DIMENSION(:,:),
SAVE ::
read_sic
72 REAL,
ALLOCATABLE,
DIMENSION(:,:),
SAVE ::
read_co2
74 INTEGER,
ALLOCATABLE,
DIMENSION(:),
SAVE ::
unity
99 SUBROUTINE cpl_init(dtime, rlon, rlat)
109 REAL,
INTENT(IN) :: dtime
110 REAL,
DIMENSION(klon),
INTENT(IN) :: rlon, rlat
114 INTEGER :: error, sum_error, ig, i
115 INTEGER :: jf, nhoridct
121 REAL,
DIMENSION(nbp_lon,nbp_lat) :: zx_lon, zx_lat
122 CHARACTER(len = 20) :: modname =
'cpl_init'
123 CHARACTER(len = 80) :: abort_message
124 CHARACTER(len=80) :: clintocplnam, clfromcplnam
134 WRITE(
lunout,*)
' ##### Ocean couple #####'
135 WRITE(
lunout,*)
' Valeurs des pas de temps'
136 WRITE(
lunout,*)
' npas = ', npas
147 sum_error = sum_error + error
149 sum_error = sum_error + error
151 sum_error = sum_error + error
153 sum_error = sum_error + error
155 sum_error = sum_error + error
157 sum_error = sum_error + error
159 sum_error = sum_error + error
161 sum_error = sum_error + error
163 sum_error = sum_error + error
165 sum_error = sum_error + error
167 sum_error = sum_error + error
169 sum_error = sum_error + error
171 sum_error = sum_error + error
173 sum_error = sum_error + error
175 sum_error = sum_error + error
177 sum_error = sum_error + error
179 sum_error = sum_error + error
181 sum_error = sum_error + error
183 sum_error = sum_error + error
185 sum_error = sum_error + error
187 sum_error = sum_error + error
189 sum_error = sum_error + error
193 sum_error = sum_error + error
195 sum_error = sum_error + error
199 sum_error = sum_error + error
202 IF (sum_error /= 0)
THEN
203 abort_message=
'Pb allocation variables couplees'
232 zx_lon(i,1) = rlon(i+1)
236 clintocplnam=
"cpl_atm_tauflx"
240 CALL histdef(
nidct,
'tauxe',
'tauxe', &
241 "-",
nbp_lon,
nbp_lat, nhoridct, 1, 1, 1, -99, 32,
"inst", dtime,dtime)
242 CALL histdef(
nidct,
'tauyn',
'tauyn', &
243 "-",
nbp_lon,
nbp_lat, nhoridct, 1, 1, 1, -99, 32,
"inst", dtime,dtime)
244 CALL histdef(
nidct,
'tmp_lon',
'tmp_lon', &
245 "-",
nbp_lon,
nbp_lat, nhoridct, 1, 1, 1, -99, 32,
"inst", dtime,dtime)
246 CALL histdef(
nidct,
'tmp_lat',
'tmp_lat', &
247 "-",
nbp_lon,
nbp_lat, nhoridct, 1, 1, 1, -99, 32,
"inst", dtime,dtime)
251 "-",
nbp_lon,
nbp_lat,nhoridct,1,1,1,-99,32,
"inst",dtime,dtime)
257 clfromcplnam=
"cpl_atm_sst"
258 CALL histbeg(clfromcplnam,
nbp_lon,zx_lon(:,1),
nbp_lat,zx_lat(1,:),1,
nbp_lon,1,
nbp_lat, &
259 0,zjulian,dtime,nhoridcs,
nidcs)
264 "-",
nbp_lon,
nbp_lat,nhoridcs,1,1,1,-99,32,
"inst",dtime,dtime)
278 abort_message=
'carbon_cycle_cpl does not work with opa8'
304 INTEGER,
INTENT(IN) :: itime
305 REAL,
INTENT(IN) :: dtime
306 REAL,
DIMENSION(klon,nbsrf),
INTENT(INOUT) :: pctsrf
307 LOGICAL,
INTENT(OUT) :: is_modified
311 INTEGER :: j, i, time_sec
313 INTEGER,
DIMENSION(nbp_lon*nbp_lat) :: ndexcs
314 CHARACTER(len = 20) :: modname =
'cpl_receive_frac'
315 CHARACTER(len = 80) :: abort_message
316 REAL,
DIMENSION(klon) :: read_sic1D
317 REAL,
DIMENSION(nbp_lon,jj_nb,maxrecv) :: tab_read_flds
318 REAL,
DIMENSION(klon,nbsrf) :: pctsrf_old
319 REAL,
DIMENSION(klon_mpi) :: rlon_mpi, rlat_mpi
320 REAL,
DIMENSION(nbp_lon,jj_nb) :: tmp_lon, tmp_lat
321 REAL,
DIMENSION(nbp_lon,jj_nb) :: tmp_r0
332 IF (mod(itime,
nexca) == 1)
THEN
335 time_sec=(itime-1)*dtime
338 CALL fromcpl(time_sec, tab_read_flds)
365 CALL gather_omp(
rlon,rlon_mpi)
366 CALL gather_omp(
rlat,rlat_mpi)
368 CALL grid1dto2d_mpi(rlon_mpi,tmp_lon)
369 CALL grid1dto2d_mpi(rlat_mpi,tmp_lat)
397 pctsrf_old(:,:) = pctsrf(:,:)
401 IF (pctsrf_old(i,
is_oce) + pctsrf_old(i,
is_sic) > 0.)
THEN
428 INTEGER,
INTENT(IN) :: knon
429 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
433 REAL,
DIMENSION(klon),
INTENT(OUT) :: tsurf_new
434 REAL,
DIMENSION(klon),
INTENT(OUT) :: u0_new
435 REAL,
DIMENSION(klon),
INTENT(OUT) :: v0_new
440 INTEGER,
DIMENSION(klon) :: index
441 REAL,
DIMENSION(klon) :: sic_new
470 tsurf_new(i) = tsurf_new(i)/(1. - sic_new(i))
480 tsurf_new, alb_new, u0_new, v0_new)
490 INTEGER,
INTENT(IN) :: knon
491 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
495 REAL,
DIMENSION(klon),
INTENT(OUT) :: tsurf_new
496 REAL,
DIMENSION(klon),
INTENT(OUT) :: alb_new
497 REAL,
DIMENSION(klon),
INTENT(OUT) :: u0_new
498 REAL,
DIMENSION(klon),
INTENT(OUT) :: v0_new
503 REAL,
DIMENSION(klon) :: sic_new
521 tsurf_new(i) = tsurf_new(i) / sic_new(i)
522 alb_new(i) = alb_new(i) / sic_new(i)
532 swdown, lwdown, fluxlat, fluxsens, &
533 precip_rain, precip_snow, evap, tsurf, fder, albsol,
taux, tauy, windsp)
546 INTEGER,
INTENT(IN) :: itime
547 INTEGER,
INTENT(IN) :: knon
548 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
549 REAL,
DIMENSION(klon),
INTENT(IN) :: swdown, lwdown
550 REAL,
DIMENSION(klon),
INTENT(IN) :: fluxlat, fluxsens
551 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
552 REAL,
DIMENSION(klon),
INTENT(IN) :: evap, tsurf, fder, albsol
553 REAL,
DIMENSION(klon),
INTENT(IN) :: taux, tauy, windsp
557 INTEGER :: cpl_index, ig
558 INTEGER :: error, sum_error
559 CHARACTER(len = 25) :: modname =
'cpl_send_ocean_fields'
560 CHARACTER(len = 80) :: abort_message
573 IF (mod(itime,
nexca) == 1)
THEN
595 swdown(ig) /
REAL(
nexca)
597 (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) /
REAL(
nexca)
599 precip_rain(ig) /
REAL(
nexca)
601 precip_snow(ig) /
REAL(
nexca)
603 evap(ig) /
REAL(
nexca)
605 tsurf(ig) /
REAL(
nexca)
607 fder(ig) /
REAL(
nexca)
609 albsol(ig) /
REAL(
nexca)
611 taux(ig) /
REAL(
nexca)
613 tauy(ig) /
REAL(nexca)
615 windsp(ig) /
REAL(
nexca)
617 sqrt( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) /
real(
nexca)
631 IF (mod(itime,
nexca) == 0)
THEN
636 sum_error = sum_error + error
638 sum_error = sum_error + error
640 sum_error = sum_error + error
642 sum_error = sum_error + error
644 sum_error = sum_error + error
646 sum_error = sum_error + error
648 sum_error = sum_error + error
650 sum_error = sum_error + error
652 sum_error = sum_error + error
654 sum_error = sum_error + error
656 sum_error = sum_error + error
658 sum_error = sum_error + error
662 sum_error = sum_error + error
665 IF (sum_error /= 0)
THEN
666 abort_message=
'Pb allocation variables couplees pour l''ecriture'
723 swdown, lwdown, fluxlat, fluxsens, &
724 precip_rain, precip_snow, evap, tsurf, fder, albsol,
taux, tauy)
737 INTEGER,
INTENT(IN) :: itime
738 INTEGER,
INTENT(IN) :: knon
739 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
740 REAL,
INTENT(IN) :: dtime
741 REAL,
DIMENSION(klon),
INTENT(IN) :: rlon, rlat
742 REAL,
DIMENSION(klon),
INTENT(IN) :: swdown, lwdown
743 REAL,
DIMENSION(klon),
INTENT(IN) :: fluxlat, fluxsens
744 REAL,
DIMENSION(klon),
INTENT(IN) :: precip_rain, precip_snow
745 REAL,
DIMENSION(klon),
INTENT(IN) :: evap, tsurf, fder
746 REAL,
DIMENSION(klon),
INTENT(IN) :: albsol, taux, tauy
747 REAL,
DIMENSION(klon,nbsrf),
INTENT(IN) :: pctsrf
748 LOGICAL,
INTENT(IN) :: lafin
752 INTEGER :: cpl_index, ig
753 INTEGER :: error, sum_error
754 CHARACTER(len = 25) :: modname =
'cpl_send_seaice_fields'
755 CHARACTER(len = 80) :: abort_message
756 REAL,
DIMENSION(klon) :: cpl_fder_tmp
769 IF (mod(itime,
nexca) == 1)
THEN
789 swdown(ig) /
REAL(
nexca)
791 (lwdown(ig) + fluxlat(ig) +fluxsens(ig)) /
REAL(
nexca)
793 precip_rain(ig) /
REAL(
nexca)
795 precip_snow(ig) /
REAL(
nexca)
797 evap(ig) /
REAL(
nexca)
799 tsurf(ig) /
REAL(
nexca)
801 fder(ig) /
REAL(
nexca)
803 albsol(ig) /
REAL(
nexca)
805 taux(ig) /
REAL(
nexca)
807 tauy(ig) /
REAL(nexca)
809 sqrt( taux(ig)*taux(ig)+tauy(ig)*tauy(ig) ) /
REAL(nexca)
817 IF (mod(itime,
nexca) == 0)
THEN
821 sum_error = sum_error + error
823 sum_error = sum_error + error
825 sum_error = sum_error + error
827 sum_error = sum_error + error
829 sum_error = sum_error + error
831 sum_error = sum_error + error
833 sum_error = sum_error + error
835 sum_error = sum_error + error
837 sum_error = sum_error + error
839 sum_error = sum_error + error
841 sum_error = sum_error + error
843 sum_error = sum_error + error
847 sum_error = sum_error + error
850 IF (sum_error /= 0)
THEN
851 abort_message=
'Pb allocation variables couplees pour l''ecriture'
876 cpl_fder_tmp(:) = -20.
878 cpl_fder_tmp(knindex(ig))=
cpl_fder(ig,cpl_index)
897 CALL cpl_send_all(itime, dtime, pctsrf, lafin, rlon, rlat)
917 INTEGER,
INTENT(IN) :: itime
918 INTEGER,
INTENT(IN) :: knon
919 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
920 REAL,
DIMENSION(klon),
INTENT(IN) :: rriv_in
921 REAL,
DIMENSION(klon),
INTENT(IN) :: rcoa_in
925 REAL,
DIMENSION(nbp_lon,jj_nb) :: rriv2D
926 REAL,
DIMENSION(nbp_lon,jj_nb) :: rcoa2D
937 CALL gath2cpl(rriv_in, rriv2d, knon, knindex)
938 CALL gath2cpl(rcoa_in, rcoa2d, knon, knindex)
944 IF (mod(itime,
nexca) == 1)
THEN
976 INTEGER,
INTENT(IN) :: itime
977 INTEGER,
INTENT(IN) :: knon
978 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
979 REAL,
DIMENSION(klon),
INTENT(IN) :: rlic_in
983 REAL,
DIMENSION(nbp_lon,jj_nb) :: rlic2D
993 CALL gath2cpl(rlic_in, rlic2d, knon, knindex)
999 IF (mod(itime,
nexca) == 1)
THEN
1019 SUBROUTINE cpl_send_all(itime, dtime, pctsrf, lafin, rlon, rlat)
1033 INTEGER,
INTENT(IN) :: itime
1034 REAL,
INTENT(IN) :: dtime
1035 REAL,
DIMENSION(klon),
INTENT(IN) :: rlon, rlat
1036 REAL,
DIMENSION(klon,nbsrf),
INTENT(IN) :: pctsrf
1037 LOGICAL,
INTENT(IN) :: lafin
1041 INTEGER :: error, sum_error, j
1044 INTEGER,
DIMENSION(nbp_lon*(nbp_lat)) :: ndexct
1046 REAL,
DIMENSION(nbp_lon, jj_nb) :: tmp_lon, tmp_lat
1047 REAL,
DIMENSION(nbp_lon, jj_nb, 4) :: pctsrf2D
1048 REAL,
DIMENSION(nbp_lon, jj_nb) :: deno
1049 CHARACTER(len = 20) :: modname =
'cpl_send_all'
1050 CHARACTER(len = 80) :: abort_message
1053 REAL,
DIMENSION(nbp_lon, jj_nb) :: tmp_taux
1054 REAL,
DIMENSION(nbp_lon, jj_nb) :: tmp_tauy
1055 REAL,
DIMENSION(nbp_lon, jj_nb) :: tmp_calv
1057 REAL,
DIMENSION(nbp_lon, jj_nb, maxsend) :: tab_flds
1058 REAL,
DIMENSION(klon_mpi) :: rlon_mpi, rlat_mpi
1062 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: status
1097 pctsrf2d(:,:,:) = 0.
1108 IF (is_omp_root)
THEN
1117 IF (.NOT. is_north_pole)
THEN
1119 CALL mpi_recv(up,1,mpi_real_lmdz,mpi_rank-1,1234,comm_lmdz_phy,status,error)
1120 CALL mpi_send(tmp_calv(1,1),1,mpi_real_lmdz,mpi_rank-1,1234,comm_lmdz_phy,error)
1124 IF (.NOT. is_south_pole)
THEN
1126 CALL mpi_send(tmp_calv(1,jj_nb),1,mpi_real_lmdz,mpi_rank+1,1234,comm_lmdz_phy,error)
1127 CALL mpi_recv(down,1,mpi_real_lmdz,mpi_rank+1,1234,comm_lmdz_phy,status,error)
1131 IF (.NOT. is_north_pole .AND. ii_begin /=1)
THEN
1136 IF (.NOT. is_south_pole .AND. ii_end /=
nbp_lon)
THEN
1137 down=down+tmp_calv(1,jj_nb)
1138 tmp_calv(:,jj_nb)=down
1163 WHERE ( deno(:,:) /= 0 )
1193 WHERE ( deno(:,:) /= 0 )
1216 CALL gather_omp(rlon,rlon_mpi)
1217 CALL gather_omp(rlat,rlat_mpi)
1219 CALL grid1dto2d_mpi(rlon_mpi,tmp_lon)
1220 CALL grid1dto2d_mpi(rlat_mpi,tmp_lat)
1224 IF (is_north_pole) tmp_lon(:,1) = tmp_lon(:,2)
1241 CALL atm2geo (
nbp_lon, jj_nb, tmp_taux, tmp_tauy, tmp_lon, tmp_lat, &
1263 time_sec=(itime-1)*dtime
1266 CALL intocpl(time_sec, lafin, tab_flds(:,:,:))
1276 sum_error = sum_error + error
1278 sum_error = sum_error + error
1280 sum_error = sum_error + error
1284 sum_error = sum_error + error
1287 IF (sum_error /= 0)
THEN
1288 abort_message=
'Pb in deallocation of cpl_xxxx2D coupling variables'
1296 SUBROUTINE cpl2gath(champ_in, champ_out, knon, knindex)
1313 INTEGER,
INTENT(IN) :: knon
1314 REAL,
DIMENSION(nbp_lon,jj_nb),
INTENT(IN) :: champ_in
1315 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
1318 REAL,
DIMENSION(klon_mpi),
INTENT(OUT) :: champ_out
1322 REAL,
DIMENSION(klon_mpi) :: temp_mpi
1323 REAL,
DIMENSION(klon) :: temp_omp
1331 CALL grid2dto1d_mpi(champ_in,temp_mpi)
1334 CALL scatter_omp(temp_mpi,temp_omp)
1339 champ_out(i) = temp_omp(ig)
1346 SUBROUTINE gath2cpl(champ_in, champ_out, knon, knindex)
1363 INTEGER,
INTENT(IN) :: knon
1364 REAL,
DIMENSION(klon),
INTENT(IN) :: champ_in
1365 INTEGER,
DIMENSION(klon),
INTENT(IN) :: knindex
1369 REAL,
DIMENSION(nbp_lon,jj_nb),
INTENT(OUT) :: champ_out
1374 REAL,
DIMENSION(klon) :: temp_omp
1375 REAL,
DIMENSION(klon_mpi) :: temp_mpi
1382 temp_omp(ig) = champ_in(i)
1386 CALL gather_omp(temp_omp,temp_mpi)
1389 CALL grid1dto2d_mpi(temp_mpi,champ_out)
1391 IF (is_north_pole) champ_out(:,1)=temp_mpi(1)
1392 IF (is_south_pole) champ_out(:,jj_nb)=temp_mpi(
klon)
type(fld_cpl), dimension(maxsend), save, public infosend
integer, parameter ids_tauxxu
integer, parameter idr_cureny
real, dimension(:,:,:), allocatable, save cpl_tsol2d
integer, parameter idr_curenx
subroutine atm2geo(im, jm, pte, ptn, plon, plat, pxx, pyy, pzz)
real, dimension(:,:,:), allocatable, save cpl_tauy2d
integer, parameter ids_tauyyv
!$Id zjulian!correction pour l heure initiale!jyg!jyg CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)!jyg CALL histbeg_phy("histrac"
real, dimension(:,:), allocatable, save cpl_windsp2d
subroutine, public gath2cpl(champ_in, champ_out, knon, knindex)
real, dimension(:,:), allocatable, save cpl_fder
subroutine, public cpl_receive_frac(itime, dtime, pctsrf, is_modified)
integer, parameter idr_oceco2
real, dimension(:,:), allocatable, save cpl_atm_co22d
integer, parameter ids_tauxxv
real, dimension(:,:), allocatable, save cpl_atm_co2
integer, parameter ids_dflxdt
real, dimension(:,:), allocatable, save cpl_sols
real, dimension(:,:,:), allocatable, save cpl_evap2d
integer, save day_step_phy
integer, parameter ids_nsftot
character(len=6), save version_ocean
integer, dimension(:), allocatable, save unity
real, dimension(:,:,:), allocatable, save cpl_rain2d
real, dimension(:,:), allocatable, save cpl_rcoa2d
real, dimension(:,:), allocatable, save cpl_snow
integer, parameter ids_shfice
type(fld_cpl), dimension(maxrecv), save, public inforecv
subroutine cpl2gath(champ_in, champ_out, knon, knindex)
integer, parameter ids_tauzzv
real, dimension(:,:), allocatable, save cpl_rriv2d
real, dimension(:,:), allocatable, save read_sic
logical, save cpl_current
integer, parameter idr_curenz
integer, parameter ids_atmco2
real, dimension(:,:,:), allocatable, save cpl_taumod2d
real, dimension(:,:), allocatable, save cpl_rain
integer, parameter ids_toteva
integer, parameter ids_totrai
real, dimension(:,:), allocatable, save cpl_taux
real, dimension(:,:), allocatable, save cpl_nsol
integer, parameter ids_tauyyu
!$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 cpl_sols2d
real, dimension(:,:,:), allocatable, save cpl_fder2d
integer, parameter maxsend
real, dimension(:,:), allocatable, save cpl_tsol
real, dimension(:,:), allocatable, save cpl_windsp
integer, parameter maxrecv
integer, parameter ids_icevap
real, dimension(:,:), allocatable, save cpl_tauy
real, dimension(:,:), allocatable, save cpl_rlic2d
integer, parameter is_lic
real, dimension(:), allocatable, save rlon
real, dimension(:,:), allocatable, save cpl_taumod
real, dimension(:,:,:), allocatable, save cpl_snow2d
real, dimension(:,:), allocatable, save read_u0
real, dimension(:), allocatable, public fco2_ocn_day
subroutine, public cpl_send_landice_fields(itime, knon, knindex, rlic_in)
integer, parameter ids_rivflu
real, dimension(:,:), allocatable, save read_alb_sic
integer, save itaufin_phy
real, dimension(:,:,:), allocatable, save cpl_nsol2d
!$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 ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
c c $Id c nbregdyn DO klon c rlat(i) c ENDIF!lon c ENDIF!lat ENDIF!pctsrf ENDDO!klon ENDDO!nbregdyn cIM 190504 ENDIF!ok_regdyn cIM somme de toutes les nhistoW BEG IF(debut) THEN DO nreg
integer, parameter ids_nsfice
real, dimension(:,:), allocatable, save read_sst
subroutine, public cpl_receive_seaice_fields(knon, knindex, tsurf_new, alb_new, u0_new, v0_new)
integer, parameter ids_shftot
logical, save is_parallel
real, dimension(:), allocatable, save rlat
subroutine, public cpl_send_seaice_fields(itime, dtime, knon, knindex, pctsrf, lafin, rlon, rlat, swdown, lwdown, fluxlat, fluxsens, precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy)
integer, parameter ids_ocevap
integer, parameter idr_icealw
!$Header!c!c!c include serre h!c REAL taux
integer, parameter ids_runcoa
subroutine, public cpl_send_land_fields(itime, knon, knindex, rriv_in, rcoa_in)
integer, parameter ids_taumod
real, dimension(:,:), allocatable, save cpl_evap
integer, parameter ids_windsp
subroutine gr_fi_ecrit(nfield, nlon, iim, jjmp1, fi, ecrit)
integer, parameter idr_icecov
integer, parameter idr_sisutw
integer, parameter is_sic
subroutine abort_physic(modname, message, ierr)
integer, parameter ids_liqrun
integer, parameter ids_tauzzu
logical, public carbon_cycle_cpl
integer, parameter idr_icetem
subroutine, public cpl_send_ocean_fields(itime, knon, knindex, swdown, lwdown, fluxlat, fluxsens, precip_rain, precip_snow, evap, tsurf, fder, albsol, taux, tauy, windsp)
real, dimension(:), allocatable, public co2_send
real, dimension(:,:), allocatable, save read_v0
subroutine, public cpl_receive_ocean_fields(knon, knindex, tsurf_new, u0_new, v0_new)
integer, parameter ids_nsfoce
c c zjulian c cym CALL iim cym klev iim cym jjmp1 cym On stoke le fichier bilKP instantanne s jmax_ins print On stoke le fichier bilKP instantanne s s cym cym nid_bilKPins ENDIF c cIM BEG c cIM cf AM BEG region cym CALL histbeg("histbilKP_ins", iim, zx_lon(:, 1), cym.jjmp1, zx_lat(1,:), cym.imin_ins, imax_ins-imin_ins+1, cym.jmin_ins, jmax_ins-jmin_ins+1, cym.itau_phy, zjulian, dtime, cym.nhori, nid_bilKPins) CALL histbeg_phy("histbilKP_ins"
integer, parameter ids_totsno
real, dimension(:,:,:), allocatable, save cpl_taux2d
real, dimension(:,:), allocatable, save read_co2
logical, save is_sequential
real, dimension(:,:), allocatable, save cpl_albe
!IM for NMC files!real nfiles!real nfiles!real nfiles!real nlevSTD3 real nlevSTD3 real nlevSTD3 real nlevSTD3 real nlevSTD8 real nlevSTD8 real nlevSTD8 real nlevSTD8 real
integer, parameter is_oce
real, dimension(:,:), allocatable, save read_sit
integer, parameter ids_shfoce
real, dimension(:,:,:), allocatable, save cpl_albe2d
c c $Id c nbregdyn DO klon c rlon(i)
subroutine geo2atm(im, jm, px, py, pz, plon, plat, pu, pv, pr)
subroutine cpl_send_all(itime, dtime, pctsrf, lafin, rlon, rlat)
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
subroutine, public cpl_init(dtime, rlon, rlat)
integer, parameter ids_calvin