Changeset 3661 for trunk/LMDZ.TITAN/libf
- Timestamp:
- Feb 27, 2025, 2:53:11 PM (9 months ago)
- Location:
- trunk/LMDZ.TITAN/libf/phytitan
- Files:
-
- 2 edited
-
comm_wrf.F90 (modified) (3 diffs)
-
physiq_mod.F90 (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/comm_wrf.F90
r2291 r3661 18 18 REAL,SAVE,ALLOCATABLE :: comm_FLUXSURF_LW(:) 19 19 REAL,SAVE,ALLOCATABLE :: comm_FLXGRD(:) 20 REAL,SAVE,ALLOCATABLE :: comm_zqfi_omp(:,:,:) 21 REAL,SAVE,ALLOCATABLE :: comm_zdtlc(:,:) 20 22 21 23 contains 22 24 23 subroutine allocate_comm_wrf(ngrid,nlayer )25 subroutine allocate_comm_wrf(ngrid,nlayer,nq) 24 26 implicit none 25 integer,intent(in) :: ngrid ! number of atmospheric columns27 integer,intent(in) :: ngrid ! number of atmospheric columns 26 28 integer,intent(in) :: nlayer ! number of atmospheric layers 29 integer,intent(in) :: nq ! number of tracers 27 30 allocate(comm_HR_SW(ngrid,nlayer)) 28 31 allocate(comm_HR_LW(ngrid,nlayer)) … … 38 41 allocate(comm_FLUXSURF_LW(ngrid)) 39 42 allocate(comm_FLXGRD(ngrid)) 43 allocate(comm_zqfi_omp(ngrid,nlayer,nq)) 44 allocate(comm_zdtlc(ngrid,nlayer)) 40 45 41 46 end subroutine allocate_comm_wrf … … 56 61 deallocate(comm_FLUXSURF_LW) 57 62 deallocate(comm_FLXGRD) 63 deallocate(comm_zqfi_omp) 64 deallocate(comm_zdtlc) 58 65 59 66 end subroutine deallocate_comm_wrf -
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r3497 r3661 46 46 #else 47 47 use comm_wrf, only : comm_HR_SW, comm_HR_LW, & 48 comm_FLUXTOP_DN,comm_FLUXABS_SW,& 49 comm_FLUXTOP_LW,comm_FLUXSURF_SW,& 50 comm_FLUXSURF_LW,comm_FLXGRD 48 comm_FLUXTOP_DN, comm_FLUXABS_SW,& 49 comm_FLUXTOP_LW, comm_FLUXSURF_SW,& 50 comm_FLUXSURF_LW, comm_FLXGRD,& 51 comm_zqfi_omp, comm_zdtlc 51 52 #endif 52 53 #ifdef CPP_XIOS … … 138 139 ! pdv(ngrid,nlayer) \ Temporal derivative of the corresponding 139 140 ! pdt(ngrid,nlayer) / variables due to physical processes. 140 ! pdq(ngrid,nlayer )/141 ! pdq(ngrid,nlayer,nq) / 141 142 ! pdpsrf(ngrid) / 142 143 ! … … 331 332 character*2 :: str2 332 333 333 #ifndef MESOSCALE334 !#ifndef MESOSCALE 334 335 335 336 ! Local variables for Titan chemistry and microphysics … … 363 364 #endif 364 365 365 logical file_ok 366 #ifdef MESOSCALE 367 LOGICAL, SAVE :: moyzon_ch ! used for zonal averages in Titan 368 REAL, ALLOCATABLE :: zplevbar(:,:) 369 REAL, ALLOCATABLE :: zplaybar(:,:) 370 REAL, ALLOCATABLE :: ztfibar(:,:) 371 REAL, ALLOCATABLE :: zqfibar(:,:,:) 372 REAL, ALLOCATABLE :: zphibar(:,:) 373 REAL, ALLOCATABLE :: zphisbar(:) 374 REAL, ALLOCATABLE :: zzlevbar(:,:) 375 REAL, ALLOCATABLE :: zzlaybar(:,:) 376 ! REAL, DIMENSION(:,:) :: zplevbar(:,:) 377 ! REAL, DIMENSION(:,:) :: zplaybar(:,:) 378 ! REAL, DIMENSION(:,:) :: ztfibar(:,:) 379 ! REAL, DIMENSION(:,:,:) :: zqfibar(:,:,:) 380 ! REAL, DIMENSION(:,:) :: zphibar(:,:) 381 ! REAL, DIMENSION(:) :: zphisbar(:) 382 ! REAL, DIMENSION(:,:) :: zzlevbar(:,:) 383 ! REAL, DIMENSION(:,:) :: zzlaybar(:,:) 384 #endif 366 385 367 386 !----------------------------------------------------------------------------- … … 385 404 END INTERFACE 386 405 387 #endif 388 406 !#endif 407 408 logical file_ok 409 389 410 !================================================================================================== 390 411 … … 447 468 int_dtauv(:,:,:) = 0.D0 448 469 449 #ifndef MESOSCALE470 !#ifndef MESOSCALE 450 471 IF (callmufi .AND. (.NOT. uncoupl_optic_haze)) THEN 451 472 haze_opt_file=trim(datadir)//'/optical_tables/HAZE_OPTIC_'//trim(adjustl(tmp1))//'x'//trim(adjustl(tmp2))//'.DAT' … … 459 480 endif 460 481 ENDIF 461 #endif482 !#endif 462 483 463 484 endif 485 486 #ifdef MESOSCALE 487 moyzon_ch = .false. !no zonal mean for mesoscale 488 #endif 464 489 465 490 #ifndef MESOSCALE 466 491 ! Initialize names and timestep for chemistry 467 492 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 468 469 493 if (callchim) then 470 494 … … 479 503 480 504 endif 505 #endif 481 506 482 507 ! Initialize microphysics. … … 491 516 492 517 ENDIF 493 #endif494 518 495 519 #ifdef CPP_XIOS … … 717 741 ! JVO 19 : We shall always have correct altitudes in chemistry no matter what's in physics 718 742 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 #ifndef MESOSCALE743 !#ifndef MESOSCALE 720 744 if (moyzon_ch) then ! Zonal averages 721 745 … … 748 772 749 773 else ! if not moyzon 750 #endif774 !#endif 751 775 752 776 DO ig=1,ngrid … … 763 787 ENDDO 764 788 765 #ifndef MESOSCALE789 !#ifndef MESOSCALE 766 790 endif ! moyzon 767 #endif791 !#endif 768 792 769 793 ! ------------------------------------------------------------------------------------- … … 1065 1089 if (tracer) then 1066 1090 1067 #ifndef MESOSCALE1068 1091 ! ------------------- 1069 1092 ! V.1 Microphysics … … 1072 1095 ! We must call microphysics before chemistry, for condensation ! 1073 1096 if (callmufi) then 1074 1075 1097 zzlev(:,nlayer+1)=zzlay(:,nlayer)+(zzlay(:,nlayer)-zzlev(:,nlayer)) ! JVO 19 : We assume zzlev isn't reused later on (could be done cleaner) 1076 1098 … … 1148 1170 endif ! callmufi 1149 1171 1172 #ifndef MESOSCALE 1150 1173 ! ----------------- 1151 1174 ! V.2. Chemistry … … 1292 1315 endif ! end of 'callchim' 1293 1316 1294 ! ENDMESOSCALE1317 !! END ifndef MESOSCALE 1295 1318 #endif 1296 1319 … … 2010 2033 comm_FLXGRD(1:ngrid)=fluxgrd(1:ngrid) 2011 2034 sensibFlux(1:ngrid) = zflubid(1:ngrid) - capcal(1:ngrid)*zdtsdif(1:ngrid) 2035 comm_zqfi_omp(1:ngrid,1:nlayer,1:nq) = zq(1:ngrid,1:nlayer,1:nq) 2036 comm_zdtlc(1:ngrid,1:nlayer) = zdtlc(1:ngrid,1:nlayer) 2012 2037 #endif 2013 2038
Note: See TracChangeset
for help on using the changeset viewer.
