Changeset 5894 for LMDZ6/trunk/libf/phylmdiso/phyredem.F90
- Timestamp:
- Nov 28, 2025, 5:34:54 PM (2 months ago)
- File:
-
- 1 edited
-
LMDZ6/trunk/libf/phylmdiso/phyredem.F90 (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmdiso/phyredem.F90
r5662 r5894 1 1 ! 2 ! $Id: phyredem. F90 3506 2019-05-16 14:38:11Z ymeurdesoif$2 ! $Id: phyredem.f90 5776 2025-07-15 12:13:19Z evignon $ 3 3 ! 4 4 SUBROUTINE phyredem (fichnom) … … 9 9 ! Purpose: Write restart state for physics. 10 10 !------------------------------------------------------------------------------- 11 USE compbl_mod_h 12 USE alpale_mod 13 USE clesphys_mod_h 11 14 USE dimphy, ONLY: klon, klev 12 15 USE fonte_neige_mod, ONLY : fonte_neige_final … … 20 23 prw_ancien, prlw_ancien, prsw_ancien, prbsw_ancien, & 21 24 ql_ancien, qs_ancien, qbs_ancien, cf_ancien, & 22 rvc_ancien, u_ancien, v_ancien, &25 rvc_ancien, u_ancien, v_ancien, tke_ancien, & 23 26 clwcon, rnebcon, ratqs, pbl_tke, & 24 27 wake_delta_pbl_tke, zmax0, f0, sig1, w01, & 25 wake_deltat, wake_deltaq, wake_s, wake_dens,&26 awake_dens, cv_gen,&28 wake_deltat, wake_deltaq, wake_s, awake_s, & 29 wake_dens, awake_dens, cv_gen, & 27 30 wake_cstar, & 28 31 wake_pe, wake_fip, fm_therm, entr_therm, & … … 31 34 du_gwd_rando, du_gwd_front, u10m, v10m, & 32 35 treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, & 33 !GG delta_sst, ratqs_inter_, dter, dser, dt_ds 34 delta_sst, ratqs_inter_, dter, dser, dt_ds, & 35 hice, tice, bilg_cumul 36 !GG delta_sst, ratqs_inter_, dter, 37 !dser, dt_ds 38 delta_sst, ratqs_inter_, dter, dser,& 39 & dt_ds, hice, tice, bilg_cumul, & 36 40 !GG 41 frac_tersrf, z0m_tersrf,& 42 & ratio_z0m_z0h_tersrf,& 43 & albedo_tersrf, beta_tersrf,& 44 & inertie_tersrf, hcond_tersrf,& 45 & tsurfi_tersrf, tsoili_tersrf,& 46 & tsoil_depth, qsurf_tersrf,& 47 & tsurf_tersrf, tsoil_tersrf,& 48 & tsurf_new_tersrf,& 49 & cdragm_tersrf, cdragh_tersrf,& 50 & swnet_tersrf, lwnet_tersrf,& 51 & fluxsens_tersrf, fluxlat_tersrf 52 37 53 #ifdef ISO 38 54 USE phys_state_var_mod, ONLY: xtsol, fxtevap,xtrain_fall, xtsnow_fall, & … … 49 65 #endif 50 66 #endif 51 USE compbl_mod_h52 USE alpale_mod53 USE clesphys_mod_h54 67 USE carbon_cycle_mod, ONLY : carbon_cycle_cpl, co2_send, carbon_cycle_rad, RCO2_glo 55 68 USE indice_sol_mod, ONLY: nbsrf, is_oce, is_sic, is_ter, is_lic, epsfra … … 60 73 USE ocean_slab_mod, ONLY : nslay, tslab, seaice, tice_slab, fsic 61 74 USE time_phylmdz_mod, ONLY: annee_ref, day_end, itau_phy, pdtphys 62 use config_ocean_skin_m, only: activate_ocean_skin75 USE config_ocean_skin_m, ONLY: activate_ocean_skin 63 76 USE dimsoil_mod_h, ONLY: nsoilmx 64 77 65 IMPLICIT none78 IMPLICIT NONE 66 79 !====================================================================== 67 80 CHARACTER*(*) fichnom … … 72 85 REAL qsurf(klon, nbsrf) 73 86 REAL snow(klon, nbsrf) 74 realfder(klon)87 REAL fder(klon) 75 88 REAL run_off_lic_0(klon) 76 89 REAL trs(klon, nbtr) … … 96 109 ! Get variables which will be written to restart file from module 97 110 ! pbl_surface_mod 98 CALL pbl_surface_final(fder, snow, qsurf, tsoil & 111 IF ( iflag_physiq <= 1 ) THEN 112 CALL pbl_surface_final(fder, snow, qsurf, tsoil & 99 113 #ifdef ISO 100 114 ,xtsnow,Rland_ice & 101 115 #endif 102 116 ) 117 ENDIF 103 118 104 119 ! Get a variable calculated in module fonte_neige_mod … … 187 202 CALL put_field(pass,"FSIC", "fraction glace mer", pctsrf(:, is_sic)) 188 203 189 IF(nbsrf >99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1) 190 IF(nsoilmx>99) CALL abort_physic("phyredem", "Trop de sous-mailles", 1) 191 IF(nsw >99) CALL abort_physic("phyredem", "Trop de bandes", 1) 204 IF(nbsrf>99) THEN 205 PRINT*, "Trop de sous-mailles"; CALL abort_physic("phyredem", "", 1) 206 END IF 207 IF(nsoilmx>99) THEN 208 PRINT*, "Trop de sous-surfaces"; CALL abort_physic("phyredem", "", 1) 209 END IF 210 IF(nsw>99) THEN 211 PRINT*, "Trop de bandes"; CALL abort_physic("phyredem", "", 1) 212 END IF 192 213 193 214 ! Surface variables … … 196 217 IF (iflag_pbl>1 .AND. iflag_wake>=1 .AND. iflag_pbl_split >=1) then 197 218 CALL put_field_srf1(pass, "DELTATS", & 198 "w-x surface temperature difference",delta_tsurf(:,:))199 CALL put_field_srf1(pass, "BETAS","Aridity factor", beta_aridity(:,:))200 endIF219 "w-x surface temperature difference", delta_tsurf(:,:)) 220 CALL put_field_srf1(pass,"BETAS","Aridity factor", beta_aridity(:,:)) 221 END IF 201 222 ! End surface variables 202 223 203 224 ! ================== Albedo ======================================= 204 print*,'PHYREDEM NOUVEAU'225 PRINT*,'PHYREDEM NOUVEAU' 205 226 CALL put_field_srf2(pass,"A_dir_SW","Albedo direct",falb_dir(:,:,:)) 206 227 CALL put_field_srf2(pass,"A_dif_SW","Albedo diffus",falb_dif(:,:,:)) … … 216 237 ! CALL put_field_srf2("treedrg","freinage arbres",treedrg(:,:,:)) 217 238 CALL put_field(pass,"treedrg_ter","freinage arbres",treedrg(:,:,is_ter)) 218 239 !AM 240 CALL put_field_srf1(pass,"frac_tersrf","fraction sous surface", frac_tersrf(:,:)) 241 CALL put_field_srf1(pass,"z0m_tersrf","rugosite sous surface", z0m_tersrf(:,:)) 242 CALL put_field_srf1(pass,"ratio_z0m_z0h_tersrf","ratio rugosites sous surface", ratio_z0m_z0h_tersrf(:,:)) 243 CALL put_field_srf1(pass,"albedo_tersrf","albedo sous surface", albedo_tersrf(:,:)) 244 CALL put_field_srf1(pass,"beta_tersrf","beta sous surface", beta_tersrf(:,:)) 245 CALL put_field_srf1(pass,"inertie_tersrf","inertie sous surface", inertie_tersrf(:,:)) 246 CALL put_field_srf1(pass,"hcond_tersrf","conductivité thermique sous surface", hcond_tersrf(:,:)) 247 CALL put_field_srf1(pass,"tsurfi_tersrf","temperature surface sous surface initiale", tsurfi_tersrf(:,:)) 248 CALL put_field_srf2(pass,"Tsoili","temperature sol sous surface initiale", tsoili_tersrf(:,:,:)) 249 CALL put_field_srf2(pass,"tsoil_depth","profondeur temperature sol sous surface", tsoil_depth(:,:,:)) 250 CALL put_field_srf1(pass,"qsurf_tersrf","humidite surface sous surface", qsurf_tersrf(:,:)) 251 CALL put_field_srf1(pass,"tsurf_tersrf","temperature surface sous surface", tsurf_tersrf(:,:)) 252 CALL put_field_srf1(pass,"tsurf_new_tersrf","temperature surface sous surface", tsurf_new_tersrf(:,:)) 253 CALL put_field_srf1(pass,"cdragm_tersrf","coeff trainee quantite mouvement sous surface", cdragm_tersrf(:,:)) 254 CALL put_field_srf1(pass,"cdragh_tersrf","coeff trainee chaleur sous surface", cdragh_tersrf(:,:)) 255 CALL put_field_srf1(pass,"swnet_tersrf","shortwave net sous surface", swnet_tersrf(:,:)) 256 CALL put_field_srf1(pass,"lwnet_tersrf","longwave net sous surface", lwnet_tersrf(:,:)) 257 CALL put_field_srf1(pass,"fluxsens_tersrf","flux sensible sous surface", fluxsens_tersrf(:,:)) 258 CALL put_field_srf1(pass,"fluxlat_tersrf","flux latent sous surface", fluxlat_tersrf(:,:)) 259 CALL put_field_srf2(pass,"tsoil_tersrf","temperature sol sous surface", tsoil_tersrf(:,:,:)) 219 260 220 261 CALL put_field_srf1(pass,"QS" , "Humidite",qsurf(:,:)) … … 279 320 280 321 IF (ok_bs) THEN 281 CALL put_field(pass,"bs_f", "precipitation neige soufflee", bs_fall)282 CALL put_field(pass,"QBSANCIEN", "QBSANCIEN", qbs_ancien)283 CALL put_field(pass,"PRBSWANCIEN", "PRBSWANCIEN", prbsw_ancien)322 CALL put_field(pass,"bs_f", "precipitation neige soufflee", bs_fall) 323 CALL put_field(pass,"QBSANCIEN", "QBSANCIEN", qbs_ancien) 324 CALL put_field(pass,"PRBSWANCIEN", "PRBSWANCIEN", prbsw_ancien) 284 325 ENDIF 285 326 … … 310 351 311 352 ! DEB TKE PBL ! 353 354 IF (ok_advtke) THEN 355 CALL put_field(pass,"TKEANCIEN", "TKEANCIEN", tke_ancien) 356 ENDIF 312 357 313 358 IF (iflag_pbl>1) then … … 336 381 337 382 CALL put_field(pass,"WAKE_S", "Wake frac. area", wake_s) 383 384 CALL put_field(pass,"AWAKE_S", "Active Wake frac. area", awake_s) 338 385 339 386 CALL put_field(pass,"WAKE_DENS", "Wake num. /unit area", wake_dens) … … 409 456 END IF 410 457 411 if (ok_gwd_rando) callput_field(pass,"du_gwd_rando", &458 IF (ok_gwd_rando) CALL put_field(pass,"du_gwd_rando", & 412 459 "tendency on zonal wind due to flott gravity waves", du_gwd_rando) 413 460 414 IF (. not. ok_hines .and. ok_gwd_rando) callput_field(pass,"du_gwd_front", &461 IF (.NOT. ok_hines .AND. ok_gwd_rando) CALL put_field(pass,"du_gwd_front", & 415 462 "tendency on zonal wind due to acama gravity waves", du_gwd_front) 416 463 417 if (activate_ocean_skin >= 1) then418 if (activate_ocean_skin == 2 .and. type_ocean == 'couple') then419 CALL put_field(pass, "delta_sal", &420 "ocean-air interface salinity minus bulk salinity", delta_sal)421 CALL put_field(pass, "delta_SST", &422 "ocean-air interface temperature minus bulk SST", delta_sst)423 CALL put_field(pass, "dter", &424 "ocean-air interface temperature minus subskin temperature", &425 dter)426 CALL put_field(pass, "dser", &427 "ocean-air interface salinity minus subskin salinity", dser)428 CALL put_field(pass, "dt_ds", &429 "(tks / tkt) * dTer", dt_ds)430 end if464 IF (activate_ocean_skin >= 1) THEN 465 IF (activate_ocean_skin == 2 .AND. type_ocean == 'couple') THEN 466 CALL put_field(pass, "delta_sal", & 467 "ocean-air interface salinity minus bulk salinity", delta_sal) 468 CALL put_field(pass, "delta_SST", & 469 "ocean-air interface temperature minus bulk SST", delta_sst) 470 CALL put_field(pass, "dter", & 471 "ocean-air interface temperature minus subskin temperature", & 472 dter) 473 CALL put_field(pass, "dser", & 474 "ocean-air interface salinity minus subskin salinity", dser) 475 CALL put_field(pass, "dt_ds", & 476 "(tks / tkt) * dTer", dt_ds) 477 END IF 431 478 432 CALL put_field(pass, "dS_ns", "delta salinity near surface", ds_ns)433 CALL put_field(pass, "dT_ns", "delta temperature near surface", dT_ns)434 end if479 CALL put_field(pass, "dS_ns", "delta salinity near surface", ds_ns) 480 CALL put_field(pass, "dT_ns", "delta temperature near surface", dT_ns) 481 END IF 435 482 436 483 #ifdef ISO 437 write(*,*) 'phyredem 342' 438 call phyisoredem (pass, & 439 & xtsnow, & 440 & xtrun_off_lic_0,Rland_ice, & 441 & run_off_lic_0) 442 #endif 443 484 WRITE(*,*) 'phyredem 342' 485 CALL phyisoredem (pass, & 486 & xtsnow, & 487 & xtrun_off_lic_0,Rland_ice, & 488 & run_off_lic_0) 489 #endif 444 490 IF (pass==1) CALL enddef_restartphy 445 491 IF (pass==2) CALL close_restartphy … … 472 518 473 519 IMPLICIT NONE 474 INTEGER, INTENT(IN) :: pass520 INTEGER, INTENT(IN) :: pass 475 521 CHARACTER(LEN=*), INTENT(IN) :: nam, lnam 476 522 REAL, INTENT(IN) :: field(:,:,:) … … 492 538 493 539 IMPLICIT NONE 494 INTEGER, INTENT(IN) :: pass540 INTEGER, INTENT(IN) :: pass 495 541 CHARACTER(LEN=*), INTENT(IN) :: nam, lnam 496 542 REAL, INTENT(IN) :: field(:,:,:) … … 506 552 507 553 #ifdef ISO 508 ! je voulais mettre cette subroutine dans isotopes_mod, mais elle a besoin de put_field_srf1 qui est contenue dans la subroutine phyredem. Si on veut mettre cette routine dans isotopes_mod, il faudrait convertir ce fichier en module pour pouvoir en appeler des routines 509 510 SUBROUTINE phyisoredem (pass, & 554 ! je voulais mettre cette subroutine dans isotopes_mod, 555 ! mais elle a besoin de put_field_srf1 qui est contenue 556 ! dans la subroutine phyredem. Si on veut mettre cette 557 ! routine dans isotopes_mod, il faudrait convertir ce 558 ! fichier en module pour pouvoir en appeler des routines 559 560 SUBROUTINE phyisoredem (pass, & 511 561 & xtsnow, & 512 562 & xtrun_off_lic_0,Rland_ice, & 513 563 & run_off_lic_0) 514 USE dimphy515 !USE mod_grid_phy_lmdz516 !USE mod_phys_lmdz_para517 USE phys_state_var_mod, ONLY: q_ancien,xt_ancien,wake_deltaq,wake_deltaxt, &518 xtrain_fall,xtsnow_fall, ql_ancien,xtl_ancien,qs_ancien,xts_ancien, &519 xtsol,fxtevap520 USE infotrac_phy,ONLY: niso, ntiso521 !USE control_mod522 USE indice_sol_mod, ONLY: nbsrf523 USE iostart, ONLY: put_field524 USE isotopes_mod, ONLY: isoName,iso_eau564 USE dimphy 565 !USE mod_grid_phy_lmdz 566 !USE mod_phys_lmdz_para 567 USE phys_state_var_mod, ONLY: q_ancien,xt_ancien,wake_deltaq,wake_deltaxt, & 568 xtrain_fall,xtsnow_fall, ql_ancien,xtl_ancien,qs_ancien,xts_ancien, & 569 xtsol,fxtevap 570 USE infotrac_phy,ONLY: niso, ntiso 571 !USE control_mod 572 USE indice_sol_mod, ONLY: nbsrf 573 USE iostart, ONLY: put_field 574 USE isotopes_mod, ONLY: isoName,iso_eau 525 575 #ifdef ISOVERIF 526 USE isotopes_verif_mod576 USE isotopes_verif_mod 527 577 #endif 528 578 #ifdef ISOTRAC 529 use isotrac_mod, only: index_zone,index_iso,strtrac 530 #endif 531 USE compbl_mod_h 532 USE alpale_mod 533 USE clesphys_mod_h 534 USE dimsoil_mod_h, ONLY: nsoilmx 535 implicit none 536 537 ! equivalent isotopique de phyredem 538 ! inputs 539 !REAL xtsol(niso,klon) 540 REAL xtsnow(niso,klon,nbsrf) 541 !REAL xtevap(ntiso,klon,nbsrf) 542 REAL xtrun_off_lic_0(niso,klon) 543 REAL Rland_ice(niso,klon) 544 real run_off_lic_0(klon) 545 integer, intent(in) :: pass 546 547 ! locals 548 real iso_tmp(klon) 549 real iso_tmp_lonlev(klon,klev) 550 real iso_tmp_lonsrf(klon,nbsrf) 551 integer i,ixt,k,nsrf 552 INTEGER nid, nvarid 553 INTEGER ierr 554 CHARACTER*7 str7 555 CHARACTER*2 str2 556 CHARACTER*50 outiso 557 integer lnblnk 579 USE isotrac_mod, ONLY: index_zone,index_iso,strtrac 580 #endif 581 USE compbl_mod_h 582 USE alpale_mod 583 USE clesphys_mod_h 584 USE dimsoil_mod_h, ONLY: nsoilmx 585 586 IMPLICIT NONE 587 588 ! equivalent isotopique de phyredem 589 ! inputs 590 !REAL xtsol(niso,klon) 591 REAL, INTENT(IN) :: xtsnow(niso,klon,nbsrf) 592 !REAL xtevap(ntiso,klon,nbsrf) 593 REAL, INTENT(IN) :: xtrun_off_lic_0(niso,klon) 594 REAL, INTENT(IN) :: Rland_ice(niso,klon) 595 REAL, INTENT(IN) :: run_off_lic_0(klon) 596 INTEGER, INTENT(IN) :: pass 597 598 ! locals 599 REAL iso_tmp(klon) 600 REAL iso_tmp_lonlev(klon,klev) 601 REAL iso_tmp_lonsrf(klon,nbsrf) 602 INTEGER i,ixt,k,nsrf 603 INTEGER nid, nvarid 604 INTEGER ierr 605 CHARACTER*7 str7 606 CHARACTER*2 str2 607 CHARACTER*50 outiso 608 INTEGER lnblnk 558 609 #ifdef ISOTRAC 559 integeriiso,izone610 INTEGER iiso,izone 560 611 #endif 561 612 562 write(*,*) 'phyisoredem 41: entrée'613 WRITE(*,*) 'phyisoredem 41: entrée' 563 614 #ifdef ISOVERIF 564 if (iso_eau.gt.0) then565 dok=1,klev566 doi=1,klon567 calliso_verif_egalite(xt_ancien(iso_eau,i,k),q_ancien(i,k), &615 IF (iso_eau.GT.0) THEN 616 DO k=1,klev 617 DO i=1,klon 618 CALL iso_verif_egalite(xt_ancien(iso_eau,i,k),q_ancien(i,k), & 568 619 & 'phyisoredem 50a') 569 calliso_verif_egalite(xtl_ancien(iso_eau,i,k),ql_ancien(i,k), &620 CALL iso_verif_egalite(xtl_ancien(iso_eau,i,k),ql_ancien(i,k), & 570 621 & 'phyisoredem 50b') 571 calliso_verif_egalite(xts_ancien(iso_eau,i,k),qs_ancien(i,k), &622 CALL iso_verif_egalite(xts_ancien(iso_eau,i,k),qs_ancien(i,k), & 572 623 & 'phyisoredem 50c') 573 624 574 enddo!do i=1,klon575 enddo!do k=1,klev576 doi=1,klon577 DO nsrf = 1, nbsrf578 calliso_verif_egalite(fxtevap(iso_eau,i,nsrf),fevap(i,nsrf), &625 ENDDO !do i=1,klon 626 ENDDO !do k=1,klev 627 DO i=1,klon 628 DO nsrf = 1, nbsrf 629 CALL iso_verif_egalite(fxtevap(iso_eau,i,nsrf),fevap(i,nsrf), & 579 630 & 'phyisoredem 50d') 580 enddo !DO nsrf = 1, nbsrf 581 enddo 582 endif !if (iso_eau.gt.0) then 583 do i=1,klon 584 do ixt=1,niso 585 call iso_verif_noNaN(xtsol(ixt,i),'phyisoredem 72') 586 enddo !do ixt=1,niso 587 enddo !do i=1,klon 631 ENDDO !DO nsrf = 1, nbsrf 632 ENDDO 633 ENDIF !if (iso_eau.gt.0) then 634 635 DO i=1,klon 636 DO ixt=1,niso 637 CALL iso_verif_noNaN(xtsol(ixt,i),'phyisoredem 72') 638 ENDDO !do ixt=1,niso 639 ENDDO !do i=1,klon 588 640 #ifdef ISOTRAC 589 dok=1,klev590 doi=1,klon591 calliso_verif_traceur(xt_ancien(1,i,k), &641 DO k=1,klev 642 DO i=1,klon 643 CALL iso_verif_traceur(xt_ancien(1,i,k), & 592 644 & 'phyisoredem 60') 593 enddo!do i=1,klon594 enddo!do k=1,kle595 #endif 596 #endif 597 598 do ixt=1,ntiso599 600 outiso = TRIM(isoName(ixt))601 i = INDEX(outiso, '_', .TRUE.)602 outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso))603 write(*,*) 'phyredem 550: ixt,outiso=',ixt,TRIM(outiso)645 ENDDO !do i=1,klon 646 ENDDO !do k=1,kle 647 #endif 648 #endif 649 650 do ixt=1,ntiso 651 652 outiso = TRIM(isoName(ixt)) 653 i = INDEX(outiso, '_', .TRUE.) 654 outiso = outiso(1:i-1)//outiso(i+1:LEN_TRIM(outiso)) 655 write(*,*) 'phyredem 550: ixt,outiso=',ixt,TRIM(outiso) 604 656 605 iso_tmp_lonsrf(:,:)=fxtevap(ixt,:,:)606 CALL put_field_srf1(pass, "XTEVAP"//TRIM(outiso), "Evaporation de surface",iso_tmp_lonsrf)607 608 iso_tmp(:)=xtrain_fall(ixt,:)609 CALL put_field(pass, "xtrain_f"//TRIM(outiso), "precipitation liquide",iso_tmp)610 611 iso_tmp(:)=xtsnow_fall(ixt,:)612 CALL put_field(pass, "xtsnow_f"//TRIM(outiso), "precipitation solide",iso_tmp)613 614 iso_tmp_lonlev(:,:)=xt_ancien(ixt,:,:)615 CALL put_field(pass, "XTANCIEN"//TRIM(outiso), "QANCIEN", iso_tmp_lonlev)616 617 iso_tmp_lonlev(:,:)=xtl_ancien(ixt,:,:)618 CALL put_field(pass, "XTLANCIEN"//TRIM(outiso), "QLANCIEN", iso_tmp_lonlev)619 620 iso_tmp_lonlev(:,:)=xts_ancien(ixt,:,:)621 CALL put_field(pass, "XTSANCIEN"//TRIM(outiso), "QSANCIEN", iso_tmp_lonlev)622 623 iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)624 CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAQ", iso_tmp_lonlev)625 626 iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:)627 CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAXT",iso_tmp_lonlev)628 629 ! variables seulement pour niso:630 if (ixt.le.niso) then657 iso_tmp_lonsrf(:,:)=fxtevap(ixt,:,:) 658 CALL put_field_srf1(pass, "XTEVAP"//TRIM(outiso), "Evaporation de surface",iso_tmp_lonsrf) 659 660 iso_tmp(:)=xtrain_fall(ixt,:) 661 CALL put_field(pass, "xtrain_f"//TRIM(outiso), "precipitation liquide",iso_tmp) 662 663 iso_tmp(:)=xtsnow_fall(ixt,:) 664 CALL put_field(pass, "xtsnow_f"//TRIM(outiso), "precipitation solide",iso_tmp) 665 666 iso_tmp_lonlev(:,:)=xt_ancien(ixt,:,:) 667 CALL put_field(pass, "XTANCIEN"//TRIM(outiso), "QANCIEN", iso_tmp_lonlev) 668 669 iso_tmp_lonlev(:,:)=xtl_ancien(ixt,:,:) 670 CALL put_field(pass, "XTLANCIEN"//TRIM(outiso), "QLANCIEN", iso_tmp_lonlev) 671 672 iso_tmp_lonlev(:,:)=xts_ancien(ixt,:,:) 673 CALL put_field(pass, "XTSANCIEN"//TRIM(outiso), "QSANCIEN", iso_tmp_lonlev) 674 675 iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:) 676 CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAQ", iso_tmp_lonlev) 677 678 iso_tmp_lonlev(:,:)=wake_deltaxt(ixt,:,:) 679 CALL put_field(pass,"WAKE_DELTAXT"//TRIM(outiso), "WAKE_DELTAXT",iso_tmp_lonlev) 680 681 ! variables seulement pour niso: 682 IF (ixt.LE.niso) THEN 631 683 632 684 iso_tmp_lonsrf(:,:)=xtsnow(ixt,:,:) … … 642 694 CALL put_field(pass,"XTRUNOFFLIC0"//TRIM(outiso), "Runofflic0", iso_tmp) 643 695 644 endif ! if (ixt.le.niso) then 645 646 enddo !do ixt=1,niso 647 648 write(*,*) 'phyisoredem 261: sortie' 649 END SUBROUTINE phyisoredem 696 ENDIF ! if (ixt.le.niso) then 697 698 ENDDO !do ixt=1,niso 699 700 WRITE(*,*) 'phyisoredem 261: sortie' 701 702 END SUBROUTINE phyisoredem 650 703 #endif 651 704
Note: See TracChangeset
for help on using the changeset viewer.
