[5325] | 1 | ! cosp SUBROUTINE wrappers |
---|
[4600] | 2 | |
---|
[5325] | 3 | SUBROUTINE lmdz_cosp_wrapper_abort |
---|
| 4 | STOP 'COSP/COSP2/COSPV2 key undefined, must not enter in COSP wrappers ==> aborting' |
---|
| 5 | END SUBROUTINE lmdz_cosp_wrapper_abort |
---|
[4600] | 6 | |
---|
[5436] | 7 | #ifndef CPP_COSP |
---|
[4600] | 8 | |
---|
[5325] | 9 | SUBROUTINE phys_cosp(itap, dtime, freq_cosp, & |
---|
| 10 | ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, & |
---|
| 11 | ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, missing_val, & |
---|
| 12 | Nptslmdz, Nlevlmdz, lon, lat, presnivs, overlaplmdz, sunlit, & |
---|
| 13 | ref_liq, ref_ice, fracTerLic, u_wind, v_wind, phis, phi, ph, p, skt, t, & |
---|
| 14 | sh, rh, tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
| 15 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
[4600] | 16 | |
---|
[5103] | 17 | IMPLICIT NONE |
---|
[4600] | 18 | |
---|
[5325] | 19 | Integer :: Nptslmdz, Nlevlmdz ! Nb de points issus de physiq.F |
---|
[4600] | 20 | |
---|
[5325] | 21 | ! Declaration necessaires pour les sorties IOIPSL |
---|
| 22 | integer :: ii |
---|
| 23 | real :: ecrit_day, ecrit_hf, ecrit_mth, missing_val |
---|
| 24 | logical :: ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, ok_all_xml |
---|
[4600] | 25 | |
---|
[5325] | 26 | integer :: overlaplmdz ! overlap type: 1=max, 2=rand, 3=max/rand ! cosp input (output lmdz) |
---|
| 27 | real, dimension(Nptslmdz, Nlevlmdz) :: height, phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, mr_lsice, mr_ccliq, mr_ccice, & |
---|
| 28 | fl_lsrain, fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
| 29 | zlev, zlev_half, mr_ozone, radliq, radice, dtau_s, dem_s, ref_liq, ref_ice |
---|
| 30 | real, dimension(Nptslmdz, Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
| 31 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, phis, sunlit |
---|
| 32 | real, dimension(Nlevlmdz) :: presnivs |
---|
| 33 | integer :: itap, k, ip |
---|
| 34 | real :: dtime, freq_cosp |
---|
| 35 | real, dimension(2) :: time_bnds |
---|
[4600] | 36 | |
---|
[5325] | 37 | double precision :: d_dtime |
---|
| 38 | double precision, dimension(2) :: d_time_bnds |
---|
[4600] | 39 | |
---|
[5325] | 40 | CALL lmdz_cosp_wrapper_abort |
---|
[4600] | 41 | |
---|
[5325] | 42 | END SUBROUTINE phys_cosp |
---|
[4600] | 43 | |
---|
[5325] | 44 | #endif |
---|
[4600] | 45 | |
---|
[5436] | 46 | #ifndef CPP_COSP2 |
---|
[4600] | 47 | |
---|
[5325] | 48 | subroutine phys_cosp2( itap,dtime,freq_cosp, ok_mensuelCOSP, ok_journeCOSP, & |
---|
| 49 | ok_hfCOSP, ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, & |
---|
| 50 | missing_val, Nptslmdz, Nlevlmdz, lon, lat, presnivs, & |
---|
| 51 | overlaplmdz, sunlit, ref_liq, ref_ice, fracTerLic, & |
---|
| 52 | u_wind, v_wind, phis, phi, ph, p, skt, t, sh, rh, & |
---|
| 53 | tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
| 54 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
[4600] | 55 | |
---|
[5103] | 56 | IMPLICIT NONE |
---|
[4600] | 57 | |
---|
[5325] | 58 | !----------------------------- Input variables from LMDZ-GCM ------------------------------- |
---|
| 59 | integer :: overlaplmdz ! overlap type: 1=max, |
---|
| 60 | ! 2=rand, 3=max/rand |
---|
| 61 | logical :: ok_mensuelcosp, ok_journecosp, ok_hfcosp, ok_all_xml |
---|
| 62 | real :: ecrit_mth, ecrit_day, ecrit_hf, missing_val |
---|
| 63 | integer :: nptslmdz, nlevlmdz |
---|
| 64 | real, dimension(Nptslmdz,Nlevlmdz) :: phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, & |
---|
| 65 | mr_lsice, mr_ccliq, mr_ccice, fl_lsrain, & |
---|
| 66 | fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
| 67 | zlev, zlev_half, mr_ozone, radliq, radice, & |
---|
| 68 | dtau_s, dem_s, dtau_c, dem_c, ref_liq, ref_ice |
---|
| 69 | real, dimension(Nptslmdz,Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
| 70 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, & |
---|
| 71 | phis, sunlit |
---|
| 72 | real, dimension(Nptslmdz) :: land ! variables intermediaire pour masque TerLic |
---|
| 73 | real, dimension(Nlevlmdz) :: presnivs |
---|
| 74 | integer :: itap, k, ip |
---|
| 75 | real :: dtime, freq_cosp |
---|
| 76 | real, dimension(2) :: time_bnds |
---|
[4600] | 77 | |
---|
[5325] | 78 | double precision :: d_dtime |
---|
| 79 | double precision, dimension(2) :: d_time_bnds |
---|
[4600] | 80 | |
---|
[5325] | 81 | CALL lmdz_cosp_wrapper_abort |
---|
[4600] | 82 | |
---|
[5325] | 83 | end subroutine phys_cosp2 |
---|
[4600] | 84 | |
---|
| 85 | #endif |
---|
[5328] | 86 | |
---|
[5436] | 87 | #ifndef CPP_COSPV2 |
---|
[5329] | 88 | ! |
---|
[5328] | 89 | subroutine lmdz_cosp_interface(itap, dtime, freq_cosp, ok_mensuelCOSP, ok_journeCOSP, & |
---|
| 90 | ok_hfCOSP, ecrit_mth, ecrit_day, ecrit_hf, ok_all_xml, & |
---|
| 91 | missing_val, Nptslmdz, Nlevlmdz, lon, lat, presnivs, & |
---|
| 92 | overlaplmdz, sunlit, ref_liq, ref_ice, fracTerLic, & |
---|
| 93 | u_wind, v_wind, phis, phi, ph, p, skt, t, sh, rh, & |
---|
| 94 | tca, cca, mr_lsliq, mr_lsice, fl_lsrainI, fl_lssnowI, & |
---|
| 95 | fl_ccrainI, fl_ccsnowI, mr_ozone, dtau_s, dem_s) |
---|
| 96 | |
---|
| 97 | integer :: Nptslmdz, Nlevlmdz ! Nb de points issus de physiq.F |
---|
| 98 | real :: ecrit_day, ecrit_hf, ecrit_mth, missing_val |
---|
| 99 | logical :: ok_mensuelCOSP, ok_journeCOSP, ok_hfCOSP, ok_all_xml |
---|
| 100 | integer :: overlaplmdz ! overlap type: 1=max, |
---|
| 101 | ! 2=rand, 3=max/rand |
---|
| 102 | real, dimension(Nptslmdz,Nlevlmdz) :: phi, p, ph, T, sh, rh, tca, cca, mr_lsliq, & |
---|
| 103 | mr_lsice, mr_ccliq, mr_ccice, fl_lsrain, & |
---|
| 104 | fl_lssnow, fl_ccrain, fl_ccsnow, fl_lsgrpl, & |
---|
| 105 | zlev, zlev_half, mr_ozone, radliq, radice, & |
---|
| 106 | dtau_s, dem_s, dtau_c, dem_c, ref_liq, ref_ice |
---|
| 107 | real, dimension(Nptslmdz,Nlevlmdz) :: fl_lsrainI, fl_lssnowI, fl_ccrainI, fl_ccsnowI |
---|
| 108 | real, dimension(Nptslmdz) :: lon, lat, skt, fracTerLic, u_wind, v_wind, & |
---|
| 109 | phis, sunlit |
---|
| 110 | real, dimension(Nptslmdz) :: land ! variables intermediaire pour masque TerLic |
---|
| 111 | real, dimension(Nlevlmdz) :: presnivs |
---|
| 112 | integer :: itap, k, ip |
---|
| 113 | real :: dtime, freq_cosp |
---|
| 114 | real, dimension(2) :: time_bnds |
---|
| 115 | |
---|
| 116 | double precision :: d_dtime |
---|
| 117 | double precision, dimension(2) :: d_time_bnds |
---|
| 118 | |
---|
| 119 | |
---|
| 120 | CALL lmdz_cosp_wrapper_abort |
---|
| 121 | |
---|
| 122 | end subroutine lmdz_cosp_interface |
---|
| 123 | |
---|
| 124 | #endif |
---|