Changeset 4368 for LMDZ6/branches/Ocean_skin/libf/dyn3dmem/conf_gcm.F90
- Timestamp:
- Dec 6, 2022, 12:01:16 AM (18 months ago)
- Location:
- LMDZ6/branches/Ocean_skin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin
- Property svn:mergeinfo changed
-
LMDZ6/branches/Ocean_skin/libf/dyn3dmem/conf_gcm.F90
r3809 r4368 6 6 USE control_mod 7 7 #ifdef CPP_IOIPSL 8 useIOIPSL8 USE IOIPSL 9 9 #else 10 10 ! if not using IOIPSL, we still need to use (a local version of) getin 11 useioipsl_getincom11 USE ioipsl_getincom 12 12 #endif 13 usemisc_mod14 use mod_filtre_fft, ONLY: use_filtre_fft15 use mod_filtre_fft_loc, ONLY: use_filtre_fft_loc=>use_filtre_fft16 use mod_hallo, ONLY: use_mpi_alloc17 USE infotrac, ONLY 18 use assert_m, only: assert13 USE misc_mod 14 USE mod_filtre_fft, ONLY: use_filtre_fft 15 USE mod_filtre_fft_loc, ONLY: use_filtre_fft_loc=>use_filtre_fft 16 USE mod_hallo, ONLY: use_mpi_alloc 17 USE infotrac, ONLY: type_trac 18 USE assert_m, ONLY: assert 19 19 USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, & 20 20 iflag_top_bound, mode_top_bound, tau_top_bound, & … … 55 55 LOGICAL fxyhypbb, ysinuss 56 56 INTEGER i 57 character(len=*),parameter:: modname="conf_gcm"58 character(len=80) :: abort_message57 CHARACTER(len=*), PARAMETER :: modname="conf_gcm" 58 CHARACTER(len=80) :: abort_message 59 59 #ifdef CPP_OMP 60 integer,external:: OMP_GET_NUM_THREADS60 INTEGER, EXTERNAL :: OMP_GET_NUM_THREADS 61 61 #endif 62 62 … … 102 102 103 103 adjust=.false. 104 callgetin('adjust',adjust)104 CALL getin('adjust',adjust) 105 105 106 106 #ifdef CPP_OMP 107 107 ! adjust=y not implemented in case of OpenMP threads... 108 108 !$OMP PARALLEL 109 if((OMP_GET_NUM_THREADS()>1).and.adjust) then109 IF ((OMP_GET_NUM_THREADS()>1).and.adjust) then 110 110 write(lunout,*)'conf_gcm: Error, adjust should be set to n' & 111 111 ,' when running with OpenMP threads' 112 112 abort_message = 'Wrong value for adjust' 113 callabort_gcm(modname,abort_message,1)114 endif113 CALL abort_gcm(modname,abort_message,1) 114 ENDIF 115 115 !$OMP END PARALLEL 116 116 #endif 117 117 118 118 itaumax=0 119 callgetin('itaumax',itaumax);120 if(itaumax<=0) itaumax=HUGE(itaumax)119 CALL getin('itaumax',itaumax); 120 IF (itaumax<=0) itaumax=HUGE(itaumax) 121 121 122 122 !Config Key = prt_level … … 146 146 ! initialize year_len for aquaplanets and 1D 147 147 CALL getin('calend', calend) 148 if (calend == 'earth_360d') then 149 year_len=360 150 else if (calend == 'earth_365d') then 151 year_len=365 152 else if (calend == 'earth_366d') then 153 year_len=366 154 else 155 year_len=1 156 endif 157 148 IF (calend == 'earth_360d') THEN 149 year_len=360 150 ELSE IF (calend == 'earth_365d') THEN 151 year_len=365 152 ELSE IF (calend == 'earth_366d') THEN 153 year_len=366 154 ELSE 155 year_len=1 156 ENDIF 158 157 159 158 !Config Key = dayref … … 345 344 ngroup=3 346 345 CALL getin('ngroup',ngroup) 347 if(mod(iim, 2**ngroup) /= 0) &346 IF (mod(iim, 2**ngroup) /= 0) & 348 347 call abort_gcm("conf_gcm", 'iim must be multiple of 2**ngroup', 1) 349 if(2**ngroup > jjm + 1) &348 IF (2**ngroup > jjm + 1) & 350 349 call abort_gcm("conf_gcm", '2**ngroup must be <= jjm + 1', 1) 351 350 … … 357 356 iflag_top_bound=1 358 357 CALL getin('iflag_top_bound',iflag_top_bound) 358 IF (iflag_top_bound < 0 .or. iflag_top_bound > 2) & 359 call abort_gcm("conf_gcm", 'iflag_top_bound must be 0, 1 or 2', 1) 359 360 360 361 ! mode_top_bound : fields towards which sponge relaxation will be done: … … 392 393 CALL getin('ok_guide',ok_guide) 393 394 394 if(ok_guide .and. adjust) call abort_gcm("conf_gcm", &395 IF (ok_guide .and. adjust) call abort_gcm("conf_gcm", & 395 396 "adjust does not work with ok_guide", 1) 396 397 … … 632 633 WRITE(lunout,*) & 633 634 'only the file phystoke.nc will still be created ' 634 END 635 ENDIF 635 636 636 637 !Config Key = type_trac … … 644 645 CALL getin('type_trac',type_trac) 645 646 646 !Config Key = config_inca647 !Config Desc = Choix de configuration de INCA648 !Config Def = none649 !Config Help = Choix de configuration de INCA :650 !Config 'none' = sans INCA651 !Config 'chem' = INCA avec calcul de chemie652 !Config 'aero' = INCA avec calcul des aerosols653 config_inca = 'none'654 CALL getin('config_inca',config_inca)655 656 647 !Config Key = ok_dynzon 657 648 !Config Desc = calcul et sortie des transports … … 677 668 ok_dyn_ave = .FALSE. 678 669 CALL getin('ok_dyn_ave',ok_dyn_ave) 670 671 !Config Key = ok_dyn_xios 672 !Config Desc = sorties moyennes dans la dynamique 673 !Config Def = n 674 !Config Help = 675 !Config 676 ok_dyn_xios = .FALSE. 677 CALL getin('ok_dyn_xios',ok_dyn_xios) 679 678 680 679 write(lunout,*)' #########################################' … … 716 715 write(lunout,*)' offline = ', offline 717 716 write(lunout,*)' type_trac = ', type_trac 718 write(lunout,*)' config_inca = ', config_inca719 717 write(lunout,*)' ok_dynzon = ', ok_dynzon 720 718 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 721 719 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 720 write(lunout,*)' ok_dyn_xios = ', ok_dyn_xios 722 721 else 723 722 !Config Key = clon … … 754 753 755 754 IF( grossismx.LT.1. ) THEN 756 write(lunout,*) & 757 'conf_gcm: *** ATTENTION !! grossismx < 1 . *** ' 755 write(lunout,*) 'conf_gcm: ***ATTENTION !! grossismx < 1 . *** ' 758 756 STOP 759 757 ELSE … … 768 766 ENDIF 769 767 770 write(lunout,*) 'conf_gcm: alphax alphay ',alphax,alphay768 write(lunout,*) 'conf_gcm: alphax alphay ',alphax,alphay 771 769 772 770 ! alphax et alphay sont les anciennes formulat. des grossissements … … 835 833 WRITE(lunout,*) & 836 834 'only the file phystoke.nc will still be created ' 837 END 835 ENDIF 838 836 839 837 !Config Key = type_trac … … 847 845 CALL getin('type_trac',type_trac) 848 846 849 !Config Key = config_inca850 !Config Desc = Choix de configuration de INCA851 !Config Def = none852 !Config Help = Choix de configuration de INCA :853 !Config 'none' = sans INCA854 !Config 'chem' = INCA avec calcul de chemie855 !Config 'aero' = INCA avec calcul des aerosols856 config_inca = 'none'857 CALL getin('config_inca',config_inca)858 859 847 !Config Key = ok_dynzon 860 848 !Config Desc = sortie des transports zonaux dans la dynamique … … 880 868 ok_dyn_ave = .FALSE. 881 869 CALL getin('ok_dyn_ave',ok_dyn_ave) 870 871 !Config Key = ok_dyn_xios 872 !Config Desc = sorties moyennes dans la dynamique 873 !Config Def = n 874 !Config Help = 875 !Config 876 ok_dyn_xios = .FALSE. 877 CALL getin('ok_dyn_xios',ok_dyn_xios) 882 878 883 879 !Config Key = use_filtre_fft … … 953 949 954 950 write(lunout,*)' #########################################' 955 write(lunout,*)' Configuration des parametres de cel0' & 956 //'_limit: ' 951 write(lunout,*)' Configuration des parametres de cel0_limit: ' 957 952 write(lunout,*)' planet_type = ', planet_type 958 953 write(lunout,*)' calend = ', calend … … 990 985 write(lunout,*)' offline = ', offline 991 986 write(lunout,*)' type_trac = ', type_trac 992 write(lunout,*)' config_inca = ', config_inca993 987 write(lunout,*)' ok_dynzon = ', ok_dynzon 994 988 write(lunout,*)' ok_dyn_ins = ', ok_dyn_ins 995 989 write(lunout,*)' ok_dyn_ave = ', ok_dyn_ave 990 write(lunout,*)' ok_dyn_xios = ', ok_dyn_xios 996 991 write(lunout,*)' use_filtre_fft = ', use_filtre_fft 997 992 write(lunout,*)' use_mpi_alloc = ', use_mpi_alloc … … 1000 995 write(lunout,*)' ok_limit = ', ok_limit 1001 996 write(lunout,*)' ok_etat0 = ', ok_etat0 997 write(lunout,*)' ok_guide = ', ok_guide 1002 998 write(lunout,*)' read_orop = ', read_orop 1003 endIF test_etatinit999 ENDIF test_etatinit 1004 1000 1005 1001 END SUBROUTINE conf_gcm
Note: See TracChangeset
for help on using the changeset viewer.