Changeset 5267 for LMDZ6/trunk/libf/dyn3dmem
- Timestamp:
- Oct 23, 2024, 5:34:46 PM (8 weeks ago)
- Location:
- LMDZ6/trunk/libf/dyn3dmem
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3dmem/abort_gcm.F90
r5246 r5267 6 6 SUBROUTINE abort_gcm(modname, message, ierr) 7 7 8 #ifdef CPP_IOIPSL9 8 USE IOIPSL 10 #else 11 ! if not using IOIPSL, we still need to use (a local version of) getin_dump 12 USE ioipsl_getincom 13 #endif 9 14 10 USE parallel_lmdz 15 11 INCLUDE "iniprint.h" … … 28 24 29 25 write(lunout,*) 'in abort_gcm' 30 #ifdef CPP_IOIPSL31 26 !$OMP MASTER 32 27 call histclo … … 36 31 endif 37 32 !$OMP END MASTER 38 #endif39 33 ! call histclo(2) 40 34 ! call histclo(3) -
LMDZ6/trunk/libf/dyn3dmem/bilan_dyn_loc.F90
r5246 r5267 10 10 ! vQ..A=Cp T + L * ... 11 11 12 #ifdef CPP_IOIPSL13 12 USE IOIPSL 14 #endif15 13 USE parallel_lmdz 16 14 USE mod_hallo … … 30 28 !==================================================================== 31 29 ! 32 ! Sous-programme consacre àdes diagnostics dynamiques de base30 ! Sous-programme consacre � des diagnostics dynamiques de base 33 31 ! 34 32 ! … … 88 86 real :: ww 89 87 90 ! variables dynamiques interm édiaires88 ! variables dynamiques interm�diaires 91 89 REAL,SAVE,ALLOCATABLE :: vcont(:,:,:),ucont(:,:,:) 92 90 REAL,SAVE,ALLOCATABLE :: ang(:,:,:),unat(:,:,:) … … 96 94 REAL,SAVE,ALLOCATABLE :: bern(:,:,:) 97 95 98 ! champ contenant les scalaires advect és.96 ! champ contenant les scalaires advect�s. 99 97 real,SAVE,ALLOCATABLE :: Q(:,:,:,:) 100 98 101 ! champs cumul és99 ! champs cumul�s 102 100 real,SAVE,ALLOCATABLE :: ps_cum(:,:) 103 101 real,SAVE,ALLOCATABLE :: masse_cum(:,:,:) … … 370 368 jje=jj_end 371 369 372 ! énergie cinétique370 ! �nergie cin�tique 373 371 ! ucont(:,jjb:jje,:)=0 374 372 … … 382 380 CALL enercin_loc(vcov,ucov,vcont,ucont,ecin) 383 381 384 ! moment cin étique382 ! moment cin�tique 385 383 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 386 384 do l=1,llm … … 490 488 enddo 491 489 492 ! flux m éridien490 ! flux m�ridien 493 491 ! ------------- 494 492 do iQ=1,nQ … … 642 640 643 641 !===================================================================== 644 ! Transport m éridien642 ! Transport m�ridien 645 643 !===================================================================== 646 644 -
LMDZ6/trunk/libf/dyn3dmem/check_isotopes_loc.F90
r5214 r5267 5 5 ntiso, iH2O, nzone, tracers, isoName, itZonIso 6 6 USE iso_params_mod, ONLY: tnat_H216O, tnat_H217O, tnat_H218O, tnat_HDO, tnat_HTO 7 #ifdef CPP_IOIPSL8 7 USE ioipsl, ONLY: getin 9 #else10 USE ioipsl_getincom, ONLY: getin11 #endif12 8 IMPLICIT NONE 13 9 include "dimensions.h" -
LMDZ6/trunk/libf/dyn3dmem/conf_gcm.F90
r4996 r5267 5 5 6 6 USE control_mod 7 #ifdef CPP_IOIPSL8 7 USE IOIPSL 9 #else 10 ! if not using IOIPSL, we still need to use (a local version of) getin 11 USE ioipsl_getincom 12 #endif 8 13 9 USE misc_mod 14 10 USE mod_filtre_fft, ONLY: use_filtre_fft … … 121 117 122 118 !Config Key = prt_level 123 !Config Desc = niveau d'impressions de d ébogage119 !Config Desc = niveau d'impressions de d�bogage 124 120 !Config Def = 0 125 !Config Help = Niveau d'impression pour le d ébogage121 !Config Help = Niveau d'impression pour le d�bogage 126 122 !Config (0 = minimum d'impression) 127 123 prt_level = 0 … … 921 917 922 918 !Config Key = use_mpi_alloc 923 !Config Desc = Utilise un buffer MPI en m �moire globale919 !Config Desc = Utilise un buffer MPI en m�moire globale 924 920 !Config Def = false 925 921 !Config Help = permet d'activer l'utilisation d'un buffer MPI 926 !Config en m �moire globale a l'aide de la fonction MPI_ALLOC.927 !Config Cela peut am �liorer la bande passante des transferts MPI922 !Config en m�moire globale a l'aide de la fonction MPI_ALLOC. 923 !Config Cela peut am�liorer la bande passante des transferts MPI 928 924 !Config d'un facteur 2 929 925 use_mpi_alloc=.FALSE. … … 933 929 !Config Desc = activation de la version strato 934 930 !Config Def = .FALSE. 935 !Config Help = active la version stratosph érique de LMDZ de F. Lott931 !Config Help = active la version stratosph�rique de LMDZ de F. Lott 936 932 937 933 ok_strato=.FALSE. -
LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90
r5252 r5267 20 20 USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn, start_time 21 21 USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0 22 #ifdef CPP_IOIPSL23 22 USE IOIPSL, ONLY: getin 24 #else25 USE ioipsl_getincom, ONLY: getin26 #endif27 23 USE iso_params_mod ! tnat_* and alpha_ideal_* 28 24 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_REPROBUS -
LMDZ6/trunk/libf/dyn3dmem/dynredem_loc.F90
r5084 r5267 4 4 ! Write the NetCDF restart file (initialization). 5 5 !------------------------------------------------------------------------------- 6 #ifdef CPP_IOIPSL7 6 USE IOIPSL 8 #endif9 7 USE parallel_lmdz 10 8 USE mod_hallo … … 53 51 IF(mpi_rank/=0) RETURN 54 52 55 #ifdef CPP_IOIPSL56 53 CALL ymds2ju(annee_ref, 1, iday_end, 0.0, zjulian) 57 54 CALL ju2ymds(zjulian, yyears0, mmois0, jjour0, hours) 58 #else 59 ! set yyears0, mmois0, jjour0 to 0,1,1 (hours is not used) 60 yyears0=0 61 mmois0=1 62 jjour0=1 63 #endif 55 64 56 65 57 tab_cntrl(:) = 0. -
LMDZ6/trunk/libf/dyn3dmem/friction_loc.F90
r5246 r5267 6 6 USE parallel_lmdz 7 7 USE control_mod 8 #ifdef CPP_IOIPSL9 8 USE IOIPSL 10 #else 11 ! if not using IOIPSL, we still need to use (a local version of) getin 12 USE ioipsl_getincom 13 #endif 9 14 10 USE comconst_mod, ONLY: pi 15 11 IMPLICIT NONE -
LMDZ6/trunk/libf/dyn3dmem/gcm.F90
r5250 r5267 5 5 PROGRAM gcm 6 6 7 #ifdef CPP_IOIPSL8 7 USE IOIPSL 9 #endif10 8 11 9 USE mod_const_mpi, ONLY: init_const_mpi … … 178 176 ! calend = 'earth_365d' 179 177 180 #ifdef CPP_IOIPSL181 178 if (calend == 'earth_360d') then 182 179 call ioconf_calendar('360_day') … … 195 192 call abort_gcm(modname,abort_message,1) 196 193 endif 197 #endif 194 198 195 199 196 … … 330 327 ! endif 331 328 332 #ifdef CPP_IOIPSL333 329 mois = 1 334 330 heure = 0. … … 345 341 write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure' 346 342 write(lunout,*)jD_ref+jH_ref,anref, moisref, jourref, heureref 347 #else 348 ! Ehouarn: we still need to define JD_ref and JH_ref 349 ! and since we don't know how many days there are in a year 350 ! we set JD_ref to 0 (this should be improved ...) 351 jD_ref=0 352 jH_ref=0 353 #endif 343 354 344 355 345 if (iflag_phys.eq.1) then … … 394 384 300 FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//) 395 385 396 #ifdef CPP_IOIPSL397 386 call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure) 398 387 write (lunout,301)jour, mois, an … … 401 390 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) 402 391 302 FORMAT('1'/,15x,' au ', i2,'/',i2,'/',i4) 403 #endif 392 404 393 405 394 !----------------------------------------------------------------------- … … 433 422 434 423 #define CPP_IOIPSL 435 #ifdef CPP_IOIPSL436 424 time_step = zdtvr 437 425 if (ok_dyn_ins) then 438 426 ! initialize output file for instantaneous outputs 439 427 ! t_ops = iecri * daysec ! do operations every t_ops 440 t_ops =((1.0*iecri)/day_step) * daysec 428 t_ops =((1.0*iecri)/day_step) * daysec 441 429 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 442 430 CALL inithist_loc(day_ref,annee_ref,time_step, & … … 444 432 endif 445 433 446 IF (ok_dyn_ave) THEN 434 IF (ok_dyn_ave) THEN 447 435 ! initialize output file for averaged outputs 448 436 t_ops = iperiod * time_step ! do operations every t_ops … … 451 439 END IF 452 440 dtav = iperiod*dtvr/daysec 453 #endif454 #undef CPP_IOIPSL455 441 456 442 ! setting up DYN3D/XIOS inerface … … 460 446 endif 461 447 462 ! #endif of #ifdef CPP_IOIPSL463 448 ! 464 449 !----------------------------------------------------------------------- -
LMDZ6/trunk/libf/dyn3dmem/getparam.F90
r2094 r5267 3 3 ! 4 4 MODULE getparam 5 #ifdef CPP_IOIPSL6 5 USE IOIPSL 7 #else 8 ! if not using IOIPSL, we still need to use (a local version of) getin 9 USE ioipsl_getincom 10 #endif 6 11 7 12 8 INTERFACE getpar -
LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90
r5214 r5267 10 10 use exner_milieu_m, only: exner_milieu 11 11 USE parallel_lmdz, ONLY: ijb_u, ije_u, ijb_v, ije_v 12 #ifdef CPP_IOIPSL13 12 USE IOIPSL, ONLY: getin 14 #else 15 ! if not using IOIPSL, we still need to use (a local version of) getin 16 USE ioipsl_getincom, ONLY: getin 17 #endif 13 18 14 USE Write_Field 19 15 USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm -
LMDZ6/trunk/libf/dyn3dmem/initdynav_loc.F90
r5246 r5267 4 4 subroutine initdynav_loc(day0,anne0,tstep,t_ops,t_wrt) 5 5 6 #ifdef CPP_IOIPSL7 6 ! This routine needs IOIPSL 8 7 USE IOIPSL 9 #endif 8 10 9 USE parallel_lmdz 11 10 use Write_field … … 56 55 real :: tstep, t_ops, t_wrt 57 56 58 #ifdef CPP_IOIPSL59 57 ! This routine needs IOIPSL 60 58 ! Variables locales … … 281 279 call histend(histuaveid) 282 280 call histend(histvaveid) 283 #else 284 write(lunout,*)'initdynav_loc: Needs IOIPSL to function' 285 #endif 286 ! #endif of #ifdef CPP_IOIPSL 281 287 282 end subroutine initdynav_loc -
LMDZ6/trunk/libf/dyn3dmem/initfluxsto_p.F90
r5246 r5267 6 6 fileid,filevid,filedid) 7 7 8 #ifdef CPP_IOIPSL9 8 ! This routine needs IOIPSL 10 9 USE IOIPSL 11 #endif 10 12 11 USE parallel_lmdz 13 12 use Write_field … … 58 57 integer :: fileid, filevid,filedid 59 58 60 #ifdef CPP_IOIPSL61 59 ! This routine needs IOIPSL 62 60 ! Variables locales … … 287 285 endif 288 286 289 #else 290 write(lunout,*)'initfluxsto_p: Needs IOIPSL to function' 291 #endif 292 ! #endif of #ifdef CPP_IOIPSL 287 293 288 return 294 289 end subroutine initfluxsto_p -
LMDZ6/trunk/libf/dyn3dmem/inithist_loc.F90
r5246 r5267 4 4 subroutine inithist_loc(day0,anne0,tstep,t_ops,t_wrt) 5 5 6 #ifdef CPP_IOIPSL7 6 ! This routine needs IOIPSL 8 7 USE IOIPSL 9 #endif 8 10 9 USE parallel_lmdz 11 10 use Write_field … … 54 53 real :: tstep, t_ops, t_wrt 55 54 56 #ifdef CPP_IOIPSL57 55 ! This routine needs IOIPSL 58 56 ! Variables locales … … 281 279 call histend(histuid) 282 280 call histend(histvid) 283 #else 284 write(lunout,*)'inithist_loc: Needs IOIPSL to function' 285 #endif 286 ! #endif of #ifdef CPP_IOIPSL 281 287 282 end subroutine inithist_loc -
LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.F90
r5258 r5267 317 317 call check_isotopes(q,ijb_u,ije_u,'leapfrog 321') 318 318 319 #ifdef CPP_IOIPSL320 319 if (ok_guide) then 321 320 call guide_main(itau,ucov,vcov,teta,q,masse,ps) 322 321 !$OMP BARRIER 323 322 endif 324 #endif 323 325 324 326 325 … … 1610 1609 !$OMP BARRIER 1611 1610 1612 #ifdef CPP_IOIPSL1613 1611 IF (ok_dynzon) THEN 1614 1612 … … 1622 1620 ucov,teta,pk,phi,q,masse,ps,phis) 1623 1621 ENDIF 1624 #endif 1622 1625 1623 1626 1624 … … 1643 1641 !$OMP BARRIER 1644 1642 1645 #ifdef CPP_IOIPSL1646 1643 if (ok_dyn_ins) then 1647 1644 CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, & 1648 1645 masse,ps,phis) 1649 1646 endif 1650 #endif 1647 1651 1648 1652 1649 IF (ok_dyn_xios) THEN … … 1779 1776 ENDIF 1780 1777 1781 #ifdef CPP_IOIPSL1782 1778 ! ! Ehouarn: re-compute geopotential for outputs 1783 1779 !$OMP BARRIER … … 1796 1792 ucov,teta,pk,phi,q,masse,ps,phis) 1797 1793 ENDIF 1798 #endif 1794 1799 1795 1800 1796 … … 1811 1807 1812 1808 1813 #ifdef CPP_IOIPSL1814 1809 if (ok_dyn_ins) then 1815 1810 CALL writehist_loc(itau,vcov,ucov,teta,pk,phi,q, & 1816 1811 masse,ps,phis) 1817 1812 endif ! of if (ok_dyn_ins) 1818 #endif 1813 1819 1814 1820 1815 IF (ok_dyn_xios) THEN -
LMDZ6/trunk/libf/dyn3dmem/mod_const_mpi.F90
r4848 r5267 13 13 USE lmdz_mpi 14 14 15 #ifdef CPP_IOIPSL16 15 USE IOIPSL, ONLY: getin 17 #else 18 ! if not using IOIPSL, we still need to use (a local version of) getin 19 USE ioipsl_getincom, only: getin 20 #endif 16 21 17 ! Use of Oasis-MCT coupler 22 18 #ifdef CPP_OMCT -
LMDZ6/trunk/libf/dyn3dmem/parallel_lmdz.F90
r5207 r5267 5 5 USE mod_const_mpi 6 6 USE lmdz_mpi, ONLY : using_mpi 7 #ifdef CPP_IOIPSL8 7 use IOIPSL 9 #else 10 ! if not using IOIPSL, we still need to use (a local version of) getin 11 use ioipsl_getincom 12 #endif 8 13 9 INTEGER,PARAMETER :: halo_max=3 14 10 -
LMDZ6/trunk/libf/dyn3dmem/writedynav_loc.F90
r5246 r5267 5 5 masse,ps,phis) 6 6 7 #ifdef CPP_IOIPSL8 7 ! This routine needs IOIPSL 9 8 USE ioipsl 10 #endif 9 11 10 USE parallel_lmdz 12 11 USE misc_mod … … 63 62 64 63 65 #ifdef CPP_IOIPSL66 64 ! This routine needs IOIPSL 67 65 ! Variables locales … … 219 217 ENDIF 220 218 !$OMP END MASTER 221 #else 222 write(lunout,*)'writedynav_loc: Needs IOIPSL to function' 223 #endif 224 ! #endif of #ifdef CPP_IOIPSL 219 225 220 end subroutine writedynav_loc -
LMDZ6/trunk/libf/dyn3dmem/writehist_loc.F90
r5246 r5267 5 5 masse,ps,phis) 6 6 7 #ifdef CPP_IOIPSL8 7 ! This routine needs IOIPSL 9 8 USE ioipsl 10 #endif 9 11 10 USE parallel_lmdz 12 11 USE misc_mod … … 63 62 64 63 65 #ifdef CPP_IOIPSL66 64 ! This routine needs IOIPSL 67 65 ! Variables locales … … 218 216 endif 219 217 !$OMP END MASTER 220 #else 221 write(lunout,*)'writehist_loc: Needs IOIPSL to function' 222 #endif 223 ! #endif of #ifdef CPP_IOIPSL 218 224 219 end subroutine writehist_loc
Note: See TracChangeset
for help on using the changeset viewer.