Changeset 3204 for trunk/LMDZ.GENERIC
- Timestamp:
- Feb 8, 2024, 9:38:16 AM (10 months ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r3194 r3204 1838 1838 == 31/01/2024 == NC 1839 1839 Small corrections to enable compilation with WRF4. 1840 1841 == 08/02/2024 == EM 1842 Code cleanup. Remove obsolete "sourceevol" option and related variables. -
trunk/LMDZ.GENERIC/libf/phystd/callkeys_mod.F90
r2958 r3204 57 57 !$OMP THREADPRIVATE(aerogeneric) 58 58 logical,save :: hydrology 59 logical,save :: sourceevol60 59 logical,save :: CLFvarying 61 60 logical,save :: nosurf 62 61 logical,save :: oblate 63 !$OMP THREADPRIVATE(hydrology, sourceevol,CLFvarying,nosurf,oblate)62 !$OMP THREADPRIVATE(hydrology,CLFvarying,nosurf,oblate) 64 63 logical,save :: ok_slab_ocean 65 64 logical,save :: ok_slab_sic … … 143 142 real,save :: tau_relax 144 143 real,save :: cloudlvl 145 real,save :: icetstep146 144 real,save :: intheat 147 !$OMP THREADPRIVATE(Tsaldiff,tau_relax,cloudlvl,i cetstep,intheat)145 !$OMP THREADPRIVATE(Tsaldiff,tau_relax,cloudlvl,intheat) 148 146 real,save :: flatten 149 147 real,save :: Rmean -
trunk/LMDZ.GENERIC/libf/phystd/inifis_mod.F90
r3100 r3204 1022 1022 if (is_master) write(*,*)trim(rname)//": hydrology = ",hydrology 1023 1023 1024 if (is_master) write(*,*)trim(rname)//": Evolve surface water sources ?"1025 sourceevol=.false. ! default value1026 call getin_p("sourceevol",sourceevol)1027 if (is_master) write(*,*)trim(rname)//": sourceevol = ",sourceevol1028 1029 if (is_master) write(*,*)trim(rname)//": Ice evolution timestep ?"1030 icetstep=100.0 ! default value1031 call getin_p("icetstep",icetstep)1032 if (is_master) write(*,*)trim(rname)//": icetstep = ",icetstep1033 1034 1024 if (is_master) write(*,*)trim(rname)//": Spectral Dependant albedo ?" 1035 1025 albedo_spectral_mode=.false. ! default value -
trunk/LMDZ.GENERIC/libf/phystd/phys_state_var_mod.F90
r3100 r3204 88 88 real,allocatable,dimension(:,:,:),save :: nueffrad ! Aerosol effective radius variance. By RW 89 89 !$OMP THREADPRIVATE(qsurf_hist,nueffrad) 90 91 real,allocatable,dimension(:),save :: ice_initial92 real,allocatable,dimension(:),save :: ice_min93 !$OMP THREADPRIVATE(ice_initial,ice_min)94 90 95 91 real,dimension(:),allocatable,save :: pctsrf_sic … … 170 166 ALLOCATE(reffrad(klon,klev,naerkind)) 171 167 ALLOCATE(nueffrad(klon,klev,naerkind)) 172 ALLOCATE(ice_initial(klon))173 ALLOCATE(ice_min(klon))174 168 ALLOCATE(fluxsurf_lw(klon)) 175 169 ALLOCATE(fluxsurf_lw1(klon)) … … 263 257 DEALLOCATE(reffrad) 264 258 DEALLOCATE(nueffrad) 265 DEALLOCATE(ice_initial)266 DEALLOCATE(ice_min)267 259 DEALLOCATE(fluxsurf_lw) 268 260 DEALLOCATE(fluxsurf_lw1) -
trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90
r3100 r3204 61 61 calltherm, CLFvarying, co2cond, corrk, diagdtau, & 62 62 diurnal, enertest, fat1au, flatten, j2, & 63 hydrology, i cetstep, intheat, iradia, kastprof, &63 hydrology, intheat, iradia, kastprof, & 64 64 lwrite, mass_redistrib, massplanet, meanOLR, & 65 65 nearco2cond, newtonian, noseason_day, oblate, & 66 66 ok_slab_ocean, photochem, rings_shadow, rmean, & 67 67 season, sedimentation,generic_condensation, & 68 s ourceevol, specOLR, &68 specOLR, & 69 69 startphy_file, testradtimes, tlocked, & 70 70 tracer, UseTurbDiff, water, watercond, & … … 454 454 !$OMP THREADPRIVATE(reffcol) 455 455 456 ! Sourceevol for 'accelerated ice evolution'. By RW457 real delta_ice,ice_tot458 integer num_run459 logical,save :: ice_update460 456 ! Non-oro GW tendencies 461 457 REAL d_u_hin(ngrid,nlayer), d_v_hin(ngrid,nlayer) … … 545 541 rnat,pctsrf_sic,tslab, tsea_ice,sea_ice) 546 542 547 !! call WriteField_phy("post_phyetat0_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)548 543 #else 549 544 … … 582 577 call surfini(ngrid,nq,qsurf,albedo,albedo_bareground,albedo_snow_SPECTV,albedo_co2_ice_SPECTV) 583 578 584 !! call WriteField_phy("post_surfini1_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)585 !! call WriteField_phy("post_surfini2_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)586 587 579 ! Initialize orbital calculation. 588 580 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 654 646 655 647 endif ! end of 'callsoil'. 656 657 !! call WriteField_phy("post_callsoil_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1)658 648 659 649 icount=1 660 661 ! Decide whether to update ice at end of run.662 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~663 ice_update=.false.664 if(sourceevol)then665 !$OMP MASTER666 open(128,file='num_run',form='formatted', &667 status="old",iostat=ierr)668 if (ierr.ne.0) then669 write(*,*) "physiq: Error! No num_run file!"670 write(*,*) " (which is needed for sourceevol option)"671 stop672 endif673 read(128,*) num_run674 close(128)675 !$OMP END MASTER676 !$OMP BARRIER677 678 if(num_run.ne.0.and.mod(num_run,2).eq.0)then679 print*,'Updating ice at end of this year!'680 ice_update=.true.681 ice_min(:)=1.e4682 endif683 684 endif ! end of 'sourceevol'.685 686 650 687 651 ! Here is defined the type of the surface : Continent or Ocean. … … 741 705 endif 742 706 743 if(ice_update)then 744 ice_initial(:)=qsurf(:,igcm_h2o_ice) 745 endif 746 747 endif 748 749 !! call WriteField_phy("post_ice_update_qsurf",qsurf(1:ngrid,igcm_h2o_vap),1) 707 endif 750 708 751 709 ! Set metallicity for GCS … … 2006 1964 qsurf_hist(:,:) = qsurf(:,:) 2007 1965 2008 if(ice_update)then2009 ice_min(1:ngrid)=min(ice_min(1:ngrid),qsurf(1:ngrid,igcm_h2o_ice))2010 endif2011 2012 1966 endif! end of if 'tracer' 2013 1967 … … 2322 2276 ztime_fin = ptime + ptimestep/(float(iphysiq)*daysec) 2323 2277 2324 ! Update surface ice distribution to iterate to steady state if requested2325 if(ice_update)then2326 2327 do ig=1,ngrid2328 2329 delta_ice = (qsurf(ig,igcm_h2o_ice)-ice_initial(ig))2330 2331 ! add multiple years of evolution2332 qsurf_hist(ig,igcm_h2o_ice) = qsurf_hist(ig,igcm_h2o_ice) + delta_ice*icetstep2333 2334 ! if ice has gone -ve, set to zero2335 if(qsurf_hist(ig,igcm_h2o_ice).lt.0.0)then2336 qsurf_hist(ig,igcm_h2o_ice) = 0.02337 endif2338 2339 ! if ice is seasonal, set to zero (NEW)2340 if(ice_min(ig).lt.0.01)then2341 qsurf_hist(ig,igcm_h2o_ice) = 0.02342 endif2343 2344 enddo2345 2346 ! enforce ice conservation2347 ice_tot= SUM(qsurf_hist(:,igcm_h2o_ice)*cell_area(:) )/SUM(cell_area(:))2348 qsurf_hist(:,igcm_h2o_ice) = qsurf_hist(:,igcm_h2o_ice)*(icesrf/ice_tot)2349 2350 endif2351 2278 #ifndef MESOSCALE 2352 2279 … … 2661 2588 endif 2662 2589 2663 if(ice_update)then2664 call writediagfi(ngrid,"ice_min","min annual ice","m",2,ice_min)2665 call writediagfi(ngrid,"ice_ini","initial annual ice","m",2,ice_initial)2666 endif2667 2668 ! do ig=1,ngrid2669 ! if(tau_col(ig).gt.1.e3)then2670 ! print*,'WARNING: tau_col=',tau_col(ig)2671 ! print*,'at ig=',ig,'in PHYSIQ'2672 ! endif2673 ! end do2674 2675 2590 call writediagfi(ngrid,"tau_col","Total aerosol optical depth","[]",2,tau_col) 2676 2591
Note: See TracChangeset
for help on using the changeset viewer.