Changeset 912
- Timestamp:
- 06/17/19 12:13:33 (5 years ago)
- Location:
- codes/icosagcm/devel/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/diagnostics/compute_rhodz.F90
r906 r912 13 13 14 14 CONTAINS 15 16 SUBROUTINE check_interface17 USE compute_diagnostics_mod18 compute_rhodz => compute_rhodz_hex19 compute_rhodz => compute_rhodz_unst20 END SUBROUTINE check_interface21 15 22 16 #if BEGIN_DYSL … … 117 111 END SUBROUTINE compute_rhodz_handmade 118 112 119 120 113 END MODULE compute_rhodz_mod -
codes/icosagcm/devel/src/dynamics/caldyn.f90
r572 r912 1 1 MODULE caldyn_mod 2 2 USE icosa 3 IMPLICIT NONE 3 4 PRIVATE 4 5 SAVE 5 CHARACTER(LEN=255) ,SAVE:: caldyn_type6 CHARACTER(LEN=255) :: caldyn_type 6 7 !$OMP THREADPRIVATE(caldyn_type) 7 8 8 PUBLIC init_caldyn, caldyn, caldyn_BC , dysl9 PUBLIC init_caldyn, caldyn, caldyn_BC 9 10 10 11 CONTAINS 11 12 12 13 SUBROUTINE init_caldyn 13 USE icosa 14 USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn 15 USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn 16 IMPLICIT NONE 14 USE caldyn_gcm_mod, ONLY : init_caldyn_gcm=>init_caldyn 15 USE caldyn_adv_mod, ONLY : init_caldyn_adv=>init_caldyn 17 16 18 17 caldyn_type="gcm" -
codes/icosagcm/devel/src/dynamics/compute_pvort_only.F90
r884 r912 10 10 CONTAINS 11 11 12 SUBROUTINE check_interface13 USE compute_caldyn_mod14 compute_pvort_only => compute_pvort_only_unst15 compute_pvort_only => compute_pvort_only_hex16 END SUBROUTINE check_interface17 18 12 #if BEGIN_DYSL 19 13 -
codes/icosagcm/devel/src/output/restart.f90
r533 r912 1 1 MODULE restart_mod 2 USE prec, ONLY : rstd 2 3 USE field_mod 4 USE domain_mod 5 USE xios_mod 6 USE netcdf_mod 7 USE omp_para, ONLY : is_omp_master 8 USE mpipara, ONLY : is_mpi_master, is_mpi_root 9 USE time_mod, ONLY : itaumax 10 USE metric, ONLY : ncell_glo, cell_glo 11 USE getin_mod, ONLY : getin 12 USE spherical_geom_mod, ONLY : xyz2lonlat 13 USE transfert_mod, ONLY : gather_field, scatter_field 14 IMPLICIT NONE 15 PRIVATE 3 16 4 17 TYPE t_field_array … … 8 21 LOGICAL,SAVE :: write_start=.TRUE. 9 22 23 PUBLIC :: write_start, init_restart, write_restart, read_start 24 10 25 CONTAINS 11 26 12 27 SUBROUTINE init_restart 13 USE xios_mod14 USE icosa15 USE time_mod16 USE omp_para17 IMPLICIT NONE18 28 CHARACTER(LEN=255) :: start_file_name 19 29 CHARACTER(LEN=255) :: restart_file_name … … 37 47 SUBROUTINE write_restart(it,field0 ,field1 ,field2 ,field3 ,field4 ,field5 ,field6 ,field7 ,field8 ,field9, & 38 48 field10,field11,field12,field13,field14,field15,field16,field17,field18,field19 ) 39 USE prec 40 USE metric 41 USE field_mod 42 USE domain_mod 43 USE netcdf_mod 44 USE mpipara 45 USE omp_para 46 USE getin_mod 47 USE spherical_geom_mod 48 USE transfert_mod 49 USE disvert_mod 50 USE xios_mod 51 IMPLICIT NONE 52 INTEGER,INTENT(IN) :: it 49 USE disvert_mod, ONLY : presnivs 50 51 INTEGER,INTENT(IN) :: it 53 52 54 53 TYPE(t_field),POINTER,OPTIONAL,DIMENSION(:) :: field0 ,field1 ,field2 ,field3 ,field4 ,field5 ,field6 ,field7 ,field8 ,field9 … … 233 232 234 233 SUBROUTINE write_restart_field(field,fieldId,ncid) 235 USE prec236 USE metric237 USE field_mod238 USE domain_mod239 USE netcdf_mod240 USE mpipara241 USE getin_mod242 USE spherical_geom_mod243 USE transfert_mod244 USE xios_mod245 IMPLICIT NONE246 234 TYPE(t_field),POINTER :: field(:) 247 235 INTEGER,INTENT(IN) :: fieldId … … 398 386 SUBROUTINE read_start(it,field0 ,field1 ,field2 ,field3 ,field4 ,field5 ,field6 ,field7 ,field8 ,field9, & 399 387 field10,field11,field12,field13,field14,field15,field16,field17,field18,field19 ) 400 USE prec401 USE metric402 USE field_mod403 USE domain_mod404 USE netcdf_mod405 USE mpipara406 USE getin_mod407 USE spherical_geom_mod408 USE transfert_mod409 USE xios_mod410 388 411 IMPLICIT NONE412 389 INTEGER, INTENT(OUT) :: it 413 390 TYPE(t_field),POINTER,OPTIONAL,DIMENSION(:) :: field0 ,field1 ,field2 ,field3 ,field4 ,field5 ,field6 ,field7 ,field8 ,field9 … … 514 491 515 492 SUBROUTINE read_start_field(field,fieldId,ncid) 516 USE prec517 USE metric518 USE field_mod519 USE domain_mod520 USE netcdf_mod521 USE mpipara522 USE getin_mod523 USE spherical_geom_mod524 USE transfert_mod525 IMPLICIT NONE526 493 TYPE(t_field),POINTER :: field(:) 527 494 INTEGER,INTENT(IN) :: fieldId -
codes/icosagcm/devel/src/vertical/disvert_dcmip200.f90
r531 r912 1 1 MODULE disvert_dcmip200_mod 2 USE icosa 3 2 USE prec, ONLY : rstd 3 USE grid_param, ONLY : llm 4 5 IMPLICIT NONE 6 PRIVATE 7 4 8 REAL(rstd), SAVE, ALLOCATABLE,TARGET :: ap(:) 5 9 !$OMP THREADPRIVATE(ap) … … 9 13 !$OMP THREADPRIVATE(presnivs) 10 14 15 PUBLIC :: init_disvert, ap, bp, presnivs 16 11 17 CONTAINS 12 18 !========================================================================= 13 19 14 20 SUBROUTINE init_disvert 15 USE icosa 16 USE mpipara 17 IMPLICIT NONE 18 21 USE mpipara 22 19 23 ALLOCATE(ap(llm+1)) 20 24 ALLOCATE(bp(llm+1)) … … 22 26 23 27 CALL disvert(ap,bp,presnivs) 24 25 END SUBROUTINE init_disvert 28 29 END SUBROUTINE init_disvert 26 30 27 31 SUBROUTINE disvert(ap,bp,presnivs) 28 USE icosa 29 USE mpipara 30 IMPLICIT NONE 31 REAL(rstd),INTENT(OUT) :: ap(:) 32 REAL(rstd),INTENT(OUT) :: bp(:) 33 REAL(rstd),INTENT(OUT) :: presnivs(:) 34 ! reads from run.def : ncar_dz, ncar_T0, ncar_p0, ncar_disvert_c 35 INTEGER :: l,cindx 36 REAL(rstd) :: eta_top, eta 37 REAL(rstd),PARAMETER :: N=0.01 ! Brunt-Vaisala frequency (s-1) 38 REAL(rstd),PARAMETER :: T0=300. ! Surface temperature at the equator (K) 39 REAL(rstd) :: Rd 40 REAL(rstd), PARAMETER :: Gamma=0.0065 41 42 Rd=cpp*kappa 43 ncar_dz=400 ; CALL getin('ncar_dz',ncar_dz); 44 cindx=1 ; CALL getin('ncar_disvert_c',cindx) 45 32 USE earth_const, ONLY : cpp, kappa, preff, g 33 USE icosa, ONLY : ncar_dz, ncar_T0, ncar_p0 34 USE getin_mod, ONLY : getin 35 USE mpipara, ONLY : is_mpi_root 36 REAL(rstd),INTENT(OUT) :: ap(:) 37 REAL(rstd),INTENT(OUT) :: bp(:) 38 REAL(rstd),INTENT(OUT) :: presnivs(:) 39 ! reads from run.def : ncar_dz, ncar_T0, ncar_p0, ncar_disvert_c 40 INTEGER :: l,cindx 41 REAL(rstd) :: eta_top, eta 42 REAL(rstd),PARAMETER :: N=0.01 ! Brunt-Vaisala frequency (s-1) 43 REAL(rstd),PARAMETER :: T0=300. ! Surface temperature at the equator (K) 44 REAL(rstd) :: Rd 45 REAL(rstd), PARAMETER :: Gamma=0.0065 46 47 Rd=cpp*kappa 48 ncar_dz=400 ; CALL getin('ncar_dz',ncar_dz); 49 cindx=1 ; CALL getin('ncar_disvert_c',cindx) 50 51 eta_top = (1-Gamma/T0*llm*ncar_dz)**(g/(Rd*Gamma)) 52 do l = 1,llm+1 53 eta = (1-Gamma/T0*(l-1)*ncar_dz)**(g/(Rd*Gamma)) 54 PRINT *,'eta ->', eta 55 bp(l) = ((eta - eta_top)/(1 - eta_top))**cindx 56 ap(l) = preff * ( eta - bp(l) ) 57 ENDDO 58 bp(1)=1. 59 ap(1)=0. 60 bp(llm+1) = 0 61 62 DO l = 1, llm 63 presnivs(l) = 0.5 *( ap(l)+bp(l)*preff + ap(l+1)+bp(l+1)*preff ) 64 ENDDO 65 66 !$OMP MASTER 67 IF (is_mpi_root) PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3' 68 IF (is_mpi_root) PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx 69 IF (is_mpi_root) PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T0 70 !$OMP END MASTER 71 72 END SUBROUTINE disvert 46 73 47 48 eta_top = (1-Gamma/T0*llm*ncar_dz)**(g/(Rd*Gamma))49 do l = 1,llm+150 eta = (1-Gamma/T0*(l-1)*ncar_dz)**(g/(Rd*Gamma))51 PRINT *,'eta ->', eta52 bp(l) = ((eta - eta_top)/(1 - eta_top))**cindx53 ap(l) = preff * ( eta - bp(l) )54 ENDDO55 bp(1)=1.56 ap(1)=0.57 bp(llm+1) = 058 59 DO l = 1, llm60 presnivs(l) = 0.5 *( ap(l)+bp(l)*preff + ap(l+1)+bp(l+1)*preff )61 ENDDO62 63 !$OMP MASTER64 IF (is_mpi_root) PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3'65 IF (is_mpi_root) PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx66 IF (is_mpi_root) PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T067 !$OMP END MASTER68 69 END SUBROUTINE disvert70 71 74 END MODULE disvert_dcmip200_mod
Note: See TracChangeset
for help on using the changeset viewer.