Changeset 1534 for LMDZ4/branches
- Timestamp:
- Jun 3, 2011, 7:28:17 PM (13 years ago)
- Location:
- LMDZ4/branches/LMDZ4_AR5/libf/phylmd
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/clesphys.h
r1500 r1534 14 14 REAL co2_ppm, co2_ppm0, solaire 15 15 REAL(kind=8) RCO2, RCH4, RN2O, RCFC11, RCFC12 16 REAL(kind=8) RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act 16 17 REAL(kind=8) CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 18 !IM ajout CFMIP2/CMIP5 19 REAL co2_ppm_per 20 REAL(kind=8) RCO2_per,RCH4_per,RN2O_per,RCFC11_per,RCFC12_per 21 REAL(kind=8) CH4_ppb_per,N2O_ppb_per,CFC11_ppt_per,CFC12_ppt_per 17 22 18 23 !OM ---> correction du bilan d'eau global … … 73 78 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & 74 79 & ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con & 75 & , co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC12 & 80 & , co2_ppm, solaire & 81 & , RCO2, RCH4, RN2O, RCFC11, RCFC12 & 82 & , RCO2_act, RCH4_act, RN2O_act, RCFC11_act, RCFC12_act & 83 & , RCO2_per, RCH4_per, RN2O_per, RCFC11_per, RCFC12_per & 76 84 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 85 & , CH4_ppb_per, N2O_ppb_per, CFC11_ppt_per, CFC12_ppt_per & 77 86 & , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter & 78 87 & , ok_kzmin, fmagic, pmagic & -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/conf_phys.F90
r1500 r1534 117 117 real, save :: scut_omp, qqa1_omp, qqa2_omp, gammas_omp, Fmax_omp, alphas_omp 118 118 119 REAL,SAVE :: R_ecc_omp,R_peri_omp,R_incl_omp,solaire_omp,co2_ppm_omp 120 REAL,SAVE :: RCO2_omp,CH4_ppb_omp,RCH4_omp,N2O_ppb_omp,RN2O_omp,CFC11_ppt_omp 121 REAL,SAVE :: RCFC11_omp,CFC12_ppt_omp,RCFC12_omp,epmax_omp 119 REAL,SAVE :: R_ecc_omp,R_peri_omp,R_incl_omp,solaire_omp 120 REAL,SAVE :: co2_ppm_omp, RCO2_omp, co2_ppm_per_omp, RCO2_per_omp 121 REAL,SAVE :: CH4_ppb_omp, RCH4_omp, CH4_ppb_per_omp, RCH4_per_omp 122 REAL,SAVE :: N2O_ppb_omp, RN2O_omp, N2O_ppb_per_omp, RN2O_per_omp 123 REAL,SAVE :: CFC11_ppt_omp,RCFC11_omp,CFC11_ppt_per_omp,RCFC11_per_omp 124 REAL,SAVE :: CFC12_ppt_omp,RCFC12_omp,CFC12_ppt_per_omp,RCFC12_per_omp 125 REAL,SAVE :: epmax_omp 122 126 LOGICAL,SAVE :: ok_adj_ema_omp 123 127 INTEGER,SAVE :: iflag_clw_omp … … 495 499 !OK call getin('RCFC12', RCFC12) 496 500 497 501 !ajout CFMIP begin 502 !! 503 !Config Key = co2_ppm_per 504 !Config Desc = concentration du co2_ppm_per 505 !Config Def = 348. 506 !Config Help = 507 ! 508 co2_ppm_per_omp = co2_ppm_omp 509 call getin('co2_ppm_per', co2_ppm_per_omp) 510 !! 511 !Config Key = RCO2_per 512 !Config Desc = Concentration du CO2_per 513 !Config Def = co2_ppm_per * 1.0e-06 * 44.011/28.97 514 !Config Def = 348. * 1.0e-06 * 44.011/28.97 515 !Config Help = 516 ! 517 RCO2_per_omp = co2_ppm_per_omp * 1.0e-06 * 44.011/28.97 518 519 !Config Key = RCH4_per 520 !Config Desc = Concentration du CH4_per 521 !Config Def = 1.65E-06* 16.043/28.97 522 !Config Help = 523 ! 524 zzz = CH4_ppb_omp 525 call getin('CH4_ppb_per', zzz) 526 CH4_ppb_per_omp = zzz 527 RCH4_per_omp = CH4_ppb_per_omp * 1.0E-09 * 16.043/28.97 528 !! 529 !Config Key = RN2O_per 530 !Config Desc = Concentration du N2O_per 531 !Config Def = 306.E-09* 44.013/28.97 532 !Config Help = 533 ! 534 zzz = N2O_ppb_omp 535 call getin('N2O_ppb_per', zzz) 536 N2O_ppb_per_omp = zzz 537 RN2O_per_omp = N2O_ppb_per_omp * 1.0E-09 * 44.013/28.97 538 !! 539 !Config Key = RCFC11_per 540 !Config Desc = Concentration du CFC11_per 541 !Config Def = 280.E-12* 137.3686/28.97 542 !Config Help = 543 ! 544 zzz = CFC11_ppt_omp 545 call getin('CFC11_ppt_per',zzz) 546 CFC11_ppt_per_omp = zzz 547 RCFC11_per_omp=CFC11_ppt_per_omp* 1.0E-12 * 137.3686/28.97 548 !! 549 !Config Key = RCFC12_per 550 !Config Desc = Concentration du CFC12_per 551 !Config Def = 484.E-12* 120.9140/28.97 552 !Config Help = 553 ! 554 zzz = CFC12_ppt_omp 555 call getin('CFC12_ppt_per',zzz) 556 CFC12_ppt_per_omp = zzz 557 RCFC12_per_omp = CFC12_ppt_per_omp * 1.0E-12 * 120.9140/28.97 558 !ajout CFMIP end 498 559 499 560 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 1183 1244 1184 1245 ! 1185 !Config Key = ok_ hfCOSP1246 !Config Key = ok_precip_fonte 1186 1247 !Config Desc = 1187 1248 !Config Def = .false. … … 1452 1513 CFC12_ppt = CFC12_ppt_omp 1453 1514 RCFC12 = RCFC12_omp 1454 1515 RCO2_act = RCO2 1516 RCH4_act = RCH4 1517 RN2O_act = RN2O 1518 RCFC11_act = RCFC11 1519 RCFC12_act = RCFC12 1520 RCO2_per = RCO2_per_omp 1521 RCH4_per = RCH4_per_omp 1522 RN2O_per = RN2O_per_omp 1523 RCFC11_per = RCFC11_per_omp 1524 RCFC12_per = RCFC12_per_omp 1525 1455 1526 cycle_diurne = cycle_diurne_omp 1456 1527 soil_model = soil_model_omp … … 1623 1694 write(numout,*)' Constante solaire =',solaire 1624 1695 write(numout,*)' co2_ppm =',co2_ppm 1625 write(numout,*)' RCO2 = ',RCO2 1626 write(numout,*)' CH4_ppb =',CH4_ppb,' RCH4 = ',RCH4 1627 write(numout,*)' N2O_ppb =',N2O_ppb,' RN2O = ',RN2O 1628 write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 = ',RCFC11 1629 write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 = ',RCFC12 1696 write(numout,*)' RCO2_act = ',RCO2_act 1697 write(numout,*)' CH4_ppb =',CH4_ppb,' RCH4_act = ',RCH4_act 1698 write(numout,*)' N2O_ppb =',N2O_ppb,' RN2O_act= ',RN2O_act 1699 write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11_act= ',RCFC11_act 1700 write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12_act= ',RCFC12_act 1701 write(numout,*)' RCO2_per = ',RCO2_per,' RCH4_per = ', RCH4_per 1702 write(numout,*)' RN2O_per = ',RN2O_per,' RCFC11_per = ', RCFC11_per 1703 write(numout,*)' RCFC12_per = ',RCFC12_per 1630 1704 write(numout,*)' cvl_corr=', cvl_corr 1631 1705 write(numout,*)'ok_lic_melt=', ok_lic_melt -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/iophy.F90
r1331 r1534 9 9 REAL,allocatable,dimension(:),save :: io_lon 10 10 INTEGER, save :: phys_domain_id 11 INTEGER, save :: npstn 12 INTEGER, allocatable, dimension(:), save :: nptabij 11 13 12 14 INTERFACE histwrite_phy 13 15 MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy 16 END INTERFACE 17 18 INTERFACE histbeg_phy_all 19 MODULE PROCEDURE histbeg_phy,histbeg_phy_points 14 20 END INTERFACE 15 21 … … 144 150 145 151 end subroutine histbeg_phy 146 147 subroutine histwrite2d_phy(nid,name,itau,field) 152 153 subroutine histbeg_phy_points(rlon,rlat,pim,tabij,ipt,jpt, & 154 plon,plat,plon_bounds,plat_bounds, & 155 nname,itau0,zjulian,dtime,nnhori,nnid_day) 156 USE dimphy 157 USE mod_phys_lmdz_para 158 USE mod_grid_phy_lmdz 159 use ioipsl 160 use write_field 161 implicit none 162 include 'dimensions.h' 163 164 real,dimension(klon),intent(in) :: rlon 165 real,dimension(klon),intent(in) :: rlat 166 integer, intent(in) :: itau0 167 real,intent(in) :: zjulian 168 real,intent(in) :: dtime 169 integer, intent(in) :: pim 170 integer, intent(out) :: nnhori 171 character(len=20), intent(in) :: nname 172 INTEGER, intent(out) :: nnid_day 173 integer :: i 174 REAL,dimension(klon_glo) :: rlat_glo 175 REAL,dimension(klon_glo) :: rlon_glo 176 INTEGER, DIMENSION(pim), intent(in) :: tabij 177 REAL,dimension(pim), intent(in) :: plat, plon 178 INTEGER,dimension(pim), intent(in) :: ipt, jpt 179 REAL,dimension(pim,2), intent(out) :: plat_bounds, plon_bounds 180 181 INTEGER, SAVE :: tabprocbeg, tabprocend 182 !$OMP THREADPRIVATE(tabprocbeg, tabprocend) 183 INTEGER :: ip 184 INTEGER, PARAMETER :: nip=1 185 INTEGER :: npproc 186 REAL, allocatable, dimension(:) :: npplat, npplon 187 REAL, allocatable, dimension(:,:) :: npplat_bounds, npplon_bounds 188 INTEGER, PARAMETER :: jjmp1=jjm+1-1/jjm 189 REAL, dimension(iim,jjmp1) :: zx_lon, zx_lat 190 191 CALL gather(rlat,rlat_glo) 192 CALL bcast(rlat_glo) 193 CALL gather(rlon,rlon_glo) 194 CALL bcast(rlon_glo) 195 196 !$OMP MASTER 197 DO i=1,pim 198 199 ! print*,'CFMIP_iophy i tabij lon lat',i,tabij(i),plon(i),plat(i) 200 201 plon_bounds(i,1)=rlon_glo(tabij(i)-1) 202 plon_bounds(i,2)=rlon_glo(tabij(i)+1) 203 if(plon_bounds(i,2).LE.0..AND.plon_bounds(i,1).GE.0.) THEN 204 if(rlon_glo(tabij(i)).GE.0.) THEN 205 plon_bounds(i,2)=-1*plon_bounds(i,2) 206 endif 207 endif 208 if(plon_bounds(i,2).GE.0..AND.plon_bounds(i,1).LE.0.) THEN 209 if(rlon_glo(tabij(i)).LE.0.) THEN 210 plon_bounds(i,2)=-1*plon_bounds(i,2) 211 endif 212 endif 213 ! 214 IF ( tabij(i).LE.iim) THEN 215 plat_bounds(i,1)=rlat_glo(tabij(i)) 216 ELSE 217 plat_bounds(i,1)=rlat_glo(tabij(i)-iim) 218 ENDIF 219 plat_bounds(i,2)=rlat_glo(tabij(i)+iim) 220 ! 221 ! print*,'CFMIP_iophy point i lon lon_bds',i,plon_bounds(i,1),rlon_glo(tabij(i)),plon_bounds(i,2) 222 ! print*,'CFMIP_iophy point i lat lat_bds',i,plat_bounds(i,1),rlat_glo(tabij(i)),plat_bounds(i,2) 223 ! 224 ENDDO 225 if (is_sequential) then 226 227 npstn=pim 228 IF(.NOT. ALLOCATED(nptabij)) THEN 229 ALLOCATE(nptabij(pim)) 230 ENDIF 231 DO i=1,pim 232 nptabij(i)=tabij(i) 233 ENDDO 234 235 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon_glo,zx_lon) 236 if (iim.gt.1) then 237 DO i = 1, iim 238 zx_lon(i,1) = rlon_glo(i+1) 239 zx_lon(i,jjmp1) = rlon_glo(i+1) 240 ENDDO 241 endif 242 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat_glo,zx_lat) 243 244 DO i=1,pim 245 ! print*,'CFMIP_iophy i tabij lon lat',i,tabij(i),plon(i),plat(i) 246 247 plon_bounds(i,1)=zx_lon(ipt(i)-1,jpt(i)) 248 plon_bounds(i,2)=zx_lon(ipt(i)+1,jpt(i)) 249 250 if (ipt(i).EQ.1) then 251 plon_bounds(i,1)=zx_lon(iim,jpt(i)) 252 plon_bounds(i,2)=360.+zx_lon(ipt(i)+1,jpt(i)) 253 endif 254 255 if (ipt(i).EQ.iim) then 256 plon_bounds(i,2)=360.+zx_lon(1,jpt(i)) 257 endif 258 259 plat_bounds(i,1)=zx_lat(ipt(i),jpt(i)-1) 260 plat_bounds(i,2)=zx_lat(ipt(i),jpt(i)+1) 261 262 if (jpt(i).EQ.1) then 263 plat_bounds(i,1)=zx_lat(ipt(i),1)+0.001 264 plat_bounds(i,2)=zx_lat(ipt(i),1)-0.001 265 endif 266 267 if (jpt(i).EQ.jjmp1) then 268 plat_bounds(i,1)=zx_lat(ipt(i),jjmp1)+0.001 269 plat_bounds(i,2)=zx_lat(ipt(i),jjmp1)-0.001 270 endif 271 ! 272 ! print*,'CFMIP_iophy point i lon lon_bds',i,plon_bounds(i,1),rlon(tabij(i)),plon_bounds(i,2) 273 ! print*,'CFMIP_iophy point i lat lat_bds',i,plat_bounds(i,1),rlat(tabij(i)),plat_bounds(i,2) 274 ! 275 ENDDO 276 ! print*,'iophy is_sequential nname, nnhori, nnid_day=',trim(nname),nnhori,nnid_day 277 call histbeg(nname,pim,plon,plon_bounds, & 278 plat,plat_bounds, & 279 itau0, zjulian, dtime, nnhori, nnid_day) 280 else 281 npproc=0 282 DO ip=1, pim 283 tabprocbeg=klon_mpi_begin 284 tabprocend=klon_mpi_end 285 IF(tabij(ip).GE.tabprocbeg.AND.tabij(ip).LE.tabprocend) THEN 286 npproc=npproc+1 287 npstn=npproc 288 ENDIF 289 ENDDO 290 ! print*,'CFMIP_iophy mpi_rank npstn',mpi_rank,npstn 291 IF(.NOT. ALLOCATED(nptabij)) THEN 292 ALLOCATE(nptabij(npstn)) 293 ALLOCATE(npplon(npstn), npplat(npstn)) 294 ALLOCATE(npplon_bounds(npstn,2), npplat_bounds(npstn,2)) 295 ENDIF 296 npproc=0 297 DO ip=1, pim 298 IF(tabij(ip).GE.tabprocbeg.AND.tabij(ip).LE.tabprocend) THEN 299 npproc=npproc+1 300 nptabij(npproc)=tabij(ip) 301 ! print*,'mpi_rank npproc ip plon plat tabij=',mpi_rank,npproc,ip, & 302 ! plon(ip),plat(ip),tabij(ip) 303 npplon(npproc)=plon(ip) 304 npplat(npproc)=plat(ip) 305 npplon_bounds(npproc,1)=plon_bounds(ip,1) 306 npplon_bounds(npproc,2)=plon_bounds(ip,2) 307 npplat_bounds(npproc,1)=plat_bounds(ip,1) 308 npplat_bounds(npproc,2)=plat_bounds(ip,2) 309 !!! 310 !!! print qui sert a reordonner les points stations selon l'ordre CFMIP 311 !!! ne pas enlever 312 print*,'iophy_mpi rank ip lon lat',mpi_rank,ip,plon(ip),plat(ip) 313 !!! 314 ENDIF 315 ENDDO 316 call histbeg(nname,npstn,npplon,npplon_bounds, & 317 npplat,npplat_bounds, & 318 itau0,zjulian,dtime,nnhori,nnid_day,phys_domain_id) 319 endif 320 !$OMP END MASTER 321 322 end subroutine histbeg_phy_points 323 324 subroutine histwrite2d_phy(nid,lpoint,name,itau,field) 148 325 USE dimphy 149 326 USE mod_phys_lmdz_para … … 153 330 154 331 integer,intent(in) :: nid 332 logical,intent(in) :: lpoint 155 333 character*(*), intent(IN) :: name 156 334 integer, intent(in) :: itau 157 335 real,dimension(:),intent(in) :: field 158 336 REAL,dimension(klon_mpi) :: buffer_omp 159 INTEGER :: index2d(iim*jj_nb)337 INTEGER, allocatable, dimension(:) :: index2d 160 338 REAL :: Field2d(iim,jj_nb) 339 340 integer :: ip 341 real,allocatable,dimension(:) :: fieldok 161 342 162 343 IF (size(field)/=klon) CALL abort_gcm('iophy::histwrite2d','Field first dimension not equal to klon',1) … … 165 346 !$OMP MASTER 166 347 CALL grid1Dto2D_mpi(buffer_omp,Field2d) 167 CALL histwrite(nid,name,itau,Field2d,iim*jj_nb,index2d) 348 if(.NOT.lpoint) THEN 349 ALLOCATE(index2d(iim*jj_nb)) 350 ALLOCATE(fieldok(iim*jj_nb)) 351 CALL histwrite(nid,name,itau,Field2d,iim*jj_nb,index2d) 352 else 353 ALLOCATE(fieldok(npstn)) 354 ALLOCATE(index2d(npstn)) 355 356 if(is_sequential) then 357 ! klon_mpi_begin=1 358 ! klon_mpi_end=klon 359 DO ip=1, npstn 360 fieldok(ip)=buffer_omp(nptabij(ip)) 361 ENDDO 362 else 363 DO ip=1, npstn 364 ! print*,'histwrite2d is_sequential npstn ip name nptabij',npstn,ip,name,nptabij(ip) 365 IF(nptabij(ip).GE.klon_mpi_begin.AND. & 366 nptabij(ip).LE.klon_mpi_end) THEN 367 fieldok(ip)=buffer_omp(nptabij(ip)-klon_mpi_begin+1) 368 ENDIF 369 ENDDO 370 endif 371 CALL histwrite(nid,name,itau,fieldok,npstn,index2d) 372 ! 373 endif 374 deallocate(index2d) 375 deallocate(fieldok) 168 376 !$OMP END MASTER 169 377 end subroutine histwrite2d_phy 170 378 171 172 173 subroutine histwrite3d_phy(nid,name,itau,field) 379 subroutine histwrite3d_phy(nid,lpoint,name,itau,field) 174 380 USE dimphy 175 381 USE mod_phys_lmdz_para … … 180 386 181 387 integer,intent(in) :: nid 388 logical,intent(in) :: lpoint 182 389 character*(*), intent(IN) :: name 183 390 integer, intent(in) :: itau 184 391 real,dimension(:,:),intent(in) :: field ! --> field(klon,:) 185 392 REAL,dimension(klon_mpi,size(field,2)) :: buffer_omp 186 INTEGER :: nlev187 INTEGER :: index3d(iim*jj_nb*size(field,2))188 393 REAL :: Field3d(iim,jj_nb,size(field,2)) 189 394 INTEGER :: ip, n, nlev 395 INTEGER, ALLOCATABLE, dimension(:) :: index3d 396 real,allocatable, dimension(:,:) :: fieldok 397 190 398 IF (size(field,1)/=klon) CALL abort_gcm('iophy::histwrite3d','Field first dimension not equal to klon',1) 191 399 nlev=size(field,2) 192 400 401 ! print*,'hist3d_phy mpi_rank npstn=',mpi_rank,npstn 402 403 ! DO ip=1, npstn 404 ! print*,'hist3d_phy mpi_rank nptabij',mpi_rank,nptabij(ip) 405 ! ENDDO 406 193 407 CALL Gather_omp(field,buffer_omp) 194 408 !$OMP MASTER 195 409 CALL grid1Dto2D_mpi(buffer_omp,field3d) 196 CALL histwrite(nid,name,itau,Field3d,iim*jj_nb*nlev,index3d) 410 if(.NOT.lpoint) THEN 411 ALLOCATE(index3d(iim*jj_nb*nlev)) 412 ALLOCATE(fieldok(iim*jj_nb,nlev)) 413 CALL histwrite(nid,name,itau,Field3d,iim*jj_nb*nlev,index3d) 414 else 415 nlev=size(field,2) 416 ALLOCATE(index3d(npstn*nlev)) 417 ALLOCATE(fieldok(npstn,nlev)) 418 419 if(is_sequential) then 420 ! klon_mpi_begin=1 421 ! klon_mpi_end=klon 422 DO n=1, nlev 423 DO ip=1, npstn 424 fieldok(ip,n)=buffer_omp(nptabij(ip),n) 425 ENDDO 426 ENDDO 427 else 428 DO n=1, nlev 429 DO ip=1, npstn 430 IF(nptabij(ip).GE.klon_mpi_begin.AND. & 431 nptabij(ip).LE.klon_mpi_end) THEN 432 fieldok(ip,n)=buffer_omp(nptabij(ip)-klon_mpi_begin+1,n) 433 ENDIF 434 ENDDO 435 ENDDO 436 endif 437 CALL histwrite(nid,name,itau,fieldok,npstn*nlev,index3d) 438 endif 439 deallocate(index3d) 440 deallocate(fieldok) 197 441 !$OMP END MASTER 198 442 end subroutine histwrite3d_phy 199 443 200 201 202 444 end module iophy -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/pbl_surface_mod.F90
r1282 r1534 175 175 zxtsol, zxfluxlat, zt2m, qsat2m, & 176 176 d_t, d_q, d_u, d_v, & 177 zcoefh, slab_wfbils,&177 zcoefh, zcoefm, slab_wfbils, & 178 178 qsol_d, zq2m, s_pblh, s_plcl, & 179 179 s_capCL, s_oliqCL, s_cteiCL, s_pblT, & … … 312 312 REAL, DIMENSION(klon, klev), INTENT(OUT) :: d_v ! change in v speed 313 313 REAL, DIMENSION(klon, klev), INTENT(OUT) :: zcoefh ! coef for turbulent diffusion of T and Q, mean for each grid point 314 REAL, DIMENSION(klon, klev), INTENT(OUT) :: zcoefm ! coef for turbulent diffusion of U and V (?), mean for each grid point 314 315 315 316 ! Output only for diagnostics … … 546 547 zcoefh(:,:) = 0.0 547 548 zcoefh(:,1) = 999999. ! zcoefh(:,k=1) should never be used 549 zcoefm(:,:) = 0.0 550 zcoefm(:,1) = 999999. ! 548 551 ytsoil = 999999. 549 552 … … 970 973 i = ni(j) 971 974 zcoefh(i,k) = zcoefh(i,k) + ycoefh(j,k)*ypct(j) 975 zcoefm(i,k) = zcoefm(i,k) + ycoefm(j,k)*ypct(j) 972 976 END DO 973 977 END DO -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phys_local_var_mod.F90
r1337 r1534 163 163 !$OMP THREADPRIVATE(load_tmp7) 164 164 165 !IM ajout variables CFMIP2/CMIP5 166 REAL,ALLOCATABLE,SAVE :: topswad_aerop(:), solswad_aerop(:) 167 !$OMP THREADPRIVATE(topswad_aerop, solswad_aerop) 168 REAL,ALLOCATABLE,SAVE :: topswai_aerop(:), solswai_aerop(:) 169 !$OMP THREADPRIVATE(topswai_aerop, solswai_aerop) 170 REAL,ALLOCATABLE,SAVE :: topswad0_aerop(:), solswad0_aerop(:) 171 !$OMP THREADPRIVATE(topswad0_aerop, solswad0_aerop) 172 REAL,ALLOCATABLE,SAVE :: topsw_aerop(:,:), topsw0_aerop(:,:) 173 !$OMP THREADPRIVATE(topsw_aerop, topsw0_aerop) 174 REAL,ALLOCATABLE,SAVE :: solsw_aerop(:,:), solsw0_aerop(:,:) 175 !$OMP THREADPRIVATE(solsw_aerop, solsw0_aerop) 176 REAL,ALLOCATABLE,SAVE :: topswcf_aerop(:,:), solswcf_aerop(:,:) 177 !$OMP THREADPRIVATE(topswcf_aerop, solswcf_aerop) 178 165 179 CONTAINS 166 180 … … 243 257 allocate(load_tmp7(klon)) 244 258 259 !IM ajout variables CFMIP2/CMIP5 260 ALLOCATE(topswad_aerop(klon), solswad_aerop(klon)) 261 ALLOCATE(topswai_aerop(klon), solswai_aerop(klon)) 262 ALLOCATE(topswad0_aerop(klon), solswad0_aerop(klon)) 263 ALLOCATE(topsw_aerop(klon,naero_grp), topsw0_aerop(klon,naero_grp)) 264 ALLOCATE(solsw_aerop(klon,naero_grp), solsw0_aerop(klon,naero_grp)) 265 ALLOCATE(topswcf_aerop(klon,naero_grp), solswcf_aerop(klon,naero_grp)) 266 245 267 END SUBROUTINE phys_local_var_init 246 268 … … 320 342 deallocate(d_u_hin,d_v_hin,d_t_hin) 321 343 344 !IM ajout variables CFMIP2/CMIP5 345 deallocate(topswad_aerop, solswad_aerop) 346 deallocate(topswai_aerop, solswai_aerop) 347 deallocate(topswad0_aerop, solswad0_aerop) 348 deallocate(topsw_aerop, topsw0_aerop) 349 deallocate(solsw_aerop, solsw0_aerop) 350 deallocate(topswcf_aerop, solswcf_aerop) 351 322 352 END SUBROUTINE phys_local_var_end 323 353 -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phys_output_mod.F90
r1419 r1534 17 17 18 18 19 integer, parameter :: nfiles = 519 integer, parameter :: nfiles = 6 20 20 logical, dimension(nfiles), save :: clef_files 21 logical, dimension(nfiles), save :: clef_stations 21 22 integer, dimension(nfiles), save :: lev_files 22 23 integer, dimension(nfiles), save :: nid_files 23 !!$OMP THREADPRIVATE(clef_files, lev_files,nid_files) 24 integer, dimension(nfiles), save :: nnid_files 25 !!$OMP THREADPRIVATE(clef_files, clef_stations, lev_files,nid_files,nnid_files) 26 integer, dimension(nfiles), private, save :: nnhorim 24 27 25 28 integer, dimension(nfiles), private, save :: nhorim, nvertm … … 42 45 43 46 TYPE ctrl_out 44 integer,dimension( 5) :: flag47 integer,dimension(6) :: flag 45 48 character(len=20) :: name 46 49 END TYPE ctrl_out … … 48 51 !!! Comosentes de la coordonnee sigma-hybride 49 52 !!! Ap et Bp 50 type(ctrl_out),save :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Ap')51 type(ctrl_out),save :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Bp')52 type(ctrl_out),save :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Alt')53 type(ctrl_out),save :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Ap') 54 type(ctrl_out),save :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Bp') 55 type(ctrl_out),save :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1, 1 /), 'Alt') 53 56 54 57 !!! 1D 55 type(ctrl_out),save :: o_phis = ctrl_out((/ 1, 1, 10, 5, 1 /), 'phis')56 type(ctrl_out),save :: o_aire = ctrl_out((/ 1, 1, 10, 10, 1 /),'aire')57 type(ctrl_out),save :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracATM')58 type(ctrl_out),save :: o_contfracOR = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracOR')59 type(ctrl_out),save :: o_aireTER = ctrl_out((/ 10, 10, 1, 10, 10 /),'aireTER')58 type(ctrl_out),save :: o_phis = ctrl_out((/ 1, 1, 10, 5, 1, 1 /), 'phis') 59 type(ctrl_out),save :: o_aire = ctrl_out((/ 1, 1, 10, 10, 1, 1 /),'aire') 60 type(ctrl_out),save :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10, 10 /),'contfracATM') 61 type(ctrl_out),save :: o_contfracOR = ctrl_out((/ 10, 1, 1, 10, 10, 10 /),'contfracOR') 62 type(ctrl_out),save :: o_aireTER = ctrl_out((/ 10, 10, 1, 10, 10, 10 /),'aireTER') 60 63 61 64 !!! 2D 62 type(ctrl_out),save :: o_flat = ctrl_out((/ 5, 1, 10, 10, 5 /),'flat')63 type(ctrl_out),save :: o_slp = ctrl_out((/ 1, 1, 1, 10, 10 /),'slp')64 type(ctrl_out),save :: o_tsol = ctrl_out((/ 1, 1, 1, 5, 10 /),'tsol')65 type(ctrl_out),save :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10 /),'t2m')66 type(ctrl_out),save :: o_t2m_min = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_min')67 type(ctrl_out),save :: o_t2m_max = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_max')68 type(ctrl_out),save,dimension(4) :: o_t2m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_ter'), &69 ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_lic'), &70 ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_oce'), &71 ctrl_out((/ 10, 6, 10, 10, 10 /),'t2m_sic') /)72 73 type(ctrl_out),save :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10 /),'wind10m')74 type(ctrl_out),save :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10 /),'wind10max')75 type(ctrl_out),save :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10 /),'sicf')76 type(ctrl_out),save :: o_q2m = ctrl_out((/ 1, 1, 1, 5, 10 /),'q2m')77 type(ctrl_out),save :: o_u10m = ctrl_out((/ 1, 1, 1, 5, 10 /),'u10m')78 type(ctrl_out),save :: o_v10m = ctrl_out((/ 1, 1, 1, 5, 10 /),'v10m')79 type(ctrl_out),save :: o_psol = ctrl_out((/ 1, 1, 1, 5, 10 /),'psol')80 type(ctrl_out),save :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsurf')81 82 type(ctrl_out),save,dimension(4) :: o_u10m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_ter'), &83 ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_lic'), &84 ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_oce'), &85 ctrl_out((/ 10, 6, 10, 10, 10 /),'u10m_sic') /)86 87 type(ctrl_out),save,dimension(4) :: o_v10m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_ter'), &88 ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_lic'), &89 ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_oce'), &90 ctrl_out((/ 10, 6, 10, 10, 10 /),'v10m_sic') /)91 92 type(ctrl_out),save :: o_qsol = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsol')93 94 type(ctrl_out),save :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10 /),'ndayrain')95 type(ctrl_out),save :: o_precip = ctrl_out((/ 1, 1, 1, 10, 5 /),'precip')96 type(ctrl_out),save :: o_plul = ctrl_out((/ 1, 1, 1, 10, 10 /),'plul')97 98 type(ctrl_out),save :: o_pluc = ctrl_out((/ 1, 1, 1, 10, 5 /),'pluc')99 type(ctrl_out),save :: o_snow = ctrl_out((/ 1, 1, 10, 10, 5 /),'snow')100 type(ctrl_out),save :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10 /),'evap')101 type(ctrl_out),save,dimension(4) :: o_evap_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_ter'), &102 ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_lic'), &103 ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_oce'), &104 ctrl_out((/ 1, 6, 10, 10, 10 /),'evap_sic') /)105 type(ctrl_out),save :: o_msnow = ctrl_out((/ 1, 10, 10, 10, 10 /),'msnow')106 type(ctrl_out),save :: o_fsnow = ctrl_out((/ 1, 10, 10, 10, 10 /),'fsnow')107 108 type(ctrl_out),save :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10 /),'tops')109 type(ctrl_out),save :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'tops0')110 type(ctrl_out),save :: o_topl = ctrl_out((/ 1, 1, 10, 5, 10 /),'topl')111 type(ctrl_out),save :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'topl0')112 type(ctrl_out),save :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOA')113 type(ctrl_out),save :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOAclr')114 type(ctrl_out),save :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOA')115 type(ctrl_out),save :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOAclr')116 type(ctrl_out),save :: o_nettop = ctrl_out((/ 1, 4, 10, 10, 10 /),'nettop')117 118 type(ctrl_out),save :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWup200')119 type(ctrl_out),save :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWup200clr')120 type(ctrl_out),save :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWdn200')121 type(ctrl_out),save :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWdn200clr')65 type(ctrl_out),save :: o_flat = ctrl_out((/ 5, 1, 10, 10, 5, 10 /),'flat') 66 type(ctrl_out),save :: o_slp = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'slp') 67 type(ctrl_out),save :: o_tsol = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'tsol') 68 type(ctrl_out),save :: o_t2m = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'t2m') 69 type(ctrl_out),save :: o_t2m_min = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'t2m_min') 70 type(ctrl_out),save :: o_t2m_max = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'t2m_max') 71 type(ctrl_out),save,dimension(4) :: o_t2m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_ter'), & 72 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_lic'), & 73 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_oce'), & 74 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'t2m_sic') /) 75 76 type(ctrl_out),save :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'wind10m') 77 type(ctrl_out),save :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'wind10max') 78 type(ctrl_out),save :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'sicf') 79 type(ctrl_out),save :: o_q2m = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'q2m') 80 type(ctrl_out),save :: o_u10m = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'u10m') 81 type(ctrl_out),save :: o_v10m = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'v10m') 82 type(ctrl_out),save :: o_psol = ctrl_out((/ 1, 1, 1, 5, 10, 10 /),'psol') 83 type(ctrl_out),save :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'qsurf') 84 85 type(ctrl_out),save,dimension(4) :: o_u10m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_ter'), & 86 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_lic'), & 87 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_oce'), & 88 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'u10m_sic') /) 89 90 type(ctrl_out),save,dimension(4) :: o_v10m_srf = (/ ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_ter'), & 91 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_lic'), & 92 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_oce'), & 93 ctrl_out((/ 10, 6, 10, 10, 10, 10 /),'v10m_sic') /) 94 95 type(ctrl_out),save :: o_qsol = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'qsol') 96 97 type(ctrl_out),save :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ndayrain') 98 type(ctrl_out),save :: o_precip = ctrl_out((/ 1, 1, 1, 10, 5, 10 /),'precip') 99 type(ctrl_out),save :: o_plul = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'plul') 100 101 type(ctrl_out),save :: o_pluc = ctrl_out((/ 1, 1, 1, 10, 5, 10 /),'pluc') 102 type(ctrl_out),save :: o_snow = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'snow') 103 type(ctrl_out),save :: o_evap = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'evap') 104 type(ctrl_out),save,dimension(4) :: o_evap_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_ter'), & 105 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_lic'), & 106 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_oce'), & 107 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'evap_sic') /) 108 type(ctrl_out),save :: o_msnow = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'msnow') 109 type(ctrl_out),save :: o_fsnow = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsnow') 110 111 type(ctrl_out),save :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'tops') 112 type(ctrl_out),save :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'tops0') 113 type(ctrl_out),save :: o_topl = ctrl_out((/ 1, 1, 10, 5, 10, 10 /),'topl') 114 type(ctrl_out),save :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'topl0') 115 type(ctrl_out),save :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWupTOA') 116 type(ctrl_out),save :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWupTOAclr') 117 type(ctrl_out),save :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWdnTOA') 118 type(ctrl_out),save :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'SWdnTOAclr') 119 type(ctrl_out),save :: o_nettop = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'nettop') 120 121 type(ctrl_out),save :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'SWup200') 122 type(ctrl_out),save :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'SWup200clr') 123 type(ctrl_out),save :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'SWdn200') 124 type(ctrl_out),save :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'SWdn200clr') 122 125 123 126 ! arajouter 124 ! type(ctrl_out),save :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOA')125 ! type(ctrl_out),save :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOAclr')126 ! type(ctrl_out),save :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOA')127 ! type(ctrl_out),save :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOAclr')128 129 type(ctrl_out),save :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200')130 type(ctrl_out),save :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200clr')131 type(ctrl_out),save :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200')132 type(ctrl_out),save :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200clr')133 type(ctrl_out),save :: o_sols = ctrl_out((/ 1, 1, 10, 10, 10 /),'sols')134 type(ctrl_out),save :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'sols0')135 type(ctrl_out),save :: o_soll = ctrl_out((/ 1, 1, 10, 10, 10 /),'soll')136 type(ctrl_out),save :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'soll0')137 type(ctrl_out),save :: o_radsol = ctrl_out((/ 1, 7, 10, 10, 10 /),'radsol')138 type(ctrl_out),save :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWupSFC')139 type(ctrl_out),save :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWupSFCclr')140 type(ctrl_out),save :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5 /),'SWdnSFC')141 type(ctrl_out),save :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5 /),'SWdnSFCclr')142 type(ctrl_out),save :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWupSFC')143 type(ctrl_out),save :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWupSFCclr')144 type(ctrl_out),save :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWdnSFC')145 type(ctrl_out),save :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5 /),'LWdnSFCclr')146 type(ctrl_out),save :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10 /),'bils')147 type(ctrl_out),save :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5 /),'sens')148 type(ctrl_out),save :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10 /),'fder')149 type(ctrl_out),save :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'ffonte')150 type(ctrl_out),save :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqcalving')151 type(ctrl_out),save :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqfonte')152 153 type(ctrl_out),save :: o_taux = ctrl_out((/ 1, 10, 10, 10, 10 /),'taux')154 type(ctrl_out),save :: o_tauy = ctrl_out((/ 1, 10, 10, 10, 10 /),'tauy')155 type(ctrl_out),save,dimension(4) :: o_taux_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_ter'), &156 ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_lic'), &157 ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_oce'), &158 ctrl_out((/ 1, 6, 10, 10, 10 /),'taux_sic') /)159 160 type(ctrl_out),save,dimension(4) :: o_tauy_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_ter'), &161 ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_lic'), &162 ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_oce'), &163 ctrl_out((/ 1, 6, 10, 10, 10 /),'tauy_sic') /)164 165 166 type(ctrl_out),save,dimension(4) :: o_pourc_srf = (/ ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_ter'), &167 ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_lic'), &168 ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_oce'), &169 ctrl_out((/ 1, 7, 10, 10, 10 /),'pourc_sic') /)170 171 type(ctrl_out),save,dimension(4) :: o_fract_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_ter'), &172 ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_lic'), &173 ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_oce'), &174 ctrl_out((/ 1, 6, 10, 10, 10 /),'fract_sic') /)175 176 type(ctrl_out),save,dimension(4) :: o_tsol_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_ter'), &177 ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_lic'), &178 ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_oce'), &179 ctrl_out((/ 1, 6, 10, 10, 10 /),'tsol_sic') /)180 181 type(ctrl_out),save,dimension(4) :: o_sens_srf = (/ ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_ter'), &182 ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_lic'), &183 ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_oce'), &184 ctrl_out((/ 1, 6, 10, 7, 10 /),'sens_sic') /)185 186 type(ctrl_out),save,dimension(4) :: o_lat_srf = (/ ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_ter'), &187 ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_lic'), &188 ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_oce'), &189 ctrl_out((/ 1, 6, 10, 7, 10 /),'lat_sic') /)190 191 type(ctrl_out),save,dimension(4) :: o_flw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_ter'), &192 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_lic'), &193 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_oce'), &194 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_sic') /)127 ! type(ctrl_out),save :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWupTOA') 128 ! type(ctrl_out),save :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWupTOAclr') 129 ! type(ctrl_out),save :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWdnTOA') 130 ! type(ctrl_out),save :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10, 10 /),'LWdnTOAclr') 131 132 type(ctrl_out),save :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWup200') 133 type(ctrl_out),save :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWup200clr') 134 type(ctrl_out),save :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWdn200') 135 type(ctrl_out),save :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'LWdn200clr') 136 type(ctrl_out),save :: o_sols = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'sols') 137 type(ctrl_out),save :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'sols0') 138 type(ctrl_out),save :: o_soll = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'soll') 139 type(ctrl_out),save :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'soll0') 140 type(ctrl_out),save :: o_radsol = ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'radsol') 141 type(ctrl_out),save :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWupSFC') 142 type(ctrl_out),save :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWupSFCclr') 143 type(ctrl_out),save :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'SWdnSFC') 144 type(ctrl_out),save :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'SWdnSFCclr') 145 type(ctrl_out),save :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWupSFC') 146 type(ctrl_out),save :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWupSFCclr') 147 type(ctrl_out),save :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWdnSFC') 148 type(ctrl_out),save :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 5, 10 /),'LWdnSFCclr') 149 type(ctrl_out),save :: o_bils = ctrl_out((/ 1, 2, 10, 5, 10, 10 /),'bils') 150 type(ctrl_out),save :: o_sens = ctrl_out((/ 1, 1, 10, 10, 5, 10 /),'sens') 151 type(ctrl_out),save :: o_fder = ctrl_out((/ 1, 2, 10, 10, 10, 10 /),'fder') 152 type(ctrl_out),save :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ffonte') 153 type(ctrl_out),save :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fqcalving') 154 type(ctrl_out),save :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fqfonte') 155 156 type(ctrl_out),save :: o_taux = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'taux') 157 type(ctrl_out),save :: o_tauy = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'tauy') 158 type(ctrl_out),save,dimension(4) :: o_taux_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_ter'), & 159 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_lic'), & 160 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_oce'), & 161 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'taux_sic') /) 162 163 type(ctrl_out),save,dimension(4) :: o_tauy_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_ter'), & 164 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_lic'), & 165 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_oce'), & 166 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tauy_sic') /) 167 168 169 type(ctrl_out),save,dimension(4) :: o_pourc_srf = (/ ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_ter'), & 170 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_lic'), & 171 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_oce'), & 172 ctrl_out((/ 1, 7, 10, 10, 10, 10 /),'pourc_sic') /) 173 174 type(ctrl_out),save,dimension(4) :: o_fract_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_ter'), & 175 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_lic'), & 176 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_oce'), & 177 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'fract_sic') /) 178 179 type(ctrl_out),save,dimension(4) :: o_tsol_srf = (/ ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_ter'), & 180 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_lic'), & 181 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_oce'), & 182 ctrl_out((/ 1, 6, 10, 10, 10, 10 /),'tsol_sic') /) 183 184 type(ctrl_out),save,dimension(4) :: o_sens_srf = (/ ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_ter'), & 185 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_lic'), & 186 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_oce'), & 187 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'sens_sic') /) 188 189 type(ctrl_out),save,dimension(4) :: o_lat_srf = (/ ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_ter'), & 190 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_lic'), & 191 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_oce'), & 192 ctrl_out((/ 1, 6, 10, 7, 10, 10 /),'lat_sic') /) 193 194 type(ctrl_out),save,dimension(4) :: o_flw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_ter'), & 195 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_lic'), & 196 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_oce'), & 197 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'flw_sic') /) 195 198 196 type(ctrl_out),save,dimension(4) :: o_fsw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_ter'), &197 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_lic'), &198 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_oce'), &199 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_sic') /)200 201 type(ctrl_out),save,dimension(4) :: o_wbils_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_ter'), &202 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_lic'), &203 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_oce'), &204 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_sic') /)205 206 type(ctrl_out),save,dimension(4) :: o_wbilo_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_ter'), &207 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_lic'), &208 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_oce'), &209 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_sic') /)210 211 212 type(ctrl_out),save :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10 /),'cdrm')213 type(ctrl_out),save :: o_cdrh = ctrl_out((/ 1, 10, 10, 7, 10 /),'cdrh')214 type(ctrl_out),save :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldl')215 type(ctrl_out),save :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldm')216 type(ctrl_out),save :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldh')217 type(ctrl_out),save :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 5 /),'cldt')218 type(ctrl_out),save :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldq')219 type(ctrl_out),save :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'lwp')220 type(ctrl_out),save :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'iwp')221 type(ctrl_out),save :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10 /),'ue')222 type(ctrl_out),save :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10 /),'ve')223 type(ctrl_out),save :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10 /),'uq')224 type(ctrl_out),save :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10 /),'vq')199 type(ctrl_out),save,dimension(4) :: o_fsw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_ter'), & 200 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_lic'), & 201 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_oce'), & 202 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fsw_sic') /) 203 204 type(ctrl_out),save,dimension(4) :: o_wbils_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_ter'), & 205 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_lic'), & 206 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_oce'), & 207 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbils_sic') /) 208 209 type(ctrl_out),save,dimension(4) :: o_wbilo_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_ter'), & 210 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_lic'), & 211 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_oce'), & 212 ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'wbilo_sic') /) 213 214 215 type(ctrl_out),save :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'cdrm') 216 type(ctrl_out),save :: o_cdrh = ctrl_out((/ 1, 10, 10, 7, 10, 10 /),'cdrh') 217 type(ctrl_out),save :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldl') 218 type(ctrl_out),save :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldm') 219 type(ctrl_out),save :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldh') 220 type(ctrl_out),save :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 5, 10 /),'cldt') 221 type(ctrl_out),save :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'cldq') 222 type(ctrl_out),save :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'lwp') 223 type(ctrl_out),save :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'iwp') 224 type(ctrl_out),save :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ue') 225 type(ctrl_out),save :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'ve') 226 type(ctrl_out),save :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'uq') 227 type(ctrl_out),save :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'vq') 225 228 226 type(ctrl_out),save :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10 /),'cape')227 type(ctrl_out),save :: o_pbase = ctrl_out((/ 1, 5, 10, 10, 10 /),'pbase')228 type(ctrl_out),save :: o_ptop = ctrl_out((/ 1, 5, 10, 10, 10 /),'ptop')229 type(ctrl_out),save :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10 /),'fbase')230 type(ctrl_out),save :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10 /),'prw')231 232 type(ctrl_out),save :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_pblh')233 type(ctrl_out),save :: o_s_pblt = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_pblt')234 type(ctrl_out),save :: o_s_lcl = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_lcl')235 type(ctrl_out),save :: o_s_therm = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_therm')229 type(ctrl_out),save :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'cape') 230 type(ctrl_out),save :: o_pbase = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'pbase') 231 type(ctrl_out),save :: o_ptop = ctrl_out((/ 1, 5, 10, 10, 10, 10 /),'ptop') 232 type(ctrl_out),save :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'fbase') 233 type(ctrl_out),save :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'prw') 234 235 type(ctrl_out),save :: o_s_pblh = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_pblh') 236 type(ctrl_out),save :: o_s_pblt = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_pblt') 237 type(ctrl_out),save :: o_s_lcl = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_lcl') 238 type(ctrl_out),save :: o_s_therm = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_therm') 236 239 !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 237 ! type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_capCL')238 ! type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_oliqCL')239 ! type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_cteiCL')240 ! type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb1')241 ! type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb2')242 ! type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 10, 10 /),'s_trmb3')243 244 type(ctrl_out),save :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce')245 246 type(ctrl_out),save :: o_ale_bl = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_bl')247 type(ctrl_out),save :: o_alp_bl = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_bl')248 type(ctrl_out),save :: o_ale_wk = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale_wk')249 type(ctrl_out),save :: o_alp_wk = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp_wk')250 251 type(ctrl_out),save :: o_ale = ctrl_out((/ 1, 1, 1, 10, 10 /),'ale')252 type(ctrl_out),save :: o_alp = ctrl_out((/ 1, 1, 1, 10, 10 /),'alp')253 type(ctrl_out),save :: o_cin = ctrl_out((/ 1, 1, 1, 10, 10 /),'cin')254 type(ctrl_out),save :: o_wape = ctrl_out((/ 1, 1, 1, 10, 10 /),'wape')240 ! type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_capCL') 241 ! type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_oliqCL') 242 ! type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_cteiCL') 243 ! type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb1') 244 ! type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb2') 245 ! type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'s_trmb3') 246 247 type(ctrl_out),save :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10, 10 /),'slab_bils_oce') 248 249 type(ctrl_out),save :: o_ale_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale_bl') 250 type(ctrl_out),save :: o_alp_bl = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_bl') 251 type(ctrl_out),save :: o_ale_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale_wk') 252 type(ctrl_out),save :: o_alp_wk = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp_wk') 253 254 type(ctrl_out),save :: o_ale = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'ale') 255 type(ctrl_out),save :: o_alp = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'alp') 256 type(ctrl_out),save :: o_cin = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'cin') 257 type(ctrl_out),save :: o_wape = ctrl_out((/ 1, 1, 1, 10, 10, 10 /),'wape') 255 258 256 259 257 260 ! Champs interpolles sur des niveaux de pression ??? a faire correctement 258 261 259 type(ctrl_out),save,dimension(6) :: o_uSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'u850'), & 260 ctrl_out((/ 1, 7, 7, 10, 10 /),'u700'), & 261 ctrl_out((/ 1, 7, 7, 10, 10 /),'u500'), & 262 ctrl_out((/ 1, 7, 7, 10, 10 /),'u200'), & 263 ctrl_out((/ 1, 7, 7, 10, 10 /),'u50'), & 264 ctrl_out((/ 1, 7, 7, 10, 10 /),'u10') /) 262 type(ctrl_out),save,dimension(7) :: o_uSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u850'), & 263 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u700'), & 264 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u500'), & 265 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u200'), & 266 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u100'), & 267 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u50'), & 268 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'u10') /) 265 269 266 270 267 type(ctrl_out),save,dimension(6) :: o_vSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'v850'), & 268 ctrl_out((/ 1, 7, 7, 10, 10 /),'v700'), & 269 ctrl_out((/ 1, 7, 7, 10, 10 /),'v500'), & 270 ctrl_out((/ 1, 7, 7, 10, 10 /),'v200'), & 271 ctrl_out((/ 1, 7, 7, 10, 10 /),'v50'), & 272 ctrl_out((/ 1, 7, 7, 10, 10 /),'v10') /) 273 274 type(ctrl_out),save,dimension(6) :: o_wSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'w850'), & 275 ctrl_out((/ 1, 7, 7, 10, 10 /),'w700'), & 276 ctrl_out((/ 1, 7, 7, 10, 10 /),'w500'), & 277 ctrl_out((/ 1, 7, 7, 10, 10 /),'w200'), & 278 ctrl_out((/ 1, 7, 7, 10, 10 /),'w50'), & 279 ctrl_out((/ 1, 7, 7, 10, 10 /),'w10') /) 280 281 type(ctrl_out),save,dimension(6) :: o_tSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'t850'), & 282 ctrl_out((/ 1, 7, 7, 10, 10 /),'t700'), & 283 ctrl_out((/ 1, 7, 7, 10, 10 /),'t500'), & 284 ctrl_out((/ 1, 7, 7, 10, 10 /),'t200'), & 285 ctrl_out((/ 1, 7, 7, 10, 10 /),'t50'), & 286 ctrl_out((/ 1, 7, 7, 10, 10 /),'t10') /) 287 288 type(ctrl_out),save,dimension(6) :: o_qSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'q850'), & 289 ctrl_out((/ 1, 7, 7, 10, 10 /),'q700'), & 290 ctrl_out((/ 1, 7, 7, 10, 10 /),'q500'), & 291 ctrl_out((/ 1, 7, 7, 10, 10 /),'q200'), & 292 ctrl_out((/ 1, 7, 7, 10, 10 /),'q50'), & 293 ctrl_out((/ 1, 7, 7, 10, 10 /),'q10') /) 294 295 type(ctrl_out),save,dimension(6) :: o_zSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10 /),'z850'), & 296 ctrl_out((/ 1, 7, 7, 10, 10 /),'z700'), & 297 ctrl_out((/ 1, 7, 7, 10, 10 /),'z500'), & 298 ctrl_out((/ 1, 7, 7, 10, 10 /),'z200'), & 299 ctrl_out((/ 1, 7, 7, 10, 10 /),'z50'), & 300 ctrl_out((/ 1, 7, 7, 10, 10 /),'z10') /) 301 302 303 type(ctrl_out),save :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10 /),'t_oce_sic') 304 305 type(ctrl_out),save :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10 /),'weakinv') 306 type(ctrl_out),save :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10 /),'dthmin') 307 type(ctrl_out),save,dimension(4) :: o_u10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_ter'), & 308 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_lic'), & 309 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_oce'), & 310 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_sic') /) 311 312 type(ctrl_out),save,dimension(4) :: o_v10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_ter'), & 313 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_lic'), & 314 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_oce'), & 315 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_sic') /) 316 317 type(ctrl_out),save :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldtau') 318 type(ctrl_out),save :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldemi') 319 type(ctrl_out),save :: o_rh2m = ctrl_out((/ 5, 5, 10, 10, 10 /),'rh2m') 320 type(ctrl_out),save :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_min') 321 type(ctrl_out),save :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m_max') 322 type(ctrl_out),save :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10 /),'qsat2m') 323 type(ctrl_out),save :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpot') 324 type(ctrl_out),save :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpote') 325 type(ctrl_out),save :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke ') 326 type(ctrl_out),save :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke_max') 327 328 type(ctrl_out),save,dimension(4) :: o_tke_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_ter'), & 329 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_lic'), & 330 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_oce'), & 331 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_sic') /) 332 333 type(ctrl_out),save,dimension(4) :: o_tke_max_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_ter'), & 334 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_lic'), & 335 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_oce'), & 336 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_sic') /) 337 338 type(ctrl_out),save :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz') 339 type(ctrl_out),save :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz_max') 340 type(ctrl_out),save :: o_SWnetOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWnetOR') 341 type(ctrl_out),save :: o_SWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWdownOR') 342 type(ctrl_out),save :: o_LWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'LWdownOR') 343 344 type(ctrl_out),save :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10 /),'snowl') 345 type(ctrl_out),save :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10 /),'cape_max') 346 type(ctrl_out),save :: o_solldown = ctrl_out((/ 10, 1, 10, 10, 10 /),'solldown') 347 348 type(ctrl_out),save :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfo') 349 type(ctrl_out),save :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdft') 350 type(ctrl_out),save :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfg') 351 type(ctrl_out),save :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 10, 10 /),'dtsvdfi') 352 type(ctrl_out),save :: o_rugs = ctrl_out((/ 10, 10, 10, 10, 10 /),'rugs') 353 354 type(ctrl_out),save :: o_topswad = ctrl_out((/ 2, 10, 10, 10, 10 /),'topswad') 355 type(ctrl_out),save :: o_topswai = ctrl_out((/ 2, 10, 10, 10, 10 /),'topswai') 356 type(ctrl_out),save :: o_solswad = ctrl_out((/ 2, 10, 10, 10, 10 /),'solswad') 357 type(ctrl_out),save :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10 /),'solswai') 358 359 type(ctrl_out),save,dimension(10) :: o_tausumaero = (/ ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASBCM'), & 360 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASPOMM'), & 361 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASSO4M'), & 362 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CSSO4M'), & 363 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_SSSSM'), & 364 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_ASSSM'), & 365 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CSSSM'), & 366 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_CIDUSTM'), & 367 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_AIBCM'), & 368 ctrl_out((/ 2, 6, 10, 10, 10 /),'OD550_AIPOMM') /) 369 370 type(ctrl_out),save :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10 /),'od550aer') 371 type(ctrl_out),save :: o_od865aer = ctrl_out((/ 2, 6, 10, 10, 10 /),'od865aer') 372 type(ctrl_out),save :: o_absvisaer = ctrl_out((/ 2, 6, 10, 10, 10 /),'absvisaer') 373 type(ctrl_out),save :: o_od550lt1aer = ctrl_out((/ 2, 6, 10, 10, 10 /),'od550lt1aer') 374 375 type(ctrl_out),save :: o_sconcso4 = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcso4') 376 type(ctrl_out),save :: o_sconcoa = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcoa') 377 type(ctrl_out),save :: o_sconcbc = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcbc') 378 type(ctrl_out),save :: o_sconcss = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcss') 379 type(ctrl_out),save :: o_sconcdust = ctrl_out((/ 2, 6, 10, 10, 10 /),'sconcdust') 380 type(ctrl_out),save :: o_concso4 = ctrl_out((/ 2, 6, 10, 10, 10 /),'concso4') 381 type(ctrl_out),save :: o_concoa = ctrl_out((/ 2, 6, 10, 10, 10 /),'concoa') 382 type(ctrl_out),save :: o_concbc = ctrl_out((/ 2, 6, 10, 10, 10 /),'concbc') 383 type(ctrl_out),save :: o_concss = ctrl_out((/ 2, 6, 10, 10, 10 /),'concss') 384 type(ctrl_out),save :: o_concdust = ctrl_out((/ 2, 6, 10, 10, 10 /),'concdust') 385 type(ctrl_out),save :: o_loadso4 = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadso4') 386 type(ctrl_out),save :: o_loadoa = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadoa') 387 type(ctrl_out),save :: o_loadbc = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadbc') 388 type(ctrl_out),save :: o_loadss = ctrl_out((/ 2, 6, 10, 10, 10 /),'loadss') 389 type(ctrl_out),save :: o_loaddust = ctrl_out((/ 2, 6, 10, 10, 10 /),'loaddust') 390 391 type(ctrl_out),save :: o_swtoaas_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoaas_nat') 392 type(ctrl_out),save :: o_swsrfas_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfas_nat') 393 type(ctrl_out),save :: o_swtoacs_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacs_nat') 394 type(ctrl_out),save :: o_swsrfcs_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcs_nat') 395 396 type(ctrl_out),save :: o_swtoaas_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoaas_ant') 397 type(ctrl_out),save :: o_swsrfas_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfas_ant') 398 type(ctrl_out),save :: o_swtoacs_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacs_ant') 399 type(ctrl_out),save :: o_swsrfcs_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcs_ant') 400 401 type(ctrl_out),save :: o_swtoacf_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_nat') 402 type(ctrl_out),save :: o_swsrfcf_nat = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_nat') 403 type(ctrl_out),save :: o_swtoacf_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_ant') 404 type(ctrl_out),save :: o_swsrfcf_ant = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_ant') 405 type(ctrl_out),save :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10 /),'swtoacf_zero') 406 type(ctrl_out),save :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10 /),'swsrfcf_zero') 407 408 type(ctrl_out),save :: o_cldncl = ctrl_out((/ 2, 6, 10, 10, 10 /),'cldncl') 409 type(ctrl_out),save :: o_reffclwtop = ctrl_out((/ 2, 6, 10, 10, 10 /),'reffclwtop') 410 type(ctrl_out),save :: o_cldnvi = ctrl_out((/ 2, 6, 10, 10, 10 /),'cldnvi') 411 type(ctrl_out),save :: o_lcc = ctrl_out((/ 2, 6, 10, 10, 10 /),'lcc') 271 type(ctrl_out),save,dimension(7) :: o_vSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v850'), & 272 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v700'), & 273 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v500'), & 274 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v200'), & 275 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v100'), & 276 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v50'), & 277 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'v10') /) 278 279 type(ctrl_out),save,dimension(7) :: o_wSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w850'), & 280 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w700'), & 281 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w500'), & 282 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w200'), & 283 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w100'), & 284 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w50'), & 285 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'w10') /) 286 287 type(ctrl_out),save,dimension(7) :: o_tSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t850'), & 288 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t700'), & 289 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t500'), & 290 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t200'), & 291 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t100'), & 292 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t50'), & 293 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'t10') /) 294 295 type(ctrl_out),save,dimension(7) :: o_qSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q850'), & 296 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q700'), & 297 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q500'), & 298 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q200'), & 299 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q100'), & 300 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q50'), & 301 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'q10') /) 302 303 type(ctrl_out),save,dimension(7) :: o_zSTDlevs = (/ ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z850'), & 304 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z700'), & 305 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z500'), & 306 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z200'), & 307 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z100'), & 308 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z50'), & 309 ctrl_out((/ 1, 7, 7, 10, 10, 10 /),'z10') /) 310 311 312 type(ctrl_out),save :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10, 10 /),'t_oce_sic') 313 314 type(ctrl_out),save :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'weakinv') 315 type(ctrl_out),save :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'dthmin') 316 type(ctrl_out),save,dimension(4) :: o_u10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_ter'), & 317 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_lic'), & 318 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_oce'), & 319 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'u10_sic') /) 320 321 type(ctrl_out),save,dimension(4) :: o_v10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_ter'), & 322 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_lic'), & 323 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_oce'), & 324 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'v10_sic') /) 325 326 type(ctrl_out),save :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'cldtau') 327 type(ctrl_out),save :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'cldemi') 328 type(ctrl_out),save :: o_rh2m = ctrl_out((/ 5, 5, 10, 10, 10, 10 /),'rh2m') 329 type(ctrl_out),save :: o_rh2m_min = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'rh2m_min') 330 type(ctrl_out),save :: o_rh2m_max = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'rh2m_max') 331 type(ctrl_out),save :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'qsat2m') 332 type(ctrl_out),save :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'tpot') 333 type(ctrl_out),save :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10, 10 /),'tpote') 334 type(ctrl_out),save :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tke ') 335 type(ctrl_out),save :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tke_max') 336 337 type(ctrl_out),save,dimension(4) :: o_tke_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_ter'), & 338 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_lic'), & 339 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_oce'), & 340 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_sic') /) 341 342 type(ctrl_out),save,dimension(4) :: o_tke_max_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_ter'), & 343 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_lic'), & 344 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_oce'), & 345 ctrl_out((/ 10, 4, 10, 10, 10, 10 /),'tke_max_sic') /) 346 347 type(ctrl_out),save :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'kz') 348 type(ctrl_out),save :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'kz_max') 349 type(ctrl_out),save :: o_SWnetOR = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'SWnetOR') 350 type(ctrl_out),save :: o_SWdownOR = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'SWdownOR') 351 type(ctrl_out),save :: o_LWdownOR = ctrl_out((/ 10, 10, 2, 10, 10, 10 /),'LWdownOR') 352 353 type(ctrl_out),save :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'snowl') 354 type(ctrl_out),save :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'cape_max') 355 type(ctrl_out),save :: o_solldown = ctrl_out((/ 10, 1, 10, 10, 10, 10 /),'solldown') 356 357 type(ctrl_out),save :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfo') 358 type(ctrl_out),save :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdft') 359 type(ctrl_out),save :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfg') 360 type(ctrl_out),save :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'dtsvdfi') 361 type(ctrl_out),save :: o_rugs = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'rugs') 362 363 type(ctrl_out),save :: o_topswad = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'topswad') 364 type(ctrl_out),save :: o_topswai = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'topswai') 365 type(ctrl_out),save :: o_solswad = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'solswad') 366 type(ctrl_out),save :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'solswai') 367 368 type(ctrl_out),save,dimension(10) :: o_tausumaero = (/ ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASBCM'), & 369 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASPOMM'), & 370 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASSO4M'), & 371 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CSSO4M'), & 372 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_SSSSM'), & 373 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASSSM'), & 374 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CSSSM'), & 375 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CIDUSTM'), & 376 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIBCM'), & 377 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIPOMM') /) 378 379 type(ctrl_out),save :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od550aer') 380 type(ctrl_out),save :: o_od865aer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od865aer') 381 type(ctrl_out),save :: o_absvisaer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'absvisaer') 382 type(ctrl_out),save :: o_od550lt1aer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od550lt1aer') 383 384 type(ctrl_out),save :: o_sconcso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcso4') 385 type(ctrl_out),save :: o_sconcoa = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcoa') 386 type(ctrl_out),save :: o_sconcbc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcbc') 387 type(ctrl_out),save :: o_sconcss = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcss') 388 type(ctrl_out),save :: o_sconcdust = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'sconcdust') 389 type(ctrl_out),save :: o_concso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concso4') 390 type(ctrl_out),save :: o_concoa = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concoa') 391 type(ctrl_out),save :: o_concbc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concbc') 392 type(ctrl_out),save :: o_concss = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concss') 393 type(ctrl_out),save :: o_concdust = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'concdust') 394 type(ctrl_out),save :: o_loadso4 = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadso4') 395 type(ctrl_out),save :: o_loadoa = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadoa') 396 type(ctrl_out),save :: o_loadbc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadbc') 397 type(ctrl_out),save :: o_loadss = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loadss') 398 type(ctrl_out),save :: o_loaddust = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'loaddust') 399 400 type(ctrl_out),save :: o_swtoaas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoaas_nat') 401 type(ctrl_out),save :: o_swsrfas_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfas_nat') 402 type(ctrl_out),save :: o_swtoacs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacs_nat') 403 type(ctrl_out),save :: o_swsrfcs_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcs_nat') 404 405 type(ctrl_out),save :: o_swtoaas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoaas_ant') 406 type(ctrl_out),save :: o_swsrfas_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfas_ant') 407 type(ctrl_out),save :: o_swtoacs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacs_ant') 408 type(ctrl_out),save :: o_swsrfcs_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcs_ant') 409 410 type(ctrl_out),save :: o_swtoacf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_nat') 411 type(ctrl_out),save :: o_swsrfcf_nat = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_nat') 412 type(ctrl_out),save :: o_swtoacf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_ant') 413 type(ctrl_out),save :: o_swsrfcf_ant = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_ant') 414 type(ctrl_out),save :: o_swtoacf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swtoacf_zero') 415 type(ctrl_out),save :: o_swsrfcf_zero = ctrl_out((/ 4, 6, 10, 10, 10, 10 /),'swsrfcf_zero') 416 417 type(ctrl_out),save :: o_cldncl = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'cldncl') 418 type(ctrl_out),save :: o_reffclwtop = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'reffclwtop') 419 type(ctrl_out),save :: o_cldnvi = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'cldnvi') 420 type(ctrl_out),save :: o_lcc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'lcc') 412 421 413 422 414 423 !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 415 type(ctrl_out),save :: o_ec550aer = ctrl_out((/ 2, 6, 10, 10, 10 /),'ec550aer') 416 type(ctrl_out),save :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 10 /),'lwcon') 417 type(ctrl_out),save :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10 /),'iwcon') 418 type(ctrl_out),save :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10 /),'temp') 419 type(ctrl_out),save :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10 /),'theta') 420 type(ctrl_out),save :: o_ovap = ctrl_out((/ 2, 3, 4, 10, 10 /),'ovap') 421 type(ctrl_out),save :: o_ovapinit = ctrl_out((/ 2, 10, 10, 10, 10 /),'ovapinit') 422 type(ctrl_out),save :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10 /),'wvapp') 423 type(ctrl_out),save :: o_geop = ctrl_out((/ 2, 3, 10, 10, 10 /),'geop') 424 type(ctrl_out),save :: o_vitu = ctrl_out((/ 2, 3, 4, 6, 10 /),'vitu') 425 type(ctrl_out),save :: o_vitv = ctrl_out((/ 2, 3, 4, 6, 10 /),'vitv') 426 type(ctrl_out),save :: o_vitw = ctrl_out((/ 2, 3, 10, 6, 10 /),'vitw') 427 type(ctrl_out),save :: o_pres = ctrl_out((/ 2, 3, 10, 10, 10 /),'pres') 428 type(ctrl_out),save :: o_paprs = ctrl_out((/ 2, 3, 10, 10, 10 /),'paprs') 429 type(ctrl_out),save :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 10 /),'rneb') 430 type(ctrl_out),save :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 10 /),'rnebcon') 431 type(ctrl_out),save :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10 /),'rhum') 432 type(ctrl_out),save :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone') 433 type(ctrl_out),save :: o_ozone_light = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone_daylight') 434 type(ctrl_out),save :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10 /),'upwd') 435 type(ctrl_out),save :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 10 /),'dtphy') 436 type(ctrl_out),save :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10 /),'dqphy') 437 type(ctrl_out),save :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_l') 438 type(ctrl_out),save :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_i') 439 type(ctrl_out),save :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_l') 440 type(ctrl_out),save :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_i') 441 type(ctrl_out),save :: o_re = ctrl_out((/ 5, 10, 10, 10, 10 /),'re') 442 type(ctrl_out),save :: o_fl = ctrl_out((/ 5, 10, 10, 10, 10 /),'fl') 443 type(ctrl_out),save :: o_scdnc = ctrl_out((/ 2, 6, 10, 10, 10 /),'scdnc') 444 type(ctrl_out),save :: o_reffclws = ctrl_out((/ 2, 6, 10, 10, 10 /),'reffclws') 445 type(ctrl_out),save :: o_reffclwc = ctrl_out((/ 2, 6, 10, 10, 10 /),'reffclwc') 446 type(ctrl_out),save :: o_lcc3d = ctrl_out((/ 2, 6, 10, 10, 10 /),'lcc3d') 447 type(ctrl_out),save :: o_lcc3dcon = ctrl_out((/ 2, 6, 10, 10, 10 /),'lcc3dcon') 448 type(ctrl_out),save :: o_lcc3dstra = ctrl_out((/ 2, 6, 10, 10, 10 /),'lcc3dstra') 424 type(ctrl_out),save :: o_ec550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'ec550aer') 425 type(ctrl_out),save :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'lwcon') 426 type(ctrl_out),save :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'iwcon') 427 type(ctrl_out),save :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'temp') 428 type(ctrl_out),save :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'theta') 429 type(ctrl_out),save :: o_ovap = ctrl_out((/ 2, 3, 4, 10, 10, 10 /),'ovap') 430 type(ctrl_out),save :: o_ovapinit = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ovapinit') 431 type(ctrl_out),save :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'wvapp') 432 type(ctrl_out),save :: o_geop = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'geop') 433 type(ctrl_out),save :: o_vitu = ctrl_out((/ 2, 3, 4, 6, 10, 10 /),'vitu') 434 type(ctrl_out),save :: o_vitv = ctrl_out((/ 2, 3, 4, 6, 10, 10 /),'vitv') 435 type(ctrl_out),save :: o_vitw = ctrl_out((/ 2, 3, 10, 6, 10, 10 /),'vitw') 436 type(ctrl_out),save :: o_pres = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'pres') 437 type(ctrl_out),save :: o_paprs = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'paprs') 438 type(ctrl_out),save :: o_zfull = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'zfull') 439 type(ctrl_out),save :: o_zhalf = ctrl_out((/ 2, 3, 10, 10, 10, 10 /),'zhalf') 440 type(ctrl_out),save :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rneb') 441 type(ctrl_out),save :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rnebcon') 442 type(ctrl_out),save :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10 /),'rhum') 443 type(ctrl_out),save :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ozone') 444 type(ctrl_out),save :: o_ozone_light = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'ozone_daylight') 445 type(ctrl_out),save :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'upwd') 446 type(ctrl_out),save :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'dtphy') 447 type(ctrl_out),save :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'dqphy') 448 type(ctrl_out),save :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_con_l') 449 type(ctrl_out),save :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_con_i') 450 type(ctrl_out),save :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_lsc_l') 451 type(ctrl_out),save :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'pr_lsc_i') 452 type(ctrl_out),save :: o_re = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'re') 453 type(ctrl_out),save :: o_fl = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'fl') 454 type(ctrl_out),save :: o_scdnc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'scdnc') 455 type(ctrl_out),save :: o_reffclws = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'reffclws') 456 type(ctrl_out),save :: o_reffclwc = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'reffclwc') 457 type(ctrl_out),save :: o_lcc3d = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'lcc3d') 458 type(ctrl_out),save :: o_lcc3dcon = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'lcc3dcon') 459 type(ctrl_out),save :: o_lcc3dstra = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'lcc3dstra') 449 460 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 450 461 451 type(ctrl_out),save,dimension(4) :: o_albe_srf = (/ ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_ter'), & 452 ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_lic'), & 453 ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_oce'), & 454 ctrl_out((/ 3, 7, 10, 7, 10 /),'albe_sic') /) 455 456 type(ctrl_out),save,dimension(4) :: o_ages_srf = (/ ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_ter'), & 457 ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_lic'), & 458 ctrl_out((/ 10, 10, 10, 10, 10 /),'ages_oce'), & 459 ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_sic') /) 460 461 type(ctrl_out),save,dimension(4) :: o_rugs_srf = (/ ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_ter'), & 462 ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_lic'), & 463 ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_oce'), & 464 ctrl_out((/ 3, 6, 10, 10, 10 /),'rugs_sic') /) 465 466 type(ctrl_out),save :: o_alb1 = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb1') 467 type(ctrl_out),save :: o_alb2 = ctrl_out((/ 3, 10, 10, 10, 10 /),'alb2') 468 469 type(ctrl_out),save :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon') 470 type(ctrl_out),save :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10 /),'Ma') 471 type(ctrl_out),save :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd') 472 type(ctrl_out),save :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd0') 473 type(ctrl_out),save :: o_mc = ctrl_out((/ 4, 5, 10, 10, 10 /),'mc') 474 type(ctrl_out),save :: o_ftime_con = ctrl_out((/ 4, 10, 10, 10, 10 /),'ftime_con') 475 type(ctrl_out),save :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtdyn') 476 type(ctrl_out),save :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqdyn') 477 type(ctrl_out),save :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10 /),'dudyn') !AXC 478 type(ctrl_out),save :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvdyn') !AXC 479 type(ctrl_out),save :: o_dtcon = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtcon') 480 type(ctrl_out),save :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10 /),'ducon') 481 type(ctrl_out),save :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqcon') 482 type(ctrl_out),save :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtwak') 483 type(ctrl_out),save :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqwak') 484 type(ctrl_out),save :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_h') 485 type(ctrl_out),save :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_s') 486 type(ctrl_out),save :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltat') 487 type(ctrl_out),save :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltaq') 488 type(ctrl_out),save :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_omg') 489 type(ctrl_out),save :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10 /),'Vprecip') 490 type(ctrl_out),save :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10 /),'ftd') 491 type(ctrl_out),save :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10 /),'fqd') 492 type(ctrl_out),save :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlsc') 493 type(ctrl_out),save :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlschr') 494 type(ctrl_out),save :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqlsc') 495 type(ctrl_out),save :: o_dtvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtvdf') 496 type(ctrl_out),save :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqvdf') 497 type(ctrl_out),save :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dteva') 498 type(ctrl_out),save :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqeva') 499 type(ctrl_out),save :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10 /),'ptconv') 500 type(ctrl_out),save :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10 /),'ratqs') 501 type(ctrl_out),save :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtthe') 502 type(ctrl_out),save :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f_th') 503 type(ctrl_out),save :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'e_th') 504 type(ctrl_out),save :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'w_th') 505 type(ctrl_out),save :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10 /),'lambda_th') 506 type(ctrl_out),save :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'ftime_th') 507 type(ctrl_out),save :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'q_th') 508 type(ctrl_out),save :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'a_th') 509 type(ctrl_out),save :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'d_th') 510 type(ctrl_out),save :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f0_th') 511 type(ctrl_out),save :: o_zmax_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'zmax_th') 512 type(ctrl_out),save :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqthe') 513 type(ctrl_out),save :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtajs') 514 type(ctrl_out),save :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqajs') 515 type(ctrl_out),save :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtswr') 516 type(ctrl_out),save :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtsw0') 517 type(ctrl_out),save :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlwr') 518 type(ctrl_out),save :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlw0') 519 type(ctrl_out),save :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtec') 520 type(ctrl_out),save :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'duvdf') 521 type(ctrl_out),save :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvvdf') 522 type(ctrl_out),save :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'duoro') 523 type(ctrl_out),save :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvoro') 524 type(ctrl_out),save :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dulif') 525 type(ctrl_out),save :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvlif') 526 type(ctrl_out),save :: o_duhin = ctrl_out((/ 4, 10, 10, 10, 10 /),'duhin') 527 type(ctrl_out),save :: o_dvhin = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvhin') 462 type(ctrl_out),save,dimension(4) :: o_albe_srf = (/ ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_ter'), & 463 ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_lic'), & 464 ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_oce'), & 465 ctrl_out((/ 3, 7, 10, 7, 10, 10 /),'albe_sic') /) 466 467 type(ctrl_out),save,dimension(4) :: o_ages_srf = (/ ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'ages_ter'), & 468 ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'ages_lic'), & 469 ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'ages_oce'), & 470 ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'ages_sic') /) 471 472 type(ctrl_out),save,dimension(4) :: o_rugs_srf = (/ ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_ter'), & 473 ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_lic'), & 474 ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_oce'), & 475 ctrl_out((/ 3, 6, 10, 10, 10, 10 /),'rugs_sic') /) 476 477 type(ctrl_out),save :: o_alb1 = ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'alb1') 478 type(ctrl_out),save :: o_alb2 = ctrl_out((/ 3, 10, 10, 10, 10, 10 /),'alb2') 479 480 type(ctrl_out),save :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'clwcon') 481 type(ctrl_out),save :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'Ma') 482 type(ctrl_out),save :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dnwd') 483 type(ctrl_out),save :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dnwd0') 484 type(ctrl_out),save :: o_mc = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'mc') 485 type(ctrl_out),save :: o_ftime_con = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_con') 486 type(ctrl_out),save :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtdyn') 487 type(ctrl_out),save :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqdyn') 488 type(ctrl_out),save :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dudyn') !AXC 489 type(ctrl_out),save :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvdyn') !AXC 490 type(ctrl_out),save :: o_dtcon = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtcon') 491 type(ctrl_out),save :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ducon') 492 type(ctrl_out),save :: o_dqcon = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqcon') 493 type(ctrl_out),save :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'dtwak') 494 type(ctrl_out),save :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'dqwak') 495 type(ctrl_out),save :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_h') 496 type(ctrl_out),save :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_s') 497 type(ctrl_out),save :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_deltat') 498 type(ctrl_out),save :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_deltaq') 499 type(ctrl_out),save :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'wake_omg') 500 type(ctrl_out),save :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'Vprecip') 501 type(ctrl_out),save :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'ftd') 502 type(ctrl_out),save :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10, 10 /),'fqd') 503 type(ctrl_out),save :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlsc') 504 type(ctrl_out),save :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlschr') 505 type(ctrl_out),save :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqlsc') 506 type(ctrl_out),save :: o_dtvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtvdf') 507 type(ctrl_out),save :: o_dqvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqvdf') 508 type(ctrl_out),save :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dteva') 509 type(ctrl_out),save :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqeva') 510 type(ctrl_out),save :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ptconv') 511 type(ctrl_out),save :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ratqs') 512 type(ctrl_out),save :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtthe') 513 type(ctrl_out),save :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'f_th') 514 type(ctrl_out),save :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'e_th') 515 type(ctrl_out),save :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'w_th') 516 type(ctrl_out),save :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'lambda_th') 517 type(ctrl_out),save :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_th') 518 type(ctrl_out),save :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'q_th') 519 type(ctrl_out),save :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'a_th') 520 type(ctrl_out),save :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'d_th') 521 type(ctrl_out),save :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'f0_th') 522 type(ctrl_out),save :: o_zmax_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'zmax_th') 523 type(ctrl_out),save :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqthe') 524 type(ctrl_out),save :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtajs') 525 type(ctrl_out),save :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dqajs') 526 type(ctrl_out),save :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtswr') 527 type(ctrl_out),save :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtsw0') 528 type(ctrl_out),save :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlwr') 529 type(ctrl_out),save :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlw0') 530 type(ctrl_out),save :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtec') 531 type(ctrl_out),save :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duvdf') 532 type(ctrl_out),save :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvvdf') 533 type(ctrl_out),save :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duoro') 534 type(ctrl_out),save :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvoro') 535 type(ctrl_out),save :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dulif') 536 type(ctrl_out),save :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvlif') 537 type(ctrl_out),save :: o_duhin = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'duhin') 538 type(ctrl_out),save :: o_dvhin = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dvhin') 539 type(ctrl_out),save :: o_dtoro = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtoro') 540 type(ctrl_out),save :: o_dtlif = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dtlif') 541 type(ctrl_out),save :: o_dthin = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dthin') 528 542 529 543 ! Attention a refaire correctement 530 type(ctrl_out),save,dimension(2) :: o_trac = (/ ctrl_out((/ 4, 10, 10, 10, 10 /),'trac01'), & 531 ctrl_out((/ 4, 10, 10, 10, 10 /),'trac02') /) 544 type(ctrl_out),save,dimension(2) :: o_trac = (/ ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'trac01'), & 545 ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'trac02') /) 546 547 type(ctrl_out),save :: o_rsu = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsu') 548 type(ctrl_out),save :: o_rsd = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsd') 549 type(ctrl_out),save :: o_rlu = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rlu') 550 type(ctrl_out),save :: o_rld = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rld') 551 type(ctrl_out),save :: o_rsucs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsucs') 552 type(ctrl_out),save :: o_rsdcs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rsdcs') 553 type(ctrl_out),save :: o_rlucs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rlucs') 554 type(ctrl_out),save :: o_rldcs = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'rldcs') 555 556 type(ctrl_out),save :: o_tnt = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnt') 557 type(ctrl_out),save :: o_tntc = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntc') 558 type(ctrl_out),save :: o_tntr = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntr') 559 type(ctrl_out),save :: o_tntscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tntscpbl') 560 561 type(ctrl_out),save :: o_tnhus = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhus') 562 type(ctrl_out),save :: o_tnhusc = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhusc') 563 type(ctrl_out),save :: o_tnhusscpbl = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'tnhusscpbl') 564 565 type(ctrl_out),save :: o_evu = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'evu') 566 567 type(ctrl_out),save :: o_h2o = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'h2o') 568 569 type(ctrl_out),save :: o_mcd = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'mcd') 570 type(ctrl_out),save :: o_dmc = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'dmc') 571 type(ctrl_out),save :: o_ref_liq = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ref_liq') 572 type(ctrl_out),save :: o_ref_ice = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ref_ice') 573 574 type(ctrl_out),save :: o_rsut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsut4co2') 575 type(ctrl_out),save :: o_rlut4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlut4co2') 576 type(ctrl_out),save :: o_rsutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsutcs4co2') 577 type(ctrl_out),save :: o_rlutcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlutcs4co2') 578 579 type(ctrl_out),save :: o_rsu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsu4co2') 580 type(ctrl_out),save :: o_rlu4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlu4co2') 581 type(ctrl_out),save :: o_rsucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsucs4co2') 582 type(ctrl_out),save :: o_rlucs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rlucs4co2') 583 type(ctrl_out),save :: o_rsd4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsd4co2') 584 type(ctrl_out),save :: o_rld4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rld4co2') 585 type(ctrl_out),save :: o_rsdcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rsdcs4co2') 586 type(ctrl_out),save :: o_rldcs4co2 = ctrl_out((/ 5, 10, 10, 10, 10, 10 /),'rldcs4co2') 587 588 532 589 CONTAINS 533 590 … … 537 594 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 538 595 539 SUBROUTINE phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta, & 540 ctetaSTD,dtime, ok_veget, & 596 SUBROUTINE phys_output_open(rlon,rlat,pim,tabij,ipt,jpt,plon,plat, & 597 jjmp1,nlevSTD,clevSTD,nbteta, & 598 ctetaSTD, dtime, ok_veget, & 541 599 type_ocean, iflag_pbl,ok_mensuel,ok_journe, & 542 600 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, read_climoz, & 601 phys_out_filestations, & 543 602 new_aod, aerosol_couple) 544 545 603 546 604 USE iophy … … 558 616 include "thermcell.h" 559 617 include "comvert.h" 618 619 real,dimension(klon),intent(in) :: rlon 620 real,dimension(klon),intent(in) :: rlat 621 integer, intent(in) :: pim 622 INTEGER, DIMENSION(pim) :: tabij 623 INTEGER,dimension(pim), intent(in) :: ipt, jpt 624 REAL,dimension(pim), intent(in) :: plat, plon 625 REAL,dimension(pim,2) :: plat_bounds, plon_bounds 560 626 561 627 integer :: jjmp1 … … 593 659 integer, dimension(nfiles) :: phys_out_filelevels 594 660 CHARACTER(len=20), dimension(nfiles) :: type_ecri_files, phys_out_filetypes 595 character(len=20), dimension(nfiles) :: chtimestep = (/ 'DefFreq', 'DefFreq','DefFreq', 'DefFreq', 'DefFreq' /)661 character(len=20), dimension(nfiles) :: chtimestep = (/ 'DefFreq', 'DefFreq','DefFreq', 'DefFreq', 'DefFreq', 'DefFreq' /) 596 662 logical, dimension(nfiles) :: phys_out_filekeys 663 logical, dimension(nfiles) :: phys_out_filestations 597 664 598 665 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 599 666 ! entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax] 600 667 601 logical, dimension(nfiles), save :: phys_out_regfkey = (/ .false., .false., .false., .false., .false. /) 602 real, dimension(nfiles), save :: phys_out_lonmin = (/ -180., -180., -180., -180., -180. /) 603 real, dimension(nfiles), save :: phys_out_lonmax = (/ 180., 180., 180., 180., 180. /) 604 real, dimension(nfiles), save :: phys_out_latmin = (/ -90., -90., -90., -90., -90. /) 605 real, dimension(nfiles), save :: phys_out_latmax = (/ 90., 90., 90., 90., 90. /) 606 607 668 logical, dimension(nfiles), save :: phys_out_regfkey = (/ .false., .false., .false., .false., .false., .false. /) 669 real, dimension(nfiles), save :: phys_out_lonmin = (/ -180., -180., -180., -180., -180., -180. /) 670 real, dimension(nfiles), save :: phys_out_lonmax = (/ 180., 180., 180., 180., 180., 180. /) 671 real, dimension(nfiles), save :: phys_out_latmin = (/ -90., -90., -90., -90., -90., -90. /) 672 real, dimension(nfiles), save :: phys_out_latmax = (/ 90., 90., 90., 90., 90., 90. /) 608 673 609 674 ! 610 675 print*,'Debut phys_output_mod.F90' 611 676 ! Initialisations (Valeurs par defaut 612 levmax = (/ klev, klev, klev, klev, klev /)677 levmax = (/ klev, klev, klev, klev, klev, klev /) 613 678 614 679 phys_out_filenames(1) = 'histmth' … … 617 682 phys_out_filenames(4) = 'histins' 618 683 phys_out_filenames(5) = 'histLES' 684 phys_out_filenames(6) = 'histstn' 619 685 620 686 type_ecri(1) = 'ave(X)' … … 623 689 type_ecri(4) = 'inst(X)' 624 690 type_ecri(5) = 'ave(X)' 691 type_ecri(6) = 'inst(X)' 625 692 626 693 clef_files(1) = ok_mensuel … … 629 696 clef_files(4) = ok_instan 630 697 clef_files(5) = ok_LES 698 clef_files(6) = ok_instan 699 700 !sortir des fichiers "stations" si clef_stations(:)=.TRUE. 701 clef_stations(1) = .FALSE. 702 clef_stations(2) = .FALSE. 703 clef_stations(3) = .FALSE. 704 clef_stations(4) = .FALSE. 705 clef_stations(5) = .FALSE. 706 clef_stations(6) = .TRUE. 631 707 632 708 lev_files(1) = lev_histmth … … 635 711 lev_files(4) = lev_histins 636 712 lev_files(5) = lev_histLES 637 713 lev_files(6) = lev_histins 638 714 639 715 ecrit_files(1) = ecrit_mth … … 642 718 ecrit_files(4) = ecrit_ins 643 719 ecrit_files(5) = ecrit_LES 720 ecrit_files(6) = ecrit_ins 644 721 645 722 !! Lectures des parametres de sorties dans physiq.def … … 657 734 phys_out_filekeys(:)=clef_files(:) 658 735 call getin('phys_out_filekeys',clef_files) 736 phys_out_filestations(:)=clef_stations(:) 737 call getin('phys_out_filestations',clef_stations) 659 738 phys_out_filelevels(:)=lev_files(:) 660 739 call getin('phys_out_filelevels',lev_files) … … 672 751 print*,'phys_out_filetypes=',type_ecri 673 752 print*,'phys_out_filekeys=',clef_files 753 print*,'phys_out_filestations=',clef_stations 674 754 print*,'phys_out_filelevels=',lev_files 675 755 … … 743 823 itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff)) 744 824 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 825 !IM fichiers stations 826 else if (clef_stations(iff)) THEN 827 828 print*,'phys_output_mod phys_out_filenames=',phys_out_filenames(iff) 829 830 call histbeg_phy_all(rlon,rlat,pim,tabij,ipt,jpt,plon,plat,plon_bounds,plat_bounds, & 831 phys_out_filenames(iff), & 832 itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff)) 745 833 else 746 834 CALL histbeg_phy(phys_out_filenames(iff),itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff)) 747 835 endif 748 749 CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", &836 837 CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", & 750 838 levmax(iff) - levmin(iff) + 1, & 751 839 presnivs(levmin(iff):levmax(iff)), nvertm(iff),"down") … … 776 864 ! 1,preff,nvertp0(iff)) 777 865 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 778 CALL histdef2d(iff,o_phis%flag,o_phis%name,"Surface geop.height", "m2/s2") 866 IF (.NOT.clef_stations(iff)) THEN 867 ! 868 !IM: there is no way to have one single value in a netcdf file 869 ! 779 870 type_ecri(1) = 'once' 780 871 type_ecri(2) = 'once' … … 782 873 type_ecri(4) = 'once' 783 874 type_ecri(5) = 'once' 784 CALL histdef2d(iff,o_aire%flag,o_aire%name,"Grid area", "-") 785 CALL histdef2d(iff,o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-") 875 type_ecri(6) = 'once' 876 CALL histdef2d(iff,clef_stations(iff),o_aire%flag,o_aire%name,"Grid area", "-") 877 CALL histdef2d(iff,clef_stations(iff),o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-") 878 ENDIF 786 879 type_ecri(:) = type_ecri_files(:) 787 880 788 881 !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 789 CALL histdef2d(iff,o_contfracOR%flag,o_contfracOR%name,"% sfce terre OR", "-" ) 790 CALL histdef2d(iff,o_aireTER%flag,o_aireTER%name,"Grid area CONT", "-" ) 791 CALL histdef2d(iff,o_flat%flag,o_flat%name, "Latent heat flux", "W/m2") 792 CALL histdef2d(iff,o_slp%flag,o_slp%name, "Sea Level Pressure", "Pa" ) 793 CALL histdef2d(iff,o_tsol%flag,o_tsol%name, "Surface Temperature", "K") 794 CALL histdef2d(iff,o_t2m%flag,o_t2m%name, "Temperature 2m", "K" ) 882 CALL histdef2d(iff,clef_stations(iff),o_phis%flag,o_phis%name,"Surface geop.height", "m2/s2" ) 883 CALL histdef2d(iff,clef_stations(iff),o_contfracOR%flag,o_contfracOR%name,"% sfce terre OR", "-" ) 884 CALL histdef2d(iff,clef_stations(iff),o_aireTER%flag,o_aireTER%name,"Grid area CONT", "-" ) 885 CALL histdef2d(iff,clef_stations(iff),o_flat%flag,o_flat%name, "Latent heat flux", "W/m2") 886 CALL histdef2d(iff,clef_stations(iff),o_slp%flag,o_slp%name, "Sea Level Pressure", "Pa" ) 887 CALL histdef2d(iff,clef_stations(iff),o_tsol%flag,o_tsol%name, "Surface Temperature", "K") 888 CALL histdef2d(iff,clef_stations(iff),o_t2m%flag,o_t2m%name, "Temperature 2m", "K" ) 889 IF (.NOT.clef_stations(iff)) THEN 890 ! 891 !IM: there is no way to have one single value in a netcdf file 892 ! 795 893 type_ecri(1) = 't_min(X)' 796 894 type_ecri(2) = 't_min(X)' … … 798 896 type_ecri(4) = 't_min(X)' 799 897 type_ecri(5) = 't_min(X)' 800 CALL histdef2d(iff,o_t2m_min%flag,o_t2m_min%name, "Temp 2m min", "K" ) 898 type_ecri(6) = 't_min(X)' 899 CALL histdef2d(iff,clef_stations(iff),o_t2m_min%flag,o_t2m_min%name, "Temp 2m min", "K" ) 801 900 type_ecri(1) = 't_max(X)' 802 901 type_ecri(2) = 't_max(X)' … … 804 903 type_ecri(4) = 't_max(X)' 805 904 type_ecri(5) = 't_max(X)' 806 CALL histdef2d(iff,o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" ) 905 type_ecri(6) = 't_max(X)' 906 CALL histdef2d(iff,clef_stations(iff),o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" ) 907 ENDIF 807 908 type_ecri(:) = type_ecri_files(:) 808 CALL histdef2d(iff, o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s")809 CALL histdef2d(iff, o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s")810 CALL histdef2d(iff, o_sicf%flag,o_sicf%name, "Sea-ice fraction", "-" )811 CALL histdef2d(iff, o_q2m%flag,o_q2m%name, "Specific humidity 2m", "kg/kg")812 CALL histdef2d(iff, o_u10m%flag,o_u10m%name, "Vent zonal 10m", "m/s" )813 CALL histdef2d(iff, o_v10m%flag,o_v10m%name, "Vent meridien 10m", "m/s")814 CALL histdef2d(iff, o_psol%flag,o_psol%name, "Surface Pressure", "Pa" )815 CALL histdef2d(iff, o_qsurf%flag,o_qsurf%name, "Surface Air humidity", "kg/kg")909 CALL histdef2d(iff,clef_stations(iff),o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s") 910 CALL histdef2d(iff,clef_stations(iff),o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s") 911 CALL histdef2d(iff,clef_stations(iff),o_sicf%flag,o_sicf%name, "Sea-ice fraction", "-" ) 912 CALL histdef2d(iff,clef_stations(iff),o_q2m%flag,o_q2m%name, "Specific humidity 2m", "kg/kg") 913 CALL histdef2d(iff,clef_stations(iff),o_u10m%flag,o_u10m%name, "Vent zonal 10m", "m/s" ) 914 CALL histdef2d(iff,clef_stations(iff),o_v10m%flag,o_v10m%name, "Vent meridien 10m", "m/s") 915 CALL histdef2d(iff,clef_stations(iff),o_psol%flag,o_psol%name, "Surface Pressure", "Pa" ) 916 CALL histdef2d(iff,clef_stations(iff),o_qsurf%flag,o_qsurf%name, "Surface Air humidity", "kg/kg") 816 917 817 918 if (.not. ok_veget) then 818 CALL histdef2d(iff, o_qsol%flag,o_qsol%name, "Soil watter content", "mm" )919 CALL histdef2d(iff,clef_stations(iff),o_qsol%flag,o_qsol%name, "Soil watter content", "mm" ) 819 920 endif 820 921 821 CALL histdef2d(iff, o_ndayrain%flag,o_ndayrain%name, "Number of dayrain(liq+sol)", "-")822 CALL histdef2d(iff, o_precip%flag,o_precip%name, "Precip Totale liq+sol", "kg/(s*m2)" )823 CALL histdef2d(iff, o_plul%flag,o_plul%name, "Large-scale Precip.", "kg/(s*m2)")824 CALL histdef2d(iff, o_pluc%flag,o_pluc%name, "Convective Precip.", "kg/(s*m2)")825 CALL histdef2d(iff, o_snow%flag,o_snow%name, "Snow fall", "kg/(s*m2)" )826 CALL histdef2d(iff, o_msnow%flag,o_msnow%name, "Surface snow amount", "kg/m2" )827 CALL histdef2d(iff, o_fsnow%flag,o_fsnow%name, "Surface snow area fraction", "-" )828 CALL histdef2d(iff, o_evap%flag,o_evap%name, "Evaporat", "kg/(s*m2)" )829 CALL histdef2d(iff, o_tops%flag,o_tops%name, "Solar rad. at TOA", "W/m2")830 CALL histdef2d(iff, o_tops0%flag,o_tops0%name, "CS Solar rad. at TOA", "W/m2")831 CALL histdef2d(iff, o_topl%flag,o_topl%name, "IR rad. at TOA", "W/m2" )832 CALL histdef2d(iff, o_topl0%flag,o_topl0%name, "IR rad. at TOA", "W/m2")833 CALL histdef2d(iff, o_SWupTOA%flag,o_SWupTOA%name, "SWup at TOA", "W/m2")834 CALL histdef2d(iff, o_SWupTOAclr%flag,o_SWupTOAclr%name, "SWup clear sky at TOA", "W/m2")835 CALL histdef2d(iff, o_SWdnTOA%flag,o_SWdnTOA%name, "SWdn at TOA", "W/m2" )836 CALL histdef2d(iff, o_SWdnTOAclr%flag,o_SWdnTOAclr%name, "SWdn clear sky at TOA", "W/m2")837 CALL histdef2d(iff, o_nettop%flag,o_nettop%name, "Net dn radiatif flux at TOA", "W/m2")838 CALL histdef2d(iff, o_SWup200%flag,o_SWup200%name, "SWup at 200mb", "W/m2" )839 CALL histdef2d(iff, o_SWup200clr%flag,o_SWup200clr%name, "SWup clear sky at 200mb", "W/m2")840 CALL histdef2d(iff, o_SWdn200%flag,o_SWdn200%name, "SWdn at 200mb", "W/m2" )841 CALL histdef2d(iff, o_SWdn200clr%flag,o_SWdn200clr%name, "SWdn clear sky at 200mb", "W/m2")842 CALL histdef2d(iff, o_LWup200%flag,o_LWup200%name, "LWup at 200mb", "W/m2")843 CALL histdef2d(iff, o_LWup200clr%flag,o_LWup200clr%name, "LWup clear sky at 200mb", "W/m2")844 CALL histdef2d(iff, o_LWdn200%flag,o_LWdn200%name, "LWdn at 200mb", "W/m2")845 CALL histdef2d(iff, o_LWdn200clr%flag,o_LWdn200clr%name, "LWdn clear sky at 200mb", "W/m2")846 CALL histdef2d(iff, o_sols%flag,o_sols%name, "Solar rad. at surf.", "W/m2")847 CALL histdef2d(iff, o_sols0%flag,o_sols0%name, "Solar rad. at surf.", "W/m2")848 CALL histdef2d(iff, o_soll%flag,o_soll%name, "IR rad. at surface", "W/m2")849 CALL histdef2d(iff, o_radsol%flag,o_radsol%name, "Rayonnement au sol", "W/m2")850 CALL histdef2d(iff, o_soll0%flag,o_soll0%name, "IR rad. at surface", "W/m2")851 CALL histdef2d(iff, o_SWupSFC%flag,o_SWupSFC%name, "SWup at surface", "W/m2")852 CALL histdef2d(iff, o_SWupSFCclr%flag,o_SWupSFCclr%name, "SWup clear sky at surface", "W/m2")853 CALL histdef2d(iff, o_SWdnSFC%flag,o_SWdnSFC%name, "SWdn at surface", "W/m2")854 CALL histdef2d(iff, o_SWdnSFCclr%flag,o_SWdnSFCclr%name, "SWdn clear sky at surface", "W/m2")855 CALL histdef2d(iff, o_LWupSFC%flag,o_LWupSFC%name, "Upwd. IR rad. at surface", "W/m2")856 CALL histdef2d(iff, o_LWdnSFC%flag,o_LWdnSFC%name, "Down. IR rad. at surface", "W/m2")857 CALL histdef2d(iff, o_LWupSFCclr%flag,o_LWupSFCclr%name, "CS Upwd. IR rad. at surface", "W/m2")858 CALL histdef2d(iff, o_LWdnSFCclr%flag,o_LWdnSFCclr%name, "Down. CS IR rad. at surface", "W/m2")859 CALL histdef2d(iff, o_bils%flag,o_bils%name, "Surf. total heat flux", "W/m2")860 CALL histdef2d(iff, o_sens%flag,o_sens%name, "Sensible heat flux", "W/m2")861 CALL histdef2d(iff, o_fder%flag,o_fder%name, "Heat flux derivation", "W/m2")862 CALL histdef2d(iff, o_ffonte%flag,o_ffonte%name, "Thermal flux for snow melting", "W/m2")863 CALL histdef2d(iff, o_fqcalving%flag,o_fqcalving%name, "Ice Calving", "kg/m2/s")864 CALL histdef2d(iff, o_fqfonte%flag,o_fqfonte%name, "Land ice melt", "kg/m2/s")865 866 CALL histdef2d(iff, o_taux%flag,o_taux%name, "Zonal wind stress","Pa")867 CALL histdef2d(iff, o_tauy%flag,o_tauy%name, "Meridional wind stress","Pa")922 CALL histdef2d(iff,clef_stations(iff),o_ndayrain%flag,o_ndayrain%name, "Number of dayrain(liq+sol)", "-") 923 CALL histdef2d(iff,clef_stations(iff),o_precip%flag,o_precip%name, "Precip Totale liq+sol", "kg/(s*m2)" ) 924 CALL histdef2d(iff,clef_stations(iff),o_plul%flag,o_plul%name, "Large-scale Precip.", "kg/(s*m2)") 925 CALL histdef2d(iff,clef_stations(iff),o_pluc%flag,o_pluc%name, "Convective Precip.", "kg/(s*m2)") 926 CALL histdef2d(iff,clef_stations(iff),o_snow%flag,o_snow%name, "Snow fall", "kg/(s*m2)" ) 927 CALL histdef2d(iff,clef_stations(iff),o_msnow%flag,o_msnow%name, "Surface snow amount", "kg/m2" ) 928 CALL histdef2d(iff,clef_stations(iff),o_fsnow%flag,o_fsnow%name, "Surface snow area fraction", "-" ) 929 CALL histdef2d(iff,clef_stations(iff),o_evap%flag,o_evap%name, "Evaporat", "kg/(s*m2)" ) 930 CALL histdef2d(iff,clef_stations(iff),o_tops%flag,o_tops%name, "Solar rad. at TOA", "W/m2") 931 CALL histdef2d(iff,clef_stations(iff),o_tops0%flag,o_tops0%name, "CS Solar rad. at TOA", "W/m2") 932 CALL histdef2d(iff,clef_stations(iff),o_topl%flag,o_topl%name, "IR rad. at TOA", "W/m2" ) 933 CALL histdef2d(iff,clef_stations(iff),o_topl0%flag,o_topl0%name, "IR rad. at TOA", "W/m2") 934 CALL histdef2d(iff,clef_stations(iff),o_SWupTOA%flag,o_SWupTOA%name, "SWup at TOA", "W/m2") 935 CALL histdef2d(iff,clef_stations(iff),o_SWupTOAclr%flag,o_SWupTOAclr%name, "SWup clear sky at TOA", "W/m2") 936 CALL histdef2d(iff,clef_stations(iff),o_SWdnTOA%flag,o_SWdnTOA%name, "SWdn at TOA", "W/m2" ) 937 CALL histdef2d(iff,clef_stations(iff),o_SWdnTOAclr%flag,o_SWdnTOAclr%name, "SWdn clear sky at TOA", "W/m2") 938 CALL histdef2d(iff,clef_stations(iff),o_nettop%flag,o_nettop%name, "Net dn radiatif flux at TOA", "W/m2") 939 CALL histdef2d(iff,clef_stations(iff),o_SWup200%flag,o_SWup200%name, "SWup at 200mb", "W/m2" ) 940 CALL histdef2d(iff,clef_stations(iff),o_SWup200clr%flag,o_SWup200clr%name, "SWup clear sky at 200mb", "W/m2") 941 CALL histdef2d(iff,clef_stations(iff),o_SWdn200%flag,o_SWdn200%name, "SWdn at 200mb", "W/m2" ) 942 CALL histdef2d(iff,clef_stations(iff),o_SWdn200clr%flag,o_SWdn200clr%name, "SWdn clear sky at 200mb", "W/m2") 943 CALL histdef2d(iff,clef_stations(iff),o_LWup200%flag,o_LWup200%name, "LWup at 200mb", "W/m2") 944 CALL histdef2d(iff,clef_stations(iff),o_LWup200clr%flag,o_LWup200clr%name, "LWup clear sky at 200mb", "W/m2") 945 CALL histdef2d(iff,clef_stations(iff),o_LWdn200%flag,o_LWdn200%name, "LWdn at 200mb", "W/m2") 946 CALL histdef2d(iff,clef_stations(iff),o_LWdn200clr%flag,o_LWdn200clr%name, "LWdn clear sky at 200mb", "W/m2") 947 CALL histdef2d(iff,clef_stations(iff),o_sols%flag,o_sols%name, "Solar rad. at surf.", "W/m2") 948 CALL histdef2d(iff,clef_stations(iff),o_sols0%flag,o_sols0%name, "Solar rad. at surf.", "W/m2") 949 CALL histdef2d(iff,clef_stations(iff),o_soll%flag,o_soll%name, "IR rad. at surface", "W/m2") 950 CALL histdef2d(iff,clef_stations(iff),o_radsol%flag,o_radsol%name, "Rayonnement au sol", "W/m2") 951 CALL histdef2d(iff,clef_stations(iff),o_soll0%flag,o_soll0%name, "IR rad. at surface", "W/m2") 952 CALL histdef2d(iff,clef_stations(iff),o_SWupSFC%flag,o_SWupSFC%name, "SWup at surface", "W/m2") 953 CALL histdef2d(iff,clef_stations(iff),o_SWupSFCclr%flag,o_SWupSFCclr%name, "SWup clear sky at surface", "W/m2") 954 CALL histdef2d(iff,clef_stations(iff),o_SWdnSFC%flag,o_SWdnSFC%name, "SWdn at surface", "W/m2") 955 CALL histdef2d(iff,clef_stations(iff),o_SWdnSFCclr%flag,o_SWdnSFCclr%name, "SWdn clear sky at surface", "W/m2") 956 CALL histdef2d(iff,clef_stations(iff),o_LWupSFC%flag,o_LWupSFC%name, "Upwd. IR rad. at surface", "W/m2") 957 CALL histdef2d(iff,clef_stations(iff),o_LWdnSFC%flag,o_LWdnSFC%name, "Down. IR rad. at surface", "W/m2") 958 CALL histdef2d(iff,clef_stations(iff),o_LWupSFCclr%flag,o_LWupSFCclr%name, "CS Upwd. IR rad. at surface", "W/m2") 959 CALL histdef2d(iff,clef_stations(iff),o_LWdnSFCclr%flag,o_LWdnSFCclr%name, "Down. CS IR rad. at surface", "W/m2") 960 CALL histdef2d(iff,clef_stations(iff),o_bils%flag,o_bils%name, "Surf. total heat flux", "W/m2") 961 CALL histdef2d(iff,clef_stations(iff),o_sens%flag,o_sens%name, "Sensible heat flux", "W/m2") 962 CALL histdef2d(iff,clef_stations(iff),o_fder%flag,o_fder%name, "Heat flux derivation", "W/m2") 963 CALL histdef2d(iff,clef_stations(iff),o_ffonte%flag,o_ffonte%name, "Thermal flux for snow melting", "W/m2") 964 CALL histdef2d(iff,clef_stations(iff),o_fqcalving%flag,o_fqcalving%name, "Ice Calving", "kg/m2/s") 965 CALL histdef2d(iff,clef_stations(iff),o_fqfonte%flag,o_fqfonte%name, "Land ice melt", "kg/m2/s") 966 967 CALL histdef2d(iff,clef_stations(iff),o_taux%flag,o_taux%name, "Zonal wind stress","Pa") 968 CALL histdef2d(iff,clef_stations(iff),o_tauy%flag,o_tauy%name, "Meridional wind stress","Pa") 868 969 869 970 DO nsrf = 1, nbsrf 870 CALL histdef2d(iff,o_pourc_srf(nsrf)%flag,o_pourc_srf(nsrf)%name,"% "//clnsurf(nsrf),"%") 871 CALL histdef2d(iff,o_fract_srf(nsrf)%flag,o_fract_srf(nsrf)%name,"Fraction "//clnsurf(nsrf),"1") 872 CALL histdef2d(iff,o_taux_srf(nsrf)%flag,o_taux_srf(nsrf)%name,"Zonal wind stress"//clnsurf(nsrf),"Pa") 873 CALL histdef2d(iff,o_tauy_srf(nsrf)%flag,o_tauy_srf(nsrf)%name,"Meridional wind stress "//clnsurf(nsrf),"Pa") 874 CALL histdef2d(iff,o_tsol_srf(nsrf)%flag,o_tsol_srf(nsrf)%name,"Temperature "//clnsurf(nsrf),"K") 875 CALL histdef2d(iff,o_u10m_srf(nsrf)%flag,o_u10m_srf(nsrf)%name,"Vent Zonal 10m "//clnsurf(nsrf),"m/s") 876 CALL histdef2d(iff,o_evap_srf(nsrf)%flag,o_evap_srf(nsrf)%name,"evaporation at surface "//clnsurf(nsrf),"kg/(s*m2)") 877 CALL histdef2d(iff,o_v10m_srf(nsrf)%flag,o_v10m_srf(nsrf)%name,"Vent meredien 10m "//clnsurf(nsrf),"m/s") 878 CALL histdef2d(iff,o_t2m_srf(nsrf)%flag,o_t2m_srf(nsrf)%name,"Temp 2m "//clnsurf(nsrf),"K") 879 CALL histdef2d(iff,o_sens_srf(nsrf)%flag,o_sens_srf(nsrf)%name,"Sensible heat flux "//clnsurf(nsrf),"W/m2") 880 CALL histdef2d(iff,o_lat_srf(nsrf)%flag,o_lat_srf(nsrf)%name,"Latent heat flux "//clnsurf(nsrf),"W/m2") 881 CALL histdef2d(iff,o_flw_srf(nsrf)%flag,o_flw_srf(nsrf)%name,"LW "//clnsurf(nsrf),"W/m2") 882 CALL histdef2d(iff,o_fsw_srf(nsrf)%flag,o_fsw_srf(nsrf)%name,"SW "//clnsurf(nsrf),"W/m2") 883 CALL histdef2d(iff,o_wbils_srf(nsrf)%flag,o_wbils_srf(nsrf)%name,"Bilan sol "//clnsurf(nsrf),"W/m2" ) 884 CALL histdef2d(iff,o_wbilo_srf(nsrf)%flag,o_wbilo_srf(nsrf)%name,"Bilan eau "//clnsurf(nsrf),"kg/(m2*s)") 971 CALL histdef2d(iff,clef_stations(iff),o_pourc_srf(nsrf)%flag,o_pourc_srf(nsrf)%name,"% "//clnsurf(nsrf),"%") 972 CALL histdef2d(iff,clef_stations(iff),o_fract_srf(nsrf)%flag,o_fract_srf(nsrf)%name,"Fraction "//clnsurf(nsrf),"1") 973 CALL histdef2d(iff,clef_stations(iff), & 974 o_taux_srf(nsrf)%flag,o_taux_srf(nsrf)%name,"Zonal wind stress"//clnsurf(nsrf),"Pa") 975 CALL histdef2d(iff,clef_stations(iff), & 976 o_tauy_srf(nsrf)%flag,o_tauy_srf(nsrf)%name,"Meridional wind stress "//clnsurf(nsrf),"Pa") 977 CALL histdef2d(iff,clef_stations(iff), & 978 o_tsol_srf(nsrf)%flag,o_tsol_srf(nsrf)%name,"Temperature "//clnsurf(nsrf),"K") 979 CALL histdef2d(iff,clef_stations(iff), & 980 o_u10m_srf(nsrf)%flag,o_u10m_srf(nsrf)%name,"Vent Zonal 10m "//clnsurf(nsrf),"m/s") 981 CALL histdef2d(iff,clef_stations(iff), & 982 o_evap_srf(nsrf)%flag,o_evap_srf(nsrf)%name,"evaporation at surface "//clnsurf(nsrf),"kg/(s*m2)") 983 CALL histdef2d(iff,clef_stations(iff), & 984 o_v10m_srf(nsrf)%flag,o_v10m_srf(nsrf)%name,"Vent meredien 10m "//clnsurf(nsrf),"m/s") 985 CALL histdef2d(iff,clef_stations(iff), & 986 o_t2m_srf(nsrf)%flag,o_t2m_srf(nsrf)%name,"Temp 2m "//clnsurf(nsrf),"K") 987 CALL histdef2d(iff,clef_stations(iff), & 988 o_sens_srf(nsrf)%flag,o_sens_srf(nsrf)%name,"Sensible heat flux "//clnsurf(nsrf),"W/m2") 989 CALL histdef2d(iff,clef_stations(iff), & 990 o_lat_srf(nsrf)%flag,o_lat_srf(nsrf)%name,"Latent heat flux "//clnsurf(nsrf),"W/m2") 991 CALL histdef2d(iff,clef_stations(iff), & 992 o_flw_srf(nsrf)%flag,o_flw_srf(nsrf)%name,"LW "//clnsurf(nsrf),"W/m2") 993 CALL histdef2d(iff,clef_stations(iff), & 994 o_fsw_srf(nsrf)%flag,o_fsw_srf(nsrf)%name,"SW "//clnsurf(nsrf),"W/m2") 995 CALL histdef2d(iff,clef_stations(iff), & 996 o_wbils_srf(nsrf)%flag,o_wbils_srf(nsrf)%name,"Bilan sol "//clnsurf(nsrf),"W/m2" ) 997 CALL histdef2d(iff,clef_stations(iff), & 998 o_wbilo_srf(nsrf)%flag,o_wbilo_srf(nsrf)%name,"Bilan eau "//clnsurf(nsrf),"kg/(m2*s)") 885 999 if (iflag_pbl>1 .and. lev_files(iff).gt.10 ) then 886 CALL histdef2d(iff,o_tke_srf(nsrf)%flag,o_tke_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") 1000 CALL histdef2d(iff,clef_stations(iff), & 1001 o_tke_srf(nsrf)%flag,o_tke_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") 1002 1003 IF (.NOT.clef_stations(iff)) THEN 1004 ! 1005 !IM: there is no way to have one single value in a netcdf file 1006 ! 887 1007 type_ecri(1) = 't_max(X)' 888 1008 type_ecri(2) = 't_max(X)' … … 890 1010 type_ecri(4) = 't_max(X)' 891 1011 type_ecri(5) = 't_max(X)' 892 CALL histdef2d(iff,o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") 1012 type_ecri(6) = 't_max(X)' 1013 CALL histdef2d(iff,clef_stations(iff), & 1014 o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") 893 1015 type_ecri(:) = type_ecri_files(:) 1016 ENDIF 1017 894 1018 endif 895 CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo VIS surf. "//clnsurf(nsrf),"-") 896 CALL histdef2d(iff,o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Surface roughness "//clnsurf(nsrf),"m") 897 CALL histdef2d(iff,o_ages_srf(nsrf)%flag,o_ages_srf(nsrf)%name,"Snow age", "day") 1019 1020 CALL histdef2d(iff,clef_stations(iff), & 1021 o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo VIS surf. "//clnsurf(nsrf),"-") 1022 CALL histdef2d(iff,clef_stations(iff), & 1023 o_rugs_srf(nsrf)%flag,o_rugs_srf(nsrf)%name,"Surface roughness "//clnsurf(nsrf),"m") 1024 CALL histdef2d(iff,clef_stations(iff), & 1025 o_ages_srf(nsrf)%flag,o_ages_srf(nsrf)%name,"Snow age", "day") 898 1026 END DO 899 1027 … … 901 1029 IF (ok_ade.OR.ok_aie) THEN 902 1030 903 CALL histdef2d(iff,o_od550aer%flag,o_od550aer%name, "Total aerosol optical depth at 550nm", "-") 904 CALL histdef2d(iff,o_od865aer%flag,o_od865aer%name, "Total aerosol optical depth at 870nm", "-") 905 CALL histdef2d(iff,o_absvisaer%flag,o_absvisaer%name, "Absorption aerosol visible optical depth", "-") 906 CALL histdef2d(iff,o_od550lt1aer%flag,o_od550lt1aer%name, "Fine mode optical depth", "-") 907 908 909 CALL histdef2d(iff,o_sconcso4%flag,o_sconcso4%name,"Surface Concentration of Sulfate ","kg/m3") 910 CALL histdef2d(iff,o_sconcoa%flag,o_sconcoa%name,"Surface Concentration of Organic Aerosol ","kg/m3") 911 CALL histdef2d(iff,o_sconcbc%flag,o_sconcbc%name,"Surface Concentration of Black Carbon ","kg/m3") 912 CALL histdef2d(iff,o_sconcss%flag,o_sconcss%name,"Surface Concentration of Sea Salt ","kg/m3") 913 CALL histdef2d(iff,o_sconcdust%flag,o_sconcdust%name,"Surface Concentration of Dust ","kg/m3") 914 CALL histdef3d(iff,o_concso4%flag,o_concso4%name,"Concentration of Sulfate ","kg/m3") 915 CALL histdef3d(iff,o_concoa%flag,o_concoa%name,"Concentration of Organic Aerosol ","kg/m3") 916 CALL histdef3d(iff,o_concbc%flag,o_concbc%name,"Concentration of Black Carbon ","kg/m3") 917 CALL histdef3d(iff,o_concss%flag,o_concss%name,"Concentration of Sea Salt ","kg/m3") 918 CALL histdef3d(iff,o_concdust%flag,o_concdust%name,"Concentration of Dust ","kg/m3") 919 CALL histdef2d(iff,o_loadso4%flag,o_loadso4%name,"Column Load of Sulfate ","kg/m2") 920 CALL histdef2d(iff,o_loadoa%flag,o_loadoa%name,"Column Load of Organic Aerosol ","kg/m2") 921 CALL histdef2d(iff,o_loadbc%flag,o_loadbc%name,"Column Load of Black Carbon ","kg/m2") 922 CALL histdef2d(iff,o_loadss%flag,o_loadss%name,"Column Load of Sea Salt ","kg/m2") 923 CALL histdef2d(iff,o_loaddust%flag,o_loaddust%name,"Column Load of Dust ","kg/m2") 1031 CALL histdef2d(iff,clef_stations(iff), & 1032 o_od550aer%flag,o_od550aer%name, "Total aerosol optical depth at 550nm", "-") 1033 CALL histdef2d(iff,clef_stations(iff), & 1034 o_od865aer%flag,o_od865aer%name, "Total aerosol optical depth at 870nm", "-") 1035 CALL histdef2d(iff,clef_stations(iff), & 1036 o_absvisaer%flag,o_absvisaer%name, "Absorption aerosol visible optical depth", "-") 1037 CALL histdef2d(iff,clef_stations(iff), & 1038 o_od550lt1aer%flag,o_od550lt1aer%name, "Fine mode optical depth", "-") 1039 1040 1041 CALL histdef2d(iff,clef_stations(iff), & 1042 o_sconcso4%flag,o_sconcso4%name,"Surface Concentration of Sulfate ","kg/m3") 1043 CALL histdef2d(iff,clef_stations(iff), & 1044 o_sconcoa%flag,o_sconcoa%name,"Surface Concentration of Organic Aerosol ","kg/m3") 1045 CALL histdef2d(iff,clef_stations(iff), & 1046 o_sconcbc%flag,o_sconcbc%name,"Surface Concentration of Black Carbon ","kg/m3") 1047 CALL histdef2d(iff,clef_stations(iff), & 1048 o_sconcss%flag,o_sconcss%name,"Surface Concentration of Sea Salt ","kg/m3") 1049 CALL histdef2d(iff,clef_stations(iff), & 1050 o_sconcdust%flag,o_sconcdust%name,"Surface Concentration of Dust ","kg/m3") 1051 CALL histdef3d(iff,clef_stations(iff), & 1052 o_concso4%flag,o_concso4%name,"Concentration of Sulfate ","kg/m3") 1053 CALL histdef3d(iff,clef_stations(iff), & 1054 o_concoa%flag,o_concoa%name,"Concentration of Organic Aerosol ","kg/m3") 1055 CALL histdef3d(iff,clef_stations(iff), & 1056 o_concbc%flag,o_concbc%name,"Concentration of Black Carbon ","kg/m3") 1057 CALL histdef3d(iff,clef_stations(iff), & 1058 o_concss%flag,o_concss%name,"Concentration of Sea Salt ","kg/m3") 1059 CALL histdef3d(iff,clef_stations(iff), & 1060 o_concdust%flag,o_concdust%name,"Concentration of Dust ","kg/m3") 1061 CALL histdef2d(iff,clef_stations(iff), & 1062 o_loadso4%flag,o_loadso4%name,"Column Load of Sulfate ","kg/m2") 1063 CALL histdef2d(iff,clef_stations(iff), & 1064 o_loadoa%flag,o_loadoa%name,"Column Load of Organic Aerosol ","kg/m2") 1065 CALL histdef2d(iff,clef_stations(iff), & 1066 o_loadbc%flag,o_loadbc%name,"Column Load of Black Carbon ","kg/m2") 1067 CALL histdef2d(iff,clef_stations(iff), & 1068 o_loadss%flag,o_loadss%name,"Column Load of Sea Salt ","kg/m2") 1069 CALL histdef2d(iff,clef_stations(iff), & 1070 o_loaddust%flag,o_loaddust%name,"Column Load of Dust ","kg/m2") 924 1071 925 1072 DO naero = 1, naero_spc 926 CALL histdef2d(iff,o_tausumaero(naero)%flag,o_tausumaero(naero)%name,"Aerosol Optical depth at 550 nm "//name_aero(naero),"1") 1073 CALL histdef2d(iff,clef_stations(iff), & 1074 o_tausumaero(naero)%flag,o_tausumaero(naero)%name,"Aerosol Optical depth at 550 nm "//name_aero(naero),"1") 927 1075 END DO 928 1076 ENDIF … … 930 1078 931 1079 IF (ok_ade) THEN 932 CALL histdef2d(iff,o_topswad%flag,o_topswad%name, "ADE at TOA", "W/m2") 933 CALL histdef2d(iff,o_solswad%flag,o_solswad%name, "ADE at SRF", "W/m2") 934 935 CALL histdef2d(iff,o_swtoaas_nat%flag,o_swtoaas_nat%name, "Natural aerosol radiative forcing all-sky at TOA", "W/m2") 936 CALL histdef2d(iff,o_swsrfas_nat%flag,o_swsrfas_nat%name, "Natural aerosol radiative forcing all-sky at SRF", "W/m2") 937 CALL histdef2d(iff,o_swtoacs_nat%flag,o_swtoacs_nat%name, "Natural aerosol radiative forcing clear-sky at TOA", "W/m2") 938 CALL histdef2d(iff,o_swsrfcs_nat%flag,o_swsrfcs_nat%name, "Natural aerosol radiative forcing clear-sky at SRF", "W/m2") 939 940 CALL histdef2d(iff,o_swtoaas_ant%flag,o_swtoaas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at TOA", "W/m2") 941 CALL histdef2d(iff,o_swsrfas_ant%flag,o_swsrfas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at SRF", "W/m2") 942 CALL histdef2d(iff,o_swtoacs_ant%flag,o_swtoacs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at TOA", "W/m2") 943 CALL histdef2d(iff,o_swsrfcs_ant%flag,o_swsrfcs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at SRF", "W/m2") 1080 CALL histdef2d(iff,clef_stations(iff), & 1081 o_topswad%flag,o_topswad%name, "ADE at TOA", "W/m2") 1082 CALL histdef2d(iff,clef_stations(iff), & 1083 o_solswad%flag,o_solswad%name, "ADE at SRF", "W/m2") 1084 1085 CALL histdef2d(iff,clef_stations(iff), & 1086 o_swtoaas_nat%flag,o_swtoaas_nat%name, "Natural aerosol radiative forcing all-sky at TOA", "W/m2") 1087 CALL histdef2d(iff,clef_stations(iff), & 1088 o_swsrfas_nat%flag,o_swsrfas_nat%name, "Natural aerosol radiative forcing all-sky at SRF", "W/m2") 1089 CALL histdef2d(iff,clef_stations(iff), & 1090 o_swtoacs_nat%flag,o_swtoacs_nat%name, "Natural aerosol radiative forcing clear-sky at TOA", "W/m2") 1091 CALL histdef2d(iff,clef_stations(iff), & 1092 o_swsrfcs_nat%flag,o_swsrfcs_nat%name, "Natural aerosol radiative forcing clear-sky at SRF", "W/m2") 1093 1094 CALL histdef2d(iff,clef_stations(iff), & 1095 o_swtoaas_ant%flag,o_swtoaas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at TOA", "W/m2") 1096 CALL histdef2d(iff,clef_stations(iff), & 1097 o_swsrfas_ant%flag,o_swsrfas_ant%name, "Anthropogenic aerosol radiative forcing all-sky at SRF", "W/m2") 1098 CALL histdef2d(iff,clef_stations(iff), & 1099 o_swtoacs_ant%flag,o_swtoacs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at TOA", "W/m2") 1100 CALL histdef2d(iff,clef_stations(iff), & 1101 o_swsrfcs_ant%flag,o_swsrfcs_ant%name, "Anthropogenic aerosol radiative forcing clear-sky at SRF", "W/m2") 944 1102 945 1103 IF (.NOT. aerosol_couple) THEN 946 CALL histdef2d(iff,o_swtoacf_nat%flag,o_swtoacf_nat%name, "Natural aerosol impact on cloud radiative forcing at TOA", "W/m2") 947 CALL histdef2d(iff,o_swsrfcf_nat%flag,o_swsrfcf_nat%name, "Natural aerosol impact on cloud radiative forcing at SRF", "W/m2") 948 CALL histdef2d(iff,o_swtoacf_ant%flag,o_swtoacf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at TOA", "W/m2") 949 CALL histdef2d(iff,o_swsrfcf_ant%flag,o_swsrfcf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at SRF", "W/m2") 950 CALL histdef2d(iff,o_swtoacf_zero%flag,o_swtoacf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at TOA", "W/m2") 951 CALL histdef2d(iff,o_swsrfcf_zero%flag,o_swsrfcf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at SRF", "W/m2") 1104 CALL histdef2d(iff,clef_stations(iff), & 1105 o_swtoacf_nat%flag,o_swtoacf_nat%name, "Natural aerosol impact on cloud radiative forcing at TOA", "W/m2") 1106 CALL histdef2d(iff,clef_stations(iff), & 1107 o_swsrfcf_nat%flag,o_swsrfcf_nat%name, "Natural aerosol impact on cloud radiative forcing at SRF", "W/m2") 1108 CALL histdef2d(iff,clef_stations(iff), & 1109 o_swtoacf_ant%flag,o_swtoacf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at TOA", "W/m2") 1110 CALL histdef2d(iff,clef_stations(iff), & 1111 o_swsrfcf_ant%flag,o_swsrfcf_ant%name, "Anthropogenic aerosol impact on cloud radiative forcing at SRF", "W/m2") 1112 CALL histdef2d(iff,clef_stations(iff), & 1113 o_swtoacf_zero%flag,o_swtoacf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at TOA", "W/m2") 1114 CALL histdef2d(iff,clef_stations(iff), & 1115 o_swsrfcf_zero%flag,o_swsrfcf_zero%name, "Cloud radiative forcing (allsky-clearsky fluxes) at SRF", "W/m2") 952 1116 ENDIF 953 1117 … … 955 1119 956 1120 IF (ok_aie) THEN 957 CALL histdef2d(iff,o_topswai%flag,o_topswai%name, "AIE at TOA", "W/m2") 958 CALL histdef2d(iff,o_solswai%flag,o_solswai%name, "AIE at SFR", "W/m2") 1121 CALL histdef2d(iff,clef_stations(iff), & 1122 o_topswai%flag,o_topswai%name, "AIE at TOA", "W/m2") 1123 CALL histdef2d(iff,clef_stations(iff), & 1124 o_solswai%flag,o_solswai%name, "AIE at SFR", "W/m2") 959 1125 !Cloud droplet number concentration 960 CALL histdef3d(iff,o_scdnc%flag,o_scdnc%name, "Cloud droplet number concentration","m-3") 961 CALL histdef2d(iff,o_cldncl%flag,o_cldncl%name, "CDNC at top of liquid water cloud", "m-3") 962 CALL histdef3d(iff,o_reffclws%flag,o_reffclws%name, "Stratiform Cloud Droplet Effective Radius","m") 963 CALL histdef3d(iff,o_reffclwc%flag,o_reffclwc%name, "Convective Cloud Droplet Effective Radius","m") 964 CALL histdef2d(iff,o_cldnvi%flag,o_cldnvi%name, "Column Integrated Cloud Droplet Number", "m-2") 965 CALL histdef3d(iff,o_lcc3d%flag,o_lcc3d%name, "Cloud liquid fraction","1") 966 CALL histdef3d(iff,o_lcc3dcon%flag,o_lcc3dcon%name, "Convective cloud liquid fraction","1") 967 CALL histdef3d(iff,o_lcc3dstra%flag,o_lcc3dstra%name, "Stratiform cloud liquid fraction","1") 968 CALL histdef2d(iff,o_lcc%flag,o_lcc%name, "Cloud liquid fraction at top of cloud","1") 969 CALL histdef2d(iff,o_reffclwtop%flag,o_reffclwtop%name, "Droplet effective radius at top of liquid water cloud", "m") 1126 CALL histdef3d(iff,clef_stations(iff), & 1127 o_scdnc%flag,o_scdnc%name, "Cloud droplet number concentration","m-3") 1128 CALL histdef2d(iff,clef_stations(iff), & 1129 o_cldncl%flag,o_cldncl%name, "CDNC at top of liquid water cloud", "m-3") 1130 CALL histdef3d(iff,clef_stations(iff), & 1131 o_reffclws%flag,o_reffclws%name, "Stratiform Cloud Droplet Effective Radius (aerosol diags.)","m") 1132 CALL histdef3d(iff,clef_stations(iff), & 1133 o_reffclwc%flag,o_reffclwc%name, "Convective Cloud Droplet Effective Radius (aerosol diags.)","m") 1134 CALL histdef2d(iff,clef_stations(iff), & 1135 o_cldnvi%flag,o_cldnvi%name, "Column Integrated Cloud Droplet Number", "m-2") 1136 CALL histdef3d(iff,clef_stations(iff), & 1137 o_lcc3d%flag,o_lcc3d%name, "Cloud liquid fraction","1") 1138 CALL histdef3d(iff,clef_stations(iff), & 1139 o_lcc3dcon%flag,o_lcc3dcon%name, "Convective cloud liquid fraction","1") 1140 CALL histdef3d(iff,clef_stations(iff), & 1141 o_lcc3dstra%flag,o_lcc3dstra%name, "Stratiform cloud liquid fraction","1") 1142 CALL histdef2d(iff,clef_stations(iff), & 1143 o_lcc%flag,o_lcc%name, "Cloud liquid fraction at top of cloud","1") 1144 CALL histdef2d(iff,clef_stations(iff), & 1145 o_reffclwtop%flag,o_reffclwtop%name, "Droplet effective radius at top of liquid water cloud", "m") 970 1146 ENDIF 971 1147 972 1148 973 CALL histdef2d(iff,o_alb1%flag,o_alb1%name, "Surface VIS albedo", "-") 974 CALL histdef2d(iff,o_alb2%flag,o_alb2%name, "Surface Near IR albedo", "-") 975 CALL histdef2d(iff,o_cdrm%flag,o_cdrm%name, "Momentum drag coef.", "-") 976 CALL histdef2d(iff,o_cdrh%flag,o_cdrh%name, "Heat drag coef.", "-" ) 977 CALL histdef2d(iff,o_cldl%flag,o_cldl%name, "Low-level cloudiness", "-") 978 CALL histdef2d(iff,o_cldm%flag,o_cldm%name, "Mid-level cloudiness", "-") 979 CALL histdef2d(iff,o_cldh%flag,o_cldh%name, "High-level cloudiness", "-") 980 CALL histdef2d(iff,o_cldt%flag,o_cldt%name, "Total cloudiness", "-") 981 CALL histdef2d(iff,o_cldq%flag,o_cldq%name, "Cloud liquid water path", "kg/m2") 982 CALL histdef2d(iff,o_lwp%flag,o_lwp%name, "Cloud water path", "kg/m2") 983 CALL histdef2d(iff,o_iwp%flag,o_iwp%name, "Cloud ice water path", "kg/m2" ) 984 CALL histdef2d(iff,o_ue%flag,o_ue%name, "Zonal energy transport", "-") 985 CALL histdef2d(iff,o_ve%flag,o_ve%name, "Merid energy transport", "-") 986 CALL histdef2d(iff,o_uq%flag,o_uq%name, "Zonal humidity transport", "-") 987 CALL histdef2d(iff,o_vq%flag,o_vq%name, "Merid humidity transport", "-") 1149 CALL histdef2d(iff,clef_stations(iff), & 1150 o_alb1%flag,o_alb1%name, "Surface VIS albedo", "-") 1151 CALL histdef2d(iff,clef_stations(iff), & 1152 o_alb2%flag,o_alb2%name, "Surface Near IR albedo", "-") 1153 CALL histdef2d(iff,clef_stations(iff), & 1154 o_cdrm%flag,o_cdrm%name, "Momentum drag coef.", "-") 1155 CALL histdef2d(iff,clef_stations(iff), & 1156 o_cdrh%flag,o_cdrh%name, "Heat drag coef.", "-" ) 1157 CALL histdef2d(iff,clef_stations(iff), & 1158 o_cldl%flag,o_cldl%name, "Low-level cloudiness", "-") 1159 CALL histdef2d(iff,clef_stations(iff), & 1160 o_cldm%flag,o_cldm%name, "Mid-level cloudiness", "-") 1161 CALL histdef2d(iff,clef_stations(iff), & 1162 o_cldh%flag,o_cldh%name, "High-level cloudiness", "-") 1163 CALL histdef2d(iff,clef_stations(iff), & 1164 o_cldt%flag,o_cldt%name, "Total cloudiness", "-") 1165 CALL histdef2d(iff,clef_stations(iff), & 1166 o_cldq%flag,o_cldq%name, "Cloud liquid water path", "kg/m2") 1167 CALL histdef2d(iff,clef_stations(iff), & 1168 o_lwp%flag,o_lwp%name, "Cloud water path", "kg/m2") 1169 CALL histdef2d(iff,clef_stations(iff), & 1170 o_iwp%flag,o_iwp%name, "Cloud ice water path", "kg/m2" ) 1171 CALL histdef2d(iff,clef_stations(iff), & 1172 o_ue%flag,o_ue%name, "Zonal energy transport", "-") 1173 CALL histdef2d(iff,clef_stations(iff), & 1174 o_ve%flag,o_ve%name, "Merid energy transport", "-") 1175 CALL histdef2d(iff,clef_stations(iff), & 1176 o_uq%flag,o_uq%name, "Zonal humidity transport", "-") 1177 CALL histdef2d(iff,clef_stations(iff), & 1178 o_vq%flag,o_vq%name, "Merid humidity transport", "-") 988 1179 989 1180 IF(iflag_con.GE.3) THEN ! sb 990 CALL histdef2d(iff,o_cape%flag,o_cape%name, "Conv avlbl pot ener", "J/kg") 991 CALL histdef2d(iff,o_pbase%flag,o_pbase%name, "Cld base pressure", "Pa") 992 CALL histdef2d(iff,o_ptop%flag,o_ptop%name, "Cld top pressure", "Pa") 993 CALL histdef2d(iff,o_fbase%flag,o_fbase%name, "Cld base mass flux", "kg/m2/s") 994 CALL histdef2d(iff,o_prw%flag,o_prw%name, "Precipitable water", "kg/m2") 1181 CALL histdef2d(iff,clef_stations(iff), & 1182 o_cape%flag,o_cape%name, "Conv avlbl pot ener", "J/kg") 1183 CALL histdef2d(iff,clef_stations(iff), & 1184 o_pbase%flag,o_pbase%name, "Cld base pressure", "Pa") 1185 CALL histdef2d(iff,clef_stations(iff), & 1186 o_ptop%flag,o_ptop%name, "Cld top pressure", "Pa") 1187 CALL histdef2d(iff,clef_stations(iff), & 1188 o_fbase%flag,o_fbase%name, "Cld base mass flux", "kg/m2/s") 1189 CALL histdef2d(iff,clef_stations(iff), & 1190 o_prw%flag,o_prw%name, "Precipitable water", "kg/m2") 1191 IF (.NOT.clef_stations(iff)) THEN 1192 ! 1193 !IM: there is no way to have one single value in a netcdf file 1194 ! 1195 type_ecri(1) = 't_max(X)' 1196 type_ecri(2) = 't_max(X)' 1197 type_ecri(3) = 't_max(X)' 1198 type_ecri(4) = 't_max(X)' 1199 type_ecri(5) = 't_max(X)' 1200 type_ecri(6) = 't_max(X)' 1201 CALL histdef2d(iff,clef_stations(iff), & 1202 o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg") 1203 ENDIF 1204 type_ecri(:) = type_ecri_files(:) 1205 CALL histdef3d(iff,clef_stations(iff), & 1206 o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s") 1207 CALL histdef3d(iff,clef_stations(iff), & 1208 o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s") 1209 CALL histdef3d(iff,clef_stations(iff), & 1210 o_dnwd%flag,o_dnwd%name, "saturated downdraft", "kg/m2/s") 1211 CALL histdef3d(iff,clef_stations(iff), & 1212 o_dnwd0%flag,o_dnwd0%name, "unsat. downdraft", "kg/m2/s") 1213 CALL histdef3d(iff,clef_stations(iff), & 1214 o_mc%flag,o_mc%name, "Convective mass flux", "kg/m2/s") 1215 type_ecri(1) = 'inst(X)' 1216 type_ecri(2) = 'inst(X)' 1217 type_ecri(3) = 'inst(X)' 1218 type_ecri(4) = 'inst(X)' 1219 type_ecri(5) = 'inst(X)' 1220 type_ecri(6) = 'inst(X)' 1221 CALL histdef2d(iff,clef_stations(iff), & 1222 o_ftime_con%flag,o_ftime_con%name, "Fraction of time convection Occurs", " ") 1223 type_ecri(:) = type_ecri_files(:) 1224 ENDIF !iflag_con .GE. 3 1225 1226 CALL histdef2d(iff,clef_stations(iff), & 1227 o_s_pblh%flag,o_s_pblh%name, "Boundary Layer Height", "m") 1228 CALL histdef2d(iff,clef_stations(iff), & 1229 o_s_pblt%flag,o_s_pblt%name, "t at Boundary Layer Height", "K") 1230 CALL histdef2d(iff,clef_stations(iff), & 1231 o_s_lcl%flag,o_s_lcl%name, "Condensation level", "m") 1232 CALL histdef2d(iff,clef_stations(iff), & 1233 o_s_therm%flag,o_s_therm%name, "Exces du thermique", "K") 1234 !IM : Les champs suivants (s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 1235 !CALL histdef2d(iff,clef_stations(iff), & 1236 !o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" ) 1237 !CALL histdef2d(iff,clef_stations(iff), & 1238 !o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2") 1239 !CALL histdef2d(iff,clef_stations(iff), & 1240 !o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K") 1241 !CALL histdef2d(iff,clef_stations(iff), & 1242 !o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2") 1243 !CALL histdef2d(iff,clef_stations(iff), & 1244 !o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2") 1245 !CALL histdef2d(iff,clef_stations(iff), & 1246 !o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m") 1247 1248 ! Champs interpolles sur des niveaux de pression 1249 1250 type_ecri(1) = 'inst(X)' 1251 type_ecri(2) = 'inst(X)' 1252 type_ecri(3) = 'inst(X)' 1253 type_ecri(4) = 'inst(X)' 1254 type_ecri(5) = 'inst(X)' 1255 type_ecri(6) = 'inst(X)' 1256 1257 ! Attention a reverifier 1258 1259 ilev=0 1260 DO k=1, nlevSTD 1261 bb2=clevSTD(k) 1262 IF(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200" & 1263 .OR.bb2.EQ."100".OR.bb2.EQ."50".OR.bb2.EQ."10")THEN 1264 ilev=ilev+1 1265 ! print*,'ilev k bb2 flag name ',ilev,k, bb2,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name 1266 CALL histdef2d(iff,clef_stations(iff), & 1267 o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name,"Zonal wind "//bb2//"hPa", "m/s") 1268 CALL histdef2d(iff,clef_stations(iff), & 1269 o_vSTDlevs(ilev)%flag,o_vSTDlevs(ilev)%name,"Meridional wind "//bb2//"hPa", "m/s") 1270 CALL histdef2d(iff,clef_stations(iff), & 1271 o_wSTDlevs(ilev)%flag,o_wSTDlevs(ilev)%name,"Vertical wind "//bb2//"hPa", "Pa/s") 1272 CALL histdef2d(iff,clef_stations(iff), & 1273 o_zSTDlevs(ilev)%flag,o_zSTDlevs(ilev)%name,"Geopotential height "//bb2//"hPa", "m") 1274 CALL histdef2d(iff,clef_stations(iff), & 1275 o_qSTDlevs(ilev)%flag,o_qSTDlevs(ilev)%name,"Specific humidity "//bb2//"hPa", "kg/kg" ) 1276 CALL histdef2d(iff,clef_stations(iff), & 1277 o_tSTDlevs(ilev)%flag,o_tSTDlevs(ilev)%name,"Temperature "//bb2//"hPa", "K") 1278 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10") 1279 ENDDO 1280 type_ecri(:) = type_ecri_files(:) 1281 1282 CALL histdef2d(iff,clef_stations(iff), & 1283 o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K") 1284 1285 IF (type_ocean=='slab') & 1286 CALL histdef2d(iff,clef_stations(iff), & 1287 o_slab_bils%flag, o_slab_bils%name,"Bilan au sol sur ocean slab", "W/m2") 1288 1289 ! Couplage conv-CL 1290 IF (iflag_con.GE.3) THEN 1291 IF (iflag_coupl.EQ.1) THEN 1292 CALL histdef2d(iff,clef_stations(iff), & 1293 o_ale_bl%flag,o_ale_bl%name, "ALE BL", "m2/s2") 1294 CALL histdef2d(iff,clef_stations(iff), & 1295 o_alp_bl%flag,o_alp_bl%name, "ALP BL", "m2/s2") 1296 ENDIF 1297 ENDIF !(iflag_con.GE.3) 1298 1299 CALL histdef2d(iff,clef_stations(iff), & 1300 o_weakinv%flag,o_weakinv%name, "Weak inversion", "-") 1301 CALL histdef2d(iff,clef_stations(iff), & 1302 o_dthmin%flag,o_dthmin%name, "dTheta mini", "K/m") 1303 CALL histdef2d(iff,clef_stations(iff), & 1304 o_rh2m%flag,o_rh2m%name, "Relative humidity at 2m", "%" ) 1305 1306 IF (.NOT.clef_stations(iff)) THEN 1307 ! 1308 !IM: there is no way to have one single value in a netcdf file 1309 ! 1310 type_ecri(1) = 't_min(X)' 1311 type_ecri(2) = 't_min(X)' 1312 type_ecri(3) = 't_min(X)' 1313 type_ecri(4) = 't_min(X)' 1314 type_ecri(5) = 't_min(X)' 1315 type_ecri(6) = 't_min(X)' 1316 CALL histdef2d(iff,clef_stations(iff),o_rh2m_min%flag,o_rh2m_min%name, "Min Relative humidity at 2m", "%" ) 995 1317 type_ecri(1) = 't_max(X)' 996 1318 type_ecri(2) = 't_max(X)' … … 998 1320 type_ecri(4) = 't_max(X)' 999 1321 type_ecri(5) = 't_max(X)' 1000 CALL histdef2d(iff,o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg") 1322 type_ecri(6) = 't_max(X)' 1323 CALL histdef2d(iff,clef_stations(iff),o_rh2m_max%flag,o_rh2m_max%name, "Max Relative humidity at 2m", "%" ) 1324 ENDIF 1325 1001 1326 type_ecri(:) = type_ecri_files(:) 1002 CALL histdef3d(iff,o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s") 1003 CALL histdef3d(iff,o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s") 1004 CALL histdef3d(iff,o_dnwd%flag,o_dnwd%name, "saturated downdraft", "kg/m2/s") 1005 CALL histdef3d(iff,o_dnwd0%flag,o_dnwd0%name, "unsat. downdraft", "kg/m2/s") 1006 CALL histdef3d(iff,o_mc%flag,o_mc%name, "Convective mass flux", "kg/m2/s") 1007 type_ecri(1) = 'inst(X)' 1008 type_ecri(2) = 'inst(X)' 1009 type_ecri(3) = 'inst(X)' 1010 type_ecri(4) = 'inst(X)' 1011 type_ecri(5) = 'inst(X)' 1012 CALL histdef2d(iff,o_ftime_con%flag,o_ftime_con%name, "Fraction of time convection Occurs", " ") 1013 type_ecri(:) = type_ecri_files(:) 1014 ENDIF !iflag_con .GE. 3 1015 1016 CALL histdef2d(iff,o_s_pblh%flag,o_s_pblh%name, "Boundary Layer Height", "m") 1017 CALL histdef2d(iff,o_s_pblt%flag,o_s_pblt%name, "t at Boundary Layer Height", "K") 1018 CALL histdef2d(iff,o_s_lcl%flag,o_s_lcl%name, "Condensation level", "m") 1019 CALL histdef2d(iff,o_s_therm%flag,o_s_therm%name, "Exces du thermique", "K") 1020 !IM : Les champs suivants (s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 1021 !CALL histdef2d(iff,o_s_capCL%flag,o_s_capCL%name, "Conv avlbl pot enerfor ABL", "J/m2" ) 1022 !CALL histdef2d(iff,o_s_oliqCL%flag,o_s_oliqCL%name, "Liq Water in BL", "kg/m2") 1023 !CALL histdef2d(iff,o_s_cteiCL%flag,o_s_cteiCL%name, "Instability criteria(ABL)", "K") 1024 !CALL histdef2d(iff,o_s_trmb1%flag,o_s_trmb1%name, "deep_cape(HBTM2)", "J/m2") 1025 !CALL histdef2d(iff,o_s_trmb2%flag,o_s_trmb2%name, "inhibition (HBTM2)", "J/m2") 1026 !CALL histdef2d(iff,o_s_trmb3%flag,o_s_trmb3%name, "Point Omega (HBTM2)", "m") 1027 1028 ! Champs interpolles sur des niveaux de pression 1029 1030 type_ecri(1) = 'inst(X)' 1031 type_ecri(2) = 'inst(X)' 1032 type_ecri(3) = 'inst(X)' 1033 type_ecri(4) = 'inst(X)' 1034 type_ecri(5) = 'inst(X)' 1035 1036 ! Attention a reverifier 1037 1038 ilev=0 1039 DO k=1, nlevSTD 1040 ! IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 1041 bb2=clevSTD(k) 1042 IF(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10")THEN 1043 ilev=ilev+1 1044 print*,'ilev k bb2 flag name ',ilev,k, bb2,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name 1045 CALL histdef2d(iff,o_uSTDlevs(ilev)%flag,o_uSTDlevs(ilev)%name,"Zonal wind "//bb2//"hPa", "m/s") 1046 CALL histdef2d(iff,o_vSTDlevs(ilev)%flag,o_vSTDlevs(ilev)%name,"Meridional wind "//bb2//"hPa", "m/s") 1047 CALL histdef2d(iff,o_wSTDlevs(ilev)%flag,o_wSTDlevs(ilev)%name,"Vertical wind "//bb2//"hPa", "Pa/s") 1048 CALL histdef2d(iff,o_zSTDlevs(ilev)%flag,o_zSTDlevs(ilev)%name,"Geopotential height "//bb2//"hPa", "m") 1049 CALL histdef2d(iff,o_qSTDlevs(ilev)%flag,o_qSTDlevs(ilev)%name,"Specific humidity "//bb2//"hPa", "kg/kg" ) 1050 CALL histdef2d(iff,o_tSTDlevs(ilev)%flag,o_tSTDlevs(ilev)%name,"Temperature "//bb2//"hPa", "K") 1051 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200".OR.bb2.EQ."50".OR.bb2.EQ."10") 1052 ENDDO 1053 type_ecri(:) = type_ecri_files(:) 1054 1055 CALL histdef2d(iff,o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K") 1056 1057 IF (type_ocean=='slab') & 1058 CALL histdef2d(iff,o_slab_bils%flag, o_slab_bils%name,"Bilan au sol sur ocean slab", "W/m2") 1059 1060 ! Couplage conv-CL 1061 IF (iflag_con.GE.3) THEN 1062 IF (iflag_coupl.EQ.1) THEN 1063 CALL histdef2d(iff,o_ale_bl%flag,o_ale_bl%name, "ALE BL", "m2/s2") 1064 CALL histdef2d(iff,o_alp_bl%flag,o_alp_bl%name, "ALP BL", "m2/s2") 1065 ENDIF 1066 ENDIF !(iflag_con.GE.3) 1067 1068 CALL histdef2d(iff,o_weakinv%flag,o_weakinv%name, "Weak inversion", "-") 1069 CALL histdef2d(iff,o_dthmin%flag,o_dthmin%name, "dTheta mini", "K/m") 1070 CALL histdef2d(iff,o_rh2m%flag,o_rh2m%name, "Relative humidity at 2m", "%" ) 1071 type_ecri(1) = 't_min(X)' 1072 type_ecri(2) = 't_min(X)' 1073 type_ecri(3) = 't_min(X)' 1074 type_ecri(4) = 't_min(X)' 1075 type_ecri(5) = 't_min(X)' 1076 CALL histdef2d(iff,o_rh2m_min%flag,o_rh2m_min%name, "Min Relative humidity at 2m", "%" ) 1327 CALL histdef2d(iff,clef_stations(iff),o_qsat2m%flag,o_qsat2m%name, "Saturant humidity at 2m", "%") 1328 CALL histdef2d(iff,clef_stations(iff),o_tpot%flag,o_tpot%name, "Surface air potential temperature", "K") 1329 CALL histdef2d(iff,clef_stations(iff), & 1330 o_tpote%flag,o_tpote%name, "Surface air equivalent potential temperature", "K") 1331 CALL histdef2d(iff,clef_stations(iff),o_SWnetOR%flag,o_SWnetOR%name, "Sfce net SW radiation OR", "W/m2") 1332 CALL histdef2d(iff,clef_stations(iff),o_SWdownOR%flag,o_SWdownOR%name, "Sfce incident SW radiation OR", "W/m2") 1333 CALL histdef2d(iff,clef_stations(iff),o_LWdownOR%flag,o_LWdownOR%name, "Sfce incident LW radiation OR", "W/m2") 1334 CALL histdef2d(iff,clef_stations(iff),o_snowl%flag,o_snowl%name, "Solid Large-scale Precip.", "kg/(m2*s)") 1335 1336 CALL histdef2d(iff,clef_stations(iff),o_solldown%flag,o_solldown%name, "Down. IR rad. at surface", "W/m2") 1337 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfo%flag,o_dtsvdfo%name, "Boundary-layer dTs(o)", "K/s") 1338 CALL histdef2d(iff,clef_stations(iff),o_dtsvdft%flag,o_dtsvdft%name, "Boundary-layer dTs(t)", "K/s") 1339 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfg%flag,o_dtsvdfg%name, "Boundary-layer dTs(g)", "K/s") 1340 CALL histdef2d(iff,clef_stations(iff),o_dtsvdfi%flag,o_dtsvdfi%name, "Boundary-layer dTs(g)", "K/s") 1341 CALL histdef2d(iff,clef_stations(iff),o_rugs%flag,o_rugs%name, "rugosity", "-" ) 1342 1343 ! Champs 3D: 1344 CALL histdef3d(iff,clef_stations(iff),o_ec550aer%flag,o_ec550aer%name, "Extinction at 550nm", "m^-1") 1345 CALL histdef3d(iff,clef_stations(iff),o_lwcon%flag,o_lwcon%name, "Cloud liquid water content", "kg/kg") 1346 CALL histdef3d(iff,clef_stations(iff),o_iwcon%flag,o_iwcon%name, "Cloud ice water content", "kg/kg") 1347 CALL histdef3d(iff,clef_stations(iff),o_temp%flag,o_temp%name, "Air temperature", "K" ) 1348 CALL histdef3d(iff,clef_stations(iff),o_theta%flag,o_theta%name, "Potential air temperature", "K" ) 1349 CALL histdef3d(iff,clef_stations(iff),o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" ) 1350 CALL histdef3d(iff,clef_stations(iff), & 1351 o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" ) 1352 CALL histdef3d(iff,clef_stations(iff), & 1353 o_geop%flag,o_geop%name, "Geopotential height", "m2/s2") 1354 CALL histdef3d(iff,clef_stations(iff), & 1355 o_vitu%flag,o_vitu%name, "Zonal wind", "m/s" ) 1356 CALL histdef3d(iff,clef_stations(iff), & 1357 o_vitv%flag,o_vitv%name, "Meridional wind", "m/s" ) 1358 CALL histdef3d(iff,clef_stations(iff), & 1359 o_vitw%flag,o_vitw%name, "Vertical wind", "Pa/s" ) 1360 CALL histdef3d(iff,clef_stations(iff), & 1361 o_pres%flag,o_pres%name, "Air pressure", "Pa" ) 1362 CALL histdef3d(iff,clef_stations(iff), & 1363 o_paprs%flag,o_paprs%name, "Air pressure Inter-Couches", "Pa" ) 1364 CALL histdef3d(iff,clef_stations(iff), & 1365 o_zfull%flag,o_zfull%name, "Altitude of full pressure levels", "m" ) 1366 CALL histdef3d(iff,clef_stations(iff), & 1367 o_zhalf%flag,o_zhalf%name, "Altitude of half pressure levels", "m" ) 1368 CALL histdef3d(iff,clef_stations(iff), & 1369 o_rneb%flag,o_rneb%name, "Cloud fraction", "-") 1370 CALL histdef3d(iff,clef_stations(iff), & 1371 o_rnebcon%flag,o_rnebcon%name, "Convective Cloud Fraction", "-") 1372 CALL histdef3d(iff,clef_stations(iff), & 1373 o_rhum%flag,o_rhum%name, "Relative humidity", "-") 1374 CALL histdef3d(iff,clef_stations(iff), & 1375 o_ozone%flag,o_ozone%name, "Ozone mole fraction", "-") 1376 if (read_climoz == 2) & 1377 CALL histdef3d(iff,clef_stations(iff), & 1378 o_ozone_light%flag,o_ozone_light%name, & 1379 "Daylight ozone mole fraction", "-") 1380 CALL histdef3d(iff,clef_stations(iff), & 1381 o_dtphy%flag,o_dtphy%name, "Physics dT", "K/s") 1382 CALL histdef3d(iff,clef_stations(iff), & 1383 o_dqphy%flag,o_dqphy%name, "Physics dQ", "(kg/kg)/s") 1384 CALL histdef3d(iff,clef_stations(iff), & 1385 o_cldtau%flag,o_cldtau%name, "Cloud optical thickness", "1") 1386 CALL histdef3d(iff,clef_stations(iff), & 1387 o_cldemi%flag,o_cldemi%name, "Cloud optical emissivity", "1") 1388 !IM: bug ?? dimensionnement variables (klon,klev+1) pmflxr, pmflxs, prfl, psfl 1389 CALL histdef3d(iff,clef_stations(iff), & 1390 o_pr_con_l%flag,o_pr_con_l%name, "Convective precipitation lic", " ") 1391 CALL histdef3d(iff,clef_stations(iff), & 1392 o_pr_con_i%flag,o_pr_con_i%name, "Convective precipitation ice", " ") 1393 CALL histdef3d(iff,clef_stations(iff), & 1394 o_pr_lsc_l%flag,o_pr_lsc_l%name, "Large scale precipitation lic", " ") 1395 CALL histdef3d(iff,clef_stations(iff), & 1396 o_pr_lsc_i%flag,o_pr_lsc_i%name, "Large scale precipitation ice", " ") 1397 !Cloud droplet effective radius 1398 CALL histdef3d(iff,clef_stations(iff), & 1399 o_re%flag,o_re%name, "Cloud droplet effective radius","um") 1400 CALL histdef3d(iff,clef_stations(iff), & 1401 o_fl%flag,o_fl%name, "Denominator of Cloud droplet effective radius"," ") 1402 !FH Sorties pour la couche limite 1403 if (iflag_pbl>1) then 1404 CALL histdef3d(iff,clef_stations(iff), & 1405 o_tke%flag,o_tke%name, "TKE", "m2/s2") 1406 IF (.NOT.clef_stations(iff)) THEN 1407 ! 1408 !IM: there is no way to have one single value in a netcdf file 1409 ! 1077 1410 type_ecri(1) = 't_max(X)' 1078 1411 type_ecri(2) = 't_max(X)' … … 1080 1413 type_ecri(4) = 't_max(X)' 1081 1414 type_ecri(5) = 't_max(X)' 1082 CALL histdef2d(iff,o_rh2m_max%flag,o_rh2m_max%name, "Max Relative humidity at 2m", "%" ) 1415 type_ecri(6) = 't_max(X)' 1416 CALL histdef3d(iff,clef_stations(iff), & 1417 o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2") 1418 ENDIF 1083 1419 type_ecri(:) = type_ecri_files(:) 1084 CALL histdef2d(iff,o_qsat2m%flag,o_qsat2m%name, "Saturant humidity at 2m", "%") 1085 CALL histdef2d(iff,o_tpot%flag,o_tpot%name, "Surface air potential temperature", "K") 1086 CALL histdef2d(iff,o_tpote%flag,o_tpote%name, "Surface air equivalent potential temperature", "K") 1087 CALL histdef2d(iff,o_SWnetOR%flag,o_SWnetOR%name, "Sfce net SW radiation OR", "W/m2") 1088 CALL histdef2d(iff,o_SWdownOR%flag,o_SWdownOR%name, "Sfce incident SW radiation OR", "W/m2") 1089 CALL histdef2d(iff,o_LWdownOR%flag,o_LWdownOR%name, "Sfce incident LW radiation OR", "W/m2") 1090 CALL histdef2d(iff,o_snowl%flag,o_snowl%name, "Solid Large-scale Precip.", "kg/(m2*s)") 1091 1092 CALL histdef2d(iff,o_solldown%flag,o_solldown%name, "Down. IR rad. at surface", "W/m2") 1093 CALL histdef2d(iff,o_dtsvdfo%flag,o_dtsvdfo%name, "Boundary-layer dTs(o)", "K/s") 1094 CALL histdef2d(iff,o_dtsvdft%flag,o_dtsvdft%name, "Boundary-layer dTs(t)", "K/s") 1095 CALL histdef2d(iff,o_dtsvdfg%flag,o_dtsvdfg%name, "Boundary-layer dTs(g)", "K/s") 1096 CALL histdef2d(iff,o_dtsvdfi%flag,o_dtsvdfi%name, "Boundary-layer dTs(g)", "K/s") 1097 CALL histdef2d(iff,o_rugs%flag,o_rugs%name, "rugosity", "-" ) 1098 1099 ! Champs 3D: 1100 CALL histdef3d(iff,o_ec550aer%flag,o_ec550aer%name, "Extinction at 550nm", "m^-1") 1101 CALL histdef3d(iff,o_lwcon%flag,o_lwcon%name, "Cloud liquid water content", "kg/kg") 1102 CALL histdef3d(iff,o_iwcon%flag,o_iwcon%name, "Cloud ice water content", "kg/kg") 1103 CALL histdef3d(iff,o_temp%flag,o_temp%name, "Air temperature", "K" ) 1104 CALL histdef3d(iff,o_theta%flag,o_theta%name, "Potential air temperature", "K" ) 1105 CALL histdef3d(iff,o_ovap%flag,o_ovap%name, "Specific humidity", "kg/kg" ) 1106 CALL histdef3d(iff,o_ovapinit%flag,o_ovapinit%name, "Specific humidity (begin of timestep)", "kg/kg" ) 1107 CALL histdef3d(iff,o_geop%flag,o_geop%name, "Geopotential height", "m2/s2") 1108 CALL histdef3d(iff,o_vitu%flag,o_vitu%name, "Zonal wind", "m/s" ) 1109 CALL histdef3d(iff,o_vitv%flag,o_vitv%name, "Meridional wind", "m/s" ) 1110 CALL histdef3d(iff,o_vitw%flag,o_vitw%name, "Vertical wind", "Pa/s" ) 1111 CALL histdef3d(iff,o_pres%flag,o_pres%name, "Air pressure", "Pa" ) 1112 CALL histdef3d(iff,o_paprs%flag,o_paprs%name, "Air pressure Inter-Couches", "Pa" ) 1113 CALL histdef3d(iff,o_rneb%flag,o_rneb%name, "Cloud fraction", "-") 1114 CALL histdef3d(iff,o_rnebcon%flag,o_rnebcon%name, "Convective Cloud Fraction", "-") 1115 CALL histdef3d(iff,o_rhum%flag,o_rhum%name, "Relative humidity", "-") 1116 CALL histdef3d(iff,o_ozone%flag,o_ozone%name, "Ozone mole fraction", "-") 1117 if (read_climoz == 2) & 1118 CALL histdef3d(iff,o_ozone_light%flag,o_ozone_light%name, & 1119 "Daylight ozone mole fraction", "-") 1120 CALL histdef3d(iff,o_dtphy%flag,o_dtphy%name, "Physics dT", "K/s") 1121 CALL histdef3d(iff,o_dqphy%flag,o_dqphy%name, "Physics dQ", "(kg/kg)/s") 1122 CALL histdef3d(iff,o_cldtau%flag,o_cldtau%name, "Cloud optical thickness", "1") 1123 CALL histdef3d(iff,o_cldemi%flag,o_cldemi%name, "Cloud optical emissivity", "1") 1124 !IM: bug ?? dimensionnement variables (klon,klev+1) pmflxr, pmflxs, prfl, psfl 1125 CALL histdef3d(iff,o_pr_con_l%flag,o_pr_con_l%name, "Convective precipitation lic", " ") 1126 CALL histdef3d(iff,o_pr_con_i%flag,o_pr_con_i%name, "Convective precipitation ice", " ") 1127 CALL histdef3d(iff,o_pr_lsc_l%flag,o_pr_lsc_l%name, "Large scale precipitation lic", " ") 1128 CALL histdef3d(iff,o_pr_lsc_i%flag,o_pr_lsc_i%name, "Large scale precipitation ice", " ") 1129 !Cloud droplet effective radius 1130 CALL histdef3d(iff,o_re%flag,o_re%name, "Cloud droplet effective radius","um") 1131 CALL histdef3d(iff,o_fl%flag,o_fl%name, "Denominator of Cloud droplet effective radius"," ") 1132 !FH Sorties pour la couche limite 1133 if (iflag_pbl>1) then 1134 CALL histdef3d(iff,o_tke%flag,o_tke%name, "TKE", "m2/s2") 1420 endif 1421 1422 CALL histdef3d(iff,clef_stations(iff), & 1423 o_kz%flag,o_kz%name, "Kz melange", "m2/s") 1424 IF (.NOT.clef_stations(iff)) THEN 1425 ! 1426 !IM: there is no way to have one single value in a netcdf file 1427 ! 1135 1428 type_ecri(1) = 't_max(X)' 1136 1429 type_ecri(2) = 't_max(X)' … … 1138 1431 type_ecri(4) = 't_max(X)' 1139 1432 type_ecri(5) = 't_max(X)' 1140 CALL histdef3d(iff,o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2") 1433 type_ecri(6) = 't_max(X)' 1434 CALL histdef3d(iff,clef_stations(iff), & 1435 o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" ) 1436 ENDIF 1141 1437 type_ecri(:) = type_ecri_files(:) 1142 endif 1143 1144 CALL histdef3d(iff,o_kz%flag,o_kz%name, "Kz melange", "m2/s") 1145 type_ecri(1) = 't_max(X)' 1146 type_ecri(2) = 't_max(X)' 1147 type_ecri(3) = 't_max(X)' 1148 type_ecri(4) = 't_max(X)' 1149 type_ecri(5) = 't_max(X)' 1150 CALL histdef3d(iff,o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" ) 1151 type_ecri(:) = type_ecri_files(:) 1152 CALL histdef3d(iff,o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg") 1153 CALL histdef3d(iff,o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s") 1154 CALL histdef3d(iff,o_dqdyn%flag,o_dqdyn%name, "Dynamics dQ", "(kg/kg)/s") 1155 CALL histdef3d(iff,o_dudyn%flag,o_dudyn%name, "Dynamics dU", "m/s2") 1156 CALL histdef3d(iff,o_dvdyn%flag,o_dvdyn%name, "Dynamics dV", "m/s2") 1157 CALL histdef3d(iff,o_dtcon%flag,o_dtcon%name, "Convection dT", "K/s") 1158 CALL histdef3d(iff,o_ducon%flag,o_ducon%name, "Convection du", "m/s2") 1159 CALL histdef3d(iff,o_dqcon%flag,o_dqcon%name, "Convection dQ", "(kg/kg)/s") 1438 CALL histdef3d(iff,clef_stations(iff), & 1439 o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg") 1440 CALL histdef3d(iff,clef_stations(iff), & 1441 o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s") 1442 CALL histdef3d(iff,clef_stations(iff), & 1443 o_dqdyn%flag,o_dqdyn%name, "Dynamics dQ", "(kg/kg)/s") 1444 CALL histdef3d(iff,clef_stations(iff), & 1445 o_dudyn%flag,o_dudyn%name, "Dynamics dU", "m/s2") 1446 CALL histdef3d(iff,clef_stations(iff), & 1447 o_dvdyn%flag,o_dvdyn%name, "Dynamics dV", "m/s2") 1448 CALL histdef3d(iff,clef_stations(iff), & 1449 o_dtcon%flag,o_dtcon%name, "Convection dT", "K/s") 1450 CALL histdef3d(iff,clef_stations(iff), & 1451 o_ducon%flag,o_ducon%name, "Convection du", "m/s2") 1452 CALL histdef3d(iff,clef_stations(iff), & 1453 o_dqcon%flag,o_dqcon%name, "Convection dQ", "(kg/kg)/s") 1160 1454 1161 1455 ! Wakes 1162 1456 IF(iflag_con.EQ.3) THEN 1163 1457 IF (iflag_wake == 1) THEN 1164 CALL histdef2d(iff,o_ale_wk%flag,o_ale_wk%name, "ALE WK", "m2/s2") 1165 CALL histdef2d(iff,o_alp_wk%flag,o_alp_wk%name, "ALP WK", "m2/s2") 1166 CALL histdef2d(iff,o_ale%flag,o_ale%name, "ALE", "m2/s2") 1167 CALL histdef2d(iff,o_alp%flag,o_alp%name, "ALP", "W/m2") 1168 CALL histdef2d(iff,o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2") 1169 CALL histdef2d(iff,o_wape%flag,o_WAPE%name, "WAPE", "m2/s2") 1170 CALL histdef2d(iff,o_wake_h%flag,o_wake_h%name, "wake_h", "-") 1171 CALL histdef2d(iff,o_wake_s%flag,o_wake_s%name, "wake_s", "-") 1172 CALL histdef3d(iff,o_dtwak%flag,o_dtwak%name, "Wake dT", "K/s") 1173 CALL histdef3d(iff,o_dqwak%flag,o_dqwak%name, "Wake dQ", "(kg/kg)/s") 1174 CALL histdef3d(iff,o_wake_deltat%flag,o_wake_deltat%name, "wake_deltat", " ") 1175 CALL histdef3d(iff,o_wake_deltaq%flag,o_wake_deltaq%name, "wake_deltaq", " ") 1176 CALL histdef3d(iff,o_wake_omg%flag,o_wake_omg%name, "wake_omg", " ") 1458 CALL histdef2d(iff,clef_stations(iff), & 1459 o_ale_wk%flag,o_ale_wk%name, "ALE WK", "m2/s2") 1460 CALL histdef2d(iff,clef_stations(iff), & 1461 o_alp_wk%flag,o_alp_wk%name, "ALP WK", "m2/s2") 1462 CALL histdef2d(iff,clef_stations(iff), & 1463 o_ale%flag,o_ale%name, "ALE", "m2/s2") 1464 CALL histdef2d(iff,clef_stations(iff), & 1465 o_alp%flag,o_alp%name, "ALP", "W/m2") 1466 CALL histdef2d(iff,clef_stations(iff),o_cin%flag,o_cin%name, "Convective INhibition", "m2/s2") 1467 CALL histdef2d(iff,clef_stations(iff),o_wape%flag,o_WAPE%name, "WAPE", "m2/s2") 1468 CALL histdef2d(iff,clef_stations(iff),o_wake_h%flag,o_wake_h%name, "wake_h", "-") 1469 CALL histdef2d(iff,clef_stations(iff),o_wake_s%flag,o_wake_s%name, "wake_s", "-") 1470 CALL histdef3d(iff,clef_stations(iff),o_dtwak%flag,o_dtwak%name, "Wake dT", "K/s") 1471 CALL histdef3d(iff,clef_stations(iff),o_dqwak%flag,o_dqwak%name, "Wake dQ", "(kg/kg)/s") 1472 CALL histdef3d(iff,clef_stations(iff),o_wake_deltat%flag,o_wake_deltat%name, "wake_deltat", " ") 1473 CALL histdef3d(iff,clef_stations(iff),o_wake_deltaq%flag,o_wake_deltaq%name, "wake_deltaq", " ") 1474 CALL histdef3d(iff,clef_stations(iff),o_wake_omg%flag,o_wake_omg%name, "wake_omg", " ") 1177 1475 ENDIF 1178 CALL histdef3d(iff, o_Vprecip%flag,o_Vprecip%name, "precipitation vertical profile", "-")1179 CALL histdef3d(iff, o_ftd%flag,o_ftd%name, "tend temp due aux descentes precip", "-")1180 CALL histdef3d(iff, o_fqd%flag,o_fqd%name,"tend vap eau due aux descentes precip", "-")1476 CALL histdef3d(iff,clef_stations(iff),o_Vprecip%flag,o_Vprecip%name, "precipitation vertical profile", "-") 1477 CALL histdef3d(iff,clef_stations(iff),o_ftd%flag,o_ftd%name, "tend temp due aux descentes precip", "-") 1478 CALL histdef3d(iff,clef_stations(iff),o_fqd%flag,o_fqd%name,"tend vap eau due aux descentes precip", "-") 1181 1479 ENDIF !(iflag_con.EQ.3) 1182 1480 1183 CALL histdef3d(iff, o_dtlsc%flag,o_dtlsc%name, "Condensation dT", "K/s")1184 CALL histdef3d(iff, o_dtlschr%flag,o_dtlschr%name,"Large-scale condensational heating rate","K/s")1185 CALL histdef3d(iff, o_dqlsc%flag,o_dqlsc%name, "Condensation dQ", "(kg/kg)/s")1186 CALL histdef3d(iff, o_dtvdf%flag,o_dtvdf%name, "Boundary-layer dT", "K/s")1187 CALL histdef3d(iff, o_dqvdf%flag,o_dqvdf%name, "Boundary-layer dQ", "(kg/kg)/s")1188 CALL histdef3d(iff, o_dteva%flag,o_dteva%name, "Reevaporation dT", "K/s")1189 CALL histdef3d(iff, o_dqeva%flag,o_dqeva%name, "Reevaporation dQ", "(kg/kg)/s")1190 CALL histdef3d(iff, o_ptconv%flag,o_ptconv%name, "POINTS CONVECTIFS", " ")1191 CALL histdef3d(iff, o_ratqs%flag,o_ratqs%name, "RATQS", " ")1192 CALL histdef3d(iff, o_dtthe%flag,o_dtthe%name, "Dry adjust.dT", "K/s")1481 CALL histdef3d(iff,clef_stations(iff),o_dtlsc%flag,o_dtlsc%name, "Condensation dT", "K/s") 1482 CALL histdef3d(iff,clef_stations(iff),o_dtlschr%flag,o_dtlschr%name,"Large-scale condensational heating rate","K/s") 1483 CALL histdef3d(iff,clef_stations(iff),o_dqlsc%flag,o_dqlsc%name, "Condensation dQ", "(kg/kg)/s") 1484 CALL histdef3d(iff,clef_stations(iff),o_dtvdf%flag,o_dtvdf%name, "Boundary-layer dT", "K/s") 1485 CALL histdef3d(iff,clef_stations(iff),o_dqvdf%flag,o_dqvdf%name, "Boundary-layer dQ", "(kg/kg)/s") 1486 CALL histdef3d(iff,clef_stations(iff),o_dteva%flag,o_dteva%name, "Reevaporation dT", "K/s") 1487 CALL histdef3d(iff,clef_stations(iff),o_dqeva%flag,o_dqeva%name, "Reevaporation dQ", "(kg/kg)/s") 1488 CALL histdef3d(iff,clef_stations(iff),o_ptconv%flag,o_ptconv%name, "POINTS CONVECTIFS", " ") 1489 CALL histdef3d(iff,clef_stations(iff),o_ratqs%flag,o_ratqs%name, "RATQS", " ") 1490 CALL histdef3d(iff,clef_stations(iff),o_dtthe%flag,o_dtthe%name, "Thermal dT", "K/s") 1193 1491 1194 1492 if(iflag_thermals.gt.1) THEN 1195 CALL histdef3d(iff,o_f_th%flag,o_f_th%name, "Thermal plume mass flux", "K/s") 1196 CALL histdef3d(iff,o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s") 1197 CALL histdef3d(iff,o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s") 1198 CALL histdef3d(iff,o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s") 1199 CALL histdef2d(iff,o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ") 1200 CALL histdef3d(iff,o_q_th%flag,o_q_th%name, "Thermal plume total humidity", "kg/kg") 1201 CALL histdef3d(iff,o_a_th%flag,o_a_th%name, "Thermal plume fraction", "") 1202 CALL histdef3d(iff,o_d_th%flag,o_d_th%name, "Thermal plume detrainment", "K/s") 1203 !IM endif !iflag_thermals.gt.1 1204 CALL histdef2d(iff,o_f0_th%flag,o_f0_th%name, "Thermal closure mass flux", "K/s") 1205 CALL histdef2d(iff,o_zmax_th%flag,o_zmax_th%name, "Thermal plume height", "K/s") 1206 CALL histdef3d(iff,o_dqthe%flag,o_dqthe%name, "Dry adjust. dQ", "(kg/kg)/s") 1493 CALL histdef3d(iff,clef_stations(iff),o_f_th%flag,o_f_th%name, "Thermal plume mass flux", "kg/(m2*s)") 1494 CALL histdef3d(iff,clef_stations(iff),o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s") 1495 CALL histdef3d(iff,clef_stations(iff),o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s") 1496 CALL histdef3d(iff,clef_stations(iff), & 1497 o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s") 1498 CALL histdef2d(iff,clef_stations(iff), & 1499 o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ") 1500 CALL histdef3d(iff,clef_stations(iff), & 1501 o_q_th%flag,o_q_th%name, "Thermal plume total humidity", "kg/kg") 1502 CALL histdef3d(iff,clef_stations(iff), & 1503 o_a_th%flag,o_a_th%name, "Thermal plume fraction", "") 1504 CALL histdef3d(iff,clef_stations(iff), & 1505 o_d_th%flag,o_d_th%name, "Thermal plume detrainment", "K/s") 1506 1507 CALL histdef2d(iff,clef_stations(iff), & 1508 o_f0_th%flag,o_f0_th%name, "Thermal closure mass flux", "K/s") 1509 CALL histdef2d(iff,clef_stations(iff), & 1510 o_zmax_th%flag,o_zmax_th%name, "Thermal plume height", "K/s") 1511 CALL histdef3d(iff,clef_stations(iff), & 1512 o_dqthe%flag,o_dqthe%name, "Thermal dQ", "(kg/kg)/s") 1207 1513 endif !iflag_thermals.gt.1 1208 CALL histdef3d(iff,o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s") 1209 CALL histdef3d(iff,o_dqajs%flag,o_dqajs%name, "Dry adjust. dQ", "(kg/kg)/s") 1210 CALL histdef3d(iff,o_dtswr%flag,o_dtswr%name, "SW radiation dT", "K/s") 1211 CALL histdef3d(iff,o_dtsw0%flag,o_dtsw0%name, "CS SW radiation dT", "K/s") 1212 CALL histdef3d(iff,o_dtlwr%flag,o_dtlwr%name, "LW radiation dT", "K/s") 1213 CALL histdef3d(iff,o_dtlw0%flag,o_dtlw0%name, "CS LW radiation dT", "K/s") 1214 CALL histdef3d(iff,o_dtec%flag,o_dtec%name, "Cinetic dissip dT", "K/s") 1215 CALL histdef3d(iff,o_duvdf%flag,o_duvdf%name, "Boundary-layer dU", "m/s2") 1216 CALL histdef3d(iff,o_dvvdf%flag,o_dvvdf%name, "Boundary-layer dV", "m/s2") 1514 CALL histdef3d(iff,clef_stations(iff), & 1515 o_dtajs%flag,o_dtajs%name, "Dry adjust. dT", "K/s") 1516 CALL histdef3d(iff,clef_stations(iff), & 1517 o_dqajs%flag,o_dqajs%name, "Dry adjust. dQ", "(kg/kg)/s") 1518 CALL histdef3d(iff,clef_stations(iff), & 1519 o_dtswr%flag,o_dtswr%name, "SW radiation dT", "K/s") 1520 CALL histdef3d(iff,clef_stations(iff), & 1521 o_dtsw0%flag,o_dtsw0%name, "CS SW radiation dT", "K/s") 1522 CALL histdef3d(iff,clef_stations(iff), & 1523 o_dtlwr%flag,o_dtlwr%name, "LW radiation dT", "K/s") 1524 CALL histdef3d(iff,clef_stations(iff), & 1525 o_dtlw0%flag,o_dtlw0%name, "CS LW radiation dT", "K/s") 1526 CALL histdef3d(iff,clef_stations(iff), & 1527 o_dtec%flag,o_dtec%name, "Cinetic dissip dT", "K/s") 1528 CALL histdef3d(iff,clef_stations(iff), & 1529 o_duvdf%flag,o_duvdf%name, "Boundary-layer dU", "m/s2") 1530 CALL histdef3d(iff,clef_stations(iff), & 1531 o_dvvdf%flag,o_dvvdf%name, "Boundary-layer dV", "m/s2") 1217 1532 1218 1533 IF (ok_orodr) THEN 1219 CALL histdef3d(iff,o_duoro%flag,o_duoro%name, "Orography dU", "m/s2") 1220 CALL histdef3d(iff,o_dvoro%flag,o_dvoro%name, "Orography dV", "m/s2") 1534 CALL histdef3d(iff,clef_stations(iff), & 1535 o_duoro%flag,o_duoro%name, "Orography dU", "m/s2") 1536 CALL histdef3d(iff,clef_stations(iff), & 1537 o_dvoro%flag,o_dvoro%name, "Orography dV", "m/s2") 1538 CALL histdef3d(iff,clef_stations(iff), & 1539 o_dtoro%flag,o_dtoro%name, "Orography dT", "K/s") 1221 1540 ENDIF 1222 1541 1223 1542 IF (ok_orolf) THEN 1224 CALL histdef3d(iff,o_dulif%flag,o_dulif%name, "Orography dU", "m/s2") 1225 CALL histdef3d(iff,o_dvlif%flag,o_dvlif%name, "Orography dV", "m/s2") 1543 CALL histdef3d(iff,clef_stations(iff), & 1544 o_dulif%flag,o_dulif%name, "Orography dU", "m/s2") 1545 CALL histdef3d(iff,clef_stations(iff), & 1546 o_dvlif%flag,o_dvlif%name, "Orography dV", "m/s2") 1547 CALL histdef3d(iff,clef_stations(iff), & 1548 o_dtlif%flag,o_dtlif%name, "Orography dT", "K/s") 1226 1549 ENDIF 1227 1550 1228 1551 IF (ok_hines) then 1229 CALL histdef3d(iff,o_duhin%flag,o_duhin%name, "Hines GWD dU", "m/s2") 1230 CALL histdef3d(iff,o_dvhin%flag,o_dvhin%name, "Hines GWD dV", "m/s2") 1552 CALL histdef3d(iff,clef_stations(iff), & 1553 o_duhin%flag,o_duhin%name, "Hines GWD dU", "m/s2") 1554 CALL histdef3d(iff,clef_stations(iff), & 1555 o_dvhin%flag,o_dvhin%name, "Hines GWD dV", "m/s2") 1556 1557 CALL histdef3d(iff,clef_stations(iff), & 1558 o_dthin%flag,o_dthin%name, "Hines GWD dT", "K/s") 1231 1559 ENDIF 1232 1560 1561 CALL histdef3d(iff,clef_stations(iff), & 1562 o_rsu%flag,o_rsu%name, "SW upward radiation", "W m-2") 1563 CALL histdef3d(iff,clef_stations(iff), & 1564 o_rsd%flag,o_rsd%name, "SW downward radiation", "W m-2") 1565 CALL histdef3d(iff,clef_stations(iff), & 1566 o_rlu%flag,o_rlu%name, "LW upward radiation", "W m-2") 1567 CALL histdef3d(iff,clef_stations(iff), & 1568 o_rld%flag,o_rld%name, "LW downward radiation", "W m-2") 1569 1570 CALL histdef3d(iff,clef_stations(iff), & 1571 o_rsucs%flag,o_rsucs%name, "SW CS upward radiation", "W m-2") 1572 CALL histdef3d(iff,clef_stations(iff), & 1573 o_rsdcs%flag,o_rsdcs%name, "SW CS downward radiation", "W m-2") 1574 CALL histdef3d(iff,clef_stations(iff), & 1575 o_rlucs%flag,o_rlucs%name, "LW CS upward radiation", "W m-2") 1576 CALL histdef3d(iff,clef_stations(iff), & 1577 o_rldcs%flag,o_rldcs%name, "LW CS downward radiation", "W m-2") 1578 1579 CALL histdef3d(iff,clef_stations(iff), & 1580 o_tnt%flag,o_tnt%name, "Tendency of air temperature", "K s-1") 1581 1582 CALL histdef3d(iff,clef_stations(iff), & 1583 o_tntc%flag,o_tntc%name, "Tendency of air temperature due to Moist Convection", & 1584 "K s-1") 1585 1586 CALL histdef3d(iff,clef_stations(iff), & 1587 o_tntr%flag,o_tntr%name, "Air temperature tendency due to Radiative heating", & 1588 "K s-1") 1589 1590 CALL histdef3d(iff,clef_stations(iff), & 1591 o_tntscpbl%flag,o_tntscpbl%name, "Air temperature tendency due to St cloud and precipitation and BL mixing", & 1592 "K s-1") 1593 1594 CALL histdef3d(iff,clef_stations(iff), & 1595 o_tnhus%flag,o_tnhus%name, "Tendency of specific humidity", "s-1") 1596 1597 CALL histdef3d(iff,clef_stations(iff), & 1598 o_tnhusc%flag,o_tnhusc%name, "Tendency of specific humidity due to convection", "s-1") 1599 1600 CALL histdef3d(iff,clef_stations(iff), & 1601 o_tnhusscpbl%flag,o_tnhusscpbl%name, "Tendency of Specific humidity due to ST cl, precip and BL mixing", & 1602 "s-1") 1603 1604 CALL histdef3d(iff,clef_stations(iff), & 1605 o_evu%flag,o_evu%name, "Eddy viscosity coefficient for Momentum Variables", "m2 s-1") 1606 1607 CALL histdef3d(iff,clef_stations(iff), & 1608 o_h2o%flag,o_h2o%name, "Mass Fraction of Water", "1") 1609 1610 CALL histdef3d(iff,clef_stations(iff), & 1611 o_mcd%flag,o_mcd%name, "Downdraft COnvective Mass Flux", "kg/(m2*s)") 1612 1613 CALL histdef3d(iff,clef_stations(iff), & 1614 o_dmc%flag,o_dmc%name, "Deep COnvective Mass Flux", "kg/(m2*s)") 1615 1616 CALL histdef3d(iff,clef_stations(iff), & 1617 o_ref_liq%flag,o_ref_liq%name, "Effective radius of convective cloud liquid water particle", "m") 1618 1619 CALL histdef3d(iff,clef_stations(iff), & 1620 o_ref_ice%flag,o_ref_ice%name, "Effective radius of startiform cloud ice particle", "m") 1621 1622 if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. & 1623 RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. & 1624 RCFC12_per.NE.RCFC12_act) THEN 1625 1626 CALL histdef2d(iff,clef_stations(iff),o_rsut4co2%flag,o_rsut4co2%name, & 1627 "TOA Out SW in 4xCO2 atmosphere", "W/m2") 1628 CALL histdef2d(iff,clef_stations(iff),o_rlut4co2%flag,o_rlut4co2%name, & 1629 "TOA Out LW in 4xCO2 atmosphere", "W/m2") 1630 CALL histdef2d(iff,clef_stations(iff),o_rsutcs4co2%flag,o_rsutcs4co2%name, & 1631 "TOA Out CS SW in 4xCO2 atmosphere", "W/m2") 1632 CALL histdef2d(iff,clef_stations(iff),o_rlutcs4co2%flag,o_rlutcs4co2%name, & 1633 "TOA Out CS LW in 4xCO2 atmosphere", "W/m2") 1634 1635 CALL histdef3d(iff,clef_stations(iff),o_rsu4co2%flag,o_rsu4co2%name, & 1636 "Upwelling SW 4xCO2 atmosphere", "W/m2") 1637 CALL histdef3d(iff,clef_stations(iff),o_rlu4co2%flag,o_rlu4co2%name, & 1638 "Upwelling LW 4xCO2 atmosphere", "W/m2") 1639 CALL histdef3d(iff,clef_stations(iff),o_rsucs4co2%flag,o_rsucs4co2%name, & 1640 "Upwelling CS SW 4xCO2 atmosphere", "W/m2") 1641 CALL histdef3d(iff,clef_stations(iff),o_rlucs4co2%flag,o_rlucs4co2%name, & 1642 "Upwelling CS LW 4xCO2 atmosphere", "W/m2") 1643 1644 CALL histdef3d(iff,clef_stations(iff),o_rsd4co2%flag,o_rsd4co2%name, & 1645 "Downwelling SW 4xCO2 atmosphere", "W/m2") 1646 CALL histdef3d(iff,clef_stations(iff),o_rld4co2%flag,o_rld4co2%name, & 1647 "Downwelling LW 4xCO2 atmosphere", "W/m2") 1648 CALL histdef3d(iff,clef_stations(iff),o_rsdcs4co2%flag,o_rsdcs4co2%name, & 1649 "Downwelling CS SW 4xCO2 atmosphere", "W/m2") 1650 CALL histdef3d(iff,clef_stations(iff),o_rldcs4co2%flag,o_rldcs4co2%name, & 1651 "Downwelling CS LW 4xCO2 atmosphere", "W/m2") 1652 1653 endif 1233 1654 1234 1655 !Attention : sorties uniquement pour traceurs 3 et 4 … … 1238 1659 ttext(3)= "Age stratospheric air" 1239 1660 END IF 1240 CALL histdef3d (iff, o_trac(1)%flag,o_trac(1)%name,ttext(3), "-" )1661 CALL histdef3d(iff,clef_stations(iff), o_trac(1)%flag,o_trac(1)%name,ttext(3), "-" ) 1241 1662 END IF 1242 1663 1243 IF (nqtot>=4) CALL histdef3d (iff, o_trac(2)%flag,o_trac(2)%name,ttext(4), "-" )1664 IF (nqtot>=4) CALL histdef3d(iff,clef_stations(iff), o_trac(2)%flag,o_trac(2)%name,ttext(4), "-" ) 1244 1665 1245 1666 … … 1255 1676 end subroutine phys_output_open 1256 1677 1257 SUBROUTINE histdef2d (iff, flag_var,nomvar,titrevar,unitvar)1678 SUBROUTINE histdef2d (iff,lpoint,flag_var,nomvar,titrevar,unitvar) 1258 1679 1259 1680 use ioipsl 1260 1681 USE dimphy 1261 1682 USE mod_phys_lmdz_para 1683 USE iophy 1262 1684 1263 1685 IMPLICIT NONE … … 1269 1691 1270 1692 integer :: iff 1693 logical :: lpoint 1271 1694 integer, dimension(nfiles) :: flag_var 1272 1695 character(len=20) :: nomvar … … 1284 1707 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def 1285 1708 call conf_physoutputs(nomvar,flag_var) 1286 1709 1710 if(.NOT.lpoint) THEN 1287 1711 if ( flag_var(iff)<=lev_files(iff) ) then 1288 1712 call histdef (nid_files(iff),nomvar,titrevar,unitvar, & … … 1290 1714 type_ecri(iff), zstophym,zoutm(iff)) 1291 1715 endif 1716 else 1717 if ( flag_var(iff)<=lev_files(iff) ) then 1718 call histdef (nid_files(iff),nomvar,titrevar,unitvar, & 1719 npstn,1,nhorim(iff), 1,1,1, -99, 32, & 1720 type_ecri(iff), zstophym,zoutm(iff)) 1721 endif 1722 endif 1292 1723 end subroutine histdef2d 1293 1724 1294 SUBROUTINE histdef3d (iff, flag_var,nomvar,titrevar,unitvar)1725 SUBROUTINE histdef3d (iff,lpoint,flag_var,nomvar,titrevar,unitvar) 1295 1726 1296 1727 use ioipsl 1297 1728 USE dimphy 1298 1729 USE mod_phys_lmdz_para 1730 USE iophy 1299 1731 1300 1732 IMPLICIT NONE … … 1306 1738 1307 1739 integer :: iff 1740 logical :: lpoint 1308 1741 integer, dimension(nfiles) :: flag_var 1309 1742 character(len=20) :: nomvar … … 1322 1755 endif 1323 1756 1757 if(.NOT.lpoint) THEN 1324 1758 if ( flag_var(iff)<=lev_files(iff) ) then 1325 1759 call histdef (nid_files(iff), nomvar, titrevar, unitvar, & … … 1327 1761 levmax(iff)-levmin(iff)+1, nvertm(iff), 32, type_ecri(iff), & 1328 1762 zstophym, zoutm(iff)) 1763 endif 1764 else 1765 if ( flag_var(iff)<=lev_files(iff) ) then 1766 call histdef (nid_files(iff), nomvar, titrevar, unitvar, & 1767 npstn,1,nhorim(iff), klev, levmin(iff), & 1768 levmax(iff)-levmin(iff)+1, nvertm(iff), 32, & 1769 type_ecri(iff), zstophym,zoutm(iff)) 1770 endif 1329 1771 endif 1330 1772 end subroutine histdef3d -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phys_output_write.h
r1419 r1534 9 9 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 10 10 IF (o_phis%flag(iff)<=lev_files(iff)) THEN 11 CALL histwrite_phy(nid_files(iff), 12 $ o_phis%name,itau_w,pphis) 13 ENDIF 14 11 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 12 $ o_phis%name,itau_w,pphis) 13 ENDIF 14 15 IF (.NOT.clef_stations(iff)) THEN 15 16 IF (o_aire%flag(iff)<=lev_files(iff)) THEN 16 CALL histwrite_phy(nid_files(iff),o_aire%name,itau_w,airephy) 17 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 18 $o_aire%name,itau_w,airephy) 17 19 ENDIF 18 20 … … 21 23 zx_tmp_fi2d(i)=pctsrf(i,is_ter)+pctsrf(i,is_lic) 22 24 ENDDO 23 CALL histwrite_phy(nid_files(iff), 25 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 24 26 $ o_contfracATM%name,itau_w,zx_tmp_fi2d) 25 27 ENDIF 28 ENDIF 26 29 27 30 IF (o_contfracOR%flag(iff)<=lev_files(iff)) THEN 28 CALL histwrite_phy(nid_files(iff), o_contfracOR%name,itau_w,29 $ 31 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 32 $ o_contfracOR%name,itau_w,pctsrf(:,is_ter)) 30 33 ENDIF 31 34 32 35 IF (o_aireTER%flag(iff)<=lev_files(iff)) THEN 33 CALL histwrite_phy(nid_files(iff), 36 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 34 37 $ o_aireTER%name,itau_w,paire_ter) 35 38 ENDIF … … 38 41 39 42 IF (o_flat%flag(iff)<=lev_files(iff)) THEN 40 CALL histwrite_phy(nid_files(iff),o_flat%name,itau_w,zxfluxlat) 43 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 44 $ o_flat%name,itau_w,zxfluxlat) 41 45 ENDIF 42 46 43 47 IF (o_slp%flag(iff)<=lev_files(iff)) THEN 44 CALL histwrite_phy(nid_files(iff),o_slp%name,itau_w,slp) 48 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 49 $ o_slp%name,itau_w,slp) 45 50 ENDIF 46 51 47 52 IF (o_tsol%flag(iff)<=lev_files(iff)) THEN 48 CALL histwrite_phy(nid_files(iff),o_tsol%name,itau_w,zxtsol) 53 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 54 $ o_tsol%name,itau_w,zxtsol) 49 55 ENDIF 50 56 51 57 IF (o_t2m%flag(iff)<=lev_files(iff)) THEN 52 CALL histwrite_phy(nid_files(iff),o_t2m%name,itau_w,zt2m) 53 ENDIF 54 58 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 59 $ o_t2m%name,itau_w,zt2m) 60 ENDIF 61 62 IF (.NOT.clef_stations(iff)) THEN 55 63 IF (o_t2m_min%flag(iff)<=lev_files(iff)) THEN 56 CALL histwrite_phy(nid_files(iff),o_t2m_min%name,itau_w,zt2m) 64 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 65 $o_t2m_min%name,itau_w,zt2m) 57 66 ENDIF 58 67 59 68 IF (o_t2m_max%flag(iff)<=lev_files(iff)) THEN 60 CALL histwrite_phy(nid_files(iff),o_t2m_max%name,itau_w,zt2m) 69 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 70 $o_t2m_max%name,itau_w,zt2m) 71 ENDIF 61 72 ENDIF 62 73 … … 65 76 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 66 77 ENDDO 67 CALL histwrite_phy(nid_files(iff), 78 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 68 79 s o_wind10m%name,itau_w,zx_tmp_fi2d) 69 80 ENDIF 70 81 82 IF (.NOT.clef_stations(iff)) THEN 71 83 IF (o_wind10max%flag(iff)<=lev_files(iff)) THEN 72 84 DO i=1, klon 73 85 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 74 86 ENDDO 75 CALL histwrite_phy(nid_files(iff),o_wind10max%name, 76 $ itau_w,zx_tmp_fi2d) 77 ENDIF 87 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 88 $o_wind10max%name,itau_w,zx_tmp_fi2d) 89 ENDIF 90 ENDIF 78 91 79 92 IF (o_sicf%flag(iff)<=lev_files(iff)) THEN … … 81 94 zx_tmp_fi2d(i) = pctsrf(i,is_sic) 82 95 ENDDO 83 CALL histwrite_phy(nid_files(iff), 96 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 84 97 $ o_sicf%name,itau_w,zx_tmp_fi2d) 85 98 ENDIF 86 99 87 100 IF (o_q2m%flag(iff)<=lev_files(iff)) THEN 88 CALL histwrite_phy(nid_files(iff),o_q2m%name,itau_w,zq2m) 101 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 102 $o_q2m%name,itau_w,zq2m) 89 103 ENDIF 90 104 91 105 IF (o_u10m%flag(iff)<=lev_files(iff)) THEN 92 CALL histwrite_phy(nid_files(iff),o_u10m%name,itau_w,zu10m) 106 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 107 $o_u10m%name,itau_w,zu10m) 93 108 ENDIF 94 109 95 110 IF (o_v10m%flag(iff)<=lev_files(iff)) THEN 96 CALL histwrite_phy(nid_files(iff),o_v10m%name,itau_w,zv10m) 111 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 112 $o_v10m%name,itau_w,zv10m) 97 113 ENDIF 98 114 … … 101 117 zx_tmp_fi2d(i) = paprs(i,1) 102 118 ENDDO 103 CALL histwrite_phy(nid_files(iff), 119 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 104 120 s o_psol%name,itau_w,zx_tmp_fi2d) 105 121 ENDIF 106 122 107 123 IF (o_qsurf%flag(iff)<=lev_files(iff)) THEN 108 CALL histwrite_phy(nid_files(iff),o_qsurf%name,itau_w,zxqsurf) 124 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 125 $o_qsurf%name,itau_w,zxqsurf) 109 126 ENDIF 110 127 111 128 if (.not. ok_veget) then 112 129 IF (o_qsol%flag(iff)<=lev_files(iff)) THEN 113 CALL histwrite_phy(nid_files(iff),o_qsol%name,itau_w,qsol) 130 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 131 $o_qsol%name,itau_w,qsol) 114 132 ENDIF 115 133 endif … … 119 137 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 120 138 ENDDO 121 CALL histwrite_phy(nid_files(iff), o_precip%name,122 sitau_w,zx_tmp_fi2d)139 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 140 $o_precip%name,itau_w,zx_tmp_fi2d) 123 141 ENDIF 124 142 125 143 IF (o_ndayrain%flag(iff)<=lev_files(iff)) THEN 126 CALL histwrite_phy(nid_files(iff), o_ndayrain%name,127 sitau_w,nday_rain)144 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 145 $o_ndayrain%name,itau_w,nday_rain) 128 146 ENDIF 129 147 … … 132 150 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 133 151 ENDDO 134 CALL histwrite_phy(nid_files(iff),o_plul%name,itau_w,zx_tmp_fi2d) 152 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 153 $o_plul%name,itau_w,zx_tmp_fi2d) 135 154 ENDIF 136 155 … … 139 158 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 140 159 ENDDO 141 CALL histwrite_phy(nid_files(iff),o_pluc%name,itau_w,zx_tmp_fi2d) 160 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 161 $o_pluc%name,itau_w,zx_tmp_fi2d) 142 162 ENDIF 143 163 144 164 IF (o_snow%flag(iff)<=lev_files(iff)) THEN 145 CALL histwrite_phy(nid_files(iff),o_snow%name,itau_w,snow_fall) 165 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 166 $o_snow%name,itau_w,snow_fall) 146 167 ENDIF 147 168 148 169 IF (o_msnow%flag(iff)<=lev_files(iff)) THEN 149 CALL histwrite_phy(nid_files(iff),o_msnow%name,itau_w,snow_o) 170 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 171 $o_msnow%name,itau_w,snow_o) 150 172 ENDIF 151 173 152 174 IF (o_fsnow%flag(iff)<=lev_files(iff)) THEN 153 CALL histwrite_phy(nid_files(iff),o_fsnow%name,itau_w,zfra_o) 175 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 176 $o_fsnow%name,itau_w,zfra_o) 154 177 ENDIF 155 178 156 179 IF (o_evap%flag(iff)<=lev_files(iff)) THEN 157 CALL histwrite_phy(nid_files(iff),o_evap%name,itau_w,evap) 180 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 181 $o_evap%name,itau_w,evap) 158 182 ENDIF 159 183 160 184 IF (o_tops%flag(iff)<=lev_files(iff)) THEN 161 CALL histwrite_phy(nid_files(iff),o_tops%name,itau_w,topsw) 185 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 186 $o_tops%name,itau_w,topsw) 162 187 ENDIF 163 188 164 189 IF (o_tops0%flag(iff)<=lev_files(iff)) THEN 165 CALL histwrite_phy(nid_files(iff),o_tops0%name,itau_w,topsw0) 190 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 191 $o_tops0%name,itau_w,topsw0) 166 192 ENDIF 167 193 168 194 IF (o_topl%flag(iff)<=lev_files(iff)) THEN 169 CALL histwrite_phy(nid_files(iff),o_topl%name,itau_w,toplw) 195 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 196 $o_topl%name,itau_w,toplw) 170 197 ENDIF 171 198 172 199 IF (o_topl0%flag(iff)<=lev_files(iff)) THEN 173 CALL histwrite_phy(nid_files(iff),o_topl0%name,itau_w,toplw0) 200 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 201 $o_topl0%name,itau_w,toplw0) 174 202 ENDIF 175 203 176 204 IF (o_SWupTOA%flag(iff)<=lev_files(iff)) THEN 177 205 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 178 CALL histwrite_phy(nid_files(iff), o_SWupTOA%name,179 sitau_w,zx_tmp_fi2d)206 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 207 $o_SWupTOA%name,itau_w,zx_tmp_fi2d) 180 208 ENDIF 181 209 182 210 IF (o_SWupTOAclr%flag(iff)<=lev_files(iff)) THEN 183 211 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 ) 184 CALL histwrite_phy(nid_files(iff), 212 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 185 213 $ o_SWupTOAclr%name,itau_w,zx_tmp_fi2d) 186 214 ENDIF … … 188 216 IF (o_SWdnTOA%flag(iff)<=lev_files(iff)) THEN 189 217 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 190 CALL histwrite_phy(nid_files(iff), 218 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 191 219 s o_SWdnTOA%name,itau_w,zx_tmp_fi2d) 192 220 ENDIF … … 194 222 IF (o_SWdnTOAclr%flag(iff)<=lev_files(iff)) THEN 195 223 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 ) 196 CALL histwrite_phy(nid_files(iff), 224 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 197 225 $ o_SWdnTOAclr%name,itau_w,zx_tmp_fi2d) 198 226 ENDIF … … 200 228 IF (o_nettop%flag(iff)<=lev_files(iff)) THEN 201 229 zx_tmp_fi2d(:) = topsw(:)-toplw(:) 202 CALL histwrite_phy(nid_files(iff), 230 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 203 231 $ o_nettop%name,itau_w,zx_tmp_fi2d) 204 232 ENDIF 205 233 206 234 IF (o_SWup200%flag(iff)<=lev_files(iff)) THEN 207 CALL histwrite_phy(nid_files(iff),o_SWup200%name,itau_w,SWup200) 235 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 236 $o_SWup200%name,itau_w,SWup200) 208 237 ENDIF 209 238 210 239 IF (o_SWup200clr%flag(iff)<=lev_files(iff)) THEN 211 CALL histwrite_phy(nid_files(iff), 240 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 212 241 s o_SWup200clr%name,itau_w,SWup200clr) 213 242 ENDIF 214 243 215 244 IF (o_SWdn200%flag(iff)<=lev_files(iff)) THEN 216 CALL histwrite_phy(nid_files(iff),o_SWdn200%name,itau_w,SWdn200) 245 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 246 $o_SWdn200%name,itau_w,SWdn200) 217 247 ENDIF 218 248 219 249 IF (o_SWdn200clr%flag(iff)<=lev_files(iff)) THEN 220 CALL histwrite_phy(nid_files(iff), 250 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 221 251 s o_SWdn200clr%name,itau_w,SWdn200clr) 222 252 ENDIF 223 253 224 254 IF (o_LWup200%flag(iff)<=lev_files(iff)) THEN 225 CALL histwrite_phy(nid_files(iff),o_LWup200%name,itau_w,LWup200) 255 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 256 $o_LWup200%name,itau_w,LWup200) 226 257 ENDIF 227 258 228 259 IF (o_LWup200clr%flag(iff)<=lev_files(iff)) THEN 229 CALL histwrite_phy(nid_files(iff), 260 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 230 261 s o_LWup200clr%name,itau_w,LWup200clr) 231 262 ENDIF 232 263 233 264 IF (o_LWdn200%flag(iff)<=lev_files(iff)) THEN 234 CALL histwrite_phy(nid_files(iff), 265 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 235 266 s o_LWdn200%name,itau_w,LWdn200) 236 267 ENDIF 237 268 238 269 IF (o_LWdn200clr%flag(iff)<=lev_files(iff)) THEN 239 CALL histwrite_phy(nid_files(iff), 270 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 240 271 s o_LWdn200clr%name,itau_w,LWdn200clr) 241 272 ENDIF 242 273 243 274 IF (o_sols%flag(iff)<=lev_files(iff)) THEN 244 CALL histwrite_phy(nid_files(iff),o_sols%name,itau_w,solsw) 275 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 276 $o_sols%name,itau_w,solsw) 245 277 ENDIF 246 278 247 279 IF (o_sols0%flag(iff)<=lev_files(iff)) THEN 248 CALL histwrite_phy(nid_files(iff),o_sols0%name,itau_w,solsw0) 280 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 281 $o_sols0%name,itau_w,solsw0) 249 282 ENDIF 250 283 251 284 IF (o_soll%flag(iff)<=lev_files(iff)) THEN 252 CALL histwrite_phy(nid_files(iff),o_soll%name,itau_w,sollw) 285 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 286 $o_soll%name,itau_w,sollw) 253 287 ENDIF 254 288 255 289 IF (o_radsol%flag(iff)<=lev_files(iff)) THEN 256 CALL histwrite_phy(nid_files(iff),o_radsol%name,itau_w,radsol) 290 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 291 $o_radsol%name,itau_w,radsol) 257 292 ENDIF 258 293 259 294 IF (o_soll0%flag(iff)<=lev_files(iff)) THEN 260 CALL histwrite_phy(nid_files(iff),o_soll0%name,itau_w,sollw0) 295 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 296 $o_soll0%name,itau_w,sollw0) 261 297 ENDIF 262 298 263 299 IF (o_SWupSFC%flag(iff)<=lev_files(iff)) THEN 264 300 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 265 CALL histwrite_phy(nid_files(iff), 301 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 266 302 s o_SWupSFC%name,itau_w,zx_tmp_fi2d) 267 303 ENDIF … … 269 305 IF (o_SWupSFCclr%flag(iff)<=lev_files(iff)) THEN 270 306 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 ) 271 CALL histwrite_phy(nid_files(iff), 307 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 272 308 $ o_SWupSFCclr%name,itau_w,zx_tmp_fi2d) 273 309 ENDIF … … 275 311 IF (o_SWdnSFC%flag(iff)<=lev_files(iff)) THEN 276 312 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 277 CALL histwrite_phy(nid_files(iff), 313 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 278 314 $ o_SWdnSFC%name,itau_w,zx_tmp_fi2d) 279 315 ENDIF … … 281 317 IF (o_SWdnSFCclr%flag(iff)<=lev_files(iff)) THEN 282 318 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 ) 283 CALL histwrite_phy(nid_files(iff), 319 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 284 320 $ o_SWdnSFCclr%name,itau_w,zx_tmp_fi2d) 285 321 ENDIF … … 287 323 IF (o_LWupSFC%flag(iff)<=lev_files(iff)) THEN 288 324 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 289 CALL histwrite_phy(nid_files(iff), 325 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 290 326 $ o_LWupSFC%name,itau_w,zx_tmp_fi2d) 291 327 ENDIF 292 328 293 329 IF (o_LWdnSFC%flag(iff)<=lev_files(iff)) THEN 294 CALL histwrite_phy(nid_files(iff), 330 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 295 331 $ o_LWdnSFC%name,itau_w,sollwdown) 296 332 ENDIF … … 299 335 IF (o_LWupSFCclr%flag(iff)<=lev_files(iff)) THEN 300 336 zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon) 301 CALL histwrite_phy(nid_files(iff), 337 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 302 338 $ o_LWupSFCclr%name,itau_w,zx_tmp_fi2d) 303 339 ENDIF 304 340 305 341 IF (o_LWdnSFCclr%flag(iff)<=lev_files(iff)) THEN 306 CALL histwrite_phy(nid_files(iff), 342 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 307 343 $ o_LWdnSFCclr%name,itau_w,sollwdownclr) 308 344 ENDIF 309 345 310 346 IF (o_bils%flag(iff)<=lev_files(iff)) THEN 311 CALL histwrite_phy(nid_files(iff),o_bils%name,itau_w,bils) 347 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 348 $o_bils%name,itau_w,bils) 312 349 ENDIF 313 350 314 351 IF (o_sens%flag(iff)<=lev_files(iff)) THEN 315 352 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 316 CALL histwrite_phy(nid_files(iff),o_sens%name,itau_w,zx_tmp_fi2d) 353 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 354 $o_sens%name,itau_w,zx_tmp_fi2d) 317 355 ENDIF 318 356 319 357 IF (o_fder%flag(iff)<=lev_files(iff)) THEN 320 CALL histwrite_phy(nid_files(iff),o_fder%name,itau_w,fder) 358 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 359 $o_fder%name,itau_w,fder) 321 360 ENDIF 322 361 323 362 IF (o_ffonte%flag(iff)<=lev_files(iff)) THEN 324 CALL histwrite_phy(nid_files(iff),o_ffonte%name,itau_w,zxffonte) 363 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 364 $o_ffonte%name,itau_w,zxffonte) 325 365 ENDIF 326 366 327 367 IF (o_fqcalving%flag(iff)<=lev_files(iff)) THEN 328 CALL histwrite_phy(nid_files(iff), 368 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 329 369 $ o_fqcalving%name,itau_w,zxfqcalving) 330 370 ENDIF 331 371 332 372 IF (o_fqfonte%flag(iff)<=lev_files(iff)) THEN 333 CALL histwrite_phy(nid_files(iff), 373 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 334 374 $ o_fqfonte%name,itau_w,zxfqfonte) 335 375 ENDIF … … 340 380 zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxu(:,1,nsrf) 341 381 enddo 342 CALL histwrite_phy(nid_files(iff), 382 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 343 383 $ o_taux%name,itau_w,zx_tmp_fi2d) 344 384 ENDIF … … 349 389 zx_tmp_fi2d(:)=zx_tmp_fi2d(:)+pctsrf(:,nsrf)*fluxv(:,1,nsrf) 350 390 enddo 351 CALL histwrite_phy(nid_files(iff), 391 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 352 392 $ o_tauy%name,itau_w,zx_tmp_fi2d) 353 393 ENDIF … … 358 398 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 359 399 CALL histwrite_phy(nid_files(iff), 400 $ clef_stations(iff), 360 401 $ o_pourc_srf(nsrf)%name,itau_w, 361 402 $ zx_tmp_fi2d) … … 364 405 IF (o_fract_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 365 406 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 366 CALL histwrite_phy(nid_files(iff), 407 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 367 408 $ o_fract_srf(nsrf)%name,itau_w, 368 409 $ zx_tmp_fi2d) … … 372 413 IF (o_taux_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 373 414 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 374 CALL histwrite_phy(nid_files(iff), 415 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 375 416 $ o_taux_srf(nsrf)%name,itau_w, 376 417 $ zx_tmp_fi2d) … … 379 420 IF (o_tauy_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 380 421 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 381 CALL histwrite_phy(nid_files(iff), 422 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 382 423 $ o_tauy_srf(nsrf)%name,itau_w, 383 424 $ zx_tmp_fi2d) … … 386 427 IF (o_tsol_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 387 428 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 388 CALL histwrite_phy(nid_files(iff), 429 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 389 430 $ o_tsol_srf(nsrf)%name,itau_w, 390 431 $ zx_tmp_fi2d) … … 393 434 IF (o_u10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 394 435 zx_tmp_fi2d(1 : klon) = u10m(1 : klon, nsrf) 395 CALL histwrite_phy(nid_files(iff),o_u10m_srf(nsrf)%name, 436 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 437 $o_u10m_srf(nsrf)%name, 396 438 $ itau_w,zx_tmp_fi2d) 397 439 ENDIF … … 399 441 IF (o_v10m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 400 442 zx_tmp_fi2d(1 : klon) = v10m(1 : klon, nsrf) 401 CALL histwrite_phy(nid_files(iff),o_v10m_srf(nsrf)%name, 443 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 444 $o_v10m_srf(nsrf)%name, 402 445 $ itau_w,zx_tmp_fi2d) 403 446 ENDIF … … 405 448 IF (o_t2m_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 406 449 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, nsrf) 407 CALL histwrite_phy(nid_files(iff),o_t2m_srf(nsrf)%name, 450 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 451 $o_t2m_srf(nsrf)%name, 408 452 $ itau_w,zx_tmp_fi2d) 409 453 ENDIF … … 411 455 IF (o_evap_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 412 456 zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf) 413 CALL histwrite_phy(nid_files(iff),o_evap_srf(nsrf)%name, 457 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 458 $o_evap_srf(nsrf)%name, 414 459 $ itau_w,zx_tmp_fi2d) 415 460 ENDIF … … 417 462 IF (o_sens_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 418 463 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 419 CALL histwrite_phy(nid_files(iff), 464 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 420 465 $ o_sens_srf(nsrf)%name,itau_w, 421 466 $ zx_tmp_fi2d) … … 424 469 IF (o_lat_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 425 470 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 426 CALL histwrite_phy(nid_files(iff), 471 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 427 472 $ o_lat_srf(nsrf)%name,itau_w, 428 473 $ zx_tmp_fi2d) … … 431 476 IF (o_flw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 432 477 zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf) 433 CALL histwrite_phy(nid_files(iff), 478 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 434 479 $ o_flw_srf(nsrf)%name,itau_w, 435 480 $ zx_tmp_fi2d) … … 438 483 IF (o_fsw_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 439 484 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf) 440 CALL histwrite_phy(nid_files(iff), 485 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 441 486 $ o_fsw_srf(nsrf)%name,itau_w, 442 487 $ zx_tmp_fi2d) … … 445 490 IF (o_wbils_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 446 491 zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf) 447 CALL histwrite_phy(nid_files(iff), 492 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 448 493 $ o_wbils_srf(nsrf)%name,itau_w, 449 494 $ zx_tmp_fi2d) … … 452 497 IF (o_wbilo_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 453 498 zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf) 454 CALL histwrite_phy(nid_files(iff), 499 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 455 500 $ o_wbilo_srf(nsrf)%name,itau_w, 456 501 $ zx_tmp_fi2d) … … 459 504 if (iflag_pbl>1 .and. lev_histday.gt.10 ) then 460 505 IF (o_tke_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 461 CALL histwrite_phy(nid_files(iff), 506 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 462 507 $ o_tke_srf(nsrf)%name,itau_w, 463 508 $ pbl_tke(:,1:klev,nsrf)) 464 509 ENDIF 465 510 511 IF (.NOT.clef_stations(iff)) THEN 466 512 IF (o_tke_max_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 467 CALL histwrite_phy(nid_files(iff), 513 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 468 514 $ o_tke_max_srf(nsrf)%name,itau_w, 469 515 $ pbl_tke(:,1:klev,nsrf)) 470 516 ENDIF 517 ENDIF 471 518 endif 472 519 ENDDO 473 520 474 521 IF (o_cdrm%flag(iff)<=lev_files(iff)) THEN 475 CALL histwrite_phy(nid_files(iff),o_cdrm%name,itau_w,cdragm) 522 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 523 $o_cdrm%name,itau_w,cdragm) 476 524 ENDIF 477 525 478 526 IF (o_cdrh%flag(iff)<=lev_files(iff)) THEN 479 CALL histwrite_phy(nid_files(iff),o_cdrh%name,itau_w,cdragh) 527 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 528 $o_cdrh%name,itau_w,cdragh) 480 529 ENDIF 481 530 482 531 IF (o_cldl%flag(iff)<=lev_files(iff)) THEN 483 CALL histwrite_phy(nid_files(iff),o_cldl%name,itau_w,cldl) 532 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 533 $o_cldl%name,itau_w,cldl) 484 534 ENDIF 485 535 486 536 IF (o_cldm%flag(iff)<=lev_files(iff)) THEN 487 CALL histwrite_phy(nid_files(iff),o_cldm%name,itau_w,cldm) 537 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 538 $o_cldm%name,itau_w,cldm) 488 539 ENDIF 489 540 490 541 IF (o_cldh%flag(iff)<=lev_files(iff)) THEN 491 CALL histwrite_phy(nid_files(iff),o_cldh%name,itau_w,cldh) 542 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 543 $o_cldh%name,itau_w,cldh) 492 544 ENDIF 493 545 494 546 IF (o_cldt%flag(iff)<=lev_files(iff)) THEN 495 CALL histwrite_phy(nid_files(iff),o_cldt%name, 547 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 548 $o_cldt%name, 496 549 & itau_w,cldt) 497 550 ENDIF 498 551 499 552 IF (o_cldq%flag(iff)<=lev_files(iff)) THEN 500 CALL histwrite_phy(nid_files(iff),o_cldq%name,itau_w,cldq) 553 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 554 $o_cldq%name,itau_w,cldq) 501 555 ENDIF 502 556 503 557 IF (o_lwp%flag(iff)<=lev_files(iff)) THEN 504 558 zx_tmp_fi2d(1:klon) = flwp(1:klon) 505 CALL histwrite_phy(nid_files(iff), 559 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 506 560 s o_lwp%name,itau_w,zx_tmp_fi2d) 507 561 ENDIF … … 509 563 IF (o_iwp%flag(iff)<=lev_files(iff)) THEN 510 564 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 511 CALL histwrite_phy(nid_files(iff), 565 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 512 566 s o_iwp%name,itau_w,zx_tmp_fi2d) 513 567 ENDIF 514 568 515 569 IF (o_ue%flag(iff)<=lev_files(iff)) THEN 516 CALL histwrite_phy(nid_files(iff),o_ue%name,itau_w,ue) 570 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 571 $o_ue%name,itau_w,ue) 517 572 ENDIF 518 573 519 574 IF (o_ve%flag(iff)<=lev_files(iff)) THEN 520 CALL histwrite_phy(nid_files(iff),o_ve%name,itau_w,ve) 575 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 576 $o_ve%name,itau_w,ve) 521 577 ENDIF 522 578 523 579 IF (o_uq%flag(iff)<=lev_files(iff)) THEN 524 CALL histwrite_phy(nid_files(iff),o_uq%name,itau_w,uq) 580 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 581 $o_uq%name,itau_w,uq) 525 582 ENDIF 526 583 527 584 IF (o_vq%flag(iff)<=lev_files(iff)) THEN 528 CALL histwrite_phy(nid_files(iff),o_vq%name,itau_w,vq) 585 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 586 $o_vq%name,itau_w,vq) 529 587 ENDIF 530 588 531 589 IF(iflag_con.GE.3) THEN ! sb 532 590 IF (o_cape%flag(iff)<=lev_files(iff)) THEN 533 CALL histwrite_phy(nid_files(iff),o_cape%name,itau_w,cape) 591 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 592 $o_cape%name,itau_w,cape) 534 593 ENDIF 535 594 536 595 IF (o_pbase%flag(iff)<=lev_files(iff)) THEN 537 CALL histwrite_phy(nid_files(iff),o_pbase%name,itau_w,ema_pcb) 596 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 597 $o_pbase%name,itau_w,ema_pcb) 538 598 ENDIF 539 599 540 600 IF (o_ptop%flag(iff)<=lev_files(iff)) THEN 541 CALL histwrite_phy(nid_files(iff),o_ptop%name,itau_w,ema_pct) 601 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 602 $o_ptop%name,itau_w,ema_pct) 542 603 ENDIF 543 604 544 605 IF (o_fbase%flag(iff)<=lev_files(iff)) THEN 545 CALL histwrite_phy(nid_files(iff),o_fbase%name,itau_w,ema_cbmf) 606 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 607 $o_fbase%name,itau_w,ema_cbmf) 546 608 ENDIF 547 609 548 610 IF (o_prw%flag(iff)<=lev_files(iff)) THEN 549 CALL histwrite_phy(nid_files(iff),o_prw%name,itau_w,prw) 550 ENDIF 551 611 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 612 $o_prw%name,itau_w,prw) 613 ENDIF 614 615 IF (.NOT.clef_stations(iff)) THEN 552 616 IF (o_cape_max%flag(iff)<=lev_files(iff)) THEN 553 CALL histwrite_phy(nid_files(iff),o_cape_max%name,itau_w,cape) 617 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 618 $o_cape_max%name,itau_w,cape) 619 ENDIF 554 620 ENDIF 555 621 556 622 IF (o_upwd%flag(iff)<=lev_files(iff)) THEN 557 CALL histwrite_phy(nid_files(iff),o_upwd%name,itau_w,upwd) 623 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 624 $o_upwd%name,itau_w,upwd) 558 625 ENDIF 559 626 560 627 IF (o_Ma%flag(iff)<=lev_files(iff)) THEN 561 CALL histwrite_phy(nid_files(iff),o_Ma%name,itau_w,Ma) 628 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 629 $o_Ma%name,itau_w,Ma) 562 630 ENDIF 563 631 564 632 IF (o_dnwd%flag(iff)<=lev_files(iff)) THEN 565 CALL histwrite_phy(nid_files(iff),o_dnwd%name,itau_w,dnwd) 633 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 634 $o_dnwd%name,itau_w,dnwd) 566 635 ENDIF 567 636 568 637 IF (o_dnwd0%flag(iff)<=lev_files(iff)) THEN 569 CALL histwrite_phy(nid_files(iff),o_dnwd0%name,itau_w,dnwd0) 638 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 639 $o_dnwd0%name,itau_w,dnwd0) 570 640 ENDIF 571 641 572 642 IF (o_ftime_con%flag(iff)<=lev_files(iff)) THEN 573 643 zx_tmp_fi2d=float(itau_con)/float(itap) 574 CALL histwrite_phy(nid_files(iff),o_ftime_con%name, 644 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 645 $o_ftime_con%name, 575 646 s itau_w,zx_tmp_fi2d) 576 647 ENDIF … … 582 653 zx_tmp_fi3d=dnwd+dnwd0+upwd 583 654 endif 584 CALL histwrite_phy(nid_files(iff),o_mc%name,itau_w,zx_tmp_fi3d) 655 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 656 $o_mc%name,itau_w,zx_tmp_fi3d) 585 657 ENDIF 586 658 … … 588 660 589 661 IF (o_s_pblh%flag(iff)<=lev_files(iff)) THEN 590 CALL histwrite_phy(nid_files(iff),o_s_pblh%name,itau_w,s_pblh) 662 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 663 $o_s_pblh%name,itau_w,s_pblh) 591 664 ENDIF 592 665 593 666 IF (o_s_pblt%flag(iff)<=lev_files(iff)) THEN 594 CALL histwrite_phy(nid_files(iff),o_s_pblt%name,itau_w,s_pblt) 667 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 668 $o_s_pblt%name,itau_w,s_pblt) 595 669 ENDIF 596 670 597 671 IF (o_s_lcl%flag(iff)<=lev_files(iff)) THEN 598 CALL histwrite_phy(nid_files(iff),o_s_lcl%name,itau_w,s_lcl) 672 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 673 $o_s_lcl%name,itau_w,s_lcl) 599 674 ENDIF 600 675 601 676 IF (o_s_therm%flag(iff)<=lev_files(iff)) THEN 602 CALL histwrite_phy(nid_files(iff),o_s_therm%name,itau_w,s_therm) 677 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 678 $o_s_therm%name,itau_w,s_therm) 603 679 ENDIF 604 680 605 681 !IM : Les champs suivants (s_capCL, s_oliqCL, s_cteiCL, s_trmb1, s_trmb2, s_trmb3) ne sont pas definis dans HBTM.F 606 682 ! IF (o_s_capCL%flag(iff)<=lev_files(iff)) THEN 607 ! CALL histwrite_phy(nid_files(iff),o_s_capCL%name,itau_w,s_capCL) 683 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 684 ! $o_s_capCL%name,itau_w,s_capCL) 608 685 ! ENDIF 609 686 610 687 ! IF (o_s_oliqCL%flag(iff)<=lev_files(iff)) THEN 611 ! CALL histwrite_phy(nid_files(iff),o_s_oliqCL%name,itau_w,s_oliqCL) 688 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 689 ! $o_s_oliqCL%name,itau_w,s_oliqCL) 612 690 ! ENDIF 613 691 614 692 ! IF (o_s_cteiCL%flag(iff)<=lev_files(iff)) THEN 615 ! CALL histwrite_phy(nid_files(iff),o_s_cteiCL%name,itau_w,s_cteiCL) 693 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 694 ! $o_s_cteiCL%name,itau_w,s_cteiCL) 616 695 ! ENDIF 617 696 618 697 ! IF (o_s_trmb1%flag(iff)<=lev_files(iff)) THEN 619 ! CALL histwrite_phy(nid_files(iff),o_s_trmb1%name,itau_w,s_trmb1) 698 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 699 ! $o_s_trmb1%name,itau_w,s_trmb1) 620 700 ! ENDIF 621 701 622 702 ! IF (o_s_trmb2%flag(iff)<=lev_files(iff)) THEN 623 ! CALL histwrite_phy(nid_files(iff),o_s_trmb2%name,itau_w,s_trmb2) 703 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 704 ! $o_s_trmb2%name,itau_w,s_trmb2) 624 705 ! ENDIF 625 706 626 707 ! IF (o_s_trmb3%flag(iff)<=lev_files(iff)) THEN 627 ! CALL histwrite_phy(nid_files(iff),o_s_trmb3%name,itau_w,s_trmb3) 708 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 709 ! $o_s_trmb3%name,itau_w,s_trmb3) 628 710 ! ENDIF 629 711 … … 632 714 ll=0 633 715 DO k=1, nlevSTD 634 ! IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k)635 ! IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k)636 716 bb2=clevSTD(k) 637 717 IF(bb2.EQ."850".OR.bb2.EQ."700".OR. 638 718 $ bb2.EQ."500".OR.bb2.EQ."200".OR. 719 $ bb2.EQ."100".OR. 639 720 $ bb2.EQ."50".OR.bb2.EQ."10") THEN 640 721 … … 642 723 ll=ll+1 643 724 IF (o_uSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 644 CALL histwrite_phy(nid_files(iff),o_uSTDlevs(ll)%name, 725 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 726 $o_uSTDlevs(ll)%name, 645 727 & itau_w,uwriteSTD(:,k,iff)) 646 728 ENDIF 647 729 648 730 IF (o_vSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 649 CALL histwrite_phy(nid_files(iff),o_vSTDlevs(ll)%name, 731 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 732 $o_vSTDlevs(ll)%name, 650 733 & itau_w,vwriteSTD(:,k,iff)) 651 734 ENDIF 652 735 653 736 IF (o_wSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 654 CALL histwrite_phy(nid_files(iff),o_wSTDlevs(ll)%name, 737 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 738 $o_wSTDlevs(ll)%name, 655 739 & itau_w,wwriteSTD(:,k,iff)) 656 740 ENDIF 657 741 658 742 IF (o_zSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 659 CALL histwrite_phy(nid_files(iff),o_zSTDlevs(ll)%name, 743 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 744 $o_zSTDlevs(ll)%name, 660 745 & itau_w,phiwriteSTD(:,k,iff)) 661 746 ENDIF 662 747 663 748 IF (o_qSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 664 CALL histwrite_phy(nid_files(iff),o_qSTDlevs(ll)%name, 749 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 750 $o_qSTDlevs(ll)%name, 665 751 & itau_w, qwriteSTD(:,k,iff)) 666 752 ENDIF 667 753 668 754 IF (o_tSTDlevs(ll)%flag(iff)<=lev_files(iff)) THEN 669 CALL histwrite_phy(nid_files(iff),o_tSTDlevs(ll)%name, 755 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 756 $o_tSTDlevs(ll)%name, 670 757 & itau_w, twriteSTD(:,k,iff)) 671 758 ENDIF … … 685 772 ENDIF 686 773 ENDDO 687 CALL histwrite_phy(nid_files(iff), 774 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 688 775 s o_t_oce_sic%name,itau_w,zx_tmp_fi2d) 689 776 ENDIF … … 693 780 IF (iflag_coupl.EQ.1) THEN 694 781 IF (o_ale_bl%flag(iff)<=lev_files(iff)) THEN 695 CALL histwrite_phy(nid_files(iff),o_ale_bl%name,itau_w,ale_bl) 782 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 783 $o_ale_bl%name,itau_w,ale_bl) 696 784 ENDIF 697 785 IF (o_alp_bl%flag(iff)<=lev_files(iff)) THEN 698 CALL histwrite_phy(nid_files(iff),o_alp_bl%name,itau_w,alp_bl) 786 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 787 $o_alp_bl%name,itau_w,alp_bl) 699 788 ENDIF 700 789 ENDIF !iflag_coupl.EQ.1 … … 705 794 IF (iflag_wake.EQ.1) THEN 706 795 IF (o_ale_wk%flag(iff)<=lev_files(iff)) THEN 707 CALL histwrite_phy(nid_files(iff),o_ale_wk%name,itau_w,ale_wake) 796 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 797 $o_ale_wk%name,itau_w,ale_wake) 708 798 ENDIF 709 799 IF (o_alp_wk%flag(iff)<=lev_files(iff)) THEN 710 CALL histwrite_phy(nid_files(iff),o_alp_wk%name,itau_w,alp_wake) 800 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 801 $o_alp_wk%name,itau_w,alp_wake) 711 802 ENDIF 712 803 713 804 IF (o_ale%flag(iff)<=lev_files(iff)) THEN 714 CALL histwrite_phy(nid_files(iff),o_ale%name,itau_w,ale) 805 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 806 $o_ale%name,itau_w,ale) 715 807 ENDIF 716 808 IF (o_alp%flag(iff)<=lev_files(iff)) THEN 717 CALL histwrite_phy(nid_files(iff),o_alp%name,itau_w,alp) 809 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 810 $o_alp%name,itau_w,alp) 718 811 ENDIF 719 812 IF (o_cin%flag(iff)<=lev_files(iff)) THEN 720 CALL histwrite_phy(nid_files(iff),o_cin%name,itau_w,cin) 813 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 814 $o_cin%name,itau_w,cin) 721 815 ENDIF 722 816 IF (o_wape%flag(iff)<=lev_files(iff)) THEN 723 CALL histwrite_phy(nid_files(iff),o_WAPE%name,itau_w,wake_pe) 817 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 818 $o_WAPE%name,itau_w,wake_pe) 724 819 ENDIF 725 820 IF (o_wake_h%flag(iff)<=lev_files(iff)) THEN 726 CALL histwrite_phy(nid_files(iff),o_wake_h%name,itau_w,wake_h) 821 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 822 $o_wake_h%name,itau_w,wake_h) 727 823 ENDIF 728 824 729 825 IF (o_wake_s%flag(iff)<=lev_files(iff)) THEN 730 CALL histwrite_phy(nid_files(iff),o_wake_s%name,itau_w,wake_s) 826 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 827 $o_wake_s%name,itau_w,wake_s) 731 828 ENDIF 732 829 733 830 IF (o_wake_deltat%flag(iff)<=lev_files(iff)) THEN 734 CALL histwrite_phy(nid_files(iff),o_wake_deltat%name, 831 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 832 $o_wake_deltat%name, 735 833 $ itau_w,wake_deltat) 736 834 ENDIF 737 835 738 836 IF (o_wake_deltaq%flag(iff)<=lev_files(iff)) THEN 739 CALL histwrite_phy(nid_files(iff),o_wake_deltaq%name, 837 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 838 $o_wake_deltaq%name, 740 839 $ itau_w,wake_deltaq) 741 840 ENDIF 742 841 743 842 IF (o_wake_omg%flag(iff)<=lev_files(iff)) THEN 744 CALL histwrite_phy(nid_files(iff), 843 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 745 844 s o_wake_omg%name,itau_w,wake_omg) 746 845 ENDIF … … 750 849 & /pdtphys 751 850 CALL histwrite_phy(nid_files(iff), 851 $clef_stations(iff), 752 852 & o_dtwak%name,itau_w,zx_tmp_fi3d) 753 853 ENDIF … … 755 855 IF (o_dqwak%flag(iff)<=lev_files(iff)) THEN 756 856 zx_tmp_fi3d(1:klon,1:klev)=d_q_wake(1:klon,1:klev)/pdtphys 757 CALL histwrite_phy(nid_files(iff), 857 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 758 858 & o_dqwak%name,itau_w,zx_tmp_fi3d) 759 859 ENDIF … … 761 861 762 862 IF (o_Vprecip%flag(iff)<=lev_files(iff)) THEN 763 CALL histwrite_phy(nid_files(iff),o_Vprecip%name,itau_w,Vprecip) 863 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 864 $o_Vprecip%name,itau_w,Vprecip) 764 865 ENDIF 765 866 766 867 IF (o_ftd%flag(iff)<=lev_files(iff)) THEN 767 CALL histwrite_phy(nid_files(iff),o_ftd%name,itau_w,ftd) 868 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 869 $o_ftd%name,itau_w,ftd) 768 870 ENDIF 769 871 770 872 IF (o_fqd%flag(iff)<=lev_files(iff)) THEN 771 CALL histwrite_phy(nid_files(iff),o_fqd%name,itau_w,fqd) 873 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 874 $o_fqd%name,itau_w,fqd) 772 875 ENDIF 773 876 ENDIF !(iflag_con.EQ.3) … … 776 879 IF ( o_slab_bils%flag(iff)<=lev_files(iff)) 777 880 $ CALL histwrite_phy( 778 $ nid_files(iff),o_slab_bils%name,itau_w,slab_wfbils) 881 $ nid_files(iff),clef_stations(iff), 882 $o_slab_bils%name,itau_w,slab_wfbils) 779 883 780 884 ENDIF !type_ocean == force/slab 781 885 782 886 IF (o_weakinv%flag(iff)<=lev_files(iff)) THEN 783 CALL histwrite_phy(nid_files(iff), 887 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 784 888 s o_weakinv%name,itau_w,weak_inversion) 785 889 ENDIF 786 890 787 IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN 788 CALL histwrite_phy(nid_files(iff),o_dthmin%name,itau_w,dthmin) 789 ENDIF 891 ! IF (o_dthmin%flag(iff)<=lev_files(iff)) THEN 892 ! CALL histwrite_phy(nid_files(iff),clef_stations(iff), 893 ! $o_dthmin%name,itau_w,dthmin) 894 ! ENDIF 790 895 791 896 IF (o_cldtau%flag(iff)<=lev_files(iff)) THEN 792 CALL histwrite_phy(nid_files(iff),o_cldtau%name,itau_w,cldtau) 897 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 898 $o_cldtau%name,itau_w,cldtau) 793 899 ENDIF 794 900 795 901 IF (o_cldemi%flag(iff)<=lev_files(iff)) THEN 796 CALL histwrite_phy(nid_files(iff),o_cldemi%name,itau_w,cldemi) 902 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 903 $o_cldemi%name,itau_w,cldemi) 797 904 ENDIF 798 905 799 906 IF (o_pr_con_l%flag(iff)<=lev_files(iff)) THEN 800 CALL histwrite_phy(nid_files(iff), 907 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 801 908 s o_pr_con_l%name,itau_w,pmflxr(:,1:klev)) 802 909 ENDIF 803 910 804 911 IF (o_pr_con_i%flag(iff)<=lev_files(iff)) THEN 805 CALL histwrite_phy(nid_files(iff), 912 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 806 913 s o_pr_con_i%name,itau_w,pmflxs(:,1:klev)) 807 914 ENDIF 808 915 809 916 IF (o_pr_lsc_l%flag(iff)<=lev_files(iff)) THEN 810 CALL histwrite_phy(nid_files(iff), 917 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 811 918 s o_pr_lsc_l%name,itau_w,prfl(:,1:klev)) 812 919 ENDIF 813 920 814 921 IF (o_pr_lsc_i%flag(iff)<=lev_files(iff)) THEN 815 CALL histwrite_phy(nid_files(iff), 922 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 816 923 s o_pr_lsc_i%name,itau_w,psfl(:,1:klev)) 817 924 ENDIF 818 925 819 926 IF (o_re%flag(iff)<=lev_files(iff)) THEN 820 CALL histwrite_phy(nid_files(iff),o_re%name,itau_w,re) 927 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 928 $o_re%name,itau_w,re) 821 929 ENDIF 822 930 823 931 IF (o_fl%flag(iff)<=lev_files(iff)) THEN 824 CALL histwrite_phy(nid_files(iff),o_fl%name,itau_w,fl) 932 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 933 $o_fl%name,itau_w,fl) 825 934 ENDIF 826 935 … … 831 940 zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.) 832 941 ENDDO 833 CALL histwrite_phy(nid_files(iff),o_rh2m%name,itau_w,zx_tmp_fi2d) 834 ENDIF 835 942 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 943 $o_rh2m%name,itau_w,zx_tmp_fi2d) 944 ENDIF 945 946 IF (.NOT.clef_stations(iff)) THEN 836 947 IF (o_rh2m_min%flag(iff)<=lev_files(iff)) THEN 837 948 DO i=1, klon 838 949 zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.) 839 950 ENDDO 840 CALL histwrite_phy(nid_files(iff),o_rh2m_min%name, 951 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 952 $o_rh2m_min%name, 841 953 s itau_w,zx_tmp_fi2d) 842 954 ENDIF … … 846 958 zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.) 847 959 ENDDO 848 CALL histwrite_phy(nid_files(iff),o_rh2m_max%name, 960 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 961 $o_rh2m_max%name, 849 962 s itau_w,zx_tmp_fi2d) 850 963 ENDIF 964 ENDIF 851 965 852 966 853 967 IF (o_qsat2m%flag(iff)<=lev_files(iff)) THEN 854 CALL histwrite_phy(nid_files(iff),o_qsat2m%name,itau_w,qsat2m) 968 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 969 $o_qsat2m%name,itau_w,qsat2m) 855 970 ENDIF 856 971 857 972 IF (o_tpot%flag(iff)<=lev_files(iff)) THEN 858 CALL histwrite_phy(nid_files(iff),o_tpot%name,itau_w,tpot) 973 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 974 $o_tpot%name,itau_w,tpot) 859 975 ENDIF 860 976 861 977 IF (o_tpote%flag(iff)<=lev_files(iff)) THEN 862 CALL histwrite_phy(nid_files(iff),o_tpote%name,itau_w,tpote) 978 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 979 $o_tpote%name,itau_w,tpote) 863 980 ENDIF 864 981 865 982 IF (o_SWnetOR%flag(iff)<=lev_files(iff)) THEN 866 983 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter) 867 CALL histwrite_phy(nid_files(iff), 984 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 868 985 s o_SWnetOR%name,itau_w, zx_tmp_fi2d) 869 986 ENDIF … … 871 988 IF (o_SWdownOR%flag(iff)<=lev_files(iff)) THEN 872 989 zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol1(1:klon)) 873 CALL histwrite_phy(nid_files(iff), 990 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 874 991 s o_SWdownOR%name,itau_w, zx_tmp_fi2d) 875 992 ENDIF 876 993 877 994 IF (o_LWdownOR%flag(iff)<=lev_files(iff)) THEN 878 CALL histwrite_phy(nid_files(iff), 995 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 879 996 s o_LWdownOR%name,itau_w,sollwdown) 880 997 ENDIF 881 998 882 999 IF (o_snowl%flag(iff)<=lev_files(iff)) THEN 883 CALL histwrite_phy(nid_files(iff),o_snowl%name,itau_w,snow_lsc) 1000 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1001 $o_snowl%name,itau_w,snow_lsc) 884 1002 ENDIF 885 1003 886 1004 IF (o_solldown%flag(iff)<=lev_files(iff)) THEN 887 CALL histwrite_phy(nid_files(iff), 1005 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 888 1006 s o_solldown%name,itau_w,sollwdown) 889 1007 ENDIF 890 1008 891 1009 IF (o_dtsvdfo%flag(iff)<=lev_files(iff)) THEN 892 CALL histwrite_phy(nid_files(iff), 1010 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 893 1011 s o_dtsvdfo%name,itau_w,d_ts(:,is_oce)) 894 1012 ENDIF 895 1013 896 1014 IF (o_dtsvdft%flag(iff)<=lev_files(iff)) THEN 897 CALL histwrite_phy(nid_files(iff), 1015 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 898 1016 s o_dtsvdft%name,itau_w,d_ts(:,is_ter)) 899 1017 ENDIF 900 1018 901 1019 IF (o_dtsvdfg%flag(iff)<=lev_files(iff)) THEN 902 CALL histwrite_phy(nid_files(iff), 1020 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 903 1021 $ o_dtsvdfg%name,itau_w, d_ts(:,is_lic)) 904 1022 ENDIF 905 1023 906 1024 IF (o_dtsvdfi%flag(iff)<=lev_files(iff)) THEN 907 CALL histwrite_phy(nid_files(iff), 1025 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 908 1026 s o_dtsvdfi%name,itau_w,d_ts(:,is_sic)) 909 1027 ENDIF 910 1028 911 1029 IF (o_rugs%flag(iff)<=lev_files(iff)) THEN 912 CALL histwrite_phy(nid_files(iff),o_rugs%name,itau_w,zxrugs) 1030 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1031 $o_rugs%name,itau_w,zxrugs) 913 1032 ENDIF 914 1033 … … 918 1037 919 1038 IF (o_od550aer%flag(iff)<=lev_files(iff)) THEN 920 CALL histwrite_phy(nid_files(iff),o_od550aer%name,itau_w, 1039 CALL histwrite_phy(nid_files(iff), 1040 $clef_stations(iff), 1041 $o_od550aer%name,itau_w, 921 1042 $ od550aer) 922 1043 ENDIF 923 1044 IF (o_od865aer%flag(iff)<=lev_files(iff)) THEN 924 CALL histwrite_phy(nid_files(iff),o_od865aer%name,itau_w, 1045 CALL histwrite_phy(nid_files(iff), 1046 $clef_stations(iff), 1047 $o_od865aer%name,itau_w, 925 1048 $ od865aer) 926 1049 ENDIF 927 1050 IF (o_absvisaer%flag(iff)<=lev_files(iff)) THEN 928 CALL histwrite_phy(nid_files(iff),o_absvisaer%name,itau_w, 1051 CALL histwrite_phy(nid_files(iff), 1052 $clef_stations(iff), 1053 $o_absvisaer%name,itau_w, 929 1054 $ absvisaer) 930 1055 ENDIF 931 1056 IF (o_od550lt1aer%flag(iff)<=lev_files(iff)) THEN 932 CALL histwrite_phy(nid_files(iff),o_od550lt1aer%name,itau_w, 1057 CALL histwrite_phy(nid_files(iff), 1058 $clef_stations(iff), 1059 $o_od550lt1aer%name,itau_w, 933 1060 $ od550lt1aer) 934 1061 ENDIF 935 1062 936 1063 IF (o_sconcso4%flag(iff)<=lev_files(iff)) THEN 937 CALL histwrite_phy(nid_files(iff),o_sconcso4%name,itau_w, 1064 CALL histwrite_phy(nid_files(iff), 1065 $clef_stations(iff), 1066 $o_sconcso4%name,itau_w, 938 1067 $ sconcso4) 939 1068 ENDIF 940 1069 IF (o_sconcoa%flag(iff)<=lev_files(iff)) THEN 941 CALL histwrite_phy(nid_files(iff),o_sconcoa%name,itau_w, 1070 CALL histwrite_phy(nid_files(iff), 1071 $clef_stations(iff), 1072 $o_sconcoa%name,itau_w, 942 1073 $ sconcoa) 943 1074 ENDIF 944 1075 IF (o_sconcbc%flag(iff)<=lev_files(iff)) THEN 945 CALL histwrite_phy(nid_files(iff),o_sconcbc%name,itau_w, 1076 CALL histwrite_phy(nid_files(iff), 1077 $clef_stations(iff), 1078 $o_sconcbc%name,itau_w, 946 1079 $ sconcbc) 947 1080 ENDIF 948 1081 IF (o_sconcss%flag(iff)<=lev_files(iff)) THEN 949 CALL histwrite_phy(nid_files(iff),o_sconcss%name,itau_w, 1082 CALL histwrite_phy(nid_files(iff), 1083 $clef_stations(iff), 1084 $o_sconcss%name,itau_w, 950 1085 $ sconcss) 951 1086 ENDIF 952 1087 IF (o_sconcdust%flag(iff)<=lev_files(iff)) THEN 953 CALL histwrite_phy(nid_files(iff),o_sconcdust%name,itau_w, 1088 CALL histwrite_phy(nid_files(iff), 1089 $clef_stations(iff), 1090 $o_sconcdust%name,itau_w, 954 1091 $ sconcdust) 955 1092 ENDIF 956 1093 957 1094 IF (o_concso4%flag(iff)<=lev_files(iff)) THEN 958 CALL histwrite_phy(nid_files(iff),o_concso4%name,itau_w, 1095 CALL histwrite_phy(nid_files(iff), 1096 $clef_stations(iff), 1097 $o_concso4%name,itau_w, 959 1098 $ concso4) 960 1099 ENDIF 961 1100 IF (o_concoa%flag(iff)<=lev_files(iff)) THEN 962 CALL histwrite_phy(nid_files(iff),o_concoa%name,itau_w, 1101 CALL histwrite_phy(nid_files(iff), 1102 $clef_stations(iff), 1103 $o_concoa%name,itau_w, 963 1104 $ concoa) 964 1105 ENDIF 965 1106 IF (o_concbc%flag(iff)<=lev_files(iff)) THEN 966 CALL histwrite_phy(nid_files(iff),o_concbc%name,itau_w, 1107 CALL histwrite_phy(nid_files(iff), 1108 $clef_stations(iff), 1109 $o_concbc%name,itau_w, 967 1110 $ concbc) 968 1111 ENDIF 969 1112 IF (o_concss%flag(iff)<=lev_files(iff)) THEN 970 CALL histwrite_phy(nid_files(iff),o_concss%name,itau_w, 1113 CALL histwrite_phy(nid_files(iff), 1114 $clef_stations(iff), 1115 $o_concss%name,itau_w, 971 1116 $ concss) 972 1117 ENDIF 973 1118 IF (o_concdust%flag(iff)<=lev_files(iff)) THEN 974 CALL histwrite_phy(nid_files(iff),o_concdust%name,itau_w, 1119 CALL histwrite_phy(nid_files(iff), 1120 $clef_stations(iff), 1121 $o_concdust%name,itau_w, 975 1122 $ concdust) 976 1123 ENDIF 977 1124 978 1125 IF (o_loadso4%flag(iff)<=lev_files(iff)) THEN 979 CALL histwrite_phy(nid_files(iff),o_loadso4%name,itau_w, 1126 CALL histwrite_phy(nid_files(iff), 1127 $clef_stations(iff), 1128 $o_loadso4%name,itau_w, 980 1129 $ loadso4) 981 1130 ENDIF 982 1131 IF (o_loadoa%flag(iff)<=lev_files(iff)) THEN 983 CALL histwrite_phy(nid_files(iff),o_loadoa%name,itau_w, 1132 CALL histwrite_phy(nid_files(iff), 1133 $clef_stations(iff), 1134 $o_loadoa%name,itau_w, 984 1135 $ loadoa) 985 1136 ENDIF 986 1137 IF (o_loadbc%flag(iff)<=lev_files(iff)) THEN 987 CALL histwrite_phy(nid_files(iff),o_loadbc%name,itau_w, 1138 CALL histwrite_phy(nid_files(iff), 1139 $clef_stations(iff), 1140 $o_loadbc%name,itau_w, 988 1141 $ loadbc) 989 1142 ENDIF 990 1143 IF (o_loadss%flag(iff)<=lev_files(iff)) THEN 991 CALL histwrite_phy(nid_files(iff),o_loadss%name,itau_w, 1144 CALL histwrite_phy(nid_files(iff), 1145 $clef_stations(iff), 1146 $o_loadss%name,itau_w, 992 1147 $ loadss) 993 1148 ENDIF 994 1149 IF (o_loaddust%flag(iff)<=lev_files(iff)) THEN 995 CALL histwrite_phy(nid_files(iff),o_loaddust%name,itau_w, 1150 CALL histwrite_phy(nid_files(iff), 1151 $clef_stations(iff), 1152 $o_loaddust%name,itau_w, 996 1153 $ loaddust) 997 1154 ENDIF … … 1000 1157 IF (o_tausumaero(naero)%flag(iff)<=lev_files(iff)) THEN 1001 1158 CALL histwrite_phy(nid_files(iff), 1159 $clef_stations(iff), 1002 1160 $ o_tausumaero(naero)%name,itau_w, 1003 1161 $ tausum_aero(:,2,naero) ) … … 1009 1167 IF (ok_ade) THEN 1010 1168 IF (o_topswad%flag(iff)<=lev_files(iff)) THEN 1011 CALL histwrite_phy(nid_files(iff),o_topswad%name,itau_w, 1169 CALL histwrite_phy(nid_files(iff), 1170 $clef_stations(iff), 1171 $o_topswad%name,itau_w, 1012 1172 $ topswad_aero) 1013 1173 ENDIF 1014 1174 IF (o_solswad%flag(iff)<=lev_files(iff)) THEN 1015 CALL histwrite_phy(nid_files(iff),o_solswad%name,itau_w, 1175 CALL histwrite_phy(nid_files(iff), 1176 $clef_stations(iff), 1177 $o_solswad%name,itau_w, 1016 1178 $ solswad_aero) 1017 1179 ENDIF … … 1020 1182 if (new_aod) then 1021 1183 IF (o_swtoaas_nat%flag(iff)<=lev_files(iff)) THEN 1022 CALL histwrite_phy(nid_files(iff),o_swtoaas_nat%name,itau_w, 1184 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1185 $o_swtoaas_nat%name,itau_w, 1023 1186 $ topsw_aero(:,1)) 1024 1187 ENDIF 1025 1188 1026 1189 IF (o_swsrfas_nat%flag(iff)<=lev_files(iff)) THEN 1027 CALL histwrite_phy(nid_files(iff),o_swsrfas_nat%name,itau_w, 1190 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1191 $o_swsrfas_nat%name,itau_w, 1028 1192 $ solsw_aero(:,1)) 1029 1193 ENDIF 1030 1194 1031 1195 IF (o_swtoacs_nat%flag(iff)<=lev_files(iff)) THEN 1032 CALL histwrite_phy(nid_files(iff),o_swtoacs_nat%name,itau_w, 1196 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1197 $o_swtoacs_nat%name,itau_w, 1033 1198 $ topsw0_aero(:,1)) 1034 1199 ENDIF 1035 1200 1036 1201 IF (o_swsrfcs_nat%flag(iff)<=lev_files(iff)) THEN 1037 CALL histwrite_phy(nid_files(iff),o_swsrfcs_nat%name,itau_w, 1202 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1203 $o_swsrfcs_nat%name,itau_w, 1038 1204 $ solsw0_aero(:,1)) 1039 1205 ENDIF … … 1041 1207 !ant 1042 1208 IF (o_swtoaas_ant%flag(iff)<=lev_files(iff)) THEN 1043 CALL histwrite_phy(nid_files(iff),o_swtoaas_ant%name,itau_w, 1209 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1210 $o_swtoaas_ant%name,itau_w, 1044 1211 $ topsw_aero(:,2)) 1045 1212 ENDIF 1046 1213 1047 1214 IF (o_swsrfas_ant%flag(iff)<=lev_files(iff)) THEN 1048 CALL histwrite_phy(nid_files(iff),o_swsrfas_ant%name,itau_w, 1215 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1216 $o_swsrfas_ant%name,itau_w, 1049 1217 $ solsw_aero(:,2)) 1050 1218 ENDIF 1051 1219 1052 1220 IF (o_swtoacs_ant%flag(iff)<=lev_files(iff)) THEN 1053 CALL histwrite_phy(nid_files(iff),o_swtoacs_ant%name,itau_w, 1221 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1222 $o_swtoacs_ant%name,itau_w, 1054 1223 $ topsw0_aero(:,2)) 1055 1224 ENDIF 1056 1225 1057 1226 IF (o_swsrfcs_ant%flag(iff)<=lev_files(iff)) THEN 1058 CALL histwrite_phy(nid_files(iff),o_swsrfcs_ant%name,itau_w, 1227 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1228 $o_swsrfcs_ant%name,itau_w, 1059 1229 $ solsw0_aero(:,2)) 1060 1230 ENDIF … … 1064 1234 if (.not. aerosol_couple) then 1065 1235 IF (o_swtoacf_nat%flag(iff)<=lev_files(iff)) THEN 1066 CALL histwrite_phy(nid_files(iff),o_swtoacf_nat%name,itau_w, 1236 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1237 $o_swtoacf_nat%name,itau_w, 1067 1238 $ topswcf_aero(:,1)) 1068 1239 ENDIF 1069 1240 1070 1241 IF (o_swsrfcf_nat%flag(iff)<=lev_files(iff)) THEN 1071 CALL histwrite_phy(nid_files(iff),o_swsrfcf_nat%name,itau_w, 1242 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1243 $o_swsrfcf_nat%name,itau_w, 1072 1244 $ solswcf_aero(:,1)) 1073 1245 ENDIF 1074 1246 1075 1247 IF (o_swtoacf_ant%flag(iff)<=lev_files(iff)) THEN 1076 CALL histwrite_phy(nid_files(iff),o_swtoacf_ant%name,itau_w, 1248 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1249 $o_swtoacf_ant%name,itau_w, 1077 1250 $ topswcf_aero(:,2)) 1078 1251 ENDIF 1079 1252 1080 1253 IF (o_swsrfcf_ant%flag(iff)<=lev_files(iff)) THEN 1081 CALL histwrite_phy(nid_files(iff),o_swsrfcf_ant%name,itau_w, 1254 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1255 $o_swsrfcf_ant%name,itau_w, 1082 1256 $ solswcf_aero(:,2)) 1083 1257 ENDIF 1084 1258 1085 1259 IF (o_swtoacf_zero%flag(iff)<=lev_files(iff)) THEN 1086 CALL histwrite_phy(nid_files(iff),o_swtoacf_zero%name,itau_w, 1260 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1261 $o_swtoacf_zero%name,itau_w, 1087 1262 $ topswcf_aero(:,3)) 1088 1263 ENDIF 1089 1264 1090 1265 IF (o_swsrfcf_zero%flag(iff)<=lev_files(iff)) THEN 1091 CALL histwrite_phy(nid_files(iff),o_swsrfcf_zero%name,itau_w, 1266 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1267 $o_swsrfcf_zero%name,itau_w, 1092 1268 $ solswcf_aero(:,3)) 1093 1269 ENDIF … … 1101 1277 IF (ok_aie) THEN 1102 1278 IF (o_topswai%flag(iff)<=lev_files(iff)) THEN 1103 CALL histwrite_phy(nid_files(iff),o_topswai%name,itau_w, 1279 CALL histwrite_phy(nid_files(iff), 1280 $clef_stations(iff), 1281 $o_topswai%name,itau_w, 1104 1282 $ topswai_aero) 1105 1283 ENDIF 1106 1284 IF (o_solswai%flag(iff)<=lev_files(iff)) THEN 1107 CALL histwrite_phy(nid_files(iff),o_solswai%name,itau_w, 1285 CALL histwrite_phy(nid_files(iff), 1286 $clef_stations(iff), 1287 $o_solswai%name,itau_w, 1108 1288 $ solswai_aero) 1109 1289 ENDIF 1110 1290 IF (o_scdnc%flag(iff)<=lev_files(iff)) THEN 1111 CALL histwrite_phy(nid_files(iff),o_scdnc%name,itau_w, 1291 CALL histwrite_phy(nid_files(iff), 1292 $clef_stations(iff), 1293 $o_scdnc%name,itau_w, 1112 1294 $ scdnc) 1113 1295 ENDIF 1114 1296 IF (o_cldncl%flag(iff)<=lev_files(iff)) THEN 1115 CALL histwrite_phy(nid_files(iff),o_cldncl%name,itau_w, 1297 CALL histwrite_phy(nid_files(iff), 1298 $clef_stations(iff), 1299 $o_cldncl%name,itau_w, 1116 1300 $ cldncl) 1117 1301 ENDIF 1118 IF (o_reffclws%flag(iff)<=lev_files(iff)) THEN 1119 CALL histwrite_phy(nid_files(iff),o_reffclws%name,itau_w, 1302 IF (o_reffclws%flag(iff)<=lev_files(iff)) THEN 1303 CALL histwrite_phy(nid_files(iff), 1304 $clef_stations(iff), 1305 $o_reffclws%name,itau_w, 1120 1306 $ reffclws) 1121 ENDIF 1122 IF (o_reffclwc%flag(iff)<=lev_files(iff)) THEN 1123 CALL histwrite_phy(nid_files(iff),o_reffclwc%name,itau_w, 1307 ENDIF 1308 IF (o_reffclwc%flag(iff)<=lev_files(iff)) THEN 1309 CALL histwrite_phy(nid_files(iff), 1310 $clef_stations(iff), 1311 $o_reffclwc%name,itau_w, 1124 1312 $ reffclwc) 1125 1313 ENDIF 1126 1314 IF (o_cldnvi%flag(iff)<=lev_files(iff)) THEN 1127 CALL histwrite_phy(nid_files(iff),o_cldnvi%name,itau_w, 1315 CALL histwrite_phy(nid_files(iff), 1316 $clef_stations(iff), 1317 $o_cldnvi%name,itau_w, 1128 1318 $ cldnvi) 1129 1319 ENDIF 1130 1320 IF (o_lcc%flag(iff)<=lev_files(iff)) THEN 1131 CALL histwrite_phy(nid_files(iff),o_lcc%name,itau_w, 1321 CALL histwrite_phy(nid_files(iff), 1322 $clef_stations(iff), 1323 $o_lcc%name,itau_w, 1132 1324 $ lcc) 1133 1325 ENDIF 1134 1326 IF (o_lcc3d%flag(iff)<=lev_files(iff)) THEN 1135 CALL histwrite_phy(nid_files(iff),o_lcc3d%name,itau_w, 1327 CALL histwrite_phy(nid_files(iff), 1328 $clef_stations(iff), 1329 $o_lcc3d%name,itau_w, 1136 1330 $ lcc3d) 1137 1331 ENDIF 1138 1332 IF (o_lcc3dcon%flag(iff)<=lev_files(iff)) THEN 1139 CALL histwrite_phy(nid_files(iff),o_lcc3dcon%name,itau_w, 1333 CALL histwrite_phy(nid_files(iff), 1334 $clef_stations(iff), 1335 $o_lcc3dcon%name,itau_w, 1140 1336 $ lcc3dcon) 1141 1337 ENDIF 1142 1338 IF (o_lcc3dstra%flag(iff)<=lev_files(iff)) THEN 1143 CALL histwrite_phy(nid_files(iff),o_lcc3dstra%name,itau_w, 1339 CALL histwrite_phy(nid_files(iff), 1340 $clef_stations(iff), 1341 $o_lcc3dstra%name,itau_w, 1144 1342 $ lcc3dstra) 1145 1343 ENDIF 1146 1344 IF (o_reffclwtop%flag(iff)<=lev_files(iff)) THEN 1147 CALL histwrite_phy(nid_files(iff),o_reffclwtop%name,itau_w, 1345 CALL histwrite_phy(nid_files(iff), 1346 $clef_stations(iff), 1347 $o_reffclwtop%name,itau_w, 1148 1348 $ reffclwtop) 1149 1349 ENDIF … … 1153 1353 IF (ok_ade .OR. ok_aie) then 1154 1354 IF (o_ec550aer%flag(iff)<=lev_files(iff)) THEN 1155 CALL histwrite_phy(nid_files(iff),o_ec550aer%name,itau_w, 1355 CALL histwrite_phy(nid_files(iff), 1356 $clef_stations(iff), 1357 $o_ec550aer%name,itau_w, 1156 1358 & ec550aer) 1157 1359 ENDIF … … 1159 1361 1160 1362 IF (o_lwcon%flag(iff)<=lev_files(iff)) THEN 1161 CALL histwrite_phy(nid_files(iff),o_lwcon%name,itau_w,flwc) 1363 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1364 $o_lwcon%name,itau_w,flwc) 1162 1365 ENDIF 1163 1366 1164 1367 IF (o_iwcon%flag(iff)<=lev_files(iff)) THEN 1165 CALL histwrite_phy(nid_files(iff),o_iwcon%name,itau_w,fiwc) 1368 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1369 $o_iwcon%name,itau_w,fiwc) 1166 1370 ENDIF 1167 1371 1168 1372 IF (o_temp%flag(iff)<=lev_files(iff)) THEN 1169 CALL histwrite_phy(nid_files(iff),o_temp%name,itau_w,t_seri) 1373 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1374 $o_temp%name,itau_w,t_seri) 1170 1375 ENDIF 1171 1376 1172 1377 IF (o_theta%flag(iff)<=lev_files(iff)) THEN 1173 CALL histwrite_phy(nid_files(iff),o_theta%name,itau_w,theta) 1378 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1379 $o_theta%name,itau_w,theta) 1174 1380 ENDIF 1175 1381 1176 1382 IF (o_ovapinit%flag(iff)<=lev_files(iff)) THEN 1177 CALL histwrite_phy(nid_files(iff),o_ovapinit%name,itau_w, 1383 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1384 $o_ovapinit%name,itau_w, 1178 1385 $ qx(:,:,ivap)) 1179 1386 ENDIF 1180 1387 1181 1388 IF (o_ovap%flag(iff)<=lev_files(iff)) THEN 1182 CALL histwrite_phy(nid_files(iff), 1389 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1183 1390 $ o_ovap%name,itau_w,q_seri) 1184 1391 ENDIF 1185 1392 1186 1393 IF (o_geop%flag(iff)<=lev_files(iff)) THEN 1187 CALL histwrite_phy(nid_files(iff),o_geop%name,itau_w,zphi) 1394 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1395 $o_geop%name,itau_w,zphi) 1188 1396 ENDIF 1189 1397 1190 1398 IF (o_vitu%flag(iff)<=lev_files(iff)) THEN 1191 CALL histwrite_phy(nid_files(iff),o_vitu%name,itau_w,u_seri) 1399 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1400 $o_vitu%name,itau_w,u_seri) 1192 1401 ENDIF 1193 1402 1194 1403 IF (o_vitv%flag(iff)<=lev_files(iff)) THEN 1195 CALL histwrite_phy(nid_files(iff),o_vitv%name,itau_w,v_seri) 1404 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1405 $o_vitv%name,itau_w,v_seri) 1196 1406 ENDIF 1197 1407 1198 1408 IF (o_vitw%flag(iff)<=lev_files(iff)) THEN 1199 CALL histwrite_phy(nid_files(iff),o_vitw%name,itau_w,omega) 1409 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1410 $o_vitw%name,itau_w,omega) 1200 1411 ENDIF 1201 1412 1202 1413 IF (o_pres%flag(iff)<=lev_files(iff)) THEN 1203 CALL histwrite_phy(nid_files(iff),o_pres%name,itau_w,pplay) 1414 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1415 $o_pres%name,itau_w,pplay) 1204 1416 ENDIF 1205 1417 1206 1418 IF (o_paprs%flag(iff)<=lev_files(iff)) THEN 1207 CALL histwrite_phy(nid_files(iff),o_paprs%name, 1419 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1420 $o_paprs%name, 1208 1421 s itau_w,paprs(:,1:klev)) 1209 1422 ENDIF 1210 1423 1424 IF (o_zfull%flag(iff)<=lev_files(iff)) THEN 1425 DO i=1, klon 1426 zx_tmp_fi3d1(i,1)= pphis(i)/RG 1427 !020611 zx_tmp_fi3d(i,1)= pphis(i)/RG 1428 ENDDO 1429 DO k=1, klev 1430 !020611 DO k=1, klev-1 1431 DO i=1, klon 1432 !020611 zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - (t_seri(i,k) *RD * 1433 zx_tmp_fi3d1(i,k+1)= zx_tmp_fi3d1(i,k) - (t_seri(i,k) *RD * 1434 $ (paprs(i,k+1) - paprs(i,k))) / ( pplay(i,k) * RG ) 1435 ENDDO 1436 ENDDO 1437 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1438 $o_zfull%name,itau_w,zx_tmp_fi3d1(:,2:klevp1)) 1439 !020611 $o_zfull%name,itau_w,zx_tmp_fi3d) 1440 ENDIF 1441 1442 IF (o_zhalf%flag(iff)<=lev_files(iff)) THEN 1443 DO i=1, klon 1444 zx_tmp_fi3d(i,1)= pphis(i)/RG - ( 1445 $ (t_seri(i,1)+zxtsol(i))/2. *RD * 1446 $ (pplay(i,1) - paprs(i,1)))/( (paprs(i,1)+pplay(i,1))/2. * RG) 1447 ENDDO 1448 DO k=1, klev-1 1449 DO i=1, klon 1450 zx_tmp_fi3d(i,k+1)= zx_tmp_fi3d(i,k) - ( 1451 $ (t_seri(i,k)+t_seri(i,k+1))/2. *RD * 1452 $ (pplay(i,k+1) - pplay(i,k))) / ( paprs(i,k) * RG ) 1453 ENDDO 1454 ENDDO 1455 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1456 $o_zhalf%name,itau_w,zx_tmp_fi3d) 1457 ENDIF 1458 1211 1459 IF (o_rneb%flag(iff)<=lev_files(iff)) THEN 1212 CALL histwrite_phy(nid_files(iff),o_rneb%name,itau_w,cldfra) 1460 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1461 $o_rneb%name,itau_w,cldfra) 1213 1462 ENDIF 1214 1463 1215 1464 IF (o_rnebcon%flag(iff)<=lev_files(iff)) THEN 1216 CALL histwrite_phy(nid_files(iff),o_rnebcon%name,itau_w,rnebcon) 1465 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1466 $o_rnebcon%name,itau_w,rnebcon) 1217 1467 ENDIF 1218 1468 1219 1469 IF (o_rhum%flag(iff)<=lev_files(iff)) THEN 1220 CALL histwrite_phy(nid_files(iff),o_rhum%name,itau_w,zx_rh) 1470 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1471 $o_rhum%name,itau_w,zx_rh) 1221 1472 ENDIF 1222 1473 1223 1474 IF (o_ozone%flag(iff)<=lev_files(iff)) THEN 1224 CALL histwrite_phy(nid_files(iff), o_ozone%name, itau_w, 1475 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1476 $o_ozone%name, itau_w, 1225 1477 $ wo(:, :, 1) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1226 1478 ENDIF … … 1228 1480 IF (o_ozone_light%flag(iff)<=lev_files(iff) .and. 1229 1481 $ read_climoz == 2) THEN 1230 CALL histwrite_phy(nid_files(iff), o_ozone_light%name, itau_w, 1482 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1483 $o_ozone_light%name, itau_w, 1231 1484 $ wo(:, :, 2) * dobson_u * 1e3 / zmasse / rmo3 * rmd) 1232 1485 ENDIF 1233 1486 1234 1487 IF (o_dtphy%flag(iff)<=lev_files(iff)) THEN 1235 CALL histwrite_phy(nid_files(iff),o_dtphy%name,itau_w,d_t) 1488 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1489 $o_dtphy%name,itau_w,d_t) 1236 1490 ENDIF 1237 1491 1238 1492 IF (o_dqphy%flag(iff)<=lev_files(iff)) THEN 1239 CALL histwrite_phy(nid_files(iff), 1493 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1240 1494 s o_dqphy%name,itau_w, d_qx(:,:,ivap)) 1241 1495 ENDIF … … 1244 1498 IF (o_albe_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 1245 1499 zx_tmp_fi2d(1 : klon) = falb1( 1 : klon, nsrf) 1246 CALL histwrite_phy(nid_files(iff), 1500 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1247 1501 s o_albe_srf(nsrf)%name,itau_w, 1248 1502 $ zx_tmp_fi2d) … … 1251 1505 IF (o_rugs_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 1252 1506 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 1253 CALL histwrite_phy(nid_files(iff), 1507 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1254 1508 s o_rugs_srf(nsrf)%name,itau_w, 1255 1509 $ zx_tmp_fi2d) … … 1258 1512 IF (o_ages_srf(nsrf)%flag(iff)<=lev_files(iff)) THEN 1259 1513 zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf) 1260 CALL histwrite_phy(nid_files(iff), 1514 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1261 1515 s o_ages_srf(nsrf)%name,itau_w 1262 1516 $ ,zx_tmp_fi2d) … … 1265 1519 1266 1520 IF (o_alb1%flag(iff)<=lev_files(iff)) THEN 1267 CALL histwrite_phy(nid_files(iff),o_alb1%name,itau_w,albsol1) 1521 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1522 $o_alb1%name,itau_w,albsol1) 1268 1523 ENDIF 1269 1524 1270 1525 IF (o_alb2%flag(iff)<=lev_files(iff)) THEN 1271 CALL histwrite_phy(nid_files(iff),o_alb2%name,itau_w,albsol2) 1526 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1527 $o_alb2%name,itau_w,albsol2) 1272 1528 ENDIF 1273 1529 … … 1282 1538 enddo 1283 1539 IF (o_tke%flag(iff)<=lev_files(iff)) THEN 1284 CALL histwrite_phy(nid_files(iff),o_tke%name,itau_w,zx_tmp_fi3d) 1285 ENDIF 1286 1540 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1541 $o_tke%name,itau_w,zx_tmp_fi3d) 1542 ENDIF 1543 1544 IF (.NOT.clef_stations(iff)) THEN 1287 1545 IF (o_tke_max%flag(iff)<=lev_files(iff)) THEN 1288 CALL histwrite_phy(nid_files(iff), 1546 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1289 1547 s o_tke_max%name,itau_w,zx_tmp_fi3d) 1290 1548 ENDIF 1549 ENDIF 1291 1550 endif 1292 1551 1293 1552 IF (o_kz%flag(iff)<=lev_files(iff)) THEN 1294 CALL histwrite_phy(nid_files(iff),o_kz%name,itau_w,coefh) 1295 ENDIF 1296 1553 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1554 $o_kz%name,itau_w,coefh) 1555 ENDIF 1556 1557 IF (.NOT.clef_stations(iff)) THEN 1297 1558 IF (o_kz_max%flag(iff)<=lev_files(iff)) THEN 1298 CALL histwrite_phy(nid_files(iff),o_kz_max%name,itau_w,coefh) 1299 ENDIF 1559 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1560 $o_kz_max%name,itau_w,coefh) 1561 ENDIF 1562 ENDIF 1300 1563 1301 1564 IF (o_clwcon%flag(iff)<=lev_files(iff)) THEN 1302 CALL histwrite_phy(nid_files(iff),o_clwcon%name,itau_w,clwcon0) 1565 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1566 $o_clwcon%name,itau_w,clwcon0) 1303 1567 ENDIF 1304 1568 1305 1569 IF (o_dtdyn%flag(iff)<=lev_files(iff)) THEN 1306 CALL histwrite_phy(nid_files(iff),o_dtdyn%name,itau_w,d_t_dyn) 1570 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1571 $o_dtdyn%name,itau_w,d_t_dyn) 1307 1572 ENDIF 1308 1573 1309 1574 IF (o_dqdyn%flag(iff)<=lev_files(iff)) THEN 1310 CALL histwrite_phy(nid_files(iff),o_dqdyn%name,itau_w,d_q_dyn) 1575 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1576 $o_dqdyn%name,itau_w,d_q_dyn) 1311 1577 ENDIF 1312 1578 1313 1579 IF (o_dudyn%flag(iff)<=lev_files(iff)) THEN 1314 CALL histwrite_phy(nid_files(iff),o_dudyn%name,itau_w,d_u_dyn) 1580 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1581 $o_dudyn%name,itau_w,d_u_dyn) 1315 1582 ENDIF 1316 1583 1317 1584 IF (o_dvdyn%flag(iff)<=lev_files(iff)) THEN 1318 CALL histwrite_phy(nid_files(iff),o_dvdyn%name,itau_w,d_v_dyn) 1585 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1586 $o_dvdyn%name,itau_w,d_v_dyn) 1319 1587 ENDIF 1320 1588 1321 1589 IF (o_dtcon%flag(iff)<=lev_files(iff)) THEN 1322 1590 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys 1323 CALL histwrite_phy(nid_files(iff),o_dtcon%name,itau_w,zx_tmp_fi3d) 1324 ENDIF 1591 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1592 $o_dtcon%name,itau_w,zx_tmp_fi3d) 1593 ENDIF 1594 1595 if(iflag_thermals.eq.1)then 1596 IF (o_tntc%flag(iff)<=lev_files(iff)) THEN 1597 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + 1598 $ d_t_ajsb(1:klon,1:klev)/pdtphys 1599 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1600 $o_tntc%name,itau_w,zx_tmp_fi3d) 1601 ENDIF 1602 else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then 1603 IF (o_tntc%flag(iff)<=lev_files(iff)) THEN 1604 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + 1605 $ d_t_ajs(1:klon,1:klev)/pdtphys + 1606 $ d_t_wake(1:klon,1:klev)/pdtphys 1607 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1608 $o_tntc%name,itau_w,zx_tmp_fi3d) 1609 ENDIF 1610 endif 1325 1611 1326 1612 IF (o_ducon%flag(iff)<=lev_files(iff)) THEN 1327 1613 zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys 1328 CALL histwrite_phy(nid_files(iff),o_ducon%name,itau_w,zx_tmp_fi3d) 1614 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1615 $o_ducon%name,itau_w,zx_tmp_fi3d) 1329 1616 ENDIF 1330 1617 1331 1618 IF (o_dqcon%flag(iff)<=lev_files(iff)) THEN 1332 1619 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 1333 CALL histwrite_phy(nid_files(iff),o_dqcon%name,itau_w,zx_tmp_fi3d) 1334 ENDIF 1620 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1621 $o_dqcon%name,itau_w,zx_tmp_fi3d) 1622 ENDIF 1623 1624 if(iflag_thermals.eq.1)then 1625 IF (o_tnhusc%flag(iff)<=lev_files(iff)) THEN 1626 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 1627 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1628 $o_tnhusc%name,itau_w,zx_tmp_fi3d) 1629 ENDIF 1630 else if(iflag_thermals.gt.1.and.iflag_wake.EQ.1)then 1631 IF (o_tnhusc%flag(iff)<=lev_files(iff)) THEN 1632 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + 1633 $ d_q_ajs(1:klon,1:klev)/pdtphys + 1634 $ d_q_wake(1:klon,1:klev)/pdtphys 1635 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1636 $o_tnhusc%name,itau_w,zx_tmp_fi3d) 1637 ENDIF 1638 endif 1335 1639 1336 1640 IF (o_dtlsc%flag(iff)<=lev_files(iff)) THEN 1337 1641 zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys 1338 CALL histwrite_phy(nid_files(iff),o_dtlsc%name,itau_w,zx_tmp_fi3d) 1642 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1643 $o_dtlsc%name,itau_w,zx_tmp_fi3d) 1339 1644 ENDIF 1340 1645 … … 1342 1647 zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ 1343 1648 $ d_t_eva(1:klon,1:klev))/pdtphys 1344 CALL histwrite_phy(nid_files(iff), 1649 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1345 1650 s o_dtlschr%name,itau_w,zx_tmp_fi3d) 1346 1651 ENDIF … … 1348 1653 IF (o_dqlsc%flag(iff)<=lev_files(iff)) THEN 1349 1654 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys 1350 CALL histwrite_phy(nid_files(iff),o_dqlsc%name,itau_w,zx_tmp_fi3d) 1655 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1656 $o_dqlsc%name,itau_w,zx_tmp_fi3d) 1351 1657 ENDIF 1352 1658 1353 1659 IF (o_dtvdf%flag(iff)<=lev_files(iff)) THEN 1354 1660 zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys 1355 CALL histwrite_phy(nid_files(iff),o_dtvdf%name,itau_w,zx_tmp_fi3d) 1661 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1662 $o_dtvdf%name,itau_w,zx_tmp_fi3d) 1356 1663 ENDIF 1357 1664 1358 1665 IF (o_dqvdf%flag(iff)<=lev_files(iff)) THEN 1359 1666 zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys 1360 CALL histwrite_phy(nid_files(iff),o_dqvdf%name,itau_w,zx_tmp_fi3d) 1667 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1668 $o_dqvdf%name,itau_w,zx_tmp_fi3d) 1361 1669 ENDIF 1362 1670 1363 1671 IF (o_dteva%flag(iff)<=lev_files(iff)) THEN 1364 1672 zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys 1365 CALL histwrite_phy(nid_files(iff),o_dteva%name,itau_w,zx_tmp_fi3d) 1673 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1674 $o_dteva%name,itau_w,zx_tmp_fi3d) 1366 1675 ENDIF 1367 1676 1368 1677 IF (o_dqeva%flag(iff)<=lev_files(iff)) THEN 1369 1678 zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys 1370 CALL histwrite_phy(nid_files(iff),o_dqeva%name,itau_w,zx_tmp_fi3d) 1679 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1680 $o_dqeva%name,itau_w,zx_tmp_fi3d) 1371 1681 ENDIF 1372 1682 … … 1374 1684 zpt_conv = 0. 1375 1685 where (ptconv) zpt_conv = 1. 1376 CALL histwrite_phy(nid_files(iff),o_ptconv%name,itau_w,zpt_conv) 1686 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1687 $o_ptconv%name,itau_w,zpt_conv) 1377 1688 ENDIF 1378 1689 1379 1690 IF (o_ratqs%flag(iff)<=lev_files(iff)) THEN 1380 CALL histwrite_phy(nid_files(iff),o_ratqs%name,itau_w,ratqs) 1691 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1692 $o_ratqs%name,itau_w,ratqs) 1381 1693 ENDIF 1382 1694 1383 1695 IF (o_dtthe%flag(iff)<=lev_files(iff)) THEN 1384 zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys 1385 CALL histwrite_phy(nid_files(iff),o_dtthe%name,itau_w,zx_tmp_fi3d) 1696 zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys - 1697 $ d_t_ajsb(1:klon,1:klev)/pdtphys 1698 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1699 $o_dtthe%name,itau_w,zx_tmp_fi3d) 1386 1700 ENDIF 1387 1701 … … 1390 1704 ! Pour l instant 0 a y reflichir pour les thermiques 1391 1705 zx_tmp_fi2d=0. 1392 CALL histwrite_phy(nid_files(iff),o_ftime_th%name, 1706 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1707 $o_ftime_th%name, 1393 1708 s itau_w,zx_tmp_fi2d) 1394 1709 ENDIF 1395 1710 1396 1711 IF (o_f_th%flag(iff)<=lev_files(iff)) THEN 1397 CALL histwrite_phy(nid_files(iff),o_f_th%name,itau_w,fm_therm) 1712 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1713 $o_f_th%name,itau_w,fm_therm) 1398 1714 ENDIF 1399 1715 1400 1716 IF (o_e_th%flag(iff)<=lev_files(iff)) THEN 1401 CALL histwrite_phy(nid_files(iff),o_e_th%name,itau_w,entr_therm) 1717 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1718 $o_e_th%name,itau_w,entr_therm) 1402 1719 ENDIF 1403 1720 1404 1721 IF (o_w_th%flag(iff)<=lev_files(iff)) THEN 1405 CALL histwrite_phy(nid_files(iff),o_w_th%name,itau_w,zw2) 1722 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1723 $o_w_th%name,itau_w,zw2) 1406 1724 ENDIF 1407 1725 1408 1726 IF (o_q_th%flag(iff)<=lev_files(iff)) THEN 1409 CALL histwrite_phy(nid_files(iff),o_q_th%name,itau_w,zqasc) 1727 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1728 $o_q_th%name,itau_w,zqasc) 1410 1729 ENDIF 1411 1730 1412 1731 IF (o_lambda_th%flag(iff)<=lev_files(iff)) THEN 1413 CALL histwrite_phy(nid_files(iff), 1732 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1414 1733 s o_lambda_th%name,itau_w,lambda_th) 1415 1734 ENDIF 1416 1735 1417 1736 IF (o_a_th%flag(iff)<=lev_files(iff)) THEN 1418 CALL histwrite_phy(nid_files(iff),o_a_th%name,itau_w,fraca) 1737 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1738 $o_a_th%name,itau_w,fraca) 1419 1739 ENDIF 1420 1740 1421 1741 IF (o_d_th%flag(iff)<=lev_files(iff)) THEN 1422 CALL histwrite_phy(nid_files(iff),o_d_th%name,itau_w,detr_therm) 1423 ENDIF 1424 1425 !IM ENDIF !iflag_thermals 1742 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1743 $o_d_th%name,itau_w,detr_therm) 1744 ENDIF 1426 1745 1427 1746 IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN 1428 CALL histwrite_phy(nid_files(iff),o_f0_th%name,itau_w,f0) 1747 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1748 $o_f0_th%name,itau_w,f0) 1429 1749 ENDIF 1430 1750 1431 1751 IF (o_f0_th%flag(iff)<=lev_files(iff)) THEN 1432 CALL histwrite_phy(nid_files(iff),o_zmax_th%name,itau_w,zmax0) 1752 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1753 $o_zmax_th%name,itau_w,zmax0) 1433 1754 ENDIF 1434 1755 1435 1756 IF (o_dqthe%flag(iff)<=lev_files(iff)) THEN 1436 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys 1437 CALL histwrite_phy(nid_files(iff),o_dqthe%name,itau_w,zx_tmp_fi3d) 1757 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - 1758 $ d_q_ajsb(1:klon,1:klev)/pdtphys 1759 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1760 $o_dqthe%name,itau_w,zx_tmp_fi3d) 1438 1761 ENDIF 1439 1762 … … 1442 1765 IF (o_dtajs%flag(iff)<=lev_files(iff)) THEN 1443 1766 zx_tmp_fi3d(1:klon,1:klev)=d_t_ajsb(1:klon,1:klev)/pdtphys 1444 CALL histwrite_phy(nid_files(iff),o_dtajs%name,itau_w,zx_tmp_fi3d) 1767 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1768 $o_dtajs%name,itau_w,zx_tmp_fi3d) 1445 1769 ENDIF 1446 1770 1447 1771 IF (o_dqajs%flag(iff)<=lev_files(iff)) THEN 1448 1772 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajsb(1:klon,1:klev)/pdtphys 1449 CALL histwrite_phy(nid_files(iff),o_dqajs%name,itau_w,zx_tmp_fi3d) 1773 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1774 $o_dqajs%name,itau_w,zx_tmp_fi3d) 1450 1775 ENDIF 1451 1776 1452 1777 IF (o_dtswr%flag(iff)<=lev_files(iff)) THEN 1453 1778 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 1454 CALL histwrite_phy(nid_files(iff),o_dtswr%name,itau_w,zx_tmp_fi3d) 1779 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1780 $o_dtswr%name,itau_w,zx_tmp_fi3d) 1455 1781 ENDIF 1456 1782 1457 1783 IF (o_dtsw0%flag(iff)<=lev_files(iff)) THEN 1458 1784 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY 1459 CALL histwrite_phy(nid_files(iff),o_dtsw0%name,itau_w,zx_tmp_fi3d) 1785 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1786 $o_dtsw0%name,itau_w,zx_tmp_fi3d) 1460 1787 ENDIF 1461 1788 1462 1789 IF (o_dtlwr%flag(iff)<=lev_files(iff)) THEN 1463 1790 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 1464 CALL histwrite_phy(nid_files(iff),o_dtlwr%name,itau_w,zx_tmp_fi3d) 1791 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1792 $o_dtlwr%name,itau_w,zx_tmp_fi3d) 1465 1793 ENDIF 1466 1794 1467 1795 IF (o_dtlw0%flag(iff)<=lev_files(iff)) THEN 1468 1796 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY 1469 CALL histwrite_phy(nid_files(iff),o_dtlw0%name,itau_w,zx_tmp_fi3d) 1797 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1798 $o_dtlw0%name,itau_w,zx_tmp_fi3d) 1470 1799 ENDIF 1471 1800 1472 1801 IF (o_dtec%flag(iff)<=lev_files(iff)) THEN 1473 1802 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 1474 CALL histwrite_phy(nid_files(iff),o_dtec%name,itau_w,zx_tmp_fi3d) 1803 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1804 $o_dtec%name,itau_w,zx_tmp_fi3d) 1475 1805 ENDIF 1476 1806 1477 1807 IF (o_duvdf%flag(iff)<=lev_files(iff)) THEN 1478 1808 zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 1479 CALL histwrite_phy(nid_files(iff),o_duvdf%name,itau_w,zx_tmp_fi3d) 1809 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1810 $o_duvdf%name,itau_w,zx_tmp_fi3d) 1480 1811 ENDIF 1481 1812 1482 1813 IF (o_dvvdf%flag(iff)<=lev_files(iff)) THEN 1483 1814 zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 1484 CALL histwrite_phy(nid_files(iff),o_dvvdf%name,itau_w,zx_tmp_fi3d) 1815 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1816 $o_dvvdf%name,itau_w,zx_tmp_fi3d) 1485 1817 ENDIF 1486 1818 … … 1488 1820 IF (o_duoro%flag(iff)<=lev_files(iff)) THEN 1489 1821 zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys 1490 CALL histwrite_phy(nid_files(iff),o_duoro%name,itau_w,zx_tmp_fi3d) 1822 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1823 $o_duoro%name,itau_w,zx_tmp_fi3d) 1491 1824 ENDIF 1492 1825 1493 1826 IF (o_dvoro%flag(iff)<=lev_files(iff)) THEN 1494 1827 zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 1495 CALL histwrite_phy(nid_files(iff),o_dvoro%name,itau_w,zx_tmp_fi3d) 1828 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1829 $o_dvoro%name,itau_w,zx_tmp_fi3d) 1830 ENDIF 1831 1832 IF (o_dtoro%flag(iff)<=lev_files(iff)) THEN 1833 zx_tmp_fi3d(1:klon,1:klev)=d_t_oro(1:klon,1:klev)/pdtphys 1834 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1835 $o_dtoro%name,itau_w,zx_tmp_fi3d) 1496 1836 ENDIF 1497 1837 ENDIF … … 1500 1840 IF (o_dulif%flag(iff)<=lev_files(iff)) THEN 1501 1841 zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys 1502 CALL histwrite_phy(nid_files(iff),o_dulif%name,itau_w,zx_tmp_fi3d) 1842 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1843 $o_dulif%name,itau_w,zx_tmp_fi3d) 1503 1844 ENDIF 1504 1845 1505 1846 IF (o_dvlif%flag(iff)<=lev_files(iff)) THEN 1506 1847 zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys 1507 CALL histwrite_phy(nid_files(iff),o_dvlif%name,itau_w,zx_tmp_fi3d) 1848 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1849 $o_dvlif%name,itau_w,zx_tmp_fi3d) 1850 ENDIF 1851 1852 IF (o_dtlif%flag(iff)<=lev_files(iff)) THEN 1853 zx_tmp_fi3d(1:klon,1:klev)=d_t_lif(1:klon,1:klev)/pdtphys 1854 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1855 $o_dtlif%name,itau_w,zx_tmp_fi3d) 1508 1856 ENDIF 1509 1857 ENDIF … … 1512 1860 IF (o_duhin%flag(iff)<=lev_files(iff)) THEN 1513 1861 zx_tmp_fi3d(1:klon,1:klev)=d_u_hin(1:klon,1:klev)/pdtphys 1514 CALL histwrite_phy(nid_files(iff),o_duhin%name,itau_w,zx_tmp_fi3d) 1862 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1863 $o_duhin%name,itau_w,zx_tmp_fi3d) 1515 1864 ENDIF 1516 1865 1517 1866 IF (o_dvhin%flag(iff)<=lev_files(iff)) THEN 1518 1867 zx_tmp_fi3d(1:klon,1:klev)=d_v_hin(1:klon,1:klev)/pdtphys 1519 CALL histwrite_phy(nid_files(iff),o_dvhin%name,itau_w,zx_tmp_fi3d) 1520 ENDIF 1521 ENDIF 1868 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1869 $o_dvhin%name,itau_w,zx_tmp_fi3d) 1870 ENDIF 1871 1872 IF (o_dthin%flag(iff)<=lev_files(iff)) THEN 1873 zx_tmp_fi3d(1:klon,1:klev)=d_t_hin(1:klon,1:klev)/pdtphys 1874 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1875 $o_dthin%name,itau_w,zx_tmp_fi3d) 1876 ENDIF 1877 ENDIF 1878 1879 IF (o_rsu%flag(iff)<=lev_files(iff)) THEN 1880 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1881 $o_rsu%name,itau_w,swup) 1882 ENDIF 1883 IF (o_rsd%flag(iff)<=lev_files(iff)) THEN 1884 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1885 $o_rsd%name,itau_w,swdn) 1886 ENDIF 1887 IF (o_rlu%flag(iff)<=lev_files(iff)) THEN 1888 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1889 $o_rlu%name,itau_w,lwup) 1890 ENDIF 1891 IF (o_rld%flag(iff)<=lev_files(iff)) THEN 1892 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1893 $o_rld%name,itau_w,lwdn) 1894 ENDIF 1895 1896 IF (o_rsucs%flag(iff)<=lev_files(iff)) THEN 1897 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1898 $o_rsucs%name,itau_w,swup0) 1899 ENDIF 1900 IF (o_rsdcs%flag(iff)<=lev_files(iff)) THEN 1901 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1902 $o_rsdcs%name,itau_w,swdn0) 1903 ENDIF 1904 IF (o_rlucs%flag(iff)<=lev_files(iff)) THEN 1905 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1906 $o_rlucs%name,itau_w,lwup0) 1907 ENDIF 1908 IF (o_rldcs%flag(iff)<=lev_files(iff)) THEN 1909 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1910 $o_rldcs%name,itau_w,lwdn0) 1911 ENDIF 1912 1913 IF (o_tnt%flag(iff)<=lev_files(iff)) THEN 1914 zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ 1915 $d_t_dyn(1:klon,1:klev) 1916 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1917 $o_tnt%name,itau_w,zx_tmp_fi3d) 1918 ENDIF 1919 1920 IF (o_tntr%flag(iff)<=lev_files(iff)) THEN 1921 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY - 1922 $cool(1:klon,1:klev)/RDAY 1923 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1924 $o_tntr%name,itau_w,zx_tmp_fi3d) 1925 ENDIF 1926 1927 IF (o_tntscpbl%flag(iff)<=lev_files(iff)) THEN 1928 zx_tmp_fi3d(1:klon,1:klev)= (d_t_lsc(1:klon,1:klev)+ 1929 $ d_t_eva(1:klon,1:klev)+ 1930 $ d_t_vdf(1:klon,1:klev))/pdtphys 1931 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1932 $o_tntscpbl%name,itau_w,zx_tmp_fi3d) 1933 ENDIF 1934 1935 IF (o_tnhus%flag(iff)<=lev_files(iff)) THEN 1936 zx_tmp_fi3d(1:klon,1:klev)=d_qx(1:klon,1:klev,ivap)+ 1937 $d_q_dyn(1:klon,1:klev) 1938 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1939 $o_tnhus%name,itau_w,zx_tmp_fi3d) 1940 ENDIF 1941 1942 IF (o_tnhusscpbl%flag(iff)<=lev_files(iff)) THEN 1943 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys+ 1944 $ d_q_eva(1:klon,1:klev)/pdtphys 1945 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1946 $o_tnhusscpbl%name,itau_w,zx_tmp_fi3d) 1947 ENDIF 1948 1949 IF (o_evu%flag(iff)<=lev_files(iff)) THEN 1950 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1951 $o_evu%name,itau_w,coefm) 1952 ENDIF 1953 1954 IF (o_h2o%flag(iff)<=lev_files(iff)) THEN 1955 zx_tmp_fi3d(1:klon,1:klev)=q_seri(1:klon,1:klev)+ 1956 $ ql_seri(1:klon,1:klev) 1957 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1958 $o_h2o%name,itau_w,zx_tmp_fi3d) 1959 ENDIF 1960 1961 IF (o_mcd%flag(iff)<=lev_files(iff)) THEN 1962 zx_tmp_fi3d(1:klon,1:klev)=-1 * (dnwd(1:klon,1:klev)+ 1963 $ dnwd0(1:klon,1:klev)) 1964 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1965 $o_mcd%name,itau_w,zx_tmp_fi3d) 1966 ENDIF 1967 1968 IF (o_dmc%flag(iff)<=lev_files(iff)) THEN 1969 zx_tmp_fi3d(1:klon,1:klev)=upwd(1:klon,1:klev) + 1970 $ dnwd(1:klon,1:klev)+ dnwd0(1:klon,1:klev) 1971 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1972 $o_dmc%name,itau_w,zx_tmp_fi3d) 1973 ENDIF 1974 1975 IF (o_ref_liq%flag(iff)<=lev_files(iff)) THEN 1976 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1977 $o_ref_liq%name,itau_w,ref_liq) 1978 ENDIF 1979 1980 IF (o_ref_ice%flag(iff)<=lev_files(iff)) THEN 1981 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1982 $o_ref_ice%name,itau_w,ref_ice) 1983 ENDIF 1984 1985 if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. 1986 $ RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. 1987 $ RCFC12_per.NE.RCFC12_act) THEN 1988 1989 IF (o_rsut4co2%flag(iff)<=lev_files(iff)) THEN 1990 zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 ) 1991 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1992 $o_rsut4co2%name,itau_w,zx_tmp_fi2d) 1993 ENDIF 1994 1995 IF (o_rlut4co2%flag(iff)<=lev_files(iff)) THEN 1996 zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 ) 1997 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 1998 $o_rlut4co2%name,itau_w,zx_tmp_fi2d) 1999 ENDIF 2000 2001 IF (o_rsutcs4co2%flag(iff)<=lev_files(iff)) THEN 2002 zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 ) 2003 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2004 $o_rsutcs4co2%name,itau_w,zx_tmp_fi2d) 2005 ENDIF 2006 2007 IF (o_rlutcs4co2%flag(iff)<=lev_files(iff)) THEN 2008 zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 ) 2009 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2010 $o_rlutcs4co2%name,itau_w,zx_tmp_fi2d) 2011 ENDIF 2012 2013 IF (o_rsu4co2%flag(iff)<=lev_files(iff)) THEN 2014 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2015 $o_rsu4co2%name,itau_w,swupp) 2016 ENDIF 2017 2018 IF (o_rlu4co2%flag(iff)<=lev_files(iff)) THEN 2019 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2020 $o_rlu4co2%name,itau_w,lwupp) 2021 ENDIF 2022 2023 IF (o_rsucs4co2%flag(iff)<=lev_files(iff)) THEN 2024 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2025 $o_rsucs4co2%name,itau_w,swup0p) 2026 ENDIF 2027 2028 IF (o_rlucs4co2%flag(iff)<=lev_files(iff)) THEN 2029 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2030 $o_rlucs4co2%name,itau_w,lwup0p) 2031 ENDIF 2032 2033 IF (o_rsd4co2%flag(iff)<=lev_files(iff)) THEN 2034 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2035 $o_rsd4co2%name,itau_w,swdnp) 2036 ENDIF 2037 2038 IF (o_rld4co2%flag(iff)<=lev_files(iff)) THEN 2039 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2040 $o_rld4co2%name,itau_w,lwdnp) 2041 ENDIF 2042 2043 IF (o_rsdcs4co2%flag(iff)<=lev_files(iff)) THEN 2044 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2045 $o_rsdcs4co2%name,itau_w,swdn0p) 2046 ENDIF 2047 2048 IF (o_rldcs4co2%flag(iff)<=lev_files(iff)) THEN 2049 CALL histwrite_phy(nid_files(iff),clef_stations(iff), 2050 $o_rldcs4co2%name,itau_w,lwdn0p) 2051 ENDIF 2052 2053 endif 1522 2054 1523 2055 IF (nqtot.GE.3 .AND. o_trac(1)%flag(iff)<=lev_files(iff)) THEN 1524 2056 CALL histwrite_phy(nid_files(iff), 2057 $clef_stations(iff), 1525 2058 s o_trac(1)%name,itau_w,qx(:,:,3)) 1526 2059 ENDIF … … 1528 2061 IF (nqtot.GE.4 .AND. o_trac(2)%flag(iff)<=lev_files(iff)) THEN 1529 2062 CALL histwrite_phy(nid_files(iff), 2063 $clef_stations(iff), 1530 2064 s o_trac(2)%name,itau_w,qx(:,:,4)) 1531 2065 ENDIF … … 1535 2069 if (ok_sync) then 1536 2070 c$OMP MASTER 1537 2071 call histsync(nid_files(iff)) 1538 2072 c$OMP END MASTER 1539 2073 endif -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phys_state_var_mod.F90
r1398 r1534 274 274 REAL,ALLOCATABLE,SAVE :: albpla(:) 275 275 !$OMP THREADPRIVATE(albpla) 276 277 !IM ajout variables CFMIP2/CMIP5 278 REAL,ALLOCATABLE,SAVE :: heatp(:,:), coolp(:,:) 279 !$OMP THREADPRIVATE(heatp, coolp) 280 REAL,ALLOCATABLE,SAVE :: heat0p(:,:), cool0p(:,:) 281 !$OMP THREADPRIVATE(heat0p, cool0p) 282 REAL,ALLOCATABLE,SAVE :: radsolp(:), topswp(:), toplwp(:) 283 !$OMP THREADPRIVATE(radsolp, topswp, toplwp) 284 REAL,ALLOCATABLE,SAVE :: albplap(:) 285 !$OMP THREADPRIVATE(albplap) 286 REAL,ALLOCATABLE,SAVE :: solswp(:), sollwp(:) 287 !$OMP THREADPRIVATE(solswp, sollwp) 288 REAL,ALLOCATABLE,SAVE :: sollwdownp(:) 289 !$OMP THREADPRIVATE(sollwdownp) 290 REAL,ALLOCATABLE,SAVE :: topsw0p(:),toplw0p(:) 291 REAL,ALLOCATABLE,SAVE :: solsw0p(:),sollw0p(:) 292 !$OMP THREADPRIVATE(topsw0p,toplw0p,solsw0p,sollw0p) 293 REAL,ALLOCATABLE,SAVE :: lwdn0p(:,:), lwdnp(:,:) 294 REAL,ALLOCATABLE,SAVE :: lwup0p(:,:), lwupp(:,:) 295 !$OMP THREADPRIVATE(lwdn0p, lwdnp, lwup0p, lwupp) 296 REAL,ALLOCATABLE,SAVE :: swdn0p(:,:), swdnp(:,:) 297 REAL,ALLOCATABLE,SAVE :: swup0p(:,:), swupp(:,:) 298 !$OMP THREADPRIVATE(swdn0p, swdnp, swup0p, swupp) 299 276 300 ! pbase : cloud base pressure 277 301 ! bbase : cloud base buoyancy … … 439 463 ALLOCATE(topsw0(klon),toplw0(klon),solsw0(klon),sollw0(klon)) 440 464 ALLOCATE(albpla(klon)) 465 !IM ajout variables CFMIP2/CMIP5 466 ALLOCATE(heatp(klon,klev), coolp(klon,klev)) 467 ALLOCATE(heat0p(klon,klev), cool0p(klon,klev)) 468 ALLOCATE(radsolp(klon), topswp(klon), toplwp(klon)) 469 ALLOCATE(albplap(klon)) 470 ALLOCATE(solswp(klon), sollwp(klon)) 471 ALLOCATE(sollwdownp(klon)) 472 ALLOCATE(topsw0p(klon),toplw0p(klon)) 473 ALLOCATE(solsw0p(klon),sollw0p(klon)) 474 ALLOCATE(lwdn0p(klon,klevp1), lwdnp(klon,klevp1)) 475 ALLOCATE(lwup0p(klon,klevp1), lwupp(klon,klevp1)) 476 ALLOCATE(swdn0p(klon,klevp1), swdnp(klon,klevp1)) 477 ALLOCATE(swup0p(klon,klevp1), swupp(klon,klevp1)) 478 441 479 ALLOCATE(cape(klon)) 442 480 ALLOCATE(pbase(klon),bbase(klon)) … … 532 570 deallocate(topsw0,toplw0,solsw0,sollw0) 533 571 deallocate(albpla) 572 !IM ajout variables CFMIP2/CMIP5 573 deallocate(heatp, coolp) 574 deallocate(heat0p, cool0p) 575 deallocate(radsolp, topswp, toplwp) 576 deallocate(albplap) 577 deallocate(solswp, sollwp) 578 deallocate(sollwdownp) 579 deallocate(topsw0p,toplw0p) 580 deallocate(solsw0p,sollw0p) 581 deallocate(lwdn0p, lwdnp) 582 deallocate(lwup0p, lwupp) 583 deallocate(swdn0p, swdnp) 584 deallocate(swup0p, swupp) 534 585 deallocate(cape) 535 586 deallocate(pbase,bbase) -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/physiq.F
r1533 r1534 42 42 use radlwsw_m, only: radlwsw 43 43 44 !IM stations CFMIP 45 USE CFMIP_point_locations 44 46 IMPLICIT none 45 47 c====================================================================== … … 676 678 cAA 677 679 REAL coefh(klon,klev) ! coef d'echange pour phytrac, valable pour 2<=k<=klev 680 REAL coefm(klon,klev) ! coef d'echange pour U, V 678 681 REAL u1(klon) ! vents dans la premiere couche U 679 682 REAL v1(klon) ! vents dans la premiere couche V … … 986 989 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 987 990 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 991 REAL zx_tmp_fi3d1(klon,klev+1) !variable temporaire pour champs 3D (kelvp1) 988 992 c#ifdef histNMC 989 993 cym A voir plus tard !!!! … … 1016 1020 REAL ue_lay(klon,klev) ! transport zonal de l'energie a chaque niveau vert. 1017 1021 REAL uq_lay(klon,klev) ! transport zonal de l'eau a chaque niveau vert. 1018 c1019 cIM 280405 END1020 1022 c 1021 1023 INTEGER nhori, nvert, nvert1, nvert3 … … 1159 1161 REAL grain(1), gtsol(1), gt2m(1), gprw(1) 1160 1162 1163 cIM stations CFMIP 1164 INTEGER, SAVE :: nCFMIP 1165 c$OMP THREADPRIVATE(nCFMIP) 1166 INTEGER, PARAMETER :: npCFMIP=120 1167 INTEGER, ALLOCATABLE, SAVE :: tabCFMIP(:) 1168 REAL, ALLOCATABLE, SAVE :: lonCFMIP(:), latCFMIP(:) 1169 c$OMP THREADPRIVATE(tabCFMIP, lonCFMIP, latCFMIP) 1170 INTEGER, ALLOCATABLE, SAVE :: tabijGCM(:) 1171 REAL, ALLOCATABLE, SAVE :: lonGCM(:), latGCM(:) 1172 c$OMP THREADPRIVATE(tabijGCM, lonGCM, latGCM) 1173 INTEGER, ALLOCATABLE, SAVE :: iGCM(:), jGCM(:) 1174 c$OMP THREADPRIVATE(iGCM, jGCM) 1175 logical, dimension(nfiles) :: phys_out_filestations 1176 logical, parameter :: lNMC=.FALSE. 1177 1178 cIM betaCRF 1179 REAL, SAVE :: pfree, beta_pbl, beta_free 1180 c$OMP THREADPRIVATE(pfree, beta_pbl, beta_free) 1181 REAL, SAVE :: lon1_beta, lon2_beta, lat1_beta, lat2_beta 1182 c$OMP THREADPRIVATE(lon1_beta, lon2_beta, lat1_beta, lat2_beta) 1183 LOGICAL, SAVE :: mskocean_beta 1184 c$OMP THREADPRIVATE(mskocean_beta) 1185 REAL, dimension(klon, klev) :: beta ! facteur sur cldtaurad et cldemirad pour evaluer les retros liees aux CRF 1186 REAL, dimension(klon, klev) :: cldtaurad ! epaisseur optique pour radlwsw,COSP 1187 REAL, dimension(klon, klev) :: cldemirad ! emissivite pour radlwsw,COSP 1188 1161 1189 cIM for NMC files 1162 1190 missing_val=nf90_fill_real … … 1443 1471 1444 1472 c================================================================================ 1445 1473 cIM stations CFMIP 1474 nCFMIP=npCFMIP 1475 OPEN(98,file='npCFMIP_param.data',status='old', 1476 $ form='formatted',err=999) 1477 READ(98,*,end=998) nCFMIP 1478 998 CONTINUE 1479 CLOSE(98) 1480 999 CONTINUE 1481 IF(nCFMIP.GT.npCFMIP) THEN 1482 print*,'nCFMIP > npCFMIP : augmenter npCFMIP et recompiler' 1483 CALL abort 1484 else 1485 print*,'physiq npCFMIP=',npCFMIP,'nCFMIP=',nCFMIP 1486 ENDIF 1487 c 1488 ALLOCATE(tabCFMIP(nCFMIP)) 1489 ALLOCATE(lonCFMIP(nCFMIP), latCFMIP(nCFMIP)) 1490 ALLOCATE(tabijGCM(nCFMIP)) 1491 ALLOCATE(lonGCM(nCFMIP), latGCM(nCFMIP)) 1492 ALLOCATE(iGCM(nCFMIP), jGCM(nCFMIP)) 1493 c 1494 c lecture des nCFMIP stations CFMIP, de leur numero 1495 c et des coordonnees geographiques lonCFMIP, latCFMIP 1496 c 1497 CALL read_CFMIP_point_locations(nCFMIP, tabCFMIP, 1498 $lonCFMIP, latCFMIP) 1499 c 1500 c identification des 1501 c 1) coordonnees lonGCM, latGCM des points CFMIP dans la grille de LMDZ 1502 c 2) indices points tabijGCM de la grille physique 1d sur klon points 1503 c 3) indices iGCM, jGCM de la grille physique 2d 1504 c 1505 CALL LMDZ_CFMIP_point_locations(nCFMIP, lonCFMIP, latCFMIP, 1506 $tabijGCM, lonGCM, latGCM, iGCM, jGCM) 1507 c 1446 1508 ENDIF !debut 1447 1509 1448 1510 DO i=1,klon 1449 1511 rugoro(i) = f_rugoro * MAX(1.0e-05, zstd(i)*zsig(i)/2.0) … … 1483 1545 . lmt_pas 1484 1546 c 1485 cIM 030306 END1486 1487 1547 capemaxcels = 't_max(X)' 1488 1548 t2mincels = 't_min(X)' … … 1501 1561 1502 1562 c$OMP MASTER 1503 call phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta, 1504 & ctetaSTD,dtime,ok_veget, 1505 & type_ocean,iflag_pbl,ok_mensuel,ok_journe, 1506 & ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, 1507 & read_climoz, new_aod, aerosol_couple) 1563 call phys_output_open(rlon,rlat,nCFMIP,tabijGCM, 1564 & iGCM,jGCM,lonGCM,latGCM, 1565 & jjmp1,nlevSTD,clevSTD, 1566 & nbteta, ctetaSTD, dtime,ok_veget, 1567 & type_ocean,iflag_pbl,ok_mensuel,ok_journe, 1568 & ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, 1569 & read_climoz, phys_out_filestations, 1570 & new_aod, aerosol_couple 1571 & ) 1508 1572 c$OMP END MASTER 1509 1573 c$OMP BARRIER … … 1525 1589 #endif 1526 1590 1527 cIM 250308bad guide ecrit_hf2mth = 30*1/ecrit_hf1528 1591 ecrit_hf2mth = ecrit_mth/ecrit_hf 1529 1592 … … 1538 1601 ecrit_reg = ecrit_reg * un_jour 1539 1602 ecrit_tra = ecrit_tra * un_jour 1540 ecrit_ISCCP = ecrit_ISCCP * un_jour1541 1603 ecrit_LES = ecrit_LES * un_jour 1542 1604 c … … 1544 1606 . ecrit_hf,ecrit_day,ecrit_mth,ecrit_reg,ecrit_tra,ecrit_ISCCP, 1545 1607 . ecrit_hf2mth 1546 cIM 030306 END1547 1548 1608 1549 1609 cXXXPB Positionner date0 pour initialisation de ORCHIDEE … … 1603 1663 END IF 1604 1664 C$omp end single 1665 c 1666 cIM betaCRF 1667 pfree=70000. !Pa 1668 beta_pbl=1. 1669 beta_free=1. 1670 lon1_beta=-180. 1671 lon2_beta=+180. 1672 lat1_beta=90. 1673 lat2_beta=-90. 1674 mskocean_beta=.FALSE. 1675 1676 OPEN(99,file='beta_crf.data',status='old', 1677 $ form='formatted',err=9999) 1678 READ(99,*,end=9998) pfree 1679 READ(99,*,end=9998) beta_pbl 1680 READ(99,*,end=9998) beta_free 1681 READ(99,*,end=9998) lon1_beta 1682 READ(99,*,end=9998) lon2_beta 1683 READ(99,*,end=9998) lat1_beta 1684 READ(99,*,end=9998) lat2_beta 1685 READ(99,*,end=9998) mskocean_beta 1686 9998 Continue 1687 CLOSE(99) 1688 9999 Continue 1689 WRITE(*,*)'pfree=',pfree 1690 WRITE(*,*)'beta_pbl=',beta_pbl 1691 WRITE(*,*)'beta_free=',beta_free 1692 WRITE(*,*)'lon1_beta=',lon1_beta 1693 WRITE(*,*)'lon2_beta=',lon2_beta 1694 WRITE(*,*)'lat1_beta=',lat1_beta 1695 WRITE(*,*)'lat2_beta=',lat2_beta 1696 WRITE(*,*)'mskocean_beta=',mskocean_beta 1605 1697 ENDIF 1606 1698 ! … … 1906 1998 s zxtsol, zxfluxlat, zt2m, qsat2m, 1907 1999 s d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, 1908 s coefh, slab_wfbils,2000 s coefh, coefm, slab_wfbils, 1909 2001 d qsol, zq2m, s_pblh, s_lcl, 1910 2002 d s_capCL, s_oliqCL, s_cteiCL,s_pblT, … … 2933 3025 mass_solu_aero_pi(:,:) = ccm(:,:,2) 2934 3026 END IF 2935 3027 c 2936 3028 if (ok_newmicro) then 2937 3029 CALL newmicro (paprs, pplay,ok_newmicro, … … 2954 3046 endif 2955 3047 c 3048 cIM betaCRF 3049 c 3050 cldtaurad = cldtau 3051 cldemirad = cldemi 3052 c 3053 if(lon1_beta.EQ.-180..AND.lon2_beta.EQ.180..AND. 3054 $lat1_beta.EQ.90..AND.lat2_beta.EQ.-90.) THEN 3055 c 3056 c global 3057 c 3058 DO k=1, klev 3059 DO i=1, klon 3060 if (pplay(i,k).GE.pfree) THEN 3061 beta(i,k) = beta_pbl 3062 else 3063 beta(i,k) = beta_free 3064 endif 3065 if (mskocean_beta) THEN 3066 beta(i,k) = beta(i,k) * pctsrf(i,is_oce) 3067 endif 3068 cldtaurad(i,k) = cldtau(i,k) * beta(i,k) 3069 cldemirad(i,k) = cldemi(i,k) * beta(i,k) 3070 ENDDO 3071 ENDDO 3072 c 3073 else 3074 c 3075 c regional 3076 c 3077 DO k=1, klev 3078 DO i=1,klon 3079 c 3080 if (rlon(i).ge.lon1_beta.AND.rlon(i).le.lon2_beta.AND. 3081 $ rlat(i).le.lat1_beta.AND.rlat(i).ge.lat2_beta) THEN 3082 if (pplay(i,k).GE.pfree) THEN 3083 beta(i,k) = beta_pbl 3084 else 3085 beta(i,k) = beta_free 3086 endif 3087 if (mskocean_beta) THEN 3088 beta(i,k) = beta(i,k) * pctsrf(i,is_oce) 3089 endif 3090 cldtaurad(i,k) = cldtau(i,k) * beta(i,k) 3091 cldemirad(i,k) = cldemi(i,k) * beta(i,k) 3092 endif 3093 c 3094 ENDDO 3095 ENDDO 3096 c 3097 endif 3098 c 2956 3099 c Appeler le rayonnement mais calculer tout d'abord l'albedo du sol. 2957 3100 c … … 2982 3125 e paprs, pplay,zxtsol,albsol1, albsol2, t_seri,q_seri, 2983 3126 e wo(:, :, 1), 2984 e cldfra, cldemi , cldtau,3127 e cldfra, cldemirad, cldtaurad, 2985 3128 s heat,heat0,cool,cool0,radsol,albpla, 2986 3129 s topsw,toplw,solsw,sollw, … … 3000 3143 #endif 3001 3144 ELSE 3002 3145 c 3146 cIM calcul radiatif pour le cas actuel 3147 c 3148 RCO2 = RCO2_act 3149 RCH4 = RCH4_act 3150 RN2O = RN2O_act 3151 RCFC11 = RCFC11_act 3152 RCFC12 = RCFC12_act 3153 c 3003 3154 CALL radlwsw 3004 3155 e (dist, rmu0, fract, 3005 3156 e paprs, pplay,zxtsol,albsol1, albsol2, 3006 3157 e t_seri,q_seri,wo, 3007 e cldfra, cldemi , cldtau,3158 e cldfra, cldemirad, cldtaurad, 3008 3159 e ok_ade, ok_aie, 3009 3160 e tau_aero, piz_aero, cg_aero, … … 3023 3174 o topswcf_aero, solswcf_aero) 3024 3175 3025 3176 c 3177 cIM 2eme calcul radiatif pour le cas perturbe ou au moins un 3178 cIM des taux doit etre different du taux actuel 3179 cIM Par defaut on a les taux perturbes egaux aux taux actuels 3180 c 3181 if (RCO2_per.NE.RCO2_act.OR.RCH4_per.NE.RCH4_act.OR. 3182 $RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. 3183 $RCFC12_per.NE.RCFC12_act) THEN 3184 c 3185 RCO2 = RCO2_per 3186 RCH4 = RCH4_per 3187 RN2O = RN2O_per 3188 RCFC11 = RCFC11_per 3189 RCFC12 = RCFC12_per 3190 c 3191 CALL radlwsw 3192 e (dist, rmu0, fract, 3193 e paprs, pplay,zxtsol,albsol1, albsol2, 3194 e t_seri,q_seri,wo, 3195 e cldfra, cldemi, cldtau, 3196 e ok_ade, ok_aie, 3197 e tau_aero, piz_aero, cg_aero, 3198 e cldtaupi,new_aod, 3199 e zqsat, flwc, fiwc, 3200 s heatp,heat0p,coolp,cool0p,radsolp,albplap, 3201 s topswp,toplwp,solswp,sollwp, 3202 s sollwdownp, 3203 s topsw0p,toplw0p,solsw0p,sollw0p, 3204 s lwdn0p, lwdnp, lwup0p, lwupp, 3205 s swdn0p, swdnp, swup0p, swupp, 3206 s topswad_aerop, solswad_aerop, 3207 s topswai_aerop, solswai_aerop, 3208 o topswad0_aerop, solswad0_aerop, 3209 o topsw_aerop, topsw0_aerop, 3210 o solsw_aerop, solsw0_aerop, 3211 o topswcf_aerop, solswcf_aerop) 3212 endif 3213 c 3026 3214 ENDIF ! aerosol_couple 3027 3215 itaprad = 0 … … 3184 3372 c 3185 3373 c ajout des tendances 3186 CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0,' lif')3374 CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0,'hin') 3187 3375 3188 3376 ENDIF … … 3260 3448 $ prfl(:,1:klev),psfl(:,1:klev), 3261 3449 $ pmflxr(:,1:klev),pmflxs(:,1:klev), 3262 $ mr_ozone,cldtau , cldemi)3450 $ mr_ozone,cldtaurad, cldemirad) 3263 3451 3264 3452 ! L calipso2D,calipso3D,cfadlidar,parasolrefl,atb,betamol, … … 3416 3604 vwriteSTD(:,:,5)=vlevSTD(:,:) 3417 3605 wwriteSTD(:,:,5)=wlevSTD(:,:) 3606 c 3607 cIM initialisation 6eme fichier de sortie 3608 twriteSTD(:,:,6)=tlevSTD(:,:) 3609 qwriteSTD(:,:,6)=qlevSTD(:,:) 3610 rhwriteSTD(:,:,6)=rhlevSTD(:,:) 3611 phiwriteSTD(:,:,6)=philevSTD(:,:) 3612 uwriteSTD(:,:,6)=ulevSTD(:,:) 3613 vwriteSTD(:,:,6)=vlevSTD(:,:) 3614 wwriteSTD(:,:,6)=wlevSTD(:,:) 3418 3615 cIM for NMC files 3419 3616 DO n=1, nlevSTD3 -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/phystokenc.F
r1146 r1534 123 123 logical,save :: first=.true. 124 124 c$OMP THREADPRIVATE(first) 125 logical, parameter :: lstokenc=.FALSE. 125 126 c 126 127 c Couche limite: … … 169 170 ndex2d = 0 170 171 ndex3d = 0 171 i=itap 172 i=itap 172 173 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d) 173 CALL histwrite_phy(physid, "phis",i,pphis)174 CALL histwrite_phy(physid,lstokenc,"phis",i,pphis) 174 175 c 175 176 i=itap 176 177 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d) 177 CALL histwrite_phy(physid, "aire",i,paire)178 CALL histwrite_phy(physid,lstokenc,"aire",i,paire) 178 179 179 180 iadvtr=iadvtr+1 … … 282 283 ccccc 283 284 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, t, zx_tmp_3d) 284 CALL histwrite_phy(physid, "t",itap,t)285 CALL histwrite_phy(physid,lstokenc,"t",itap,t) 285 286 286 287 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfu, zx_tmp_3d) 287 CALL histwrite_phy(physid, "mfu",itap,mfu)288 CALL histwrite_phy(physid,lstokenc,"mfu",itap,mfu) 288 289 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfd, zx_tmp_3d) 289 CALL histwrite_phy(physid, "mfd",itap,mfd)290 CALL histwrite_phy(physid,lstokenc,"mfd",itap,mfd) 290 291 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_u, zx_tmp_3d) 291 CALL histwrite_phy(physid, "en_u",itap,en_u)292 CALL histwrite_phy(physid,lstokenc,"en_u",itap,en_u) 292 293 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_u, zx_tmp_3d) 293 CALL histwrite_phy(physid, "de_u",itap,de_u)294 CALL histwrite_phy(physid,lstokenc,"de_u",itap,de_u) 294 295 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_d, zx_tmp_3d) 295 CALL histwrite_phy(physid, "en_d",itap,en_d)296 CALL histwrite_phy(physid,lstokenc,"en_d",itap,en_d) 296 297 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_d, zx_tmp_3d) 297 CALL histwrite_phy(physid, "de_d",itap,de_d)298 CALL histwrite_phy(physid,lstokenc,"de_d",itap,de_d) 298 299 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, coefh, zx_tmp_3d) 299 CALL histwrite_phy(physid, "coefh",itap,coefh)300 CALL histwrite_phy(physid,lstokenc,"coefh",itap,coefh) 300 301 301 302 c ajou... … … 307 308 308 309 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, fm_therm1, zx_tmp_3d) 309 CALL histwrite_phy(physid, "fm_th",itap,fm_therm1)310 CALL histwrite_phy(physid,lstokenc,"fm_th",itap,fm_therm1) 310 311 c 311 312 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, entr_therm, zx_tmp_3d) 312 CALL histwrite_phy(physid, "en_th",itap,entr_therm)313 CALL histwrite_phy(physid,lstokenc,"en_th",itap,entr_therm) 313 314 cccc 314 315 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_impa,zx_tmp_3d) 315 CALL histwrite_phy(physid,"frac_impa",itap,frac_impa) 316 CALL histwrite_phy(physid,lstokenc,"frac_impa",itap, 317 $frac_impa) 316 318 317 319 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_nucl,zx_tmp_3d) 318 CALL histwrite_phy(physid,"frac_nucl",itap,frac_nucl) 320 CALL histwrite_phy(physid,lstokenc,"frac_nucl",itap, 321 $frac_nucl) 319 322 320 323 cym CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyu1,zx_tmp_2d) 321 CALL histwrite_phy(physid, "pyu1",itap,pyu1)324 CALL histwrite_phy(physid,lstokenc,"pyu1",itap,pyu1) 322 325 323 326 cym CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyv1,zx_tmp_2d) 324 CALL histwrite_phy(physid, "pyv1",itap,pyv1)327 CALL histwrite_phy(physid,lstokenc,"pyv1",itap,pyv1) 325 328 326 329 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol1, zx_tmp_2d) 327 CALL histwrite_phy(physid, "ftsol1",itap,pftsol1)330 CALL histwrite_phy(physid,lstokenc,"ftsol1",itap,pftsol1) 328 331 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol2, zx_tmp_2d) 329 CALL histwrite_phy(physid, "ftsol2",itap,pftsol2)332 CALL histwrite_phy(physid,lstokenc,"ftsol2",itap,pftsol2) 330 333 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol3, zx_tmp_2d) 331 CALL histwrite_phy(physid, "ftsol3",itap,pftsol3)334 CALL histwrite_phy(physid,lstokenc,"ftsol3",itap,pftsol3) 332 335 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol4, zx_tmp_2d) 333 CALL histwrite_phy(physid, "ftsol4",itap,pftsol4)336 CALL histwrite_phy(physid,lstokenc,"ftsol4",itap,pftsol4) 334 337 335 338 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf1, zx_tmp_2d) 336 CALL histwrite_phy(physid, "psrf1",itap,ppsrf1)339 CALL histwrite_phy(physid,lstokenc,"psrf1",itap,ppsrf1) 337 340 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf2, zx_tmp_2d) 338 CALL histwrite_phy(physid, "psrf2",itap,ppsrf2)341 CALL histwrite_phy(physid,lstokenc,"psrf2",itap,ppsrf2) 339 342 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf3, zx_tmp_2d) 340 CALL histwrite_phy(physid, "psrf3",itap,ppsrf3)343 CALL histwrite_phy(physid,lstokenc,"psrf3",itap,ppsrf3) 341 344 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf4, zx_tmp_2d) 342 CALL histwrite_phy(physid, "psrf4",itap,ppsrf4)345 CALL histwrite_phy(physid,lstokenc,"psrf4",itap,ppsrf4) 343 346 344 347 c$OMP MASTER -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/write_histdayNMC.h
r1374 r1534 15 15 ccc 16 16 IF(lev_histdayNMC.EQ.nlevSTD) THEN 17 CALL histwrite_phy(nid_daynmc,"tnondef",itau_w,tnondef(:,:,2)) 18 CALL histwrite_phy(nid_daynmc,"ta",itau_w,twriteSTD(:,:,2)) 19 CALL histwrite_phy(nid_daynmc,"zg",itau_w,phiwriteSTD(:,:,2)) 20 CALL histwrite_phy(nid_daynmc,"hus",itau_w,qwriteSTD(:,:,2)) 21 CALL histwrite_phy(nid_daynmc,"hur",itau_w,rhwriteSTD(:,:,2)) 22 CALL histwrite_phy(nid_daynmc,"ua",itau_w,uwriteSTD(:,:,2)) 23 CALL histwrite_phy(nid_daynmc,"va",itau_w,vwriteSTD(:,:,2)) 24 CALL histwrite_phy(nid_daynmc,"wap",itau_w,wwriteSTD(:,:,2)) 17 CALL histwrite_phy(nid_daynmc,lNMC,"tnondef",itau_w, 18 $tnondef(:,:,2)) 19 CALL histwrite_phy(nid_daynmc,lNMC,"ta",itau_w, 20 $twriteSTD(:,:,2)) 21 CALL histwrite_phy(nid_daynmc,lNMC,"zg",itau_w, 22 $phiwriteSTD(:,:,2)) 23 CALL histwrite_phy(nid_daynmc,lNMC,"hus",itau_w, 24 $qwriteSTD(:,:,2)) 25 CALL histwrite_phy(nid_daynmc,lNMC,"hur",itau_w, 26 $rhwriteSTD(:,:,2)) 27 CALL histwrite_phy(nid_daynmc,lNMC,"ua",itau_w, 28 $uwriteSTD(:,:,2)) 29 CALL histwrite_phy(nid_daynmc,lNMC,"va",itau_w, 30 $vwriteSTD(:,:,2)) 31 CALL histwrite_phy(nid_daynmc,lNMC,"wap",itau_w, 32 $wwriteSTD(:,:,2)) 25 33 ELSE IF(lev_histdayNMC.EQ.nlevSTD8) THEN 26 CALL histwrite_phy(nid_daynmc,"tnondef",itau_w,tnondefSTD8) 27 CALL histwrite_phy(nid_daynmc,"ta",itau_w,twriteSTD8) 28 CALL histwrite_phy(nid_daynmc,"zg",itau_w,phiwriteSTD8) 29 CALL histwrite_phy(nid_daynmc,"hus",itau_w,qwriteSTD8) 30 CALL histwrite_phy(nid_daynmc,"hur",itau_w,rhwriteSTD8) 31 CALL histwrite_phy(nid_daynmc,"ua",itau_w,uwriteSTD8) 32 CALL histwrite_phy(nid_daynmc,"va",itau_w,vwriteSTD8) 33 CALL histwrite_phy(nid_daynmc,"wap",itau_w,wwriteSTD8) 34 CALL histwrite_phy(nid_daynmc,lNMC,"tnondef",itau_w, 35 $tnondefSTD8) 36 CALL histwrite_phy(nid_daynmc,lNMC,"ta",itau_w, 37 $twriteSTD8) 38 CALL histwrite_phy(nid_daynmc,lNMC,"zg",itau_w, 39 $phiwriteSTD8) 40 CALL histwrite_phy(nid_daynmc,lNMC,"hus",itau_w, 41 $qwriteSTD8) 42 CALL histwrite_phy(nid_daynmc,lNMC,"hur",itau_w, 43 $rhwriteSTD8) 44 CALL histwrite_phy(nid_daynmc,lNMC,"ua",itau_w, 45 $uwriteSTD8) 46 CALL histwrite_phy(nid_daynmc,lNMC,"va",itau_w, 47 $vwriteSTD8) 48 CALL histwrite_phy(nid_daynmc,lNMC,"wap",itau_w, 49 $wwriteSTD8) 34 50 ENDIF 35 51 c -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/write_histhfNMC.h
r1419 r1534 14 14 c nout=3 : in=pdtphys, out=hf 15 15 ccc 16 CALL histwrite_phy(nid_hfnmc,"tnondef",itau_w,tnondef(:,:,3)) 16 CALL histwrite_phy(nid_hfnmc,lNMC,"tnondef",itau_w, 17 $tnondef(:,:,3)) 17 18 c 18 CALL histwrite_phy(nid_hfnmc,"ta",itau_w,twriteSTD3) 19 CALL histwrite_phy(nid_hfnmc,lNMC,"ta",itau_w, 20 $twriteSTD3) 19 21 c 20 CALL histwrite_phy(nid_hfnmc,"zg",itau_w,phiwriteSTD3) 22 CALL histwrite_phy(nid_hfnmc,lNMC,"zg",itau_w, 23 $phiwriteSTD3) 21 24 c 22 CALL histwrite_phy(nid_hfnmc,"hus",itau_w,qwriteSTD3) 25 CALL histwrite_phy(nid_hfnmc,lNMC,"hus",itau_w, 26 $qwriteSTD3) 23 27 c 24 CALL histwrite_phy(nid_hfnmc,"hur",itau_w,rhwriteSTD3) 28 CALL histwrite_phy(nid_hfnmc,lNMC,"hur",itau_w, 29 $rhwriteSTD3) 25 30 c 26 CALL histwrite_phy(nid_hfnmc,"ua",itau_w,uwriteSTD3) 31 CALL histwrite_phy(nid_hfnmc,lNMC,"ua",itau_w, 32 $uwriteSTD3) 27 33 c 28 CALL histwrite_phy(nid_hfnmc,"va",itau_w,vwriteSTD3) 34 CALL histwrite_phy(nid_hfnmc,lNMC,"va",itau_w, 35 $vwriteSTD3) 29 36 c 30 CALL histwrite_phy(nid_hfnmc,"wap",itau_w,wwriteSTD3) 37 CALL histwrite_phy(nid_hfnmc,lNMC,"wap",itau_w, 38 $wwriteSTD3) 31 39 c 32 40 IF (1.EQ.0) THEN … … 42 50 ENDDO !k=1, nlevSTD 43 51 c 44 CALL histwrite_phy(nid_hfnmc,"psbg",itau_w,zx_tmp_fiNC) 52 CALL histwrite_phy(nid_hfnmc,lNMC,"psbg",itau_w, 53 $zx_tmp_fiNC) 45 54 c 46 CALL histwrite_phy(nid_hfnmc,"uv",itau_w,uvsumSTD(:,:,3)) 55 CALL histwrite_phy(nid_hfnmc,lNMC,"uv",itau_w, 56 $uvsumSTD(:,:,3)) 47 57 c 48 CALL histwrite_phy(nid_hfnmc,"vq",itau_w,vqsumSTD(:,:,3)) 58 CALL histwrite_phy(nid_hfnmc,lNMC,"vq",itau_w, 59 $vqsumSTD(:,:,3)) 49 60 c 50 CALL histwrite_phy(nid_hfnmc,"vT",itau_w,vTsumSTD(:,:,3)) 61 CALL histwrite_phy(nid_hfnmc,lNMC,"vT",itau_w, 62 $vTsumSTD(:,:,3)) 51 63 c 52 CALL histwrite_phy(nid_hfnmc,"wq",itau_w,wqsumSTD(:,:,3)) 64 CALL histwrite_phy(nid_hfnmc,lNMC,"wq",itau_w, 65 $wqsumSTD(:,:,3)) 53 66 c 54 CALL histwrite_phy(nid_hfnmc,"vphi",itau_w,vphisumSTD(:,:,3)) 67 CALL histwrite_phy(nid_hfnmc,lNMC,"vphi",itau_w, 68 $vphisumSTD(:,:,3)) 55 69 c 56 CALL histwrite_phy(nid_hfnmc,"wT",itau_w,wTsumSTD(:,:,3)) 70 CALL histwrite_phy(nid_hfnmc,lNMC,"wT",itau_w, 71 $wTsumSTD(:,:,3)) 57 72 c 58 CALL histwrite_phy(nid_hfnmc,"uxu",itau_w,u2sumSTD(:,:,3)) 73 CALL histwrite_phy(nid_hfnmc,lNMC,"uxu",itau_w, 74 $u2sumSTD(:,:,3)) 59 75 c 60 CALL histwrite_phy(nid_hfnmc,"vxv",itau_w,v2sumSTD(:,:,3)) 76 CALL histwrite_phy(nid_hfnmc,lNMC,"vxv",itau_w, 77 $v2sumSTD(:,:,3)) 61 78 c 62 CALL histwrite_phy(nid_hfnmc,"TxT",itau_w,T2sumSTD(:,:,3)) 79 CALL histwrite_phy(nid_hfnmc,lNMC,"TxT",itau_w, 80 $T2sumSTD(:,:,3)) 63 81 c 64 82 ENDIF !(1.EQ.0) THEN -
LMDZ4/branches/LMDZ4_AR5/libf/phylmd/write_histmthNMC.h
r1398 r1534 14 14 c nout=3 : in=pdtphys, out=hf 15 15 ccc 16 CALL histwrite_phy(nid_mthnmc,"tnondef",itau_w,tnondef(:,:,1)) 16 CALL histwrite_phy(nid_mthnmc,lNMC,"tnondef",itau_w, 17 $tnondef(:,:,1)) 17 18 c 18 CALL histwrite_phy(nid_mthnmc,"ta",itau_w,twriteSTD(:,:,1)) 19 CALL histwrite_phy(nid_mthnmc,lNMC,"ta",itau_w, 20 $twriteSTD(:,:,1)) 19 21 c 20 CALL histwrite_phy(nid_mthnmc,"zg",itau_w,phiwriteSTD(:,:,1)) 22 CALL histwrite_phy(nid_mthnmc,lNMC,"zg",itau_w, 23 $phiwriteSTD(:,:,1)) 21 24 c 22 CALL histwrite_phy(nid_mthnmc,"hus",itau_w,qwriteSTD(:,:,1)) 25 CALL histwrite_phy(nid_mthnmc,lNMC,"hus",itau_w, 26 $qwriteSTD(:,:,1)) 23 27 c 24 CALL histwrite_phy(nid_mthnmc,"hur",itau_w,rhwriteSTD(:,:,1)) 28 CALL histwrite_phy(nid_mthnmc,lNMC,"hur",itau_w, 29 $rhwriteSTD(:,:,1)) 25 30 c 26 CALL histwrite_phy(nid_mthnmc,"ua",itau_w,uwriteSTD(:,:,1)) 31 CALL histwrite_phy(nid_mthnmc,lNMC,"ua",itau_w, 32 $uwriteSTD(:,:,1)) 27 33 c 28 CALL histwrite_phy(nid_mthnmc,"va",itau_w,vwriteSTD(:,:,1)) 34 CALL histwrite_phy(nid_mthnmc,lNMC,"va",itau_w, 35 $vwriteSTD(:,:,1)) 29 36 c 30 CALL histwrite_phy(nid_mthnmc,"wap",itau_w,wwriteSTD(:,:,1)) 37 CALL histwrite_phy(nid_mthnmc,lNMC,"wap",itau_w, 38 $wwriteSTD(:,:,1)) 31 39 c 32 40 DO k=1, nlevSTD … … 40 48 ENDDO !k=1, nlevSTD 41 49 c 42 CALL histwrite_phy(nid_mthnmc,"psbg",itau_w,zx_tmp_fiNC) 50 CALL histwrite_phy(nid_mthnmc,lNMC,"psbg",itau_w, 51 $zx_tmp_fiNC) 43 52 c 44 CALL histwrite_phy(nid_mthnmc,"uv",itau_w,uvsumSTD(:,:,1)) 53 CALL histwrite_phy(nid_mthnmc,lNMC,"uv",itau_w, 54 $uvsumSTD(:,:,1)) 45 55 c 46 CALL histwrite_phy(nid_mthnmc,"vq",itau_w,vqsumSTD(:,:,1)) 56 CALL histwrite_phy(nid_mthnmc,lNMC,"vq",itau_w, 57 $vqsumSTD(:,:,1)) 47 58 c 48 CALL histwrite_phy(nid_mthnmc,"vT",itau_w,vTsumSTD(:,:,1)) 59 CALL histwrite_phy(nid_mthnmc,lNMC,"vT",itau_w, 60 $vTsumSTD(:,:,1)) 49 61 c 50 CALL histwrite_phy(nid_mthnmc,"wq",itau_w,wqsumSTD(:,:,1)) 62 CALL histwrite_phy(nid_mthnmc,lNMC,"wq",itau_w, 63 $wqsumSTD(:,:,1)) 51 64 c 52 CALL histwrite_phy(nid_mthnmc,"vphi",itau_w,vphisumSTD(:,:,1)) 65 CALL histwrite_phy(nid_mthnmc,lNMC,"vphi",itau_w, 66 $vphisumSTD(:,:,1)) 53 67 c 54 CALL histwrite_phy(nid_mthnmc,"wT",itau_w,wTsumSTD(:,:,1)) 68 CALL histwrite_phy(nid_mthnmc,lNMC,"wT",itau_w, 69 $wTsumSTD(:,:,1)) 55 70 c 56 CALL histwrite_phy(nid_mthnmc,"uxu",itau_w,u2sumSTD(:,:,1)) 71 CALL histwrite_phy(nid_mthnmc,lNMC,"uxu",itau_w, 72 $u2sumSTD(:,:,1)) 57 73 c 58 CALL histwrite_phy(nid_mthnmc,"vxv",itau_w,v2sumSTD(:,:,1)) 74 CALL histwrite_phy(nid_mthnmc,lNMC,"vxv",itau_w, 75 $v2sumSTD(:,:,1)) 59 76 c 60 CALL histwrite_phy(nid_mthnmc,"TxT",itau_w,T2sumSTD(:,:,1)) 77 CALL histwrite_phy(nid_mthnmc,lNMC,"TxT",itau_w, 78 $T2sumSTD(:,:,1)) 61 79 c 62 80 DO k=1, nlevSTD … … 69 87 ENDDO 70 88 ENDDO !k=1, nlevSTD 71 CALL histwrite_phy(nid_mthnmc, "tro3",itau_w,89 CALL histwrite_phy(nid_mthnmc,lNMC,"tro3",itau_w, 72 90 $ zx_tmp_fiNC) 73 91 c … … 83 101 ENDDO !k=1, nlevSTD 84 102 c 85 CALL histwrite_phy(nid_mthnmc, "tro3_daylight",itau_w,86 $ 103 CALL histwrite_phy(nid_mthnmc,lNMC,"tro3_daylight", 104 $itau_w, zx_tmp_fiNC) 87 105 endif 88 106 c
Note: See TracChangeset
for help on using the changeset viewer.