Changeset 3275 for trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
- Timestamp:
- Mar 20, 2024, 3:05:14 PM (8 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto
-
Property
svn:ignore
set to
*.mod
vdifc_mod.F.save
-
Property
svn:ignore
set to
-
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3258 r3275 300 300 real omega(ngrid,nlayer) ! omega velocity (Pa/s, >0 when downward) 301 301 302 integer i,l,ig,ierr,iq,nw,isoil,iesp, igcm_generic_ vap, igcm_generic_ice303 logical call_ice_ vap_generic ! to call only one time the ice/vap pair of a tracer302 integer i,l,ig,ierr,iq,nw,isoil,iesp, igcm_generic_gas, igcm_generic_ice 303 logical call_ice_gas_generic ! to call only one time the ice/vap pair of a tracer 304 304 305 305 real zls ! Solar longitude (radians). … … 638 638 qsurf_hist(:,:)=qsurf(:,:) 639 639 640 !! call WriteField_phy("post_qsurf_hist_qsurf",qsurf(1:ngrid,igcm_h2o_ vap),1)640 !! call WriteField_phy("post_qsurf_hist_qsurf",qsurf(1:ngrid,igcm_h2o_gas),1) 641 641 642 642 ! Initialize variable for dynamical heating and zonal wind tendency diagnostic … … 681 681 endif 682 682 683 !! call WriteField_phy("post_physdem_qsurf",qsurf(1:ngrid,igcm_h2o_ vap),1)683 !! call WriteField_phy("post_physdem_qsurf",qsurf(1:ngrid,igcm_h2o_gas),1) 684 684 #endif 685 685 if (corrk) then … … 702 702 endif 703 703 704 !! call WriteField_phy("post_corrk_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_ vap),1)704 !! call WriteField_phy("post_corrk_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_gas),1) 705 705 ! XIOS outputs 706 706 #ifdef CPP_XIOS … … 711 711 #endif 712 712 713 !! call WriteField_phy("post_xios_qsurf",qsurf(1:ngrid,igcm_h2o_ vap),1)713 !! call WriteField_phy("post_xios_qsurf",qsurf(1:ngrid,igcm_h2o_gas),1) 714 714 715 715 write(*,*) "physiq: end of firstcall" 716 716 endif ! end of 'firstcall' 717 717 718 !! call WriteField_phy("post_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_ vap),1)719 !! call writediagfi(ngrid,"firstcall_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))718 !! call WriteField_phy("post_firstcall_qsurf",qsurf(1:ngrid,igcm_h2o_gas),1) 719 !! call writediagfi(ngrid,"firstcall_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 720 720 721 721 if (check_physics_inputs) then … … 882 882 ! Eclipse incoming sunlight !AF24: removed 883 883 884 !! call writediagfi(ngrid,"corrk_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))885 !! call writediagfi(ngrid,"corrk_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))884 !! call writediagfi(ngrid,"corrk_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 885 !! call writediagfi(ngrid,"corrk_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 886 886 887 887 … … 900 900 do iq=1,nq 901 901 902 call generic_tracer_index(nq,iq,igcm_generic_ vap,igcm_generic_ice,call_ice_vap_generic)903 904 if (call_ice_ vap_generic) then ! to call only one time the ice/vap pair of a tracer902 call generic_tracer_index(nq,iq,igcm_generic_gas,igcm_generic_ice,call_ice_gas_generic) 903 904 if (call_ice_gas_generic) then ! to call only one time the ice/vap pair of a tracer 905 905 906 906 epsi_generic=constants_epsi_generic(iq) 907 907 908 muvar(1:ngrid,1:nlayer)=mugaz/(1.e0+(1.e0/epsi_generic-1.e0)*pq(1:ngrid,1:nlayer,igcm_generic_ vap))909 muvar(1:ngrid,nlayer+1)=mugaz/(1.e0+(1.e0/epsi_generic-1.e0)*pq(1:ngrid,nlayer,igcm_generic_ vap))908 muvar(1:ngrid,1:nlayer)=mugaz/(1.e0+(1.e0/epsi_generic-1.e0)*pq(1:ngrid,1:nlayer,igcm_generic_gas)) 909 muvar(1:ngrid,nlayer+1)=mugaz/(1.e0+(1.e0/epsi_generic-1.e0)*pq(1:ngrid,nlayer,igcm_generic_gas)) 910 910 911 911 endif … … 931 931 call callcorrk(ngrid,nlayer,pq,nq,qsurf, & 932 932 albedo,albedo_equivalent,emis,mu0,pplev,pplay,pt, & 933 tsurf,fract,dist_star,aerosol,muvar, &933 zzlay,tsurf,fract,dist_star,aerosol,muvar, & 934 934 zdtlw,zdtsw,fluxsurf_lw,fluxsurf_sw, & 935 935 fluxsurfabs_sw,fluxtop_lw, & … … 1039 1039 endif ! of if (callrad) 1040 1040 1041 !! call writediagfi(ngrid,"vdifc_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1042 !! call writediagfi(ngrid,"vdifc_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))1041 !! call writediagfi(ngrid,"vdifc_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1042 !! call writediagfi(ngrid,"vdifc_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 1043 1043 1044 1044 … … 1137 1137 ! endif 1138 1138 1139 !! call writediagfi(ngrid,"vdifc_post_zdqsdif"," "," ",2,zdqsdif(1:ngrid,igcm_h2o_ vap))1139 !! call writediagfi(ngrid,"vdifc_post_zdqsdif"," "," ",2,zdqsdif(1:ngrid,igcm_h2o_gas)) 1140 1140 1141 1141 if (tracer) then … … 1144 1144 end if ! of if (tracer) 1145 1145 1146 !! call writediagfi(ngrid,"vdifc_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1147 !! call writediagfi(ngrid,"vdifc_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))1146 !! call writediagfi(ngrid,"vdifc_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1147 !! call writediagfi(ngrid,"vdifc_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 1148 1148 1149 1149 ! test energy conservation … … 1264 1264 dqsurf(1:ngrid,igcm_n2) = dqsurf(1:ngrid,igcm_n2) + zdqsc(1:ngrid,igcm_n2) 1265 1265 1266 !! call writediagfi(ngrid,"condense_n2_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1267 !! call writediagfi(ngrid,"condense_n2_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))1266 !! call writediagfi(ngrid,"condense_n2_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1267 !! call writediagfi(ngrid,"condense_n2_post_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 1268 1268 1269 1269 ! test energy conservation … … 1458 1458 cloudfrac(:,:)=0.0 1459 1459 do iq=1,nq 1460 call generic_tracer_index(nq,iq,igcm_generic_ vap,igcm_generic_ice,call_ice_vap_generic)1461 if (call_ice_ vap_generic) then ! to call only one time the ice/vap pair of a tracer1460 call generic_tracer_index(nq,iq,igcm_generic_gas,igcm_generic_ice,call_ice_gas_generic) 1461 if (call_ice_gas_generic) then ! to call only one time the ice/vap pair of a tracer 1462 1462 do l = 1, nlayer 1463 1463 do ig=1,ngrid … … 1491 1491 dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq) + zdqssed(1:ngrid,1:nq) 1492 1492 1493 !! call writediagfi(ngrid,"callsedim_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1493 !! call writediagfi(ngrid,"callsedim_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1494 1494 1495 1495 ! ! Test water conservation !AF24: removed … … 1497 1497 end if ! end of 'sedimentation' 1498 1498 1499 !! call writediagfi(ngrid,"mass_redist_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1500 !! call writediagfi(ngrid,"mass_redist_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))1499 !! call writediagfi(ngrid,"mass_redist_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1500 !! call writediagfi(ngrid,"mass_redist_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 1501 1501 1502 1502 ! --------------- … … 1509 1509 zdmassmr(1:ngrid,1:nlayer) = mass(1:ngrid,1:nlayer) * 0 1510 1510 ! ( zdqevap(1:ngrid,1:nlayer) & 1511 ! ! + zdqrain(1:ngrid,1:nlayer,igcm_h2o_ vap) &1512 ! ! + dqmoist(1:ngrid,1:nlayer,igcm_h2o_ vap) &1511 ! ! + zdqrain(1:ngrid,1:nlayer,igcm_h2o_gas) & 1512 ! ! + dqmoist(1:ngrid,1:nlayer,igcm_h2o_gas) & 1513 1513 ! + dqvaplscale(1:ngrid,1:nlayer) ) 1514 1514 … … 1536 1536 endif 1537 1537 1538 ! call writediagfi(ngrid,"mass_redistribution_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1539 1540 !! call writediagfi(ngrid,"slab_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_ vap))1541 !! call writediagfi(ngrid,"slab_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_ vap))1538 ! call writediagfi(ngrid,"mass_redistribution_post_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1539 1540 !! call writediagfi(ngrid,"slab_pre_dqsurf"," "," ",2,dqsurf(1:ngrid,igcm_h2o_gas)) 1541 !! call writediagfi(ngrid,"slab_pre_qsurf"," "," ",2,qsurf(1:ngrid,igcm_h2o_gas)) 1542 1542 1543 1543 … … 1794 1794 do iq=1,nq 1795 1795 1796 call generic_tracer_index(nq,iq,igcm_generic_ vap,igcm_generic_ice,call_ice_vap_generic)1797 1798 if (call_ice_ vap_generic) then ! to call only one time the ice/vap pair of a tracer1796 call generic_tracer_index(nq,iq,igcm_generic_gas,igcm_generic_ice,call_ice_gas_generic) 1797 1798 if (call_ice_gas_generic) then ! to call only one time the ice/vap pair of a tracer 1799 1799 1800 1800 do l = 1, nlayer 1801 1801 do ig=1,ngrid 1802 1802 call Psat_generic(zt(ig,l),pplay(ig,l),metallicity,psat_tmp_generic,qsat_generic(ig,l,iq)) 1803 RH_generic(ig,l,iq) = zq(ig,l,igcm_generic_ vap) / qsat_generic(ig,l,iq)1803 RH_generic(ig,l,iq) = zq(ig,l,igcm_generic_gas) / qsat_generic(ig,l,iq) 1804 1804 enddo 1805 1805 enddo … … 2364 2364 2365 2365 do iq=1,nq 2366 call generic_tracer_index(nq,iq,igcm_generic_ vap,igcm_generic_ice,call_ice_vap_generic)2367 2368 if (call_ice_ vap_generic) then ! to call only one time the ice/vap pair of a tracer2366 call generic_tracer_index(nq,iq,igcm_generic_gas,igcm_generic_ice,call_ice_gas_generic) 2367 2368 if (call_ice_gas_generic) then ! to call only one time the ice/vap pair of a tracer 2369 2369 2370 2370 reffrad_generic_zeros_for_wrf(:,:) = 1. … … 2373 2373 comm_TOTCLOUDFRAC(1:ngrid) = totcloudfrac(1:ngrid) !?????? 2374 2374 comm_SURFRAIN(1:ngrid) = zdqsrain_generic(1:ngrid,iq) 2375 comm_DQVAP(1:ngrid,1:nlayer) = pdq(1:ngrid,1:nlayer,igcm_generic_ vap)2375 comm_DQVAP(1:ngrid,1:nlayer) = pdq(1:ngrid,1:nlayer,igcm_generic_gas) 2376 2376 comm_DQICE(1:ngrid,1:nlayer)=pdq(1:ngrid,1:nlayer,igcm_generic_ice) 2377 2377 ! comm_H2OICE_REFF(1:ngrid,1:nlayer) = reffrad_generic_zeros_for_wrf(1:ngrid,1:nlayer) ! for now zeros ! … … 2417 2417 ! do ig=1,ngrid 2418 2418 ! if ((tracer).and.(water)) then 2419 ! pdq(ig,:,igcm_h2o_ vap) = pdq(ig,:,igcm_h2o_vap) + lsf_dq(:)2419 ! pdq(ig,:,igcm_h2o_gas) = pdq(ig,:,igcm_h2o_gas) + lsf_dq(:) 2420 2420 ! endif 2421 2421 ! pdt(ig,:) = pdt(ig,:) + lsf_dt(:)
Note: See TracChangeset
for help on using the changeset viewer.