Changeset 179 for LMDZ.3.3/branches/rel-LF/libf/phylmd
- Timestamp:
- Mar 20, 2001, 4:14:30 PM (24 years ago)
- Location:
- LMDZ.3.3/branches/rel-LF/libf/phylmd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/inc_cpl.h
r98 r179 1 C 2 C -- inc_cpl.h 1998-04 3 C ********** 4 C@ 5 C@ Contents : variables describing pipe and field names 6 C@ -------- 7 C@ 8 C@ -- cl_write : for fields to write 9 C@ 10 C@ -- cl_read : for fields to read 11 C@ 12 C ------------------------------------------------------------------- 13 C 1 ! 2 ! $Header$ 3 ! 4 ! -- inc_cpl.h 1998-04 5 ! ********** 6 !@ 7 !@ Contents : variables describing pipe and field names 8 !@ -------- 9 !@ 10 !@ -- cl_write : for fields to write 11 !@ 12 !@ -- cl_read : for fields to read 13 !@ 14 ! ------------------------------------------------------------------- 15 ! 14 16 INTEGER jpread, jpwrit 15 17 PARAMETER (jpread=0, jpwrit=1) … … 17 19 CHARACTER*6 cl_f_writ(jpmaxfld), cl_f_read(jpmaxfld) 18 20 COMMON / comcpl / cl_writ, cl_read, cl_f_writ, cl_f_read 19 C-------------------------------------------------------------------21 ! ------------------------------------------------------------------- -
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r177 r179 178 178 179 179 ! Local 180 character (len = 20) :: modname = 'interfsurf_hq'180 character (len = 20),save :: modname = 'interfsurf_hq' 181 181 character (len = 80) :: abort_message 182 182 logical, save :: first_call = .true. 183 INTEGER :: error, ii 184 logical :: check = .true. 183 integer, save :: error 184 integer :: ii 185 logical,save :: check = .true. 185 186 real, dimension(klon):: cal, beta, dif_grnd, capsol 186 187 !!$PB real, parameter :: calice=1.0/(5.1444e+06*0.15), tau_gl=86400.*5. … … 687 688 character (len = 20) :: modname = 'interfsol' 688 689 character (len = 80) :: abort_message 689 logical :: check = .true.690 logical,save :: check = .TRUE. 690 691 real, dimension(klon) :: cal, beta, dif_grnd, capsol 691 692 ! type de couplage dans sechiba … … 712 713 real, allocatable, dimension (:,:), save :: lon_scat, lat_scat 713 714 714 logical 715 logical, save :: lrestart_read = .true. , lrestart_write = .true. 715 716 716 717 real, dimension(klon):: qsurf 717 718 real, dimension(klon):: snow, qsol 718 real :: date0 = 0.719 real, save :: date0 = 0. 719 720 real, dimension(knon,2) :: albedo_out 720 721 ! Pb de nomenclature … … 997 998 character (len = 20) :: modname = 'interfoce_cpl' 998 999 character (len = 80) :: abort_message 999 logical :: check = .true.1000 logical,save :: check = .true. 1000 1001 ! variables pour moyenner les variables de couplage 1001 1002 real, allocatable, dimension(:,:),save :: cpl_sols, cpl_nsol, cpl_rain … … 1031 1032 real, dimension(iim, jjm+1) :: deno 1032 1033 integer :: idtime 1033 integer, allocatable, dimension(:,:) :: isst 1034 integer, allocatable,save,dimension(:) :: unity 1034 integer, allocatable,dimension(:),save :: unity 1035 1035 ! 1036 1036 logical, save :: first_appel = .true. 1037 logical :: print 1038 1037 logical,save :: print 1038 !maf 1039 ! variables pour avoir une sortie IOIPSL des champs echanges 1040 CHARACTER*80,SAVE :: clintocplnam, clfromcplnam 1041 INTEGER, SAVE :: jf,nhoridct,nidct 1042 INTEGER, SAVE :: nhoridcs,nidcs 1043 INTEGER :: ndexct(iim*(jjm+1)),ndexcs(iim*(jjm+1)) 1044 REAL :: zx_lon(iim,jjm+1), zx_lat(iim,jjm+1), zjulian 1045 include 'param_cou.h' 1046 include 'inc_cpl.h' 1047 include 'temps.h' 1039 1048 ! 1040 1049 ! Initialisation … … 1098 1107 call inicma(npas , nexca, idtime,(jjm+1)*iim) 1099 1108 1109 ! 1110 ! initialisation sorties netcdf 1111 ! 1112 CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian) 1113 zjulian = zjulian + day_ini 1114 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon) 1115 DO i = 1, iim 1116 zx_lon(i,1) = rlon(i+1) 1117 zx_lon(i,jjm+1) = rlon(i+1) 1118 ENDDO 1119 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat) 1120 clintocplnam="cpl_atm_tauflx" 1121 CALL histbeg(clintocplnam, iim,zx_lon,jjm+1,zx_lat,1,iim,1,jjm+1, & 1122 & 0,zjulian,dtime,nhoridct,nidct) 1123 ! no vertical axis 1124 CALL histdef(nidct, 'tauxe','tauxe', & 1125 & "-",iim, jjm+1, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1126 CALL histdef(nidct, 'tauyn','tauyn', & 1127 & "-",iim, jjm+1, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1128 CALL histdef(nidct, 'tmp_lon','tmp_lon', & 1129 & "-",iim, jjm+1, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1130 CALL histdef(nidct, 'tmp_lat','tmp_lat', & 1131 & "-",iim, jjm+1, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1132 DO jf=1,jpflda2o1 + jpflda2o2 1133 CALL histdef(nidct, cl_writ(jf),cl_writ(jf), & 1134 & "-",iim, jjm+1, nhoridct, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1135 END DO 1136 CALL histend(nidct) 1137 CALL histsync(nidct) 1138 1139 clfromcplnam="cpl_atm_sst" 1140 CALL histbeg(clfromcplnam, iim,zx_lon,jjm+1,zx_lat,1,iim,1,jjm+1, & 1141 & 0,zjulian,dtime,nhoridcs,nidcs) 1142 ! no vertical axis 1143 DO jf=1,jpfldo2a 1144 CALL histdef(nidcs, cl_read(jf),cl_read(jf), & 1145 & "-",iim, jjm+1, nhoridcs, 1, 1, 1, -99, 32, "inst", dtime,dtime) 1146 END DO 1147 CALL histend(nidcs) 1148 CALL histsync(nidcs) 1149 1100 1150 first_appel = .false. 1101 1151 endif ! fin if (first_appel) … … 1109 1159 if (nisurf == is_sic) cpl_index = 2 1110 1160 if (cumul) then 1161 if (check) write(*,*) modname, 'cumul des champs' 1111 1162 do ig = 1, knon 1112 if (check) write(*,*) modname, 'cumul des champs'1113 1163 cpl_sols(ig,cpl_index) = cpl_sols(ig,cpl_index) & 1114 1164 & + swdown(ig) / FLOAT(nexca) … … 1141 1191 if (mod(itime, nexca) == 1) then 1142 1192 ! 1143 ! Passage des champs au coupleur1193 ! Demande des champs au coupleur 1144 1194 ! 1145 1195 ! Si le domaine considere est l'ocean, on lit les champs venant du coupleur … … 1149 1199 call fromcpl(itime-1,(jjm+1)*iim, & 1150 1200 & read_sst, read_sic, read_sit, read_alb_sic) 1201 ! 1202 ! sorties NETCDF des champs recus 1203 ! 1204 ndexcs(:)=0 1205 CALL histwrite(nidcs,cl_read(1),itime,read_sst,iim*(jjm+1),ndexcs) 1206 CALL histwrite(nidcs,cl_read(2),itime,read_sic,iim*(jjm+1),ndexcs) 1207 CALL histwrite(nidcs,cl_read(3),itime,read_sit,iim*(jjm+1),ndexcs) 1208 CALL histwrite(nidcs,cl_read(4),itime,read_alb_sic,iim*(jjm+1),ndexcs) 1209 CALL histsync(nidcs) 1210 ! pas utile IF (npas-itime.LT.nexca )CALL histclo(nidcs) 1211 1151 1212 do j = 1, jjm + 1 1152 1213 do ig = 1, iim … … 1182 1243 ! Pour rattraper des erreurs d'arrondis 1183 1244 ! 1184 where (abs(pctsrf_sav(:,is_sic)) .le. epsilon(pctsrf_sav(1,is_sic)))1245 where (abs(pctsrf_sav(:,is_sic)) .le. 2.*epsilon(pctsrf_sav(1,is_sic))) 1185 1246 pctsrf_sav(:,is_sic) = 0. 1186 1247 pctsrf_sav(:,is_oce) = pctsrf(:,is_oce) + pctsrf(:,is_sic) 1187 1248 endwhere 1188 where (abs(pctsrf_sav(:,is_oce)) .le. epsilon(pctsrf_sav(1,is_oce)))1249 where (abs(pctsrf_sav(:,is_oce)) .le. 2.*epsilon(pctsrf_sav(1,is_oce))) 1189 1250 pctsrf_sav(:,is_sic) = pctsrf(:,is_oce) + pctsrf(:,is_sic) 1190 1251 pctsrf_sav(:,is_oce) = 0. … … 1282 1343 ! on passe les coordonnées de la grille 1283 1344 ! 1284 CALL gath2cpl(rlon(1), tmp_lon(1,1), klon, knon,iim,jjm, knindex) 1285 CALL gath2cpl(rlat(1), tmp_lat(1,1), klon, knon,iim,jjm, knindex) 1345 1346 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,tmp_lon) 1347 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,tmp_lat) 1348 1286 1349 DO i = 1, iim 1287 1350 tmp_lon(i,1) = rlon(i+1) … … 1289 1352 ENDDO 1290 1353 ! 1354 ! sortie netcdf des champs pour le changement de repere 1355 ! 1356 ndexct(:)=0 1357 CALL histwrite(nidct,'tauxe',itime,wri_taux,iim*(jjm+1),ndexct) 1358 CALL histwrite(nidct,'tauyn',itime,wri_tauy,iim*(jjm+1),ndexct) 1359 CALL histwrite(nidct,'tmp_lon',itime,tmp_lon,iim*(jjm+1),ndexct) 1360 CALL histwrite(nidct,'tmp_lat',itime,tmp_lat,iim*(jjm+1),ndexct) 1361 1362 ! 1291 1363 ! calcul 3 coordonnées du vent 1292 1364 ! 1293 1365 CALL atm2geo (iim , jjm + 1, wri_taux, wri_tauy, tmp_lon, tmp_lat, & 1294 1366 & wri_tauxx, wri_tauyy, wri_tauzz ) 1367 ! 1368 ! sortie netcdf des champs apres changement de repere et juste avant 1369 ! envoi au coupleur 1370 ! 1371 CALL histwrite(nidct,cl_writ(1),itime,wri_sol_ice,iim*(jjm+1),ndexct) 1372 CALL histwrite(nidct,cl_writ(2),itime,wri_sol_sea,iim*(jjm+1),ndexct) 1373 CALL histwrite(nidct,cl_writ(3),itime,wri_nsol_ice,iim*(jjm+1),ndexct) 1374 CALL histwrite(nidct,cl_writ(4),itime,wri_nsol_sea,iim*(jjm+1),ndexct) 1375 CALL histwrite(nidct,cl_writ(5),itime,wri_fder_ice,iim*(jjm+1),ndexct) 1376 CALL histwrite(nidct,cl_writ(6),itime,wri_evap_ice,iim*(jjm+1),ndexct) 1377 CALL histwrite(nidct,cl_writ(7),itime,wri_evap_sea,iim*(jjm+1),ndexct) 1378 CALL histwrite(nidct,cl_writ(8),itime,wri_rain,iim*(jjm+1),ndexct) 1379 CALL histwrite(nidct,cl_writ(9),itime,wri_snow,iim*(jjm+1),ndexct) 1380 CALL histwrite(nidct,cl_writ(10),itime,wri_rcoa,iim*(jjm+1),ndexct) 1381 CALL histwrite(nidct,cl_writ(11),itime,wri_rriv,iim*(jjm+1),ndexct) 1382 CALL histwrite(nidct,cl_writ(12),itime,wri_tauxx,iim*(jjm+1),ndexct) 1383 CALL histwrite(nidct,cl_writ(13),itime,wri_tauyy,iim*(jjm+1),ndexct) 1384 CALL histwrite(nidct,cl_writ(14),itime,wri_tauzz,iim*(jjm+1),ndexct) 1385 CALL histwrite(nidct,cl_writ(15),itime,wri_tauxx,iim*(jjm+1),ndexct) 1386 CALL histwrite(nidct,cl_writ(16),itime,wri_tauyy,iim*(jjm+1),ndexct) 1387 CALL histwrite(nidct,cl_writ(17),itime,wri_tauzz,iim*(jjm+1),ndexct) 1388 CALL histsync(nidct) 1389 ! pas utile IF (lafin) CALL histclo(nidct) 1295 1390 1296 1391 call intocpl(itime, (jjm+1)*iim, wri_sol_ice, wri_sol_sea, wri_nsol_ice,& … … 1413 1508 character (len = 20) :: modname = 'interfoce_lim' 1414 1509 character (len = 80) :: abort_message 1415 character (len = 20) :: fich ='limit.nc'1416 LOGICAL:: newlmt = .TRUE.1417 logical :: check = .true.1510 character (len = 20),save :: fich ='limit.nc' 1511 logical, save :: newlmt = .TRUE. 1512 logical, save :: check = .true. 1418 1513 ! Champs lus dans le fichier de CL 1419 1514 real, allocatable , save, dimension(:) :: sst_lu, rug_lu, nat_lu … … 1656 1751 character (len = 20) :: modname = 'interfsur_lim' 1657 1752 character (len = 80) :: abort_message 1658 character (len = 20) :: fich ='limit.nc'1659 logical :: newlmt = .false.1660 logical :: check = .true.1753 character (len = 20),save :: fich ='limit.nc' 1754 logical,save :: newlmt = .false. 1755 logical,save :: check = .true. 1661 1756 ! Champs lus dans le fichier de CL 1662 1757 real, allocatable , save, dimension(:) :: alb_lu, rug_lu … … 1665 1760 ! 1666 1761 #include "netcdf.inc" 1667 integer :: nid, nvarid1668 integer, dimension(2) :: start, epais1762 integer ,save :: nid, nvarid 1763 integer, dimension(2),save :: start, epais 1669 1764 ! 1670 1765 ! Fin déclaration … … 1747 1842 ! Recopie des variables dans les champs de sortie 1748 1843 ! 1844 lmt_alb(:) = 0.0 1845 lmt_rug(:) = 0.0 1749 1846 DO ii = 1, knon 1750 1847 lmt_alb(ii) = alb_lu(knindex(ii)) … … 1832 1929 REAL, parameter :: chasno = 3.334E+05/(2.3867E+06*0.15) 1833 1930 ! 1834 logical :: check = .true.1931 logical, save :: check = .true. 1835 1932 character (len = 20) :: modname = 'calcul_fluxs' 1836 logical :: fonte_neige = .false.1837 real :: max_eau_sol = 150.01933 logical, save :: fonte_neige = .false. 1934 real, save :: max_eau_sol = 150.0 1838 1935 character (len = 80) :: abort_message 1839 logical,save :: first = .t .,second=.f.1936 logical,save :: first = .true.,second=.false. 1840 1937 1841 1938 if (check) write(*,*)'Entree ', modname,' surface = ',nisurf … … 2096 2193 integer :: i, ig, j 2097 2194 real, dimension(klon) :: tamp 2098 logical :: check = .false.2195 logical ,save :: check = .false. 2099 2196 2100 2197 ig = 1 -
LMDZ.3.3/branches/rel-LF/libf/phylmd/oasis.true
r177 r179 199 199 CALL CLIM_Define (cl_read(jf), clim_in , clim_double, iparal 200 200 $ , info ) 201 WRITE(nuout,*) 'inicma : clim define done for ',jf 202 $ ,cl_read(jf) 201 203 END DO 202 204 c … … 206 208 CALL CLIM_Define (cl_writ(jf), clim_out , clim_double, 207 209 $ iparal, info ) 210 WRITE(nuout,*) 'inicma : clim define done for ',jf 211 $ ,cl_writ(jf) 208 212 END DO 209 213 c … … 410 414 IF (jf.eq.1) 411 415 $ CALL locwrite(cl_writ(jf),fsolice, imjm, 412 $ file_unit_field(jf), ierror , nuout)416 $ file_unit_field(jf), ierror) 413 417 IF (jf.eq.2) 414 418 $ CALL locwrite(cl_writ(jf),fsolwat, imjm, 415 $ file_unit_field(jf), ierror , nuout)419 $ file_unit_field(jf), ierror) 416 420 IF (jf.eq.3) 417 421 $ CALL locwrite(cl_writ(jf),fnsolice, imjm, 418 $ file_unit_field(jf), ierror , nuout)422 $ file_unit_field(jf), ierror) 419 423 IF (jf.eq.4) 420 424 $ CALL locwrite(cl_writ(jf),fnsolwat, imjm, 421 $ file_unit_field(jf), ierror , nuout)425 $ file_unit_field(jf), ierror) 422 426 IF (jf.eq.5) 423 427 $ CALL locwrite(cl_writ(jf),fnsicedt, imjm, 424 $ file_unit_field(jf), ierror , nuout)428 $ file_unit_field(jf), ierror) 425 429 c IF (jf.eq.6) 426 430 c $ CALL locwrite(cl_writ(jf),ictemp, imjm, 427 c $ file_unit_field(jf), ierror , nuout)431 c $ file_unit_field(jf), ierror) 428 432 IF (jf.eq.6) 429 433 $ CALL locwrite(cl_writ(jf),evice, imjm, 430 $ file_unit_field(jf), ierror , nuout)434 $ file_unit_field(jf), ierror) 431 435 IF (jf.eq.7) 432 436 $ CALL locwrite(cl_writ(jf),evwat, imjm, 433 $ file_unit_field(jf), ierror , nuout)437 $ file_unit_field(jf), ierror) 434 438 IF (jf.eq.8) 435 439 $ CALL locwrite(cl_writ(jf),lpre, imjm, 436 $ file_unit_field(jf), ierror , nuout)440 $ file_unit_field(jf), ierror) 437 441 IF (jf.eq.9) 438 442 $ CALL locwrite(cl_writ(jf),spre, imjm, 439 $ file_unit_field(jf), ierror , nuout)443 $ file_unit_field(jf), ierror) 440 444 IF (jf.eq.10) 441 445 $ CALL locwrite(cl_writ(jf),dirunoff, imjm, 442 $ file_unit_field(jf), ierror , nuout)446 $ file_unit_field(jf), ierror) 443 447 IF (jf.eq.11) 444 448 $ CALL locwrite(cl_writ(jf),rivrunoff, imjm, 445 $ file_unit_field(jf), ierror , nuout)449 $ file_unit_field(jf), ierror) 446 450 c$$$ IF (jf.eq.12) 447 451 c$$$ $ CALL locwrite(cl_writ(jf),tauxu, imjm, 448 c$$$ $ file_unit_field(jf),ierror , nuout)452 c$$$ $ file_unit_field(jf),ierror) 449 453 c$$$ IF (jf.eq.13) 450 454 c$$$ $ CALL locwrite(cl_writ(jf),tauxv, imjm, 451 c$$$ $ file_unit_field(jf),ierror , nuout)455 c$$$ $ file_unit_field(jf),ierror) 452 456 c$$$ IF (jf.eq.14) 453 457 c$$$ $ CALL locwrite(cl_writ(jf),tauyv, imjm, 454 c$$$ $ file_unit_field(jf),ierror , nuout)458 c$$$ $ file_unit_field(jf),ierror) 455 459 c$$$ IF (jf.eq.15) 456 460 c$$$ $ CALL locwrite(cl_writ(jf),tauyu, imjm, 457 c$$$ $ file_unit_field(jf), ierror , nuout)461 c$$$ $ file_unit_field(jf), ierror) 458 462 IF (jf.eq.12) 459 463 $ CALL locwrite(cl_writ(jf),tauxx_u, imjm, -
LMDZ.3.3/branches/rel-LF/libf/phylmd/param_cou.h
r109 r179 1 C$Id$2 C 3 C-- param_cou.h4 C 1 ! $Id$ 2 ! 3 ! -- param_cou.h 4 ! 5 5 INTEGER jpmaxfld 6 6 PARAMETER(jpmaxfld = 40) ! Maximum number of fields exchanged … … 10 10 ! atmosphere to ocean via flx.F 11 11 INTEGER jpflda2o2 12 PARAMETER(jpflda2o2 = 4) ! Number of fields exchanged from12 PARAMETER(jpflda2o2 = 6) ! Number of fields exchanged from 13 13 ! atmosphere to ocean via tau.F 14 C 14 ! 15 15 INTEGER jpfldo2a 16 16 PARAMETER(jpfldo2a = 4) ! Number of fields exchanged from 17 17 ! ocean to atmosphere 18 C 18 ! -
LMDZ.3.3/branches/rel-LF/libf/phylmd/phyredem.F
r177 r179 1 c $Header$ 2 c 1 3 SUBROUTINE phyredem (fichnom,dtime,radpas,co2_ppm,solaire, 2 4 . rlat,rlon, pctsrf,tsol,tsoil,deltat,qsol,snow, … … 100 102 c 101 103 ierr = NF_REDEF (nid) 102 #ifdef NC_DOUBLE103 ierr = NF_DEF_VAR (nid, "controle", NF_DOUBLE, 1, idim1,nvarid)104 #else105 104 ierr = NF_DEF_VAR (nid, "controle", NF_FLOAT, 1, idim1,nvarid) 106 #endif107 105 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22, 108 106 . "Parametres de controle") … … 115 113 c 116 114 ierr = NF_REDEF (nid) 117 #ifdef NC_DOUBLE118 ierr = NF_DEF_VAR (nid, "longitude", NF_DOUBLE, 1, idim2,nvarid)119 #else120 115 ierr = NF_DEF_VAR (nid, "longitude", NF_FLOAT, 1, idim2,nvarid) 121 #endif122 116 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32, 123 117 . "Longitudes de la grille physique") … … 130 124 c 131 125 ierr = NF_REDEF (nid) 132 #ifdef NC_DOUBLE133 ierr = NF_DEF_VAR (nid, "latitude", NF_DOUBLE, 1, idim2,nvarid)134 #else135 126 ierr = NF_DEF_VAR (nid, "latitude", NF_FLOAT, 1, idim2,nvarid) 136 #endif137 127 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 31, 138 128 . "Latitudes de la grille physique") … … 147 137 C 148 138 ierr = NF_REDEF (nid) 149 #ifdef NC_DOUBLE150 ierr = NF_DEF_VAR (nid, "masque", NF_DOUBLE, 1, idim2,nvarid)151 #else152 139 ierr = NF_DEF_VAR (nid, "masque", NF_FLOAT, 1, idim2,nvarid) 153 #endif154 140 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 16, 155 141 . "masque terre mer") … … 165 151 C 166 152 ierr = NF_REDEF (nid) 167 #ifdef NC_DOUBLE168 ierr = NF_DEF_VAR (nid, "FTER", NF_DOUBLE, 1, idim2,nvarid)169 #else170 153 ierr = NF_DEF_VAR (nid, "FTER", NF_FLOAT, 1, idim2,nvarid) 171 #endif172 154 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21, 173 155 . "fraction de continent") … … 182 164 C 183 165 ierr = NF_REDEF (nid) 184 #ifdef NC_DOUBLE185 ierr = NF_DEF_VAR (nid, "FLIC", NF_DOUBLE, 1, idim2,nvarid)186 #else187 166 ierr = NF_DEF_VAR (nid, "FLIC", NF_FLOAT, 1, idim2,nvarid) 188 #endif189 167 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 24, 190 168 . "fraction glace de terre") … … 199 177 C 200 178 ierr = NF_REDEF (nid) 201 #ifdef NC_DOUBLE202 ierr = NF_DEF_VAR (nid, "FOCE", NF_DOUBLE, 1, idim2,nvarid)203 #else204 179 ierr = NF_DEF_VAR (nid, "FOCE", NF_FLOAT, 1, idim2,nvarid) 205 #endif206 180 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14, 207 181 . "fraction ocean") … … 216 190 C 217 191 ierr = NF_REDEF (nid) 218 #ifdef NC_DOUBLE219 ierr = NF_DEF_VAR (nid, "FSIC", NF_DOUBLE, 1, idim2,nvarid)220 #else221 192 ierr = NF_DEF_VAR (nid, "FSIC", NF_FLOAT, 1, idim2,nvarid) 222 #endif223 193 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 18, 224 194 . "fraction glace mer") … … 236 206 WRITE(str2,'(i2.2)') nsrf 237 207 ierr = NF_REDEF (nid) 238 #ifdef NC_DOUBLE239 ierr = NF_DEF_VAR (nid, "TS"//str2, NF_DOUBLE, 1, idim2,nvarid)240 #else241 208 ierr = NF_DEF_VAR (nid, "TS"//str2, NF_FLOAT, 1, idim2,nvarid) 242 #endif243 209 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28, 244 210 . "Temperature de surface No."//str2) … … 260 226 WRITE(str7,'(i2.2,"srf",i2.2)') isoil,nsrf 261 227 ierr = NF_REDEF (nid) 262 #ifdef NC_DOUBLE263 ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_DOUBLE,1,idim2,nvarid)264 #else265 228 ierr = NF_DEF_VAR (nid, "Tsoil"//str7,NF_FLOAT,1,idim2,nvarid) 266 #endif267 229 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 29, 268 230 . "Temperature du sol No."//str7) … … 282 244 c 283 245 ierr = NF_REDEF (nid) 284 #ifdef NC_DOUBLE285 ierr = NF_DEF_VAR (nid, "DELTAT", NF_DOUBLE, 1, idim2,nvarid)286 #else287 246 ierr = NF_DEF_VAR (nid, "DELTAT", NF_FLOAT, 1, idim2,nvarid) 288 #endif289 247 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33, 290 248 . "Ecart de la SST (pour slab-ocean)") … … 300 258 WRITE(str2,'(i2.2)') nsrf 301 259 ierr = NF_REDEF (nid) 302 #ifdef NC_DOUBLE303 ierr = NF_DEF_VAR (nid,"QS"//str2,NF_DOUBLE,1,idim2,nvarid)304 #else305 260 ierr = NF_DEF_VAR (nid,"QS"//str2,NF_FLOAT,1,idim2,nvarid) 306 #endif307 261 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 25, 308 262 . "Humidite de surface No."//str2) … … 323 277 WRITE(str2,'(i2.2)') nsrf 324 278 ierr = NF_REDEF (nid) 325 #ifdef NC_DOUBLE326 ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_DOUBLE,1,idim2,nvarid)327 #else328 279 ierr = NF_DEF_VAR (nid,"ALBE"//str2,NF_FLOAT,1,idim2,nvarid) 329 #endif330 280 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23, 331 281 . "albedo de surface No."//str2) … … 346 296 WRITE(str2,'(i2.2)') nsrf 347 297 ierr = NF_REDEF (nid) 348 #ifdef NC_DOUBLE349 ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_DOUBLE,1,idim2,nvarid)350 #else351 298 ierr = NF_DEF_VAR (nid,"EVAP"//str2,NF_FLOAT,1,idim2,nvarid) 352 #endif353 299 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28, 354 300 . "Evaporation de surface No."//str2) … … 370 316 WRITE(str2,'(i2.2)') nsrf 371 317 ierr = NF_REDEF (nid) 372 #ifdef NC_DOUBLE373 ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_DOUBLE,1,idim2,nvarid)374 #else375 318 ierr = NF_DEF_VAR (nid,"SNOW"//str2,NF_FLOAT,1,idim2,nvarid) 376 #endif377 319 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 22, 378 320 . "Neige de surface No."//str2) … … 391 333 c 392 334 ierr = NF_REDEF (nid) 393 #ifdef NC_DOUBLE394 ierr = NF_DEF_VAR (nid, "RADS", NF_DOUBLE, 1, idim2,nvarid)395 #else396 335 ierr = NF_DEF_VAR (nid, "RADS", NF_FLOAT, 1, idim2,nvarid) 397 #endif398 336 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28, 399 337 . "Rayonnement net a la surface") … … 406 344 c 407 345 ierr = NF_REDEF (nid) 408 #ifdef NC_DOUBLE409 ierr = NF_DEF_VAR (nid, "solsw", NF_DOUBLE, 1, idim2,nvarid)410 #else411 346 ierr = NF_DEF_VAR (nid, "solsw", NF_FLOAT, 1, idim2,nvarid) 412 #endif413 347 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 32, 414 348 . "Rayonnement solaire a la surface") … … 421 355 c 422 356 ierr = NF_REDEF (nid) 423 #ifdef NC_DOUBLE424 ierr = NF_DEF_VAR (nid, "sollw", NF_DOUBLE, 1, idim2,nvarid)425 #else426 357 ierr = NF_DEF_VAR (nid, "sollw", NF_FLOAT, 1, idim2,nvarid) 427 #endif428 358 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 27, 429 359 . "Rayonnement IF a la surface") … … 436 366 c 437 367 ierr = NF_REDEF (nid) 438 #ifdef NC_DOUBLE439 ierr = NF_DEF_VAR (nid, "fder", NF_DOUBLE, 1, idim2,nvarid)440 #else441 368 ierr = NF_DEF_VAR (nid, "fder", NF_FLOAT, 1, idim2,nvarid) 442 #endif443 369 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 14, 444 370 . "Derive de flux") … … 451 377 c 452 378 ierr = NF_REDEF (nid) 453 #ifdef NC_DOUBLE454 ierr = NF_DEF_VAR (nid, "rain_f", NF_DOUBLE, 1, idim2,nvarid)455 #else456 379 ierr = NF_DEF_VAR (nid, "rain_f", NF_FLOAT, 1, idim2,nvarid) 457 #endif458 380 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 21, 459 381 . "precipitation liquide") … … 466 388 c 467 389 ierr = NF_REDEF (nid) 468 #ifdef NC_DOUBLE469 ierr = NF_DEF_VAR (nid, "snow_f", NF_DOUBLE, 1, idim2,nvarid)470 #else471 390 ierr = NF_DEF_VAR (nid, "snow_f", NF_FLOAT, 1, idim2,nvarid) 472 #endif473 391 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 20, 474 392 . "precipitation solide") … … 484 402 WRITE(str2,'(i2.2)') nsrf 485 403 ierr = NF_REDEF (nid) 486 #ifdef NC_DOUBLE487 ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_DOUBLE,1,idim2,nvarid)488 #else489 404 ierr = NF_DEF_VAR (nid,"RUG"//str2,NF_FLOAT,1,idim2,nvarid) 490 #endif491 405 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23, 492 406 . "rugosite de surface No."//str2) … … 504 418 c 505 419 ierr = NF_REDEF (nid) 506 #ifdef NC_DOUBLE507 ierr = NF_DEF_VAR (nid, "AGESNO", NF_DOUBLE, 1, idim2,nvarid)508 #else509 420 ierr = NF_DEF_VAR (nid, "AGESNO", NF_FLOAT, 1, idim2,nvarid) 510 #endif511 421 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 15, 512 422 . "Age de la neige") … … 519 429 c 520 430 ierr = NF_REDEF (nid) 521 #ifdef NC_DOUBLE522 ierr = NF_DEF_VAR (nid, "ZMEA", NF_DOUBLE, 1, idim2,nvarid)523 #else524 431 ierr = NF_DEF_VAR (nid, "ZMEA", NF_FLOAT, 1, idim2,nvarid) 525 #endif526 432 ierr = NF_ENDDEF(nid) 527 433 #ifdef NC_DOUBLE … … 532 438 c 533 439 ierr = NF_REDEF (nid) 534 #ifdef NC_DOUBLE535 ierr = NF_DEF_VAR (nid, "ZSTD", NF_DOUBLE, 1, idim2,nvarid)536 #else537 440 ierr = NF_DEF_VAR (nid, "ZSTD", NF_FLOAT, 1, idim2,nvarid) 538 #endif539 441 ierr = NF_ENDDEF(nid) 540 442 #ifdef NC_DOUBLE … … 545 447 c 546 448 ierr = NF_REDEF (nid) 547 #ifdef NC_DOUBLE548 ierr = NF_DEF_VAR (nid, "ZSIG", NF_DOUBLE, 1, idim2,nvarid)549 #else550 449 ierr = NF_DEF_VAR (nid, "ZSIG", NF_FLOAT, 1, idim2,nvarid) 551 #endif552 450 ierr = NF_ENDDEF(nid) 553 451 #ifdef NC_DOUBLE … … 558 456 c 559 457 ierr = NF_REDEF (nid) 560 #ifdef NC_DOUBLE561 ierr = NF_DEF_VAR (nid, "ZGAM", NF_DOUBLE, 1, idim2,nvarid)562 #else563 458 ierr = NF_DEF_VAR (nid, "ZGAM", NF_FLOAT, 1, idim2,nvarid) 564 #endif565 459 ierr = NF_ENDDEF(nid) 566 460 #ifdef NC_DOUBLE … … 571 465 c 572 466 ierr = NF_REDEF (nid) 573 #ifdef NC_DOUBLE574 ierr = NF_DEF_VAR (nid, "ZTHE", NF_DOUBLE, 1, idim2,nvarid)575 #else576 467 ierr = NF_DEF_VAR (nid, "ZTHE", NF_FLOAT, 1, idim2,nvarid) 577 #endif578 468 ierr = NF_ENDDEF(nid) 579 469 #ifdef NC_DOUBLE … … 584 474 c 585 475 ierr = NF_REDEF (nid) 586 #ifdef NC_DOUBLE587 ierr = NF_DEF_VAR (nid, "ZPIC", NF_DOUBLE, 1, idim2,nvarid)588 #else589 476 ierr = NF_DEF_VAR (nid, "ZPIC", NF_FLOAT, 1, idim2,nvarid) 590 #endif591 477 ierr = NF_ENDDEF(nid) 592 478 #ifdef NC_DOUBLE … … 597 483 c 598 484 ierr = NF_REDEF (nid) 599 #ifdef NC_DOUBLE600 ierr = NF_DEF_VAR (nid, "ZVAL", NF_DOUBLE, 1, idim2,nvarid)601 #else602 485 ierr = NF_DEF_VAR (nid, "ZVAL", NF_FLOAT, 1, idim2,nvarid) 603 #endif604 486 ierr = NF_ENDDEF(nid) 605 487 #ifdef NC_DOUBLE … … 610 492 c 611 493 ierr = NF_REDEF (nid) 612 #ifdef NC_DOUBLE613 ierr = NF_DEF_VAR (nid, "RUGSREL", NF_DOUBLE, 1, idim2,nvarid)614 #else615 494 ierr = NF_DEF_VAR (nid, "RUGSREL", NF_FLOAT, 1, idim2,nvarid) 616 #endif617 495 ierr = NF_ENDDEF(nid) 618 496 #ifdef NC_DOUBLE … … 623 501 c 624 502 ierr = NF_REDEF (nid) 625 #ifdef NC_DOUBLE626 ierr = NF_DEF_VAR (nid, "TANCIEN", NF_DOUBLE, 1, idim3,nvarid)627 #else628 503 ierr = NF_DEF_VAR (nid, "TANCIEN", NF_FLOAT, 1, idim3,nvarid) 629 #endif630 504 ierr = NF_ENDDEF(nid) 631 505 #ifdef NC_DOUBLE … … 636 510 c 637 511 ierr = NF_REDEF (nid) 638 #ifdef NC_DOUBLE639 ierr = NF_DEF_VAR (nid, "QANCIEN", NF_DOUBLE, 1, idim3,nvarid)640 #else641 512 ierr = NF_DEF_VAR (nid, "QANCIEN", NF_FLOAT, 1, idim3,nvarid) 642 #endif643 513 ierr = NF_ENDDEF(nid) 644 514 #ifdef NC_DOUBLE … … 649 519 c 650 520 ierr = NF_REDEF (nid) 651 #ifdef NC_DOUBLE652 ierr = NF_DEF_VAR (nid, "RUGMER", NF_DOUBLE, 1, idim2,nvarid)653 #else654 521 ierr = NF_DEF_VAR (nid, "RUGMER", NF_FLOAT, 1, idim2,nvarid) 655 #endif656 522 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 28, 657 523 . "Longueur de rugosite sur mer") -
LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F
r178 r179 1 c 2 c $Header$ 3 c 1 4 SUBROUTINE physiq (nlon,nlev,nqmax , 2 5 . debut,lafin,rjourvrai,rjour_ecri,gmtime,pdtphys, … … 71 74 c Parametres lies au coupleur OASIS: 72 75 #include "oasis.h" 73 INTEGER npas, nexca76 INTEGER,SAVE :: npas, nexca 74 77 logical rnpb 75 78 parameter(rnpb=.true.)
Note: See TracChangeset
for help on using the changeset viewer.