Ignore:
Timestamp:
Mar 1, 2023, 6:22:39 PM (16 months ago)
Author:
Laurent Fairhead
Message:

Merged trunk revisions from 4127 to 4443 (HEAD) into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Portage_acc/libf/phylmdiso/pbl_surface_mod.F90

    r4036 r4446  
    1414  USE mod_grid_phy_lmdz,   ONLY : klon_glo
    1515  USE ioipsl
    16   USE surface_data,        ONLY : type_ocean, ok_veget
     16  USE surface_data,        ONLY : type_ocean, ok_veget, landice_opt
    1717  USE surf_land_mod,       ONLY : surf_land
    1818  USE surf_landice_mod,    ONLY : surf_landice
     
    3131                                  wx_pbl_check, wx_pbl_dts_check, wx_evappot
    3232  use config_ocean_skin_m, only: activate_ocean_skin
     33#ifdef ISO
     34  USE infotrac_phy, ONLY: niso,ntraciso=>ntiso   
     35#endif
    3336
    3437  IMPLICIT NONE
     
    193196    USE indice_sol_mod
    194197    USE print_control_mod, ONLY: lunout
    195   USE infotrac_phy, ONLY: niso,ntraciso ! ajout C Risi pour isos 
    196198#ifdef ISOVERIF
    197199    USE isotopes_mod, ONLY: iso_eau,ridicule
     
    395397    USE print_control_mod,  ONLY : prt_level,lunout
    396398#ifdef ISO
    397   USE infotrac_phy, ONLY: ntraciso,niso ! ajout C Risi pour isos   
    398399  USE isotopes_mod, ONLY: Rdefault,iso_eau
    399400#ifdef ISOVERIF
     
    405406#endif
    406407    USE ioipsl_getin_p_mod, ONLY : getin_p
    407     use phys_state_var_mod, only: ds_ns, dt_ns, delta_sst, delta_sal, zsig, zmea
    408     use phys_output_var_mod, only: dter, dser, tkt, tks, taur, sss
     408    use phys_state_var_mod, only: ds_ns, dt_ns, delta_sst, delta_sal, dter, &
     409         dser, dt_ds, zsig, zmea
     410    use phys_output_var_mod, only: tkt, tks, taur, sss
    409411#ifdef CPP_XIOS
    410412    USE wxios, ONLY: missing_val
     
    10281030    ! Martin
    10291031
    1030     REAL, DIMENSION(klon):: ydelta_sst, ydelta_sal, yds_ns, ydt_ns, ydter, ydser, &
    1031          ytkt, ytks, ytaur, ysss
    1032     ! compression of delta_sst, delta_sal, ds_ns, dt_ns, dter, dser, tkt, tks,
    1033     ! taur, sss on ocean points
     1032    REAL, DIMENSION(klon):: ydelta_sst, ydelta_sal, yds_ns, ydt_ns, ydter, &
     1033         ydser, ydt_ds, ytkt, ytks, ytaur, ysss
     1034    ! compression of delta_sst, delta_sal, ds_ns, dt_ns, dter, dser,
     1035    ! dt_ds, tkt, tks, taur, sss on ocean points
    10341036
    10351037#ifdef ISO
     
    18121814             ydelta_sal(:knon) = delta_sal(ni(:knon))
    18131815             ydelta_sst(:knon) = delta_sst(ni(:knon))
     1816             ydter(:knon) = dter(ni(:knon))
     1817             ydser(:knon) = dser(ni(:knon))
     1818             ydt_ds(:knon) = dt_ds(ni(:knon))
    18141819          end if
    18151820         
     
    23812386       CASE(is_lic)
    23822387          ! Martin
    2383           CALL surf_landice(itap, dtime, knon, ni, &
    2384                rlon, rlat, debut, lafin, &
    2385                yrmu0, ylwdown, yalb, zgeo1, &
    2386                ysolsw, ysollw, yts, ypplay(:,1), &
    2387 !!jyg               ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),&
    2388                ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,&
    2389                AcoefH, AcoefQ, BcoefH, BcoefQ, &
    2390                AcoefU, AcoefV, BcoefU, BcoefV, &
    2391                ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
    2392                ysnow, yqsurf, yqsol, yagesno, &
    2393                ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, &
    2394                ytsurf_new, y_dflux_t, y_dflux_q, &
    2395                yzmea, yzsig, ycldt, &
    2396                ysnowhgt, yqsnow, ytoice, ysissnow, &
    2397                yalb3_new, yrunoff, &
    2398                y_flux_u1, y_flux_v1 &
    2399 #ifdef ISO
    2400            &    ,yxtrain_f, yxtsnow_f,yxt1,yRland_ice &
    2401            &    ,yxtsnow,yxtsol,yxtevap &
     2388          IF (landice_opt .LT. 2) THEN
     2389             ! Land ice is treated by LMDZ and not by ORCHIDEE
     2390             
     2391             CALL surf_landice(itap, dtime, knon, ni, &
     2392                  rlon, rlat, debut, lafin, &
     2393                  yrmu0, ylwdown, yalb, zgeo1, &
     2394                  ysolsw, ysollw, yts, ypplay(:,1), &
     2395                  !!jyg               ycdragh, ycdragm, yrain_f, ysnow_f, yt(:,1), yq(:,1),&
     2396                  ycdragh, ycdragm, yrain_f, ysnow_f, yt1, yq1,&
     2397                  AcoefH, AcoefQ, BcoefH, BcoefQ, &
     2398                  AcoefU, AcoefV, BcoefU, BcoefV, &
     2399                  ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, &
     2400                  ysnow, yqsurf, yqsol, yagesno, &
     2401                  ytsoil, yz0m, yz0h, SFRWL, yalb_dir_new, yalb_dif_new, yevap,yfluxsens,yfluxlat, &
     2402                  ytsurf_new, y_dflux_t, y_dflux_q, &
     2403                  yzmea, yzsig, ycldt, &
     2404                  ysnowhgt, yqsnow, ytoice, ysissnow, &
     2405                  yalb3_new, yrunoff, &
     2406                  y_flux_u1, y_flux_v1 &
     2407#ifdef ISO
     2408                  &    ,yxtrain_f, yxtsnow_f,yxt1,yRland_ice &
     2409                  &    ,yxtsnow,yxtsol,yxtevap &
    24022410#endif             
    2403            &    )
    2404 
    2405 !jyg<
    2406 !!          alb3_lic(:)=0.
    2407 !>jyg
    2408           DO j = 1, knon
    2409              i = ni(j)
    2410              alb3_lic(i) = yalb3_new(j)
    2411              snowhgt(i)   = ysnowhgt(j)
    2412              qsnow(i)     = yqsnow(j)
    2413              to_ice(i)    = ytoice(j)
    2414              sissnow(i)   = ysissnow(j)
    2415              runoff(i)    = yrunoff(j)
    2416           ENDDO
    2417           ! Martin
    2418 ! Special DICE MPL 05082013 puis BOMEX MPL 20150410
    2419        IF (ok_prescr_ust) THEN
    2420           DO j=1,knon
    2421           y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1)
    2422           y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1)
    2423           ENDDO
    2424       ENDIF
    2425 
     2411                  &    )
     2412             
     2413             !jyg<
     2414             !!          alb3_lic(:)=0.
     2415             !>jyg
     2416             DO j = 1, knon
     2417                i = ni(j)
     2418                alb3_lic(i) = yalb3_new(j)
     2419                snowhgt(i)   = ysnowhgt(j)
     2420                qsnow(i)     = yqsnow(j)
     2421                to_ice(i)    = ytoice(j)
     2422                sissnow(i)   = ysissnow(j)
     2423                runoff(i)    = yrunoff(j)
     2424             ENDDO
     2425             ! Martin
     2426             ! Special DICE MPL 05082013 puis BOMEX MPL 20150410
     2427             IF (ok_prescr_ust) THEN
     2428                DO j=1,knon
     2429                   y_flux_u1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yu(j,1)*ypplay(j,1)/RD/yt(j,1)
     2430                   y_flux_v1(j)=ycdragm(j)*(1.+sqrt(yu(j,1)*yu(j,1)+yv(j,1)*yv(j,1)))*yv(j,1)*ypplay(j,1)/RD/yt(j,1)
     2431                ENDDO
     2432             ENDIF
     2433             
    24262434#ifdef ISOVERIF
    2427         do j=1,knon
    2428           do ixt=1,ntraciso
    2429             call iso_verif_noNaN(yxtevap(ixt,j), &
    2430          &      'pbl_surface 1095a: apres surf_landice')
    2431             call iso_verif_noNaN(yxtsol(ixt,j), &
    2432          &      'pbl_surface 1095b: apres surf_landice')
    2433           enddo
    2434         enddo
     2435             do j=1,knon
     2436                do ixt=1,ntraciso
     2437                   call iso_verif_noNaN(yxtevap(ixt,j), &
     2438                        &      'pbl_surface 1095a: apres surf_landice')
     2439                   call iso_verif_noNaN(yxtsol(ixt,j), &
     2440                        &      'pbl_surface 1095b: apres surf_landice')
     2441                enddo
     2442             enddo
    24352443#endif
    24362444#ifdef ISOVERIF
    2437         !write(*,*) 'pbl_surface_mod 1060: sortie surf_landice'
    2438         do j=1,knon
    2439           if (iso_eau.gt.0) then     
    2440                  call iso_verif_egalite(yxtsnow(iso_eau,j), &
    2441      &                  ysnow(j),'pbl_surf_mod 1064')
    2442            endif !if (iso_eau.gt.0) then
    2443         enddo !do i=1,klon
    2444 #endif
    2445          
     2445             !write(*,*) 'pbl_surface_mod 1060: sortie surf_landice'
     2446             do j=1,knon
     2447                if (iso_eau.gt.0) then     
     2448                   call iso_verif_egalite(yxtsnow(iso_eau,j), &
     2449                        &                  ysnow(j),'pbl_surf_mod 1064')
     2450                endif !if (iso_eau.gt.0) then
     2451             enddo !do i=1,klon
     2452#endif
     2453          END IF
    24462454       CASE(is_oce)
    24472455           CALL surf_ocean(rlon, rlat, ysolsw, ysollw, yalb_vis, &
     
    24582466               y_flux_u1, y_flux_v1, ydelta_sst(:knon), ydelta_sal(:knon), &
    24592467               yds_ns(:knon), ydt_ns(:knon), ydter(:knon), ydser(:knon), &
    2460                ytkt(:knon), ytks(:knon), ytaur(:knon), ysss &
     2468               ydt_ds(:knon), ytkt(:knon), ytks(:knon), ytaur(:knon), ysss &
    24612469#ifdef ISO
    24622470         &      ,yxtrain_f, yxtsnow_f,yxt1,Roce, &
     
    33903398          taur(ni(:knon)) = ytaur(:knon)
    33913399          sss(ni(:knon)) = ysss(:knon)
     3400
     3401          if (activate_ocean_skin == 2 .and. type_ocean == "couple") then
     3402             dt_ds = missing_val
     3403             dt_ds(ni(:knon)) = ydt_ds(:knon)
     3404          end if
    33923405       end if
    33933406
     
    40514064    USE indice_sol_mod
    40524065#ifdef ISO
    4053   USE infotrac_phy, ONLY: ntraciso,niso ! ajout C Risi pour isos 
    40544066#ifdef ISOVERIF
    40554067    USE isotopes_mod, ONLY: iso_eau,ridicule
     
    41284140
    41294141    USE indice_sol_mod
    4130     use phys_state_var_mod, only: delta_sal, ds_ns, dt_ns, delta_sst
     4142    use phys_state_var_mod, only: delta_sal, ds_ns, dt_ns, delta_sst, dter, &
     4143         dser, dt_ds
    41314144    use config_ocean_skin_m, only: activate_ocean_skin
    4132 #ifdef ISO
    4133   USE infotrac_phy, ONLY: ntraciso   
    4134 #endif
    41354145
    41364146
     
    42374247                         delta_sal(i) = 0.
    42384248                         delta_sst(i) = 0.
     4249                         dter(i) = 0.
     4250                         dser(i) = 0.
     4251                         dt_ds(i) = 0.
    42394252                      end if
    42404253                     
Note: See TracChangeset for help on using the changeset viewer.